linux机器下发送邮件的异常

linux机器上发送邮件的错误

在发送邮件时报下面的错误

 

javax.mail.MessagingException: 500 Error: bad syntax

        at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363)
        at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375)
        at javax.mail.Service.connect(Service.java:275)
        at javax.mail.Service.connect(Service.java:156)

 

 

原因:

 

    首先取得当前主机的主机名

   >hostname
   xxxx (xxxx为hostname例如 myhostname)
   可以得到 linux的主机名
   >hostname -i
   却得不到ip

  当调用到下面的代码时会报错

 

InetAddress localHost = InetAddress.getLocalHost();
localHostName = localHost.getHostName();
 

解决方法:

在/etc/hosts文件中加入  

127.0.0.1  xxxx