Ho la necessità che il mio gestionale possa inviare documenti in PDF a destinatari di posta elettronica. Si tratta dell'invio in automatico delle fatture nelle e-mail dei clienti.
Ho subito inserito il componente gb.net.smtp nel mio progetto ed ho fatto qualche esperimento. Però al momento riesco solo a spedire del testo semplice. Se allego un file PDF questo arriva come file vuoto di testo semplice invece che in formato PDF. Ho letto nella (scarna) documentazione che non tutti i MimeType sono supportati e per questo ho scritto anche sulla mailing-list ufficiale.
Mi rivolgo a voi per avere consiglio: qualcuno ha mai usato questo componente? E' possibile inviare un file in allegato che non sia testo? C'è un altro sistema che potete suggerirmi?
P.S.:
questo è il codice che ho usato per le prove:
PUBLIC SUB InviaEmail_Click()
DIM Posta AS NEW SmtpClient
Posta.To.Add(Trim(txtEmail.Text))
Posta.Subject = Trim(txtOggetto.Text)
Posta.Add(txtTesto.Text)
Posta.Add(FileChooser1.SelectedPath, "application/pdf", "fattura.pdf")
Posta.From = "xxxxxxx@yyyyyyyy.zz"
Posta.Host = "xxxxx.yyyyyy.zzz"
Posta.Send
Message("Posta spedita")
END
Come mi ha fatto notare Benoit sulla mailing-list ufficiale, il mio codice non era corretto.
Questa è la versione corretta:
Posta.Add(File.Load(FileChooser1.SelectedPath), "application/pdf", "fattura.pdf")
Come citato dalla (scarna) documentazione, il primo parametro devono essere i dati, non la path, quindi bisogna passare il file, non il suo percorso.
Però si è presentato un secondo problema, che ho subito citato sulla mailing-list.
Il componente gb.net.smtp non crea i messaggi di posta elettronica in maniera "standard" ma utilizza un sistema tutto suo.
Il corpo del messaggio viene inserito come fosse un allegato.
Il problema è che sia Thunderbird che il servizio webmail del mio indirizzo di posta non sono così capaci di distinguere correttamente fra questi allegati con Mimetype differenti per cui il testo allegato arriva ma il documento in Pdf no!
Se spedisco SOLO il Pdf questo arriva...
Non mi sembra un sistema corretto di generare il messaggio, ecco perché ho voluto puntualizzare la cosa.