2011-02-08 14 views
1

JavaMailを使用してメールを送信すると、次のエラーが発生します。今までのところいつか働いていて、何の変更も加えられていないので、珍しいです。JavaMailで無効なHELO名

550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1) 
com.sun.mail.smtp.SMTPSendFailedException: 550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1) 

    at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388) 
    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959) 

私は、JavaMailのプロパティにその意味を翻訳する方法をRFC docを見てみたがunsreています。

なぜ、どのような解決策がありがとうございます。

+0

コマンドプロンプトからmailコマンドを試しましたか? SMTPセキュリティの変更 – JSS

+0

どのようなHELOの名前を使用しましたか? –

答えて

4

From JavaMail API FAQ

Q:メッセージを送信しようとすると:私は "501 HELOドメインアドレスを必要としてMessagingException" を取得します。 A:SMTPプロバイダは、SMTP HELOコマンドでInetAddress.getLocalHost()。getHostName()の結果を使用します。その呼び出しがデータを返すことに失敗した場合、HELOコマンドで名前は送信されません。 JDKとネームサーバーの設定を調べて、その呼び出しが正しいデータを返すことを確認してください。また、「mail.smtp.localhost」プロパティーに、HELOコマンドに使用する名前を設定することもできます。

これはまったく同じエラーメッセージではありませんが、あなたのケースに違いはありません。

メールサーバーが受け付けるものに設定してください。 docs、config、またはあなたのローカルpostmasterを調べて、それが何であるか教えてください。おそらくあなたは拒否された "localhost"を送信しているだけです。可能であれば、あなたのIPアドレスに実際に解決するホスト名に設定してみてください。

+1

'mail.smtp.localhost'(および/または' mail.smtps.localhost')プロパティを使用して、JavaMailが送信するHELO名を制御する方法について、以下に削除された回答があります。私のためにうまくいったので、私は削除された答えを見ることができない人のためにここでそれを繰り返しています。 – aroth

+0

'mail.smtp.localhost'を使っても私のために働きました。 – Dandelion

関連する問題