Inviare email in C#
Piccola guida su come inviare email in C#, anche se la libreria è molto facile da usare e non richiede particolare studio.
Sul mio sito in Asp.NET Web Form ho messo una tabella da riempire; al click sul bottone mi viene spedita una mail.
La tabella è questa:
ControlToValidate="TxtNome" SetFocusOnError="True" Font-Bold="True">
ControlToValidate="TxtEmail" SetFocusOnError="True" Font-Bold="True">
ControlToValidate="TxtEmail" ValidationExpression="^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"
Font-Bold="True">
ControlToValidate="TxtMessaggio" Font-Bold="True">
E l'evento richiamato è questo:
protected void send(object sender, EventArgs e)
{
SendEmail sm = new SendEmail();
sm.send(TxtEmail.Text, TxtMessaggio.Text, TxtNome.Text);
TxtEmail.Text = "";
TxtNome.Text = "";
TxtMessaggio.Text = "";
LblMessage.Text = "Mail inviata";
}
Fin qui nulla di particolare.
Andiamo quindi a vedere la classe SendEmail che è preposta all'invio vero e proprio:
using System;
using System.Net.Mail;
namespace MatteoFerrone
{
public class SendEmail
{
public void send(string from, string body, string name)
{
MailMessage message = new MailMessage();
message.From = new MailAddress(from);
message.To.Add(new MailAddress("matteo.ferrone@yahoo.it"));
message.Subject = "Mail dal sito";
message.Body = "NOME: " + name + "
" + "MESSAGGIO: " + body;
message.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtp.sito.com");
smtp.Send(message);
}
}
}
Prima di tutto dobbiamo importare il namespace System.Net.Mail.
Nel mio caso il metodo send richiede 3 parametri:
- l'indirizzo email di chi mi vuole contattare
- il messaggio inserito
- il nome di chi mi vuole contattare
Ovviamente il tutto varia da caso a caso.
Diciamo che il tutto è abbastanza esplicativo.
Io ho impostato un solo destinatario (message.To.Add), ma potete impostarne di più.
Dovete stare attenti alla penultima riga che imposta il server SMTP da cui inviare la mail.
Se è sbagliato la mail non verrà inviata.
c# asp.net email smtp MailMessage SmtpClient
Commentami!