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测试了这个配置,但它确实有效.
请告诉我我做错了什么.谢谢
看起来您的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)