問題:
ASP.NET MVC 4 アプリから電子メールを送信するためにリモート メールサーバーに接続しようとしています。クライアントから提供された詳細を使用して web.config をセットアップしても、次のエラーが発生します。
No connection could be made because the target machine actively refused it 127.0.0.1:25
設定:
電子メールを送信する必要がある ASP.NET MVC 4 Web サイトがあります。メールサーバーは、Web サーバーと同じボックスにはインストールされません。
Web サーバーに smtp クライアントまたはサーバーがインストールされていません。これは必要ですか?
クライアントは、独自の Web サーバーをホストする経験がほとんどありません。ホスティング会社の指示に従って、常にメール サーバーに接続しています。この会社には専門知識を持った人がいないようです。私は外部コンサルタントで、ネットワークやメールサーバーの経験はありません。
Web.Config:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="systems@medreport.co.uk">
<network host="MYHOST1" userName="MyUser" password="PASSWORD" clientDomain="myhost1.mydomain.co.uk" />
</smtp>
</mailSettings>
</system.net>
私の推論:
エラーから、ASP.NET MVC アプリはローカルホスト マシン、つまり Web サーバーと同じマシンでメールサーバーを探しているようです。そこにないので、エラーが発生します。
それが正しければ、web.config のタグの属性に何か問題があるはずです。これらの属性は有効なサーバーを指していないため、システムがデフォルトで localhost のメールサーバーに設定されていると推測しています。この推論は正しいですか?
質問:
タグ
host
の属性またはclientDomain
属性に正しい名前が付けられていない可能性があります。<network>
その結果、mvc アプリは localhost でメールサーバーを見つけようとします。この推論は正しいですか?タイプ clientDomain="myhost1.mydomain.co.uk" の clientDomain 名が与えられました。ただし、インターネット経由ではなく、クライアントのイントラネット経由で接続しようとしています。イントラネット経由で接続していることを反映する clientDomain 属性を持つべきではありませんか?
ウェブサイトはSSLを使用しています。enableSsl 属性を使用してみましたが、役に立ちませんでした。ただし、enableSsl 属性は、Web サーバーではなく、メールサーバーとの通信に関連していると思います。これは正しいです?メールサーバーは内部ネットワーク上にあるため、メールサーバーに SSL を使用していないことは理解しています。
別の理論は、ファイアウォールの問題があり、メールサーバーのボックスから私を跳ね返しているというものです。しかし、その場合、より具体的なエラーが発生することは間違いありません...?
編集:
別のボックスのメールサーバーに接続できるようにするには、SMTPclient を Web サーバーにインストールする必要がありますか?