我每天使用Office 365 smtp服务器发送大约2-3000封电子邮件。 99%的电子邮件都是正确发送的,但大约1%的时间我收到以下错误:
SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应是:5.7.57 SMTP;客户端未通过身份验证,无法在MAIL FROM期间发送匿名邮件。
这是我的代码:
private void SendEmail(string strTo, string strFrom, string strMessage, string strSubject, bool htmlFormat = true)
{
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.Mail.MailAddress mto = new System.Net.Mail.MailAddress(strTo);
System.Net.Mail.MailAddress mfrom = new System.Net.Mail.MailAddress(strFrom);
mail.Subject = strSubject;
mail.From = mfrom;
mail.To.Add(mto);
mail.Body = strMessage;
mail.IsBodyHtml = htmlFormat;
System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient("smtp.office365.com", 587);
mailClient.Timeout = 1000000;
mailClient.EnableSsl = true;
mailClient.UseDefaultCredentials = false;
mailClient.Credentials = new System.Net.NetworkCredential("my@emailaddress.com", "mypassword");
mailClient.Send(mail);
}
有人知道为什么会这么间歇地发生这种情况?!
答案 0 :(得分:1)
这不是代码问题,您需要知道每天从客户端应用发送的收据数量,而不是电子邮件数量。
电子邮件可能包含多个收件人。因此,如果您发送2封电子邮件,每封包含4张收据,则您将发送8封电子邮件。然后将此数字与最大值进行比较。您的o365订阅每天都会收到电子邮件。
请查看每个订阅的收件人费率限制,收件人限制和邮件限额。
在这里查看这些限制:
https://technet.microsoft.com/en-us/library/exchange-online-limits.aspx
希望这有帮助。