SMTPサーバーをIISメール送信用にセットアップしようとしています。SMTPサーバーは、C#のASP.NETコードで使用することを目的としています。
以前はGmail smtpを使用していましたが、ここではsmtp.gmail.comを安全なポートとgmail uid/pwdを持つホストとして提供していました。それはうまくいきました。これを行うために使用されるコードは次のとおりです。
SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;
smtpClient.Send(mailMessage);
今、IISでローカルホストSMTPサーバーを使用することを計画していますパラメーターUseDefaultCredentialsおよびCredentialsにどの値を指定する必要がありますか EnableSslがポート25を経由するため、falseを割り当てます。
また、最も単純なSMTP仮想サーバー構成になる可能性があるもの。
Localhostで使用できると思います:
SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = true;
smtpClient.Send(mailMessage);
ローカルIIS SMTPサービスを使用している場合、DeliveryMethodをPickupDirectoryFromIisに設定します。たとえば、次のようになります。
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
これにより、ネットワーク層が完全にバイパスされ、メッセージが直接ディスクに書き込まれます。おしゃべりなSMTPプロトコルを使用するよりもはるかに高速です。
上記のコードを使用すると、コードのこの部分を取り除くことができます。
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;
Smtpサーバーの設定方法によって異なります。資格情報をまったく使用する必要はなく、ローカル接続のみを受け入れるようにサーバーを構成するだけです。
リレーを有効にしてみましたか?
IIS6マネージャーを検索します(IISを検索すると2つの結果が返される場合があります)。SMTPサーバーのプロパティに移動し、[アクセス]をクリックしてリレーボタンを押します。
次に、すべてを選択するか、127.0.0.1などの特定のIPのみを許可します。
Tx Natim、あなたの言うことは私のために働いた。 Exchange 2007サーバーで統合認証を使用するイントラネットアプリを今すぐ持ってください。
Dim msg As New MailMessage()
Dim smtp As SmtpClient
msg.From = New MailAddress(strFrom)
msg.To.Add(strTo)
msg.Subject = strSubject
msg.Body = strBody
smtp = New SmtpClient("ServerName")
smtp.UseDefaultCredentials = True
smtp.Send(msg)
Localhostでメールをテストする場合は、papercutツールをダウンロードしてインストールしてください https://papercut.codeplex.com/
以下のようにホスト名をlocalhostに変更します。 Papercutは、localhostを使用して送信するすべての電子メールをキャプチャします。
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "localhost";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;