プログラムは、同じネットワーク内の複数のコンピューターで実行されます。メールは内部サーバー経由で送信されます。SmtpClient からメールを送信しようとすると、一部のコンピューターでは機能しますが、他のコンピューターでは次のようになります。
「System.Net.WebException: リモート サーバーに接続できません ---> System.Net.Sockets.SocketException: ターゲット マシンがアクティブに拒否したため、接続できませんでした 10.1.0.74:25」
私はそれを調べてみましたが、ファイアウォールまたはSMTPサーバーがリクエストをブロックしていることについて多くの回答がありました。問題は、特定のコンピューターでのみエラーが発生することであり、ファイアウォールの設定がどうあるべきかわかりません。
メールを送信するためのコードは次のとおりです。
public void SendMessage(string subject, string messageBody, string fromAddress, string toAddress)
{
MailMessage message = new MailMessage();
SmtpClient client = new SmtpClient("10.1.0.74", 25);
// Set the sender's address
message.From = new MailAddress(fromAddress);
// Allow multiple "To" addresses to be separated by a semi-colon
if (toAddress.Trim().Length > 0)
{
foreach (string addr in toAddress.Split(';'))
{
if (addr.Trim() != "")
message.To.Add(new MailAddress(addr));
}
}
// Set the subject and message body text
message.Subject = subject;
message.Body = messageBody;
message.IsBodyHtml = true;
// Set the SMTP server to be used to send the message
//client.Host = "smtp.gmail.com";
System.Net.NetworkCredential a = new System.Net.NetworkCredential("User", "Pass");
//client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = a;
// Send the e-mail message
client.Send(message);
}
編集: 動作していないコンピューターから IP を ping したところ、次の結果が得られました。