java-为我们的SMTP服务器配置Spring的MailSender时出现问题(但GMail有效)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-为我们的SMTP服务器配置Spring的MailSender时出现问题(但GMail有效),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2795字,纯文字阅读大概需要4分钟。
内容图文
我在使用Spring的MailSender接口和具体实现JavaMailSenderImpl通过SMTP发送邮件时遇到一些问题.我能够通过GMail发送邮件,但不能通过我们公司的SMTP服务器(Postfix)发送邮件.
正确配置
要查看我的配置正确,我使用了出色的邮件发送器ssmtp.它是一个简单的实用程序(可以模拟Sendmail),仅用于通过SMTP发送邮件.
以下是我用来发送邮件的两个命令.第一个用于GMail,第二个用于我们公司的SMTP服务器.两封邮件均按预期到达,因此后面的配置文件正确.
$ssmtp -C gmail-smtp.conf john.doe@gmail.com < gmail-message.txt
$ssmtp -C other-smtp.conf john.doe@thecompany.net < other-message.txt
ssmtp配置文件和消息文件的内容在下面列出.可以在以下位置查看配置文件的结构:http://linux.die.net/man/5/ssmtp.conf:
gmail-message.txt:
To: john.doe@gmail.com
From: john.doe@gmail.com
Subject: Sent using the SMTP-server of GMail
Some content.
gmail-smtp.conf:
mailhub=smtp.gmail.com:587
UseSTARTTLS=yes
AuthUser=john.doe@gmail.com
AuthPass=john_password
other-message.txt:
To: john.doe@thecompany.net
From: john.doe@thecompany.net
Subject: Sent using the SMTP-server of TheCompany
Some content.
other-smtp.conf:
# No username or password = no authentication
hostname=thecompany.net
mailhub=mail.thecompany.net:25
适用于GMail的MailSender配置
我使用以下Spring MailSender配置成功通过GMail发送邮件:
...
<bean id="mailSender" class ="org.springframework.mail.javamail.JavaMailSenderImpl" >
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="john.doe@gmail.com" />
<property name="password" value="john_password" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
...
问题(通过公司SMTP服务器发送)
使用此MailSender配置:
...
<bean id="mailSender" class ="org.springframework.mail.javamail.JavaMailSenderImpl" >
<property name="host" value="mail.thecompany.net" />
<property name="port" value="25" />
</bean>
...
我得到这个例外:
org.springframework.mail.MailSendException; nested exceptions (1) are:
Failed message 1: javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 504 5.5.2 <rat>: Helo command rejected: need fully-qualified hostname
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:422)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:308)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:297)
... (The rest are methods I've created, which are irrelevant)
我也得到504 5.5.2:Helo命令被拒绝:如果我使用ssmtp从other-smtp.conf中删除了hostname = thecompany.net,则需要完全限定的主机名.我想我必须以某种方式提供主机名.我的计算机名称是rat,但似乎需要thecompany.net.
任何和所有帮助表示赞赏!
解决方法:
尝试添加具有正确值(thecompany.net)的属性“ mail.smtp.localhost”.
内容总结
以上是互联网集市为您收集整理的java-为我们的SMTP服务器配置Spring的MailSender时出现问题(但GMail有效)全部内容,希望文章能够帮你解决java-为我们的SMTP服务器配置Spring的MailSender时出现问题(但GMail有效)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。