1

私はMVC3プロジェクトを開発しており、毎月クライアントに電子メールで請求書を送りたいと思っています。これらの複数の電子メールをどのように送信しますか?ループの場合、このループをどのようにコーディングしますか?

これが私の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 />

電子メールは現在送信中ですが、明らかに1セットの情報のみで、3人の受信者のうち2人にのみ送信されます(これはFirstOrDefaultによるものであり、代わりに何を使用する必要がありますか?)。

ありがとう、エイミー

4

1 に答える 1

0

基本的なロジックは

  • 請求対象のクライアントのセットを取得します。
  • SmtpClientのインスタンスをインスタンス化し、MTA に接続します
  • セット内の各クライアントについて、
    • 請求書データを計算する
    • クライアントとクライアントの請求書データを使用して、必要に応じて MailMessage のインスタンスを構築します。
    • SmtpClient インスタンスを介してメッセージを投稿する
  • SmtpClient インスタンス (および不要になったその他の IDisposables) を破棄します。
于 2011-10-04T21:20:48.177 に答える