发送邮件报错 501 Command "HELO" requires an argument

本文介绍了一种在Java邮件发送过程中遇到的HELO命令缺少参数的异常情况,并详细记录了解决该问题的具体步骤。通过调整系统配置文件中的主机名设置,确保SMTP连接中的HELO指令能够正确地指定发件人的主机名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.Throwable: javax.mail.MessagingException: 501 Command "HELO" requires an argument


        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)
        at com.dawning.gridview.app.alarmmanagement.service.alarmhandle.util.Mail.sendMail(Mail.java:67)
        at com.dawning.gridview.app.alarmmanagement.service.alarmhandle.export.impl.AlarmHandleMailImpl.alarmHandle(AlarmHandleMailImpl.java:118)
        at com.dawning.gridview.app.alarmmanagement.application.alarmhandle.schedulertask.HandleTask.execute(HandleTask.java:81)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)

Caused by: javax.mail.MessagingException: 501 Command "HELO" requires an argument

程序在跟SMTP SERVER交互过程中需要发送HELO指令后面需要跟一个发起者的主机名,告诉SMTP服务器这个消息来源是哪里。

MTP常見的指令(SMTP command)包括下面幾種:

HELO:開始與 SMTP Server 送出的第一個指令,通常為 MUA 或 MTA 與伺服器打招呼用,通常使用 HELO 表示客戶端使用 SMTP 協議,而指令後跟隨的網域名稱,常被利用在反垃圾信的用途之上,所以該網域名稱必須能解析為 IP位址並且與目前連線的客戶端 IP位址相同.

首先查看文件/etc/sysconfig/network(本地使用,下面主机名称tanchao是系统本身用到主机名,只在本机起作用。

NETWORKING=yes
HOSTNAME=tanchao

然后在命令行下输入命令 hostname -i,如下错误:

hostname: Host name lookup failure

于是再查看文件/etc/hosts  (网络中用的

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

发现主机名127.0.0.1 并没有tanchao,参考文章http://linux.ccidnet.com/art/302/20080326/1401805_1.html,于是修改为

127.0.0.1  tanchao
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

就成功了。具体原因应该是根据当前主机名tanchao 去/etc/hosts文件下查找映射关系,无法将tanchao映射到本机IP地址


参考网址:

http://blog.youkuaiyun.com/wyzxg/article/details/1840110

http://blog.youkuaiyun.com/hbcui1984/article/details/5655657

http://linux.ccidnet.com/art/302/20080326/1401805_1.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值