我正在尝试使用smtp.gmail.com(端口587)通过Spring应用程序发送电子邮件。问题是我间歇性地面临以下错误。
org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException
错误不会一直出现,邮件也会正确发送。但有时会出现错误,并且不会发送邮件。我已将以下内容设置为true https://www.google.com/settings/security/lesssecureapps
以下是配置
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.host}" />
<property name="port" value="${mail.port}" />
<property name="username" value="${mail.username}" />
<property name="password" value="${mail.password}" />
<property name="javaMailProperties">
<props>
<!-- Use SMTP-AUTH to authenticate to SMTP server -->
<prop key="mail.smtp.auth">true</prop>
<!-- Use TLS to encrypt communication with SMTP server -->
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
<bean id="mailService" class="com.server.service.impl.MailServiceImpl">
<property name="mailSender" ref="mailSender" />
<property name="customMailMessage" ref="customMailMessage" />
</bean>
属性在下面给出
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.port=587
mail.username=******
mail.password=******
答案 0 :(得分:0)
我认为它在Gmail中不可靠,或者故意无法降低您发送邮件的速度。您可以尝试启用JavaMail Session debugging以查看它是否提供有关失败的其他信息。 AuthenticationFailedException通常包含有关失败的其他信息,但Spring可能正在隐藏它。