gpt4 book ai didi

asp.net - 在 asp.net 中向大约 10000 个电子邮件发送新闻通讯

转载 作者:行者123 更新时间:2023-12-02 14:16:12 24 4
gpt4 key购买 nike

我必须编写发送新闻通讯的申请。向成千上万的用户发送时事通讯的最佳方式是什么?我的要求是

  1. 每封邮件均单独指定为“收件人”:
  2. 每封邮件都有唯一的取消订阅链接

使用.net的SMTP邮件类好不好?我看起来可能有疑问,但无法决定我应该采用哪种方法?有很多建议

  1. 多线程 Windows 服务
  2. 使用邮件服务器
  3. 在每次发送之间添加 thread.sleep(2000)。

谁能提出解决这个问题的好方法吗?

最佳答案

我不建议发送 ASP.NET 网页,即使您确实在单独的后台线程中启动它。我认为您面临着服务器在发送过程中回收进程的风险,这会弄乱它。您确实需要编写某种单独的服务或应用程序来发送电子邮件。

最简单的选择是创建一个快速而肮脏的控制台或 Windows 窗体应用程序。

正如另一位发帖者所说,日志记录也很重要。如果失败,您想确切地知道发送了什么以及它在哪里停止,这样当您重新启动它时,您就不会再次向所有曾为其工作过的人发送邮件。您希望能够输入发送的起点,因此如果您需要在电子邮件号码 #5000 处重新启动,则可以。

System.Net.Mail 命名空间中的类可以很好地发送邮件。

最大的问题之一是找到一个可以让您发送大量电子邮件的电子邮件主机。大多数电子邮件主机都有限制,有时它会根据服务器条件而变化,因此如果服务器被大量使用,那么电子邮件限制将更加严格,您可能只能设置每小时 500 封电子邮件。

我们有一份时事通讯作为单独的电子邮件发送给大约 20000 人,我们必须考虑电子邮件之间的延迟,直到找到适合我们的电子邮件主机的电子邮件。我们最终确定电子邮件之间的间隔为 1.2 秒,因此这可能是一个很好的起点。

我认为有些电子邮件主机专门从事批量邮件发送,因此如果您收到其中之一,那可能不是问题。

此外,如果您托管自己的电子邮件,这可能不是问题。如果您确实托管自己的邮件,您可以选择将邮件放入拾取目录中,并且您可以按照您想要的速度将其全部转储到那里,然后让电子邮件服务按照自己的节奏拾取它。/p>

编辑:这是添加到配置文件中以设置拾取目录的设置

<system.net>
<mailSettings>
<smtp from="support@test.com" deliveryMethod="SpecifiedPickupDirectory" >
<specifiedPickupDirectory pickupDirectoryLocation="Z:\Path\To\Pickup"/>
</smtp>
</mailSettings>
</system.net>

关于asp.net - 在 asp.net 中向大约 10000 个电子邮件发送新闻通讯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3133906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com