0

C#、.NET、および MVC でフォームを作成しています。バックエンドでは、フォームはその内容を電子メールで送信します。テストのために、ローカルにインストールしたhMailServer.

最初に、HMS を次のように実行するように設定しましたlocalhost.localdomain。「ローカルホスト名」のSMTP設定は ですlocalhost。次のように、ポート 587 で接続しようとしました。

SmtpClient smtp = new SmtpClient
{
    Host = WebConfigurationManager.AppSettings["emailServer"],
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = true,
    Credentials = networkCredential
};

資格情報が、設定したメール サーバーのユーザーとパスワードであることを 2 回、3 回確認しました。これが役立つ場合に備えて、それらは次のとおりです。

<add key="emailUser" value="user@localhost.localdomain"/>
<add key="emailPassword" value="~~~"/>
<add key="emailServer" value="localhost.localdomain"/>

を使用している場合localhost.localdomain、メールを送信すると、外側のメッセージが「メールの送信に失敗しました」、内側のメッセージが「リモート名を解決できませんでした: 'localhost.localdomain'.」という例外がスローされます。

ということで使ってみcompanyname.comました。メールを送信すると、外側のメッセージが「メールの送信に失敗しました」、内側のメッセージが「リモート サーバーに接続できません」という例外がスローされます。

HMS ドメイン構成が間違っているか、プロトコル構成が間違っていると思われます。HMS のドキュメントは役に立ちませんでしたが、何を探すべきかわからなかったのかもしれません。

すべてのテストにもかかわらず、 ETA hMail サーバーのステータスは、1 週間に処理されたメッセージがゼロであることを示しています。

4

1 に答える 1

1

開発用に構成した方法は次のとおりです。次のようなホストファイルエントリを作成しました。

local.myname.com 127.0.0.1

完了したら、コマンド プロンプトを開き、更新されていることを確認します。私は次のようにテストしました:

tracert local.myname.com

ホスト ファイル エントリが更新されると、127.0.0.1 が返されます。

次に、hmail で、新しいドメイン local.myname.com を作成し、パスワード付きの電子メール アドレスを追加する必要があります。メールアドレスは admin@local.myname.com のようになります。

次に、事前にプロトコル構成と IP 範囲と認証構成を再確認する必要があります。

私の場合、外部の送受信メールをブロックするように構成し、内部メールの認証をスキップしました。つまり、基本的には、事前にできること、つまり IP 範囲の構成です。次に、開発では、すべての電子メールが *@local.myname.com であることを確認する必要があり、それが機能するはずです。

また、hmail のヘルプ ドキュメントはエラー コードとうまく連携するため、hmail にログインして問題の解決に役立つ詳細なエラーを取得できます。

hMail は、実際の電子メールに適しています。ただし、開発には smtp4dev を使用することをお勧めします。

于 2014-12-29T15:11:21.547 に答える