ASP.NET中是否有任何邮件队列概念?
我想向成千上万的用户发送数千封不同的邮件(即每个用户都有不同的邮件)。我想在特定时间发送邮件,因此每个用户都会在一个固定的时间收到邮件。
答案 0 :(得分:3)
Core框架中确实没有邮件队列。您可以同步或异步发送单个消息,但不能一次发送一堆消息。
您可以将邮件存储到数据库或文件服务器,然后启动作业以循环显示已保存的邮件并将其发送出去,从而对邮件进行排队。
此外,即使您可以同时发送消息,也不是所有用户都会同时收到消息。外部变量和依赖项(网络流量,邮件服务器负载,垃圾邮件过滤器)太多,无法准确预测用户何时或甚至是否收到他们的邮件。
答案 1 :(得分:0)
.NET框架中没有本机MailQueue概念。队列必须自己实现。在您的情况下,您希望每个收件人的邮件几乎在同一时间发送给所有批次。我是对的吗?
嗯,这有点棘手。您可以使用任何SMTP服务器,localhost或外部服务器。但这也意味着虽然您可以在特定时间发送到SMTP服务器,但不能保证它会立即到达收件人。
邮件传递中有很多东西与编程无关(灰名单,垃圾邮件过滤等)。
另一种方法是完全控制发送并让您的应用程序直接将邮件发送给收件人的邮件服务器。那是可行的,我建议你使用商业或良好的开源组件。无论如何,还有一大堆问题需要处理,(例如,一些接收邮件服务器,如雅虎可能会阻止发送几次,并在几次重试后通过)。
我发布了相关问题,请查看回复here。