.NET服务应用程序–;向2634789用户发送邮件
我们制作了一个.NET服务应用程序,向我们网站的所有注册用户发送电子邮件 我们有2634789个用户,邮件必须发送给所有用户。在程序中,我一次获取100个用户的相关信息(以避免数据库调用),并将其存储在程序中(数据表中),然后异步发送邮件。同样,我也在为剩余的用户做这件事 现在我的疑问是,这是实现这一目标的最佳方式还是有其他最佳方式?请提供参考链接(如果需要) 非常感谢,, 当做 巴夫纳.NET服务应用程序–;向2634789用户发送邮件,.net,service,email,.net,Service,Email,我们制作了一个.NET服务应用程序,向我们网站的所有注册用户发送电子邮件 我们有2634789个用户,邮件必须发送给所有用户。在程序中,我一次获取100个用户的相关信息(以避免数据库调用),并将其存储在程序中(数据表中),然后异步发送邮件。同样,我也在为剩余的用户做这件事 现在我的疑问是,这是实现这一目标的最佳方式还是有其他最佳方式?请提供参考链接(如果需要) 非常感谢,, 当做 巴夫纳 谢谢大家的时间和回复 我们正在使用ISP的SMTP发送邮件 我使用异步电子邮件方法一次发送100封电子邮件
谢谢大家的时间和回复 我们正在使用ISP的SMTP发送邮件 我使用异步电子邮件方法一次发送100封电子邮件。除此之外,我还需要做什么吗 感谢和问候,
Bhavna.您的方法将花费太多时间。我已经将这些任务外包给了大容量邮件服务,这些服务被列为白名单,并且能够发送大容量邮件
如果你仍然像你提到的那样发送大量电子邮件,你很可能被指定为垃圾邮件发送者。你也应该查看白名单。 你可以考虑一个平面文件,然后使用命令行邮件工具(PoN)运行一个BASH脚本来发送电子邮件给每个人。p>
如果它已经存在于数据库中,那么你做得很好。虽然你有自己的smtp服务器吗?或者您是否使用ISP?如果是这样,您可能希望与他们核实并让他们知道您发送邮件的意图,以便他们知道这不是JU垃圾邮件。考虑使用数据库,然后对发送电子邮件的每个用户进行标记,然后按批处理未标记的用户(假设每批100个用户)。
如果出现故障,您是安全的。您应该多线程使用此方法。如果您每秒可以发送10封电子邮件(取决于您的服务器和SMTP服务器),则传输需要73小时 我建议更进一步,使其以粗粒度的方式分布。您当前的方法很好,但我会有一个存储过程,它根据一些额外的整数列返回要发送给电子邮件的100个人,例如
GENERATION
和SENT\u GENERATION
。您的过程将检索N行GENERATION!=新一代
并将其代
设置为新一代
。存储过程将把这N行返回给调用程序,调用程序将发送电子邮件,然后更新表,并将SENT\u GENERATION
设置为GENERATION
,这样您就可以知道哪些电子邮件已发送,哪些未发送
像这样的策略可以让多台机器成批发送电子邮件,因为你可以花很多天向200万人发送电子邮件,而不需要线程或分布式发送。我认为你应该首先在谷歌上搜索如何避免被标记为垃圾邮件发送者。200万封电子邮件不是小事
你是否计划每天发送大量电子邮件,每月发送一封?在这种情况下,一个包含每个已发送电子邮件内容的“电子邮件”表会很有趣。在我看来,这是一种很好的方法(分页和异步电子邮件发送)。仅-我会避免使用数据表。当应用程序崩溃时,您是否有回退策略?在崩溃后,你能确定邮件已经发送给了哪些用户,而没有发送给谁吗?让他放心。例如,他可能在政府机构工作。他是否是垃圾邮件发送者无关紧要。他很可能会被许多垃圾邮件过滤硬件和软件自动标记为垃圾邮件过滤,特别是在gmail等大型网络邮件主机上。