0

C# 次のコードでメールを送信しようとしています。OSはwindows2008サーバーです。SMTP がインストールされています。

           MailMessage message = new MailMessage();
            string[] recipientslist = recipients.Split(';');
            foreach (string recipient in recipientslist)
            {
                if (!String.IsNullOrEmpty(recipient))
                {
                    System.Net.Mail.MailAddress mailAddress = 
                        new System.Net.Mail.MailAddress(recipient);
                    message.To.Add(mailAddress.Address);
                }
            }
            message.From = new MailAddress(sender);
            message.Subject = subject;
            message.Body = body;
            SmtpClient smtpClient = new SmtpClient();
    smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
    smtpClient.UseDefaultCredentials = true;
    smtpClient.Send(message);

web.config 内

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="PickupDirectoryFromIis">
        <network host="localhost" port="25" defaultCredentials="true" />
      </smtp>
    </mailSettings>
  </system.net>

smtp がインストールされていても、例外が発生します。メールの送信に失敗しました。スタック トレース: System.Net.Mail.SmtpClient.Send (MailMessage メッセージ) で...

================================================== ========================================

SMTP がインストールされていない場合の他のシナリオでは、IIS ピックアップ ディレクトリを取得できないという例外が発生します。

どんな助けも非常に高く評価されます。

ありがとう*強いテキスト*

4

2 に答える 2

1

答えが出ました..

デフォルトの IIS ピックアップ ディレクトリにはアクセス許可が必要です。ネットワークサービスのアクセス許可を追加して完了しました。

以下は、メールを送信する前に確認する必要があるチェックリストです。

ありがとう

于 2012-05-05T07:11:18.600 に答える
0

これはウイルス対策プログラム QH Exchange Protection であり、アプリケーションからのメール送信を妨害します。これについては、システム管理者に問い合わせてください。あなたがシステムの管理者である場合は、Quick Heal の製品にこれを行わないように指示する方法を見つける必要があります。

于 2012-05-01T21:03:20.590 に答える