Je reçois cette erreur
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. e17sm974159fak.34
Web.config
<mailSettings>
<smtp deliveryMethod="Network"
from="[email protected]">
<network defaultCredentials="false" Host="smtp.gmail.com" port="587"
userName="[email protected]" password="12345678" />
</smtp>
</mailSettings>
Fichier de code
public void Submit()
{
EnsureCurrentlyValid();
// Send via email
var message = new StringBuilder();
message.AppendFormat("Date: {0:yyyy-MM-dd hh:mm}\n", DateTime.Now);
message.AppendFormat("Email from: {0}\n", Name);
message.AppendFormat("Email: {0}\n", Email);
message.AppendFormat("Message: {0}\n", Message);
SmtpClient smtpClient = new SmtpClient();
MailMessage m = new MailMessage(
"[email protected]", // From
"[email protected]", // To
"Suggestion/Comments", // Subject
message.ToString()); // Body
smtpClient.Send(m);
}
Essayez de définir la propriété EnableSsl sur true:
smtpClient.EnableSsl = true;
Autant que je sache, cette propriété ne peut être définie que dans le code et ne peut pas être spécifiée dans le fichier de configuration.
En fait, vous pouvez gérer cela dans votre fichier web.config en ajoutant enableSsl = "true". Cela a fonctionné pour moi et je n'ai rien eu à faire dans le code.
par exemple.
<network Host="smtp.gmail.com" enableSsl="true" ... />
Cela a fonctionné pour moi:
Définissez smtpclient.EnableSsl = true;
MailMessage mail = new MailMessage("FromEmail_Address", "ToEmail_Address");
SmtpClient smtpclient = new SmtpClient();
smtpclient.Port = 587;
smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpclient.UseDefaultCredentials = false;
smtpclient.Host = "smtp.gmail.com";
smtpclient.UseDefaultCredentials = false;
mail.Subject = "Email Subject";
mail.Body = "Content of the email";
smtpclient.EnableSsl = true;
smtpclient.Credentials = new System.Net.NetworkCredential()
{
UserName = "FromEmail_Address",
Password = "password of the email"
};
client.Send(mail);