问题:
·测试Spring发送电子邮件功能,使用Gmail邮箱作为发送方;
·运行结果,服务器返回如下信息:com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. 33sm2950402wad.5
·当前配置:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.gmail.com" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> </props> </property> <property name="username" value="****@gmail.com" /> <property name="password" value="****" /> </bean>
原因及分析:
1、检查Gmail是否支持SMTP发送邮件;
2、检查所用的账号是否开通了该功能;
3、发现Gmail网站有如下文字提示:
Gmail › 帮助文章 › 疑难解答 › IMAP › 配置其他电子邮件客户端
您可以使用以下信息为许多邮件客户端配置 IMAP。如果您遇到问题,建议您与邮件客户端的客户支持部门联系,以获得进一步的说明 - 我们无法对未在此处列出的邮件客户端的配置问题提供帮助。
接收邮件 (IMAP) 服务器 - 需要 SSL: | imap.gmail.com 使用 SSL:是 端口: 993 |
外发邮件 (SMTP) 服务器 - 需要 TLS: | smtp.gmail.com(使用身份验证) 使用身份验证:是 使用 STARTTLS:是(某些客户端称其为 SSL) 端口:465 或 587 |
帐户名称: | 您的 Gmail 用户名(包括 @gmail.com) |
电子邮件地址: | 您的完整 Gmail 电子邮件地址(用户名@gmail.com) |
密码: | 您的 Gmail 密码 |
请注意,如果您的客户端不支持 SMTP 身份验证,您将无法通过客户端用 Gmail 地址发送电子邮件。
解决:
修改配置文件为
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.gmail.com" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> <prop key="mail.smtp.socketFactory.fallback">false</prop> <prop key="mail.smtp.port">465</prop> <prop key="mail.smtp.socketFactory.port">465</prop> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> </props> </property> <property name="username" value="****@gmail.com" /> <property name="password" value="****" /> </bean>
您可以使用以下信息为许多邮件客户端配置 IMAP。如果您遇到问题,建议您与邮件客户端的客户支持部门联系,以获得进一步的说明 - 我们无法对未在此处列出的邮件客户端的配置问题提供帮助。
接收邮件 (IMAP) 服务器 - 需要 SSL: | imap.gmail.com 使用 SSL:是 端口: 993 |
外发邮件 (SMTP) 服务器 - 需要 TLS: | smtp.gmail.com(使用身份验证) 使用身份验证:是 使用 STARTTLS:是(某些客户端称其为 SSL) 端口:465 或 587 |
帐户名称: | 您的 Gmail 用户名(包括 @gmail.com) |
电子邮件地址: | 您的完整 Gmail 电子邮件地址(用户名@gmail.com) |
密码: | 您的 Gmail 密码 |
请注意,如果您的客户端不支持 SMTP 身份验证,您将无法通过客户端用 Gmail 地址发送电子邮件。