使用MvcMailer发送多封电子邮件
本文关键字:电子邮件 MvcMailer 使用 | 更新日期: 2023-09-27 18:10:22
我正在开发一个MVC 3项目,并希望每个月通过电子邮件向客户发送发票。我该如何发送这些多封邮件,如果是一个循环,我该如何编写这个循环?
这是我的InvoiceMailer代码:
public virtual MailMessage InvoiceMailed()
{
var invoices = db.Invoice.FirstOrDefault();
var client = db.Clients.FirstOrDefault();
var mailMessage = new MailMessage{Subject = "InvoiceMailed"};
mailMessage.To.Add("amecily@gmail.com");
mailMessage.Bcc.Add(client.EmailAddress);
ViewBag.Name = client.FullName;
ViewBag.Number = invoices.InvoiceNumberID;
ViewBag.Amount = invoices.InvoiceAmount;
ViewBag.Month = invoices.InvoiceMonth;
PopulateBody(mailMessage, viewName: "InvoiceMailed");
return mailMessage;
}
和我的电子邮件的视图:
Hello @ViewBag.Name
<br /><br />
This is your invoice from DFP Productions for the month of @ViewBag.Month
<br /><br />
@ViewBag.Number<br />
@ViewBag.Amount<br />
@ViewBag.Month<br />
电子邮件目前正在发送,但显然只有一组信息,只发送给三个收件人中的两个(这是由于FirstOrDefault,我应该用什么代替?)
谢谢,艾米
基本逻辑是
- 获取要计费的客户集
- 实例化SmtpClient实例,连接到MTA
- 对于集合中的每个客户端,
- 计算发票数据
- 根据需要构造一个MailMessage实例,使用客户端和客户端的发票数据。
- 通过SmtpClient实例发布消息
- 处理SmtpClient实例(以及任何其他不再需要的IDisposables)