在应用程序中发送大量电子邮件的最佳实践(ASP.NET MVC 2,C#)?
在web应用程序中实现批量电子邮件发送功能的最佳方式是什么?两个主要案例:在应用程序中发送大量电子邮件的最佳实践(ASP.NET MVC 2,C#)?,c#,asp.net,email,massmail,C#,Asp.net,Email,Massmail,在web应用程序中实现批量电子邮件发送功能的最佳方式是什么?两个主要案例: 根据不同的注册用户的活动,为他们发送电子邮件(只需向用户发送简短提醒,提醒他们在其创建的主题中发布新帖子) “为所有注册用户发送电子邮件”功能,系统管理员可以为所有注册用户发送一些消息,这将是一件好事。当然,将所有电子邮件添加到收件人并不是我们可以采用的方式,因为每个用户的电子邮件地址都是非常有限的 据我所知,对于案例nr1,只要通过System.Net.Mail创建新邮件并发送它来创建一些电子邮件就没有问题了。。。但是
foreach(var emailAddress in emailAddresses) {
MailMessage mail = new MailMessage();
mail.From = new MailAddress("jondoe@bla.net");
mail.To.Add(emailAddress);
mail.Subject = "test";
mail.Body = "test";
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.Send(mail);
}
这不是一个好方法吗:)那么问题是实现这一目标的最佳方法是什么
顺便说一句,我们无法部署一些用于发送电子邮件的服务,这应该集成到web应用程序中。如果您想在案例2中隐藏收件人,为什么不能将收件人放入邮件的密件抄送中 我建议您在web.config中定义电子邮件设置,如下所示:
<configuration>
<!-- Add the email settings to the <system.net> element -->
<system.net>
<mailSettings>
<smtp>
<network
host="relayServerHostname"
port="portNumber"
userName="username"
password="password" />
</smtp>
</mailSettings>
</system.net>
<system.web>
...
</system.web>
</configuration>
...
另一件事:不要使用gmail。首先,gmail有其局限性——无论如何,根本不使用外部服务器
我做类似的事情,我使用硬盘上的放置目录,然后使用MTA(WindowsAcutally中的SMTP服务)进行实际传输
这样,我可以快速完成(仅生成文件),而实际的电子邮件可能需要更长的时间。如果在“emailAddresses”实例中收到太多的电子邮件,您将面临超时问题。
您可能会考虑使用一个小型Windows服务应用程序来处理发送功能。它对我很有效。循环有什么问题?这对我来说似乎是最好的选择。您每人发送1封电子邮件,保护每个人的匿名性。