Per inviare un’e-mail con allegati e per di più in formato HTML non c’è niente di meglio che una manciata di codice VB.NET, come potete vedere dal seguente codice:
Imports System.Text Public Class Form1 Dim strBody As _ New StringBuilder("Ciao da Mario De Ghetto!,") Dim objMail As New System.Net.Mail.MailMessage() Dim strPath As String = "C:\prova.txt" Dim strFrom As String = "mittente@dominio.com" Dim strTo As String = "destinatario@libero.it" Private Sub Button1_Click(ByVal sender _ As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click strBody.Append("<br>") strBody.Append("<br>") strBody.Append("<strong>Testo di prova</strong>") strBody.Append("<br>") strBody.Append("<br>") strBody.Append("<br>") strBody.Append("Cordiali saluti.") strBody.Append("<br>") strBody.Append("Ditta XYZ") strBody.Append("<br>") Dim frmaddress As _ New System.Net.Mail.MailAddress(strFrom) Dim attachement As _ New System.Net.Mail.Attachment(strPath) objMail.To.Add(strTo) objMail.From = frmaddress objMail.Subject = "Invio documento allegato: " & strPath objMail.Priority = Net.Mail.MailPriority.High objMail.IsBodyHtml = True objMail.Body = strBody.ToString If strPath <> "" Then objMail.Attachments.Add(attachement) End If Dim SmtMail As _ New System.Net.Mail.SmtpClient("smtp.libero.it") SmtMail.Send(objMail) MessageBox.Show("Mail spedita!") End Sub End Class
Il codice è abbastanza chiaro. Ovviamente dovrete personalizzare i dati, come l’indirizzo del vostro server SMTP, l’indirizzo del mittente e del destinatario e così via. Se vi auto-inviate l’e-mail, potrete verificare che effettivamente c’è l’allegato e che il testo è in formato HTML.
l’esempio che ho letto sopra è molto chiaro…..ma ho un problema:
sto creando un applicazione web in linguaggio vb.net e in una pagina aspx faccio scegliere un file all’utente che dovrà poi inviare come allegato in una e-mail
il problema sussiste nel momento in cui inserisco la stringa di percorso del file nell’oggetto mailAttachment….come posso risolvere ???????
"Mi piace""Mi piace"
Se ho capito bene il contesto, potresti fare prima l’upload del file dal PC dell’utente in una cartella del server.
A quel punto sai dov’è il file da allegare e quindi anche il percorso da utilizzare.
Una volta spedita l’e-mail, poi, cancelli il file dell’allegato.
Se questa soluzione non ti soddisfa fammi sapere. 🙂
"Mi piace""Mi piace"
ciao Mario,
se io volessi mandare la stessa mail a più persone come dovrei fare?
è possibile far in modo che l’utente inserisca nella stessa textbox più indirizzi?
hai qualche consiglio?
grazie mille 🙂
"Mi piace""Mi piace"
Ciao Yuri.
Si, è possibile specificare più di un destinatario, semplicemente mettendo tutti i destinatari nella stessa stringa e separando ciascun indirizzo con una virgola, così:
Dim strTo As String = “destinatario@libero.it, altrodestinatario@tiscali.it”
Nel caso di una casella di testo, puoi mettere una nota all’utente che divida gli indirizzi con una virgola, oppure che inserisca un solo indirizzo in ogni riga della casella di testo e poi, al momento della composizione del messaggio, ci pensi tu a inserire la virgola tra un indirizzo e l’altro, se non già specificato dall’utente.
"Mi piace""Mi piace"
Questo codice va inserito in un modulo di classe e richiamato dal main?
E dove metto la password per inviare la mail con il mio indirizzo di posta?
"Mi piace""Mi piace"
Scusa, ma se io mi devo autentificare sul server smtp x spedire?
..uso gmail
"Mi piace""Mi piace"
Prova a guardare qui: http://mail.google.com/support/bin/answer.py?hl=it&answer=13287.
Sono indicati i parametri di POP3 e di SMTP di GMail.
"Mi piace""Mi piace"
Ciao Mario De Ghetto ma come fai ad autenticarti sul tuo server di posta con username e password? A me non funziona….
"Mi piace""Mi piace"
[…] il mio post con cui mostravo il codice per inviare un’e-mail con allegato in modo automatico da Visual Basic, […]
"Mi piace""Mi piace"
Ciao Paolo,
in effetti hai ragione, perché questo codice funziona solo con i server SMTP che non richiedono le credenziali di accesso e oggi quasi tutti i server SMTP le richiedono.
Ecco quindi che ho aggiornato il codice con questo post:
Prova a vedere se così riesci a farlo funzionare.
Ciao!
"Mi piace""Mi piace"
[…] return to my post in which I showed the code to send an e-mail with attachment automatically by Visual Basic, in HTML […]
"Mi piace""Mi piace"