我想使用 MVCMailer使用带 Razor 的 asp.net mvc 3 发送电子邮件。 ScottHa 也提到了
它看起来相当简单,但我对如何向用户列表发送批量电子邮件(例如时事通讯)感到困惑。
我要围绕这个创建一个循环吗?
public virtual MailMessage Welcome()
{
var mailMessage = new MailMessage{Subject = "Welcome to MvcMailer"};
mailMessage.To.Add("sohan39@example.com");
ViewBag.Name = "Sohan";
PopulateBody(mailMessage, viewName: "Welcome");
return mailMessage;
}
谁能解释一下? 谢谢
最佳答案
不幸的是,因为每封电子邮件都是个性化的,所以除了循环我看不到任何其他方式。所以只需将您的方法更改为:
public virtual MailMessage Welcome(string email, string name)
{
var mailMessage = new MailMessage{Subject = "Welcome to MvcMailer"};
mailMessage.To.Add(email);
ViewBag.Name = name;
PopulateBody(mailMessage, viewName: "Welcome");
return mailMessage;
}
然后在循环中调用该方法并同时发送它。
重要提示
您应该将 web.config 设置为使用拾取目录而不是 SMTP 服务器。然后让 IIS 从拾取目录发送电子邮件。
推理 - 因为您可能会多次调用 SmtpClient.Send(MailMessage mailmessage)
- 如果您每次都必须连接到 SMTP 服务器以发送电子邮件,这可能会变得相当昂贵.
这样做的一个很好的副作用是,如果 SMTP 服务器因任何原因关闭或无法访问,您还可以获得一些冗余。
关于c# - 使用 mvcmailer 发送多封电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5881747/