Envoyer un e-mail en .NET via Gmail
Source : Stack Overflow [.net]
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 fromPassword au 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.