在C#中处理批量邮件的最佳方式

时间:2016-09-13 04:51:40

标签: c# multithreading email sendgrid

将批量电子邮件发送到特定列表的最佳方法是什么?例如。用户将从服务类别请求服务。我根据用户标准获得200-20000个匹配的电子邮件,并将用户请求发送给收件人。

我做了一些研究,但不确定哪个是最适合该任务的解决方案。

方法1,使用多个线程使多个SMTP客户端能够发送邮件(不确定是否将其发送给大量收件人,如果它会使用所有线程终止服务器)http://www.aspsnippets.com/Articles/Send-Bulk-Mass-Email-in-ASPNet-using-C-and-VBNet.aspx

方法2,使用sendgrid等服务来管理电子邮件。 (我发现在营销广告系列中您可以管理列表/联系人。只是不确定您是否可以动态生成模板的内容并发送到特定列表)https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/contactdb.html

任何建议都将不胜感激!!

1 个答案:

答案 0 :(得分:2)

你有很多不同的方式

第一种方式,我们使用它并且在我看来是最好的,但是您需要使用数据库来存储数据并编写一些要执行的代码:

  1. 使用以下字段创建表“EmailLogs”
  2.   

    ProfileName,Body,Subject,[To],CC,BCC,IsActive,QueuedOn,SentOn

    1. 编写存储过程ClearEmailLogs以发送前50位IsActive=1并按getdate()值更新SentOn
    2. 在SQL Server中编写作业以执行每10分钟
    3. 从您的应用程序中,您只需将大量消息插入表EmailLogs
    4. 即可

      ProfileName:您可能需要通过不同的电子邮件发送许多电子邮件配置,例如noreply@yourdomain.cominfo@yourdomain.com,在SQL Server中,您可以为要使用的每封电子邮件创建配置文件

      为什么每10分钟发送最多50封电子邮件?因为如果您经常向收件人发送电子邮件,其他公司如雅虎或谷歌等可能会阻止您的电子邮件并将其发送到垃圾邮件或垃圾邮件。

      第二种方式,你可以订阅一些服务,你可以在网上找到,但你需要为这项服务支付一些钱。

      希望这会对你有所帮助