javax.mail.MessagingException:501.5.0 HELO requires doman address

1057 ワード

http://zouhuajian01.blog.163.com/blog/static/117698772011813481028/
今日はjamesメールサーバーを配置しました。後はwindowsで正常ですが、linuxに行くと問題があります。ログを見ると、501が間違っています。
javax.mail.MessagingException:501.5.0 HELO requires doman address  。
調べたら、元は
システムはmail.jarコンポーネントを利用してメールを送ります。
Javamailは、ローカルhostnameを抽出する際に、当該hostnameをdigし、このipでメールを送信します。
hostname対応のipアドレスのため、linuxが解析できません。(windowsであればこの問題はありません。windowsはnetbiosプロトコルを利用してこのホストのipアドレスを取得します。)。本機hostnameのipに行くと、javamailはip送信を呼び出すことができなくなります。  
解決策:
javamailを利用した全てのホストがHostsファイルを書き換えたり、dnsサーバーにホスト名を設定したipがあればこの問題を解決できます。
自分がcodeの中でセットしてlocal hostを書く場合:
MimeMessage message=null;
propsp.put(「mail.smatp.host」、「mail.pcco.com」)
  
   props.put("mail.smtp.localhost", "localHostAdress");
props.put(「mail.smatp.port」、「25」)
props.put(「mail.smatp.auth」、「false」)
メッセージ=  new MimeMessage;
上に背景色のコードを入れるとこの問題を解決できます。
PS:
このエラーのjavamailはheloコマンドを送る時にhostnameが見つからなくて、直接heloコマンドを送ります。
だからpostfixは501 Syntaxに戻りました。