2011-10-04 71 views
1

我正在开发一个MVC 3项目,并希望每个月通过电子邮件发送给客户发票。我将如何发送这些多个电子邮件,如果循环,我将如何编码此循环?发送多个电子邮件与MvcMailer

这里是我的InvoiceMailer代码:

public virtual MailMessage InvoiceMailed() 
    { 
     var invoices = db.Invoice.FirstOrDefault(); 
     var client = db.Clients.FirstOrDefault(); 


     var mailMessage = new MailMessage{Subject = "InvoiceMailed"}; 

     mailMessage.To.Add("[email protected]"); 
     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,我应该使用什么?)。

感谢, 艾米

+0

好凉,故FirstOrDefault是当你只想要第一元素的顺序。如果我想要所有元素,我会放什么?我很新MVC和C# – Amy

+0

http://msdn.microsoft.com/en-us/vcsharp/aa336746 –

回答

0

的基本逻辑是

  • 得到一套客户进行结算。
  • 实例的SmtpClient一个实例,连接到您的MTA
  • 对于组中的每一个客户,
    • 计算其发票数据
    • 构建MAILMESSAGE的实例酌情使用客户端和客户端的发票数据。
    • 后通过您SmtpClient实例
  • 处置的SmtpClient实例的消息(和不再需要任何其他IDisposables。)