Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用第三方vs drop文件夹时,SMTPClient最多发送50封电子邮件_C#_Email_Smtp_Smtpclient_Mandrill - Fatal编程技术网

C# 使用第三方vs drop文件夹时,SMTPClient最多发送50封电子邮件

C# 使用第三方vs drop文件夹时,SMTPClient最多发送50封电子邮件,c#,email,smtp,smtpclient,mandrill,C#,Email,Smtp,Smtpclient,Mandrill,我有一个应用程序,有时需要发送很多电子邮件。大多数时候,它发送大约30封电子邮件。这没有问题。但有时(每月一次),它需要发送50多个(数百个,而不是数千个) 当使用本地放置文件夹进行测试时,SMTP客户端工作正常,我可以看到所有电子邮件都放在我的放置文件夹中 当使用Mandrill(实际的ESP)进行测试时,Mandrill似乎只收到50封电子邮件。这是一贯的 每个要发送的电子邮件都有自己的SMTPClient实例 我尝试过并行和顺序处理电子邮件。两者行为相同 发送每封电子邮件的代码: pri

我有一个应用程序,有时需要发送很多电子邮件。大多数时候,它发送大约30封电子邮件。这没有问题。但有时(每月一次),它需要发送50多个(数百个,而不是数千个)

当使用本地放置文件夹进行测试时,SMTP客户端工作正常,我可以看到所有电子邮件都放在我的放置文件夹中

当使用Mandrill(实际的ESP)进行测试时,Mandrill似乎只收到50封电子邮件。这是一贯的

  • 每个要发送的电子邮件都有自己的SMTPClient实例
  • 我尝试过并行和顺序处理电子邮件。两者行为相同
  • 发送每封电子邮件的代码:

    private static void Send(MailMessage mail)
    {
        SmtpClient client = new SmtpClient();    
        client.SendAsync(mail, null);
    }
    
  • 每封电子邮件都有一个收件人
  • ESP(Mandrill)声誉很高,发送限制为每小时1453次。这几乎没有凹痕

您能建议在何处施加50的限制(SMTP配置、ESP配置、其他)以及我如何删除(或增加)它吗?

如果所有邮件正文都相同,您只需将所有收件人添加到密件抄送中即可(盲抄送-意味着没有收件人可以看到其他人收到邮件)列出并发送邮件一次,然后将其发送给所有50多个收件人

如果它们不一样,只需重复使用相同的连接即可发送50多封电子邮件

问题可能是您的SMTP服务器将传入连接限制为每小时50个或其他时间窗口,以阻止DDoS


服务器每小时允许发送1453条消息并不意味着你可以每小时发送1453条消息。

这些消息都是不同的,所以需要单独发送(尽管Mandrill有一个模板功能)。你关于联系的回答非常接近。我得到了曼德里尔的支持。他们告诉我,他们将有效连接限制为50。巧合我想不是。我认为你关于重用连接的观点会起作用。