问题1
org
.springframework
.mail
.MailAuthenticationException
:
Authentication failed
; nested exception is javax
.mail
.AuthenticationFailedException
:
535 Error
: authentication failed
解决1
原因1:配置文件中,授权码错误。
spring.mail.password=XXX
原因2:配置文件中账户与代码之中的账户不同一。
问题2
org
.springframework
.mail
.MailAuthenticationException
: Authentication failed
; nested exception is javax
.mail
.AuthenticationFailedException
: 550 User has no permission
at org
.springframework
.mail
.javamail
.JavaMailSenderImpl
.doSend(JavaMailSenderImpl
.java
:440)
at org
.springframework
.mail
.javamail
.JavaMailSenderImpl
.send(JavaMailSenderImpl
.java
:323)
at org
.springframework
.mail
.javamail
.JavaMailSenderImpl
.send(JavaMailSenderImpl
.java
:312)
at com
.wei
.Springboot09TestApplicationTests
.contextLoads(Springboot09TestApplicationTests
.java
:23)
at sun
.reflect
.NativeMethodAccessorImpl
.invoke0(Native Method
)
at sun
.reflect
.NativeMethodAccessorImpl
.invoke(NativeMethodAccessorImpl
.java
:62)
at sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl
.java
:43)
at java
.lang
.reflect
.Method
.invoke(Method
.java
:498)
at org
.junit
.platform
.commons
.util
.ReflectionUtils
.invokeMethod(ReflectionUtils
.java
:686)
at org
.junit
.jupiter
.engine
.execution
.MethodInvocation
.proceed(MethodInvocation
.java
:60)
at org
.junit
.jupiter
.engine
.execution
.InvocationInterceptorChain$ValidatingInvocation
.proceed(InvocationInterceptorChain
.java
:131)
at org
.junit
.jupiter
.engine
.extension
.TimeoutExtension
.intercept(TimeoutExtension
.java
:149)
at org
.junit
.jupiter
.engine
.extension
.TimeoutExtension
.interceptTestableMethod(TimeoutExtension
.java
:140)
at org
.junit
.jupiter
.engine
.extension
.TimeoutExtension
.interceptTestMethod(TimeoutExtension
.java
:84)
at org
.junit
.jupiter
.engine
.execution
.ExecutableInvoker$ReflectiveInterceptorCall
.lambda$ofVoidMethod$
0(ExecutableInvoker
.java
:115)
at org
.junit
.jupiter
.engine
.execution
.ExecutableInvoker
.lambda$invoke$
0(ExecutableInvoker
.java
:105)
at org
.junit
.jupiter
.engine
.execution
.InvocationInterceptorChain$InterceptedInvocation
.proceed(InvocationInterceptorChain
.java
:106)
at org
.junit
.jupiter
.engine
.execution
.InvocationInterceptorChain
.proceed(InvocationInterceptorChain
.java
:64)
at org
.junit
.jupiter
.engine
.execution
.InvocationInterceptorChain
.chainAndInvoke(InvocationInterceptorChain
.java
:45)
at org
.junit
.jupiter
.engine
.execution
.InvocationInterceptorChain
.invoke(InvocationInterceptorChain
.java
:37)
at org
.junit
.jupiter
.engine
.execution
.ExecutableInvoker
.invoke(ExecutableInvoker
.java
:104)
at org
.junit
.jupiter
.engine
.execution
.ExecutableInvoker
.invoke(ExecutableInvoker
.java
:98)
at org
.junit
.jupiter
.engine
.descriptor
.TestMethodTestDescriptor
.lambda$invokeTestMethod$
6(TestMethodTestDescriptor
.java
:212)
at org
.junit
.platform
.engine
.support
.hierarchical
.ThrowableCollector
.execute(ThrowableCollector
.java
:73)
at org
.junit
.jupiter
.engine
.descriptor
.TestMethodTestDescriptor
.invokeTestMethod(TestMethodTestDescriptor
.java
:208)
at org
.junit
.jupiter
.engine
.descriptor
.TestMethodTestDescriptor
.execute(TestMethodTestDescriptor
.java
:137)
at org
.junit
.jupiter
.engine
.descriptor
.TestMethodTestDescriptor
.execute(TestMethodTestDescriptor
.java
:71)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
5(NodeTestTask
.java
:135)
at org
.junit
.platform
.engine
.support
.hierarchical
.ThrowableCollector
.execute(ThrowableCollector
.java
:73)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
7(NodeTestTask
.java
:125)
at org
.junit
.platform
.engine
.support
.hierarchical
.Node
.around(Node
.java
:135)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
8(NodeTestTask
.java
:123)
at org
.junit
.platform
.engine
.support
.hierarchical
.ThrowableCollector
.execute(ThrowableCollector
.java
:73)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.executeRecursively(NodeTestTask
.java
:122)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.execute(NodeTestTask
.java
:80)
at java
.util
.ArrayList
.forEach(ArrayList
.java
:1257)
at org
.junit
.platform
.engine
.support
.hierarchical
.SameThreadHierarchicalTestExecutorService
.invokeAll(SameThreadHierarchicalTestExecutorService
.java
:38)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
5(NodeTestTask
.java
:139)
at org
.junit
.platform
.engine
.support
.hierarchical
.ThrowableCollector
.execute(ThrowableCollector
.java
:73)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
7(NodeTestTask
.java
:125)
at org
.junit
.platform
.engine
.support
.hierarchical
.Node
.around(Node
.java
:135)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
8(NodeTestTask
.java
:123)
at org
.junit
.platform
.engine
.support
.hierarchical
.ThrowableCollector
.execute(ThrowableCollector
.java
:73)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.executeRecursively(NodeTestTask
.java
:122)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.execute(NodeTestTask
.java
:80)
at java
.util
.ArrayList
.forEach(ArrayList
.java
:1257)
at org
.junit
.platform
.engine
.support
.hierarchical
.SameThreadHierarchicalTestExecutorService
.invokeAll(SameThreadHierarchicalTestExecutorService
.java
:38)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
5(NodeTestTask
.java
:139)
at org
.junit
.platform
.engine
.support
.hierarchical
.ThrowableCollector
.execute(ThrowableCollector
.java
:73)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
7(NodeTestTask
.java
:125)
at org
.junit
.platform
.engine
.support
.hierarchical
.Node
.around(Node
.java
:135)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.lambda$executeRecursively$
8(NodeTestTask
.java
:123)
at org
.junit
.platform
.engine
.support
.hierarchical
.ThrowableCollector
.execute(ThrowableCollector
.java
:73)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.executeRecursively(NodeTestTask
.java
:122)
at org
.junit
.platform
.engine
.support
.hierarchical
.NodeTestTask
.execute(NodeTestTask
.java
:80)
at org
.junit
.platform
.engine
.support
.hierarchical
.SameThreadHierarchicalTestExecutorService
.submit(SameThreadHierarchicalTestExecutorService
.java
:32)
at org
.junit
.platform
.engine
.support
.hierarchical
.HierarchicalTestExecutor
.execute(HierarchicalTestExecutor
.java
:57)
at org
.junit
.platform
.engine
.support
.hierarchical
.HierarchicalTestEngine
.execute(HierarchicalTestEngine
.java
:51)
at org
.junit
.platform
.launcher
.core
.DefaultLauncher
.execute(DefaultLauncher
.java
:248)
at org
.junit
.platform
.launcher
.core
.DefaultLauncher
.lambda$execute$
5(DefaultLauncher
.java
:211)
at org
.junit
.platform
.launcher
.core
.DefaultLauncher
.withInterceptedStreams(DefaultLauncher
.java
:226)
at org
.junit
.platform
.launcher
.core
.DefaultLauncher
.execute(DefaultLauncher
.java
:199)
at org
.junit
.platform
.launcher
.core
.DefaultLauncher
.execute(DefaultLauncher
.java
:132)
at com
.intellij
.junit5
.JUnit5IdeaTestRunner
.startRunnerWithArgs(JUnit5IdeaTestRunner
.java
:69)
at com
.intellij
.rt
.junit
.IdeaTestRunner$Repeater
.startRunnerWithArgs(IdeaTestRunner
.java
:33)
at com
.intellij
.rt
.junit
.JUnitStarter
.prepareStreamsAndStart(JUnitStarter
.java
:230)
at com
.intellij
.rt
.junit
.JUnitStarter
.main(JUnitStarter
.java
:58)
Caused by
: javax
.mail
.AuthenticationFailedException
: 550 User has no permission
at com
.sun
.mail
.smtp
.SMTPTransport$Authenticator
.authenticate(SMTPTransport
.java
:947)
at com
.sun
.mail
.smtp
.SMTPTransport
.authenticate(SMTPTransport
.java
:858)
at com
.sun
.mail
.smtp
.SMTPTransport
.protocolConnect(SMTPTransport
.java
:762)
at javax
.mail
.Service
.connect(Service
.java
:342)
at org
.springframework
.mail
.javamail
.JavaMailSenderImpl
.connectTransport(JavaMailSenderImpl
.java
:518)
at org
.springframework
.mail
.javamail
.JavaMailSenderImpl
.doSend(JavaMailSenderImpl
.java
:437)
... 66 more
解决2
配置文件之中需要配置用户名
spring.mail.username=xxxx@163.com
问题3
org
.springframework
.mail
.MailSendException
: Failed messages
: com
.sun
.mail
.smtp
.SMTPSendFailedException
: 553 Mail from must equal authorized user
;
nested exception is
:
com
.sun
.mail
.smtp
.SMTPSenderFailedException
: 553 Mail from must equal authorized user
; message exception details
(1) are
:
Failed message
1:
com
.sun
.mail
.smtp
.SMTPSendFailedException
: 553 Mail from must equal authorized user
;
解决3
虽然在配置文件之中已经有了账户,但是代码之中也要写,并且统一。
@Test
void contextLoads() {
SimpleMailMessage mailMessage
= new SimpleMailMessage();
mailMessage
.setFrom("XXX@163.com");
mailMessage
.setTo("XXX@163.com");
mailMessage
.setSubject("subject2..");
mailMessage
.setText("text2...");
javaMailSender
.send(mailMessage
);
}