Java邮件认证失败异常

问题描述 投票:0回答:1

我在使用 JavaMail 时遇到问题

javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials ru12-20020a17090b2bcc00b001cb6527ca39sm4977241pjb.0 - gsmtp

我的 application.properties 上的配置

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username={my email}
spring.mail.password={my password}
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

我在Settings account.google.com上读过一些解决方案,例如“打开不太安全的应用程序”,但那是旧文章,现在谷歌不再允许使用此功能。

我不知道如何解决?

at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:947) ~[jakarta.mail-1.6.7.jar:1.6.7]
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:858) ~[jakarta.mail-1.6.7.jar:1.6.7]
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:762) ~[jakarta.mail-1.6.7.jar:1.6.7]
at javax.mail.Service.connect(Service.java:342) ~[jakarta.mail-1.6.7.jar:1.6.7]
at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:518) ~[spring-context-support-5.3.15.jar:5.3.15]
at org.springframework.mail.javamail.JavaMailSenderImpl.testConnection(JavaMailSenderImpl.java:398) ~[spring-context-support-5.3.15.jar:5.3.15]
at org.springframework.boot.actuate.mail.MailHealthIndicator.doHealthCheck(MailHealthIndicator.java:42) ~[spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:82) ~[spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthIndicator.getHealth(HealthIndicator.java:37) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpoint.getHealth(HealthEndpoint.java:77) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpoint.getHealth(HealthEndpoint.java:40) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpointSupport.getContribution(HealthEndpointSupport.java:130) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpointSupport.getAggregateContribution(HealthEndpointSupport.java:141) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpointSupport.getContribution(HealthEndpointSupport.java:126) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpointSupport.getHealth(HealthEndpointSupport.java:95) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpointSupport.getHealth(HealthEndpointSupport.java:66) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpoint.health(HealthEndpoint.java:71) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.health.HealthEndpoint.health(HealthEndpoint.java:61) [spring-boot-actuator-2.6.3.jar:2.6.3]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_311]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_311]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_311]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_311]
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282) [spring-core-5.3.15.jar:5.3.15]
at org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:74) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:60) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:121) [spring-boot-actuator-2.6.3.jar:2.6.3]
at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:96) [spring-boot-actuator-2.6.3.jar:2.6.3]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [na:1.8.0_311]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [na:1.8.0_311]
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) [na:1.8.0_311]
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) [na:1.8.0_311]
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) [na:1.8.0_311]
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) [na:1.8.0_311]
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) [na:1.8.0_311]
at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_311]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_311]
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357) [na:1.8.0_311]
at sun.rmi.transport.Transport$1.run(Transport.java:200) [na:1.8.0_311]
at sun.rmi.transport.Transport$1.run(Transport.java:197) [na:1.8.0_311]
at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_311]
at sun.rmi.transport.Transport.serviceCall(Transport.java:196) [na:1.8.0_311]
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) [na:1.8.0_311]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) [na:1.8.0_311]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) [na:1.8.0_311]
at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_311]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) [na:1.8.0_311]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_311]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_311]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_311]
java spring-boot smtp jakarta-mail
1个回答
0
投票

我找到了这个解决方案: 第 1 步:在 Google 帐户上创建应用程序密码

第2步:将生成的密码添加到application.properties

  • spring.mail.password={生成的密码}

第 3 步:再试一次

© www.soinside.com 2019 - 2024. All rights reserved.