Envoyer des emails depuis Windows Azure
Dans le but d’envoyer des emails depuis un rôle déployé sur Windows Azure, Microsoft a signé un partenariat avec la société SendGrid. Grâce à cette offre, il est possible d’envoyer gratuitement 25 000 mails par mois.
Pré-requis
Pour valider l’inscription sur SendGrid, cette société souhaite pouvoir vérifier que vous êtes bien le propriétaire du site qui va envoyer les emails. Pour faire cette vérification vous avez 3 possibilités :
- Fournir une adresse email du domaine lié au site web renseigné (exemple : monsite.com et aymeric@monsite.com)
- Fournir une page sur le site qui contient le texte “sendgrid”
- Créer un enregistrement DNS CNAME pointant sur sendgrid.net
Dans le cadre d’Azure, le plus simple est de publier un web role avec comme page par défaut le texte “sendgrid”.
Inscription sur SendGrid
Pour vous inscrire sur SendGrid, rendez-vous sur la page dédiée à Azure ici et remplissez le formulaire d’inscription.
Dans le champ “Website”, renseignez le site que vous venez de déployer.
Après confirmation du mail saisi, l’activation du compte se faire en quelques heures.
Installation du package NuGet
Une fois que votre souscription a été validée par l’équipe SenGrid, vous pouvez commencer à utiliser les services.
Création et envoi d’un email
Une fois la librairie SendGrid référencée, créez simplement votre email avec les classes fournies par SendGrid :
// Setup the email properties.
MailAddress from = new MailAddress("aymeric@lagier.com");
MailAddress[] to = new MailAddress[]
{
new MailAddress("aymeric.lagier@live.fr")
};
MailAddress[] cc = new MailAddress[0];
MailAddress[] bcc = new MailAddress[0];
String subject = "Test mail";
String html = "<p>Hello World!</p>";
String text = "Hello World plain text!";
SendGridMail.TransportType transport = SendGridMail.TransportType.SMTP;
// Create the email
SendGrid myMessage = SendGrid.GenerateInstance(from,
to,
cc,
bcc,
subject,
html,
text,
transport);
// Create credentials, specifying your user name and password.
var credentials = new NetworkCredential("sendgrid_username", "sendgrid_password");
// Create an SMTP transport for sending email.
var transportSMTP = SMTP.GenerateInstance(credentials);
// Send the email.
transportSMTP.Deliver(myMessage);
Documentation officielle : http://www.windowsazure.com/en-us/develop/net/how-to-guides/sendgrid-email-service/