NetsolサーバーでWebサイトの1つをホストしました。そこからcontact.aspx
は、Exchangeサーバーを使用してメールを送信する必要があります。メールを送信しようとすると:
エラー:メールボックスが利用できません。サーバーの応答:5.7.1リレーできません
コード:
MailMessage message = new MailMessage(@"[email protected]",
@"[email protected]",
"New Message",
"Exchange");
SmtpClient mail = new SmtpClient("exchange.abc.com", 29);
mail.EnableSsl = true;
mail.Credentials = new NetworkCredential(@"[email protected]", @"password");
mail.UseDefaultCredentials = false;
mail.DeliveryMethod = SmtpDeliveryMethod.Network;
mail.Send(message);
私が試したオプション:
ほとんどのSMTPサーバーのデフォルト設定では、信頼できないソースから外部ドメインにリレーしません。たとえば、foo.comのSMTPサーバーに接続し、bar @ xyzzy.comにメッセージを送信するように依頼するとします。 SMTPサーバーは実際にあなたが誰かを知らないため、メッセージの中継を拒否します。サーバーdidがあなたのためにそれを行う場合、それは オープンリレー と見なされます。 。
Foo.comメールサーバーに連絡して、somebody @ foo.comにメールを送信するように依頼すると、might実行できます。それは、あなたがあなたがあなたであると言う人であると彼らが信頼するかどうかに依存します。多くの場合、サーバーは逆DNSルックアップを試行し、送信元のIPがDNSのMXレコードのIPアドレスと一致しない場合、メールの送信を拒否します。自分がbar.comメールサーバーであると言っても、IPアドレスがbar.comのMXレコードと一致しない場合、メッセージの配信は拒否されます。
そのSMTPサーバーの管理者に問い合わせて認証情報を取得し、中継が許可されるようにする必要があります。 SMTPサーバーに接続するときに、これらの資格情報を提示する必要があります。通常は、ユーザー名/パスワードか、Windowsのアクセス許可を使用できます。サーバーとその構成方法によって異なります。
資格情報の送信方法の例については、 SMTPを使用して外部ドメインに電子メールを送信できません を参照してください。
ホスティングにWindows Server 2012を長時間使用していますが、何年も問題なく動作しなくなりました。私の解決策は、サーバーのパブリックIPアドレスをリレーのリストに追加し、Windows統合認証を有効にすることでした。
私は2つの変更を加えただけで、どちらも助けません。
IIS 6マネージャーに移動
SMTPサーバーのプロパティを選択します
[アクセス]タブで、[リレー]を選択します
パブリックIPアドレスを追加します
ダイアログを閉じ、同じタブで認証ボタンをクリックします。
統合Windows認証を追加する
おそらく、いくつかの手順は必要ありませんが、機能します。
この問題がありました。パーミッションとセキュリティの点ですべてがうまくセットアップされました。
干し草の山をぐるっと回った後。問題はある種の発見的方法でした。電子メールの本文に、特定の電子メールアドレスがリストされている場合は常に、交換サーバーから上記のエラーメッセージが表示されます。
これを見つけるには、2日間のクレイジーなテストと抜毛が必要でした。
すべてをチェックアウトした場合は、メール本文をWordの「テスト」のみに変更してみてください。その後、メールが正常に送信された場合、何らかのスパム/ヒューリスティックフィルターの問題が発生しています