spring - config spring email

rob*_*mag 1 java email spring jakarta-mail

我使用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>
Run Code Online (Sandbox Code Playgroud)

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

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

max*_*dim 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>
Run Code Online (Sandbox Code Playgroud)