<p>Assurez-vous d’utiliser <code>System.Net.Mail</code>, pas l’obsolète <code>System.Web.Mail</code>. Faire du SSL avec <code>System.Web.Mail</code> est un bazar d’extensions bidouillées.</p>
<pre><code class="lang-auto">using System.Net;
using System.Net.Mail;
var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "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);
}
</code></pre>
<p>De plus, allez sur la page <a href="https://myaccount.google.com/security"><em>Google Account > Security</em></a> et regardez le paramètre <em>Signing in to Google > 2-Step Verification</em>.</p>
<ul>
<li>
<p>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 <a href="https://myaccount.google.com/apppasswords"><em>Signing in to Google > App passwords</em></a>, 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 <code>fromPassword</code> au lieu de votre mot de passe Gmail standard.</p>
</li>
<li>
<p>Si c’est désactivé, alors vous devez activer <a href="https://myaccount.google.com/lesssecureapps"><em>Less secure app access</em></a>, ce qui n’est pas recommandé ! Il vaut donc mieux activer la vérification en deux étapes.</p>
</li>
</ul>