4

MVCMailerを使用して、かみそりで 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;
}

誰か説明できますか?ありがとう

4

2 に答える 2

2

残念ながら、各電子メール メッセージはパーソナライズされているため、ループ以外の方法は見当たりません。したがって、メソッドを次のように変更するだけです。

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 サーバーではなくピックアップ ディレクトリを使用するように web.config をセットアップする必要があります。次に、IIS を取得して、ピックアップ ディレクトリから電子メールを送信します。

SmtpClient.Send(MailMessage mailmessage)理由 -何度でも電話をかける可能性があるため、電子メールを送信するたびに SMTP サーバーに接続する必要がある場合、これはかなり高価になる可能性があります。

これの良い副作用は、SMTP サーバーがダウンしているか、何らかの理由で到達できない場合に、ある程度の冗長性が得られることです。

于 2011-05-04T17:22:55.123 に答える
1

メールごとに異なるコンテンツが必要な場合はMailMessage、ループを使用して個々のオブジェクトを作成する必要があります。同じ内容が必要な場合は、複数の受信者を追加できます。

mailMessage.To.Add("sohan39@example.com");
mailMessage.To.Add("peter23@example.com");
于 2011-05-04T12:14:41.460 に答える