JavaMail中的HELO名称无效

时间:2011-02-08 14:40:40

标签: java email javamail

使用JavaMail发送邮件时出现以下错误。它不同寻常,因为它一直工作到现在为止,并没有做出任何改变。

 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,但不知道如何将其含义翻译成JavaMail属性。

任何想法以及任何解决方案都受到赞赏。

2 个答案:

答案 0 :(得分:4)

From JavaMail API FAQ

  

问:尝试发送邮件时,我收到“MessagingException:501 HELO需要域名地址”。   答:SMTP提供程序在SMTP HELO命令中使用InetAddress.getLocalHost()。getHostName()的结果。如果该调用未能返回任何数据,则HELO命令中不会发送任何名称。检查JDK和名称服务器配置以确保该调用返回正确的数据。您还可以将“mail.smtp.localhost”属性设置为要用于HELO命令的名称。

这不是完全相同的错误消息,但这不会对您的情况产生影响。

因此,请确保将其设置为您的邮件服务器接受的内容。检查文档,配置或您当地的邮局主管,因为我无法告诉您这是什么。可能你只是发送被拒绝的“localhost”。尝试将其设置为实际解析为您的IP地址的主机名(如果可能)。

答案 1 :(得分:0)

请尝试启用传输级安全

spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true