弊社のSMTPサーバーを利用してメールを送信しています。メールを他のメール (会社のドメインの外側) に送信すると、エラーが返されて問題が発生します。
「サーバーは 1 つ以上の受信者アドレスを拒否しました。サーバーの応答は 550 5.7.1 中継できませんでした」.
メールが社内のものであれば、エラーは発生せず、メールは正常に送信されます。私の Web アプリケーションは IIS でホストされています。
弊社のSMTPサーバーを利用してメールを送信しています。メールを他のメール (会社のドメインの外側) に送信すると、エラーが返されて問題が発生します。
「サーバーは 1 つ以上の受信者アドレスを拒否しました。サーバーの応答は 550 5.7.1 中継できませんでした」.
メールが社内のものであれば、エラーは発生せず、メールは正常に送信されます。私の Web アプリケーションは IIS でホストされています。
私はこの問題を解決しました。このコードを使用するには、名前空間Using System.Web.Mail;を追加する必要があります。
ソースコード:
MailMessage mail = new MailMessage();
mail.To = "yourfromemail@domain.com";
mail.From = "yourtodomain@domain.com";
mail.Subject = "Email test.";
mail.Body = "Your body text here";
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret"); //set your password here
SmtpMail.SmtpServer = "127.0.0.1";
SmtpMail.Send( mail );
//IIS マネージャーに localhost アドレスを追加する必要があります。IIS マネージャーに移動 -> 既定の SMTP サーバー -> プロパティ -> アクセス -> リレー -> 以下のリストからのみ許可 -> 追加 -> 127.0.0.1 -> [OK] をクリックします。
あなたのコードには何も問題がないと仮定します。これは構成の問題だと思います。つまり、会社のドメインの一部ではないアドレスに電子メールを送信しないように構成された SMTP サーバーです。その場合は、Windows/ネットワーク チームに確認して、SMTP サーバー レベルで適用された構成を確認する必要があります。