2

我正在编写一个 spring mvc 应用程序并使用在我的 applicationContext.xml 中配置的 JavaMail。

我已经设置了 postfix 并让它在 mac os 上运行。

我可以使用邮件命令行程序通过后缀发送电子邮件。

但是,当我尝试通过 JavaMail 发送电子邮件时,出现读取超时异常。

尝试通过 telnet 发送电子邮件,如此处所述http://www.rdpslides.com/webresources/FAQ00035_Send_Email_via_Telnet.htm但 smtp 根本没有响应。您可以输入命令,但最终什么都没有发生。

我不知道使用邮件命令行客户端有什么特别之处,但它工作正常。

即这有效(马特是我的本地用户名):

$ date|mail -s testing matt

应用程序上下文.xml:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">

    <property name="host" value="localhost"/>
    <property name="port" value="25"/>
    <property name="protocol" value="smtp"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.debug">true</prop>
            <prop key="mail.debug.auth">true</prop>
            <prop key="mail.smtp.timeout">2000</prop>
            <prop key="mail.smtp.connectiontimeout">2000</prop>
        </props>
    </property>
</bean>

谢谢。

4

1 回答 1

0

用“mail -v”试试你的命令行测试,看看它是否提供了任何线索。邮件命令可能是 fork/execing sendmail 所以它没有通过 locahost:25 连接。检查您的后缀配置;听起来您正在使用 telnet 连接,但读取超时,而不是连接超时,所以我不知道后缀可能在做什么。

于 2012-05-07T00:04:55.823 回答