7

古い Ubuntu マシンにインストールされ、javax.mail を使用してメールを送信する Java プログラムがあります。しかし、そのマシンがダウンしたため、新しい CentOS マシンで同じ Java アプリを実行しています。

ただし、mail.smtp.host = 127.0.0.1 を使用してメールを送信しようとすると、「MessagingException: 501 Syntax: HELO hostname」というエラーが表示されます。

私の推測では、この CentOS ではメールサーバーはまだ有効化されていません。

javax.mail が使用できるメールサーバーを構成するにはどうすればよいですか?

ありがとうございました

4

5 に答える 5

6

マシンのホスト名を/etc/hostsファイルにマップする必要があります。

例: コンソールの表示:linux# およびcat /etc/hostname表示

linux.mydomain.com

次に、として実行されているホスト ファイルを編集しますrootvi /etc/hosts

127.0.0.1  localhost linux linux.mydomain.com

詳細な情報はこちらにあります: https://confluence.atlassian.com/display/CONFKB/Sending+Email+Fails+Due+to+501+Syntax%3A+HELO+Hostname+Error

于 2015-03-23T21:04:12.957 に答える
1

問題は、新しいマシンのネーム サービスが適切に構成されておらず、Java がマシンのホスト名を見つけられないことです。SMTP HELO コマンドには、ホスト名を含める必要があります。見つからないため、サーバーが不平を言っています。JavaMail セッションのデバッグを有効にすると、これが送信される実際のコマンドを確認できます。このホスト構成の問題を回避するには、JavaMail プロパティの mail.smtp.localhost を HELO コマンドで使用するホスト名に設定します。

于 2012-12-12T18:56:51.630 に答える
0

実行する必要がありますsendmail。詳細については、こちらを参照してください。構成sendmailは雑用になる可能性があり、sendmail.cf可能であれば古いマシンから構成を取得することをお勧めします。

ホストごとに 1 つを実行するのではなく、企業内のすべてのマシンがこれを使用するように、中央の MTA (メール転送エージェント) を設定する必要があると (また) 思う。すなわち、使用していませんlocalhost

于 2012-12-12T13:06:55.573 に答える
-1

私の場合、etc/hostname は susetest でした (linux.company.com ではありません)。

etc/hosts を 127.0.0.1 localhost から 127.0.0.1 localhost susetest に変更しました (ファイルを変更するときは、localhost の後で必ずタブを使用してください)。

変更を保存し、postfix stop、postfix start を実行して SMTP サーバーを再起動してください。

うまくいくはずです。

(プロパティに properties.setProperty("mail.smtp.localhost", "ourcompany.com"); を追加しても問題は解決しましたが、根本的な原因を見つけることができれば、数日かかる場合でも回避策は修正されません。私の場合)

于 2016-06-21T17:30:54.450 に答える