簡體   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