无法发送给收件人:c#exception

时间:2015-08-29 09:47:12

标签: c# asp.net email smtp smtpclient

简介

我正在开发应用程序模块,它假设向列表中的用户发送超过1000封电子邮件....

问题

负责发送电子邮件的代码适用于前100封电子邮件,但随后会对此功能抛出异常,

  

smtp.Send(邮件);

     

我一直想弄清楚什么是错的,我试过几次   技术(如创建发送电子邮件的延迟,即:50块   每分钟的电子邮件)但当计数达到约100电子邮件,,,, i   遇到这种例外......

代码

m.From = new MailAddress("abcs@gmail.com", "abc");
                m.To.Add(new MailAddress(to, ""));
                m.Subject = subject;
                m.IsBodyHtml = true;

                var fromAddress = m.From.Address.ToString();

                var toAddress = to;
                const string fromPassword = "*****";
                //string body = "From: " + message + "\n";
                //body = message;
                var smtp = new System.Net.Mail.SmtpClient();
                {
                    smtp.Host = "smtp.gmail.com";
                    smtp.Port = 587;
                    smtp.EnableSsl = true;
                    smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
                    // smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
                    smtp.Timeout = 200000;
                }
                smtp.Send(m);

异常

System.Net.Mail.SmtpFailedRecipientsException was caught
      HResult=-2146233088
      Message=Unable to send to a recipient.
      Source=System
      FailedRecipient=<abcs@gmail.com>
      StackTrace:
           at System.Net.Mail.SmtpClient.Send(MailMessage message)
           at FlexiAnalysisLib.Common.MailHelper.AnalysisEmailViaAlternateView(String to, String subject, MailMessage m) in c:\beta development\FlexiAnalysisLib\Common\MailHelper.cs:line 553
      InnerException: System.Net.Mail.SmtpFailedRecipientException
           HResult=-2146233088
           Message=Insufficient system storage. The server response was: 4.5.3 Your message has too many recipients. For more information regarding
           FailedRecipient=<abcs@gmail.com>
  

如果有人对此问题有所了解,请帮助......

任何形式的帮助或参考将不胜感激.... 感谢您的时间

1 个答案:

答案 0 :(得分:1)

这是您使用的任何电子邮件服务所施加的限制。

Google有一个关于此错误的支持页面,我认为这可以揭示存在此限制的原因:https://support.google.com/mail/answer/22839

  

由于发送限制而退回的消息

     

为了打击垃圾邮件并防止滥用,谷歌将暂时停止   如果您向超过500个收件人发送邮件,请禁用您的帐户   或者如果您发送大量无法投递的邮件。如果你使用   POP或IMAP客户端(例如:Microsoft Outlook或Apple Mail),您   可能只能一次向100个人发送消息。你的帐户应该   在24小时内重新启用。

     

如果您定期与同一群人沟通,   您可能对Google网上论坛感兴趣。

     

如果您发送了大量无法投递的邮件,我们建议您这样做   验证您的联系人&#39;电子邮件地址。它也很重要   你发送邮件的每个人都愿意收到它。

     

Learn more关于发送大量邮件的最佳做法   通过Gmail。