繁体   English   中英

带有javax.mail和CentOS的邮件服务器

[英]Mail Server with javax.mail and CentOS

我有一个Java程序安装在旧的Ubuntu机器上并使用javax.mail发送邮件。 但是,该机器崩溃了,我现在在新的CentOS机器上运行相同的Java应用程序。

但是,尝试使用mail.smtp.host = 127.0.0.1发送电子邮件时收到错误消息“MessagingException:501语法:HELO hostname”。

我的猜测是这个CentOS中尚未激活邮件服务器。

我如何配置javax.mail可以使用的邮件服务器?

谢谢

您的计算机主机名必须映射到/etc/hosts文件中。

示例:控制台显示: linux#cat /etc/hostname显示

linux.mydomain.com

然后编辑以root身份运行的hosts文件。 vi /etc/hosts

127.0.0.1  localhost linux linux.mydomain.com

详细信息可以在这里找到: https//confluence.atlassian.com/display/CONFKB/Sending+Email+Fails+Due+to+501+Syntax%3A+HELO+Hostname+Error

在使用Spring MailSender发送电子邮件时,我遇到了同样的问题“MessagingException:501语法:HELO主机名”。 对我有用的是在javaMailProperties下添加额外的属性“mail.smtp.localhost”,如下所示:

    <!-- JAVA MAIL -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="" />
    <property name="port" value="25" />
    <property name="protocol" value="smtp" />
    <property name="username" value="" />
    <property name="password" value="" />
    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtps.auth">true</prop>
            <prop key="mail.smtps.starttls.enable">true</prop>
            <prop key="mail.smtps.debug">true</prop>
            <prop key="mail.smtp.localhost">localhost</prop>
        </props>
    </property>
</bean>

问题是新计算机上的命名服务未正确配置,Java无法找到计算机的主机名。 SMTP HELO命令需要包含主机名。 服务器正在抱怨因为它丢失了。 打开JavaMail Session调试,您可以看到发送它的实际命令。 通过将JavaMail属性mail.smtp.localhost设置为要在HELO命令中使用的主机名,可以解决此主机配置问题。

你需要运行sendmail 有关详细信息,请参见此处 配置sendmail可能是一件苦差事,如果可能的话,您可能希望从旧机器上获取配置sendmail.cf

我怀疑(也)你应该设置一些中央MTA(邮件传输代理),这样你企业中的所有机器都使用它,而不是每台主机运行一台。 使用localhost

在我的情况下etc / hostname是susetest(而不是linux.company.com)

修改了etc / hosts从127.0.0.1 localhost到127.0.0.1 localhost susetest(在localhost之后确保使用tab,修改文件时)

确保保存更改,postfix stop,postfix start重启SMTP服务器。

应该工作正常。

(添加properties.setProperty(“mail.smtp.localhost”,“ourcompany.com”);对于属性也解决了问题,但解决方法不应该是修复,当你找到根本原因,即使它需要几天在我的情况下)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM