SMTP サーバーを介してメールを送信するために使用される小さな tcp サーバーがあります。
問題は、開発マシン (smtp サーバーへのリモート接続) で実行すると正しく動作しますが、SMTP サーバー (Windows Server 2008 R2) と同じマシンでアプリケーションを実行すると、次の例外が発生することです。 :
System.Net.Mail.SmtpException: メールの送信に失敗しました。---> System.IO.IOException: トランスポート接続からデータを読み取れません: net_io_connectionclosed。
SMTP サーバーは、127.0.0.1 と tcp アプリケーションがバインドする IP アドレスからのリレーのみを許可するように構成されています。また、私の開発マシンも同様です。また、同じ IP リストからの接続のみを許可するように構成されています。
メールを送信するための C# ビットは次のとおりです。
var mail = new MailMessage();
mail.To.Add(recipient);
mail.From = new MailAddress("me@mydomain.com");
mail.Subject = "subject";
mail.Body = "message";
var smtpClient = new SmtpClient(MailServerAddress, Constants.MAIL_SERVER_PORT);
smtpClient.Send(mail);
MailServerAddress
アプリケーションが最初に実行されるときに定義されます。
127.0.0.1 と SMTP サーバーの構成済み IP アドレスの両方に設定しようとしましたが、それでも同じ例外が発生します。
サーバーログを確認しても、接続の兆候は見られません。これは上記の例外に当てはまります。
ここで何が間違っていますか?