Version 1.0 et 1.1
Il faut ajouter à son projet la référence System.Web.Mail (qui aurait dû s'appeler System.Net.Mail à mon avis).
Ensuite ça se fait tout seul. Exemple:
static void Main (string [ ] args)
{
MailMessage msg = new MailMessage ();
msg. From = " expediteur@free.f " ;
msg. To = " atoi@free.fr;alui@free.fr " ;
msg. Cc = " encoreatoi@free.fr " ;
msg. Body = " Bonjour\n " +
" Ceci est le contenu du mail\n " +
" A bientôt " ;
msg. Attachments. Add (new MailAttachment (@" c:\fichierjoint.txt " , MailEncoding. UUEncode));
SmtpMail. SmtpServer = " smtp.nerim.fr " ;
SmtpMail. Send (msg);
}
|
J'attire votre attention sur un point : les exceptions levées par la fonction SmtpMail.Send en cas d'échec, ne sont pas toujours très explicites!!
N'hésitez pas à consulter MSDN sur la classe System.Web.Mail.MailMessage. Elle dispose de nombreuses autres propriétés.
Il y a aussi l'excellent article de Webman
Version 2.0
A partir de .NET 2.0, les classes du namespace System.Web.Mail ont été rendues obsolètes, et remplacées par de nouvelles classes
dans le namespace System.Net.Mail. Il est désormais recommandé d'utiliser ces classes à la place des anciennes. Elles s'utilisent
presque de la même façon, mais offrent plus de fonctionnalités. L'envoi du message se fait à l'aide de la classe SmtpClient.
Voici un exemple :
using System. Net;
using System. Net. Mail;
[ STAThread]
static void Main (string [ ] args)
{
MailMessage msg = new MailMessage ();
msg. From = new MailAddress (" john.doe@gmail.com " , " John Doe " );
msg. To. Add (new MailAddress (" jack.sparrow@blackpearl.com " , " Jack Sparrow " ));
msg. To. Add (new MailAddress (" agent.smith@matrix.com " , " Agent Smith " ));
msg. Cc. Add (new MailAddress (" wonder.woman@superhero.com " , " Wonder Woman " ));
msg. Body = " Bonjour\n " +
" Ceci est le contenu du mail\n " +
" A bientôt " ;
msg. Attachments. Add (new Attachment (@" c:\fichierjoint.txt " ));
SmtpClient client = new SmtpClient (" smtp.gmail.com " , 587 );
client. EnableSsl = true ;
client. Credentials = new NetworkCredentials (" john.doe@gmail.com " , " mon_mot_de_passe " );
client. Send (msg);
}
|
Notez que le code ci-dessus suppose que le serveur SMTP est sécurisé (SSL), requiert une authentification et écoute sur le port 587.
Si votre serveur SMTP écoute sur le port standard (25), vous pouvez omettre le paramètre "port" du constructeur de SmtpClient.
Si vous n'utilisez pas SSL, ne mettez pas EnableSsl à true. Et si le serveur ne requiert pas d'authentification, inutile de spécifier
le login et mot de passe dans la propriété Credentials...
Enfin, notez qu'il est possible de spécifier les paramètres du serveur dans le fichier de configuration de l'application (web.config ou app.config) :
< configuration >
< system . net >
< mailSettings >
< smtp deliveryMethod = " network " >
< network
host = " smtp.domaine.com "
port = " 25 "
userName = " mon_login "
password = " mon_mot_de_passe "
/ >
< / smtp >
< / mailSettings >
< / system . net >
< / configuration >
|
De cette manière, lorsqu'on crée une instance de SmtpClient, elle est automatiquement
configurée avec les paramètres du fichier de configuration.
N'hésitez pas à consulter ce tutoriel sur l'envoi et la réception d'emails en .NET 2.0.
|