0

ASP.NET サイトからメールを送信するために smtp.corp を使用しています。50 件のメールを選択すると、ここではすべてのメールが送信されますが (ステータスは送信済みと表示されます)、一部のメンバーのみがメールを受信して​​います (10 人のメンバーのみ)。asp.netで一括メールを送信するには??

15件のメールを選択している場合、10件のメールが送信されていますが、残りは送信されていません。残りの電子メールについて、SMTP サーバーから次のエラーが表示されます。

サービスを利用できません。伝送チャネルを閉じています。サーバーの応答: 同時 SM が多すぎます

System.Net.Mail.MailMessage MyMailMessage = new System.Net.Mail.MailMessage();
try
{
    if (From == "") From = GetConfigVal("emailfrom");

    //System.Net.Mail.MailMessage MyMailMessage = new 
    System.Net.Mail.MailMessage(From, To, Subject, MailBody);
    if (FromName.Trim() != "")
    {
        MyMailMessage.From = new System.Net.Mail.MailAddress(From, FromName);
    }
    else
    {
        MyMailMessage.From = new System.Net.Mail.MailAddress(From);
    }

    MyMailMessage.To.Add(To);
    MyMailMessage.Subject = Subject;
    MyMailMessage.Body = MailBody;

    if (ReplyEmailID.Trim() != "")
    {
        MyMailMessage.ReplyToList.Add(new  
        System.Net.Mail.MailAddress(ReplyEmailID));
    }

    if (CC.Trim() != "")
    {
        MailAddress copy = new MailAddress(CC);
        MyMailMessage.CC.Add(copy);
    }

    MyMailMessage.IsBodyHtml = isHTML;

    //Proper Authentication Details need to be
    // passed when sending from gmail

    System.Net.NetworkCredential mailAuthentication = new
    System.Net.NetworkCredential(GetConfigVal("smtpuser"), 
    GetConfigVal("smtppassword"));

    //For different server like yahoo this details changes and you can
    //get it from respective server.
    System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient(GetConfigVal("smtp"),                              int.Parse(GetConfigVal("smtpport")));
    //Enable SSL
    //mailClient.EnableSsl = true;

    //mailClient.Port = 25;
    mailClient.EnableSsl = false;

    //mailClient.UseDefaultCredentials = true;

    mailClient.Credentials = mailAuthentication;
    mailClient.Send(MyMailMessage);

}
4

1 に答える 1

2

サーバーがあなたの問題を伝えているようです - 同時接続が多すぎます。

自分のサーバーから効果的に大量のメールを送信するのは困難です。多くのサーバーには、ユーザーが大量のメールを (正当な理由で) 送信することを防止するためのセーフガードが備わっているためです。

おそらく次のいずれかが必要です

  1. メール送信をずらすサービスを書く

  2. 同じメッセージなら1通で全員BCC

  3. 正規のバルク メール プログラムを使用する

2つまたは3つが唯一の現実的な選択肢だと思います。@Alexandreが言ったように、SMTPエラーをバイパスしたとしても、おそらくユーザーのスパムボックスに入るでしょう...そして、サーバーから大量のメールを送信し始めると、心配し始める必要があります「送信者の評判」などについて、あなたの IP が「スパム送信者」としてブラックリストに登録され、主要な電子メール プロバイダーがあなたの電子メールをまったく送信しないことを決定しないようにします。これにより、ユーザーが登録したときに「登録していただきありがとうございます」というメールを 1 通送信することさえできなくなる可能性があります。

確かに、100 通のメールは実際にはそれほど多くないため、1 通でもかまいません。しかし、コード ノートが Gmail を参照していることを考えると、Gmail はサーバーから大量のメールを送信することを積極的に禁止しているため、将来さらに多くの問題に遭遇することになります。

于 2013-10-18T13:04:31.087 に答える