2009-11-21 68 views
1

ASP.NET中是否有任何邮件队列概念?ASP.NET中是否有任何邮件队列系统?

我想向成千上万的用户发送数千个不同的邮件(即每个用户将有不同的邮件)。我想在特定的时间发送邮件,这样每个用户都可以在一个固定的时间收到邮件。

+2

呃哦......不包括我的电子邮件@在列表中;-) – mjv 2009-11-21 04:39:55

回答

3

Core框架中确实没有邮件队列。您可以同步或异步发送单个消息,但不能一次发送一堆消息。

您可以通过将消息存储到数据库或文件服务器中排队,然后启动作业来循环存储的消息并将其发送出去。

此外,即使您可以同时发送邮件,并非所有的用户都会同时收到邮件。有太多的外部变量和依赖关系(网络流量,邮件服务器负载,垃圾邮件过滤器)无法准确判断用户何时或甚至是否收到其邮件。

+0

@Jason:完全同意你:) +1 – 2009-11-21 04:45:06

+0

好吧jason thanku你的回复... – 2009-11-21 05:07:09

0

在.NET框架中没有原生的MailQueue概念。队列必须自己实施。就你而言,你希望每个收件人的邮件几乎同时发送给所有批次。我对吗?

好吧,这有点棘手。您可以使用任何SMTP服务器,本地主机或外部主机。但是这也意味着,尽管您可以在特定时间发送到SMTP服务器,但不能保证它会立即到达收件人。

有一大堆东西在邮件传递上并不完全是编程相关的(灰名单,垃圾邮件过滤等)。

另一种方法是完全控制发送,让您的应用程序直接发送邮件给收件人的邮件服务器。那么这是可行的,我建议你使用商业或良好的开源组件。无论如何,仍然有很多问题需要处理,(例如,某些接收邮件服务器,如Yahoo可能会阻止发送几次,并在几次重试后通过)。

我已经发布了一个相关的问题,看看回复here