当前位置: 首页 > 知识库问答 >
问题:

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

魏旭
2023-03-14

我正在尝试使用 smtp.gmail.com(端口 587)通过 Spring 应用程序发送电子邮件。问题是我间歇性地面临以下错误。

org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException

错误并非总是出现,并且邮件发送正常。但有时会出现错误,邮件无法发送。我将以下内容设置为真实的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个答案

王长卿
2023-03-14

我认为这要么是Gmail的不可靠性,要么是它故意不降低你发送邮件的速度。您可以尝试打开JavaMail会话调试,看看它是否提供了关于失败的附加信息。AuthenticationFailedException通常包含关于失败的附加信息,但是Spring可能隐藏了这些信息。

 类似资料:
  • 我在Azure上使用botframework。当开始与机器人交互时,我会得到断断续续的身份验证错误。如果你只是忽略错误,机器人继续正常工作,你不会一直得到错误。 这是最内层的错误:操作返回了无效的状态代码“unauthorized”。错误发生在MessagesController+D__3.MoveNext方法中。

  • SMTP服务器 ;                  [myserverName] 默认用户电子邮件后缀 ; [myemailId] 使用SMTP身份验证 ; true 用户名称 ;                     [myemailId] 密码 ;                       [mypassword] 使用SSL ;                       假 SMTP

  • 我已经为spring boot应用程序和spring security设置了CRO,如下所示。带有Spring security和jwt令牌的Spring Boot应用程序。 我与其他域一起使用api,所以我在所有控制器上使用交叉源。 所有不需要auth-token(JWT)的api调用在以下配置中都可以正常工作。但是使用所需jwt令牌的api调用失败,错误如下。 我正在尝试添加过滤器,但它没有按

  • 我正在尝试使用javamail和smtp发送邮件。当我从我的gmail地址发送邮件时,它对我有效。我改变了从我的交换账户发送的相同代码,但它不起作用。我正在获得身份验证失败异常。 密码 我尝试使用默认端口,即25,但那一次出现了错误,显示了错误的端口号。所以我假设端口号是对的。我尝试了ping主机和它的工作。我尝试的用户名。但总是有同样的例外。请帮我修一下。 提前谢谢 我启动了调试,得到了以下日志

  • 我需要将邮件从我的gmail帐户发送到另一个帐户。我使用了以下代码。 但我得到的错误如下。。。javax。邮政MessaginException:无法连接到SMTP主机:SMTP。gmail。com,端口:25 我该怎么解决这个问题。你能帮我吗?