用mvcmailer发送多封电子邮件

本文关键字:电子邮件 mvcmailer | 更新日期: 2023-09-27 17:54:30

我希望使用MVCMailer使用asp.net mvc 3与razor发送电子邮件。scott也提到过

它看起来相当直接,但是我很困惑,我如何发送批量电子邮件,例如像一个时事通讯的用户列表。

我要在这个周围创建一个循环吗?

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;
}
有人能解释一下吗?由于

用mvcmailer发送多封电子邮件

不幸的是,因为每封邮件都是个性化的,除了循环之外,我看不到任何其他方法。所以把你的方法改成:

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;
}

然后在循环中调用那个方法并同时发送它。

重要提示

你应该设置你的网页。配置为使用拾取目录而不是SMTP服务器。然后让IIS从拾取目录发送电子邮件。

推理-因为你可能会调用SmtpClient.Send(MailMessage mailmessage)任意次数-这可能会变得相当昂贵,如果你必须连接到SMTP服务器每次发送电子邮件。

这样做的一个很好的副作用是,如果SMTP服务器关闭或由于任何原因无法访问,您也可以获得一些冗余。

如果您希望每个电子邮件的内容不同,则需要使用循环创建单独的MailMessage对象。如果您想要相同的内容,那么您可以添加多个收件人:

mailMessage.To.Add("sohan39@example.com");
mailMessage.To.Add("peter23@example.com");