Envoyer un e-mail en .NET via Gmail
Assurez-vous d’utiliser System.Net.Mail, pas l’obsolète System.Web.Mail. Faire du SSL avec System.Web.Mail est un bazar d’extensions bidouillées.
using System.Net;
using System.Net.Mail;
var fromAddress = new MailAddress("[email protected]", "From Name");
var toAddress = new MailAddress("[email protected]", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
De plus, allez sur la page Google Account > Security et regardez le paramètre Signing in to Google > 2-Step Verification.
-
Si c’est activé, alors vous devez générer un mot de passe permettant à .NET de contourner la vérification en deux étapes. Pour ce faire, cliquez sur Signing in to Google > App passwords, sélectionnez app = Mail, et appareil = Windows Computer, et enfin générez le mot de passe. Utilisez le mot de passe généré dans la constante
fromPasswordau lieu de votre mot de passe Gmail standard. -
Si c’est désactivé, alors vous devez activer Less secure app access, ce qui n’est pas recommandé ! Il vaut donc mieux activer la vérification en deux étapes.