使用smtp.gmail.com使用Spring发送邮件时出现间歇性身份验证错误

时间:2015-05-12 12:19:48

标签: spring javamail

我正在尝试使用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=******

1 个答案:

答案 0 :(得分:0)

我认为它在Gmail中不可靠,或者故意无法降低您发送邮件的速度。您可以尝试启用JavaMail Session debugging以查看它是否提供有关失败的其他信息。 AuthenticationFailedException通常包含有关失败的其他信息,但Spring可能正在隐藏它。

相关问题