私のコードの電子メール操作の一部が失敗していることに気付きましたが、修正しようとしていますが、次のエラーが表示されます。Exchange経由の電子メール:既存の接続がリモートホストによって強制的にクローズされました
System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.DelegatedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.BufferedReadStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
at System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
--- End of inner exception stack trace ---
at System.Net.Mail.SmtpClient.Send(MailMessage message)
私のコードは非常に簡単です:
MailMessage mail = new MailMessage();
mail.To.Add(email_to);
mail.From = new MailAddress(email_from);
mail.Subject = email_subject;
mail.Body = email_body;
var client = new SmtpClient(smtp_server_url);
client.Credentials = new NetworkCredential(username, password, domain);
client.Timeout = 30000;
client.Send(mail);
誰もが起こっていることができるものの任意のアイデアを持っていますか?交換サーバー管理者は、ログに何も表示されないと言っています。
また、これは驚きではありませんが、私がpowershellからメッセージを送信しようとしたときも同じことが起こります。
ありがとうございますが、それはそうではない、私はOutlookから送信することができます。私は問題があることを.NETコードから送信するだけです –
私は設定/認証の問題も疑いがあります。 email_fromとemail_toがあなたのメールアドレスに設定されている場合(Exchange用と同じです) – jsight
あなたはすでにこれを知っているかもしれませんので、私が間違っていると思ったら私を許してください。しかし、Outlookでメールを送ることができるだけなので交換サーバーの設定を却下しません。 SMTP経由で接続するSmtpClient。それは、Outlookの接続方法とは異なります。管理者は、マシンがsmtpメールのリレーとしてサーバーを使用できるようにする必要があります。これは、マシンのIPとクライアントの資格情報またはその両方によって行われます。 – David