c# – SmtpFailedRecipientsException不工作
作者:互联网
我需要检查邮件是否发送给现有收件人
这是我的代码
try
{
var smtpServer = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new System.Net.NetworkCredential(MAIL_FROM, PASSWORD),
EnableSsl = true
};
var mail = new MailMessage();
mail.From = MAIL_FROM
mail.To.Add(new MailAddress("nonexisting@gmail.com"));
mail.Subject = title;
mail.Body = content;
smtpServer.Send(mailMessage);
}
catch (SmtpFailedRecipientsException ex)
{
// never occures
}
但是,当没有收件人时,SmtpFailedRecipientsException永远不会发生
有没有办法配置SmtpServer来触发此异常?
解决方法:
问题是GMail没有说在SMTP事务期间用户是无效的.原因是垃圾邮件制造者过去常常执行字典攻击,寻找“bob@gmail.com”和“tom@gmail.com”等.任何未被标记为“不存在”的地址都将成为有效地址.因此,大多数SMTP服务器现在只接受SMTP事务期间的所有地址,并且只是静默地删除无效地址或稍后发送退回消息.在任何一种情况下,代码都无法确定这一点.
标签:c,system-net-mail 来源: https://codeday.me/bug/20190717/1483408.html