1

我使用 springmail 从我的 smtp 服务器发送电子邮件,配置如下:

<bean id="springEmailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="host" value="mail.myserver.com"/>
    <property name="port" value="25"/>

    <property name="username" value="username"/>
    <property name="password" value="password"/>
    <property name="javaMailProperties">
        <value> 
            mail.debug=true 
            mail.smtp.auth=true
            mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
            mail.smtp.socketFactory.fallback=false 
        </value>
    </property></bean>

但它抛出“javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接?” 我已经在端口 465 上使用 gmail 测试了这个配置并且它有效。

请告诉我我做错了什么。谢谢

4

3 回答 3

6

看起来您的 SMTP 服务器需要 SSL(安全)连接。请参阅下面的示例,了解如何为 Gmail 配置它,这也需要 SSL。注意 smtps 协议和额外的属性。

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com" />
    <property name="port" value="465" />
    <property name="protocol" value="smtps" />
    <property name="username" value="user"/>
    <property name="password" value="password"/>
    <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>
        </props>
    </property>
</bean>
于 2009-12-24T03:50:19.453 回答
1

也许您不应该使用 SSL。邮件服务器是否配置为接受加密邮件?看起来它想要纯文本。

我会回到参考文档,看看是否可行。

于 2009-12-24T03:39:08.190 回答
0

我会尝试删除所有 javaMailProperties,以及用户名和密码属性。

正如 duffymo 指出的那样,您可能不应该使用 SSL(端口 25 是非 SSL SMTP 端口)。大多数 SMTP 服务器也不需要身份验证(除非您已明确配置它)。

于 2009-12-24T04:43:16.033 回答