2011-02-08 42 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) 

我看看的RFC doc但unsre如何其含義轉換爲JavaMail的性能。

任何想法爲什麼和任何解決方案表示讚賞。

+0

您是否嘗試了命令提示符下的郵件命令? SMTP安全性的任何更改? – JSS 2011-02-08 14:57:41

+0

你使用了什麼HELO名字? – 2011-02-08 16:34:26

回答

4

From JavaMail API FAQ

問:我得到 「MessagingException:501 HELO需要域地址」 試圖發送郵件時。 答:SMTP提供程序在SMTP HELO命令中使用InetAddress.getLocalHost()。getHostName()的結果。如果該呼叫未能返回任何數據,則不會在HELO命令中發送名稱。檢查您的JDK和名稱服務器配置,確保該調用返回正確的數據。您也可以將「mail.smtp.localhost」屬性設置爲您要用於HELO命令的名稱。

這不是完全相同的錯誤信息,但這不應該爲你的情況有所作爲。

所以只要確保將它設置爲您的郵件服務器接受的東西。檢查文檔,配置或您的本地郵局主管,因爲我不能告訴你這是什麼。可能你只是發送被拒絕的「本地主機」。嘗試將其設置爲實際解析爲IP地址的主機名(如果可能)。