Le but de ce post est de pouvoir créer et envoyer un mail via une interface C#
Tout d’abord, il faut ajouter les bibliothèques suivantes :
using System.Net.Mail; using System.Net.Mime;
Voici l’exemple d’un simple envoi de mail en utilisant la fonction SendHTMLMail.
public void SendHTMLMail() { MailMessage Msg = new MailMessage(); MailAddress fromMail = new MailAddress(" ad**************@ma**.com ", "nom apparent de l'expediteur"); // Sender e-mail address. Msg.From = fromMail; // Recipient e-mail address. Msg.To.Add(new MailAddress(" Us***@Ma**.com ")); Msg.To.Add(new MailAddress(" Us***@Ma**.com ")); // Subject of e-mail Msg.Subject = "Ceci est le sujet du Mail"; // Corps du Mail //Msg.Body += "♅ - Bobby's Application"; Msg.IsBodyHtml = true; // Info sur le serveur mail string sSmtpServer = "smtpserveur"; SmtpClient a = new SmtpClient(); a.Host = sSmtpServer; a.Port = 25; a.Send(Msg); }
Quelques Commandes :
Ajouter un destinataire :
Msg.To.Add(new MailAddress(" Us**@Ma**.com "));
Ajouter un Attachement :
Attachment PJ = new Attachment(@"D:\Pathfile\image.png", MediaTypeNames.Application.Octet); Msg.Attachments.Add(PJ);
Convertir une Image au Format HTML et le mettre dans le corps du Mail grace à la methode suivante.
private AlternateView ImageConvert() { string Fichier = @"D:\Pathfile\image.png"; LinkedResource inline = new LinkedResource(Fichier); inline.ContentId = Guid.NewGuid().ToString(); string htmlBody = @"<img src='cid:" + inline.ContentId + @"'/>"; AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html); alternateView.LinkedResources.Add(inline); return alternateView; }
Et ajouter dans la methode SendHTMLMail()
Msg.AlternateViews.Add(getEmbeddeImage());