当我们向用户发送自动生成的邮件时。通过我们的代码。让我们考虑接收者emailid是Gmail。接收器能够从系统发送的邮件中接收邮件,即系统或生成的代码。如果他们没有设置允许,那么邮件发送失败。如何避免这种情况。如何在不被客户端/用户邮件服务器拒绝的情况下发送邮件。
我试过了:
隐藏复制代码
using (MailMessage mm = new MailMessage("trial@gmail.com", trialEmail.Text))
{
mm.Subject = "Send test";
string body = "Hello " ;
mm.Body = body;
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential("trial@gmail.com", "password");
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
}
Google帐户安全
在“访问安全性较低的应用”部分下,您可以启用从其他设备/应用程序访问您的帐户...例如您的C#应用程序。
请注意,不再有“特定于应用程序”部分。
一旦我在接收者邮件帐户中进行此设置,我就可以发送邮件了。但问题是它是默认阻止/关闭。并且大多数用户都没有打开它。有点令人惊讶我们从亚马逊或Facebook网站收到邮件而没有启用此设置。他们为此做了什么?
答案 0 :(得分:2)
尝试使用" smtp.UseDefaultCredentials = true;" NetworkCredential声明之前的表达式?