发邮件已经是老生常谈了,今天又遇到了,而且又出了各种问题。我晕哦。
我的配置是:
spring.mail.host=smtp.163.com spring.mail.username=klxxxx spring.mail.password=qwer1234 spring.boot.admin.notify.mail.to=lkxxx@qq.com
出现了553:
2019-02-13 11:29:21.022 WARN 18964 --- [ctor-http-nio-3] d.c.b.a.s.notify.NotificationTrigger : Unexpected error while handling null 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 at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:488) ~[spring-context-support-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:359) ~[spring-context-support-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:354) ~[spring-context-support-5.1.2.RELEASE.jar:5.1.2.RELEASE] at de.codecentric.boot.admin.server.notify.MailNotifier.lambda$doNotify$0(MailNotifier.java:102) ~[spring-boot-admin-server-2.1.0.jar:2.1.0] at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:65) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:29) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132) [reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2041) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxFilter$FilterSubscriber.request(FluxFilter.java:179) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:103) [reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxFilter$FilterSubscriber.onSubscribe(FluxFilter.java:79) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFilter.subscribe(MonoFilter.java:46) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:74) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:3590) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnorePublisher.subscribe(MonoIgnorePublisher.java:41) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:3590) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:3590) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.onNext(FluxSubscribeOn.java:151) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:826) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:826) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPublish$PublishSubscriber.drain(FluxPublish.java:465) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPublish$PublishSubscriber.onNext(FluxPublish.java:249) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.UnicastProcessor.drainFused(UnicastProcessor.java:277) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.UnicastProcessor.drain(UnicastProcessor.java:310) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.UnicastProcessor.onNext(UnicastProcessor.java:386) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxCreate$IgnoreSink.next(FluxCreate.java:593) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxCreate$SerializedSink.next(FluxCreate.java:151) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at de.codecentric.boot.admin.server.eventstore.InstanceEventPublisher.lambda$publish$0(InstanceEventPublisher.java:44) ~[spring-boot-admin-server-2.1.0.jar:2.1.0] at java.util.ArrayList.forEach(ArrayList.java:1249) ~[na:1.8.0_131] at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080) ~[na:1.8.0_131] at de.codecentric.boot.admin.server.eventstore.InstanceEventPublisher.publish(InstanceEventPublisher.java:42) ~[spring-boot-admin-server-2.1.0.jar:2.1.0] at de.codecentric.boot.admin.server.eventstore.InMemoryEventStore.lambda$append$0(InMemoryEventStore.java:41) ~[spring-boot-admin-server-2.1.0.jar:2.1.0] at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:65) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:29) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:160) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) [reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1476) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:241) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2041) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:1849) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:68) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:3590) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:97) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onError(FluxPeekFuseable.java:228) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:165) [reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:214) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onError(Operators.java:1718) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:185) [reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:251) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:165) [reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxRetry$RetrySubscriber.onError(FluxRetry.java:87) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:126) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:214) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:214) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:87) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:193) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.FluxRetryPredicate$RetryPredicateSubscriber.onError(FluxRetryPredicate.java:100) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:167) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$TcpClientSubscriber.onError(HttpClientConnect.java:344) ~[reactor-netty-0.8.2.RELEASE.jar:0.8.2.RELEASE] at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:167) ~[reactor-core-3.2.2.RELEASE.jar:3.2.2.RELEASE] at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.operationComplete(PooledConnectionProvider.java:598) ~[reactor-netty-0.8.2.RELEASE.jar:0.8.2.RELEASE] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:121) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.pool.SimpleChannelPool.notifyConnect(SimpleChannelPool.java:217) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.pool.SimpleChannelPool.access$000(SimpleChannelPool.java:42) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.pool.SimpleChannelPool$2.operationComplete(SimpleChannelPool.java:186) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.pool.SimpleChannelPool$2.operationComplete(SimpleChannelPool.java:183) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:483) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:121) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:327) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:343) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:616) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:563) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442) ~[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[netty-common-4.1.29.Final.jar:4.1.29.Final] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_131]
难道是密码错误吗? 仔细确认,密码是没错的。
故意把密码设置错误,得到另外一个异常: Caused by: javax.mail.AuthenticationFailedException: 535 Error: authentication failed
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-02-13 11:45:52.452 ERROR 20232 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Mail server is not available at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:139) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:419) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1737) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863) ~[spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE] at com.lk.DemoSpringbootAdminApplication.main(DemoSpringbootAdminApplication.java:18) [classes/:na] Caused by: java.lang.IllegalStateException: Mail server is not available at org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration.validateConnection(MailSenderValidatorAutoConfiguration.java:55) ~[spring-boot-autoconfigure-2.1.0.RELEASE.jar:2.1.0.RELEASE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_131] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:363) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:307) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] ... 18 common frames omitted Caused by: javax.mail.AuthenticationFailedException: 535 Error: authentication failed at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:965) ~[javax.mail-1.6.2.jar:1.6.2] at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:876) ~[javax.mail-1.6.2.jar:1.6.2] at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:780) ~[javax.mail-1.6.2.jar:1.6.2] at javax.mail.Service.connect(Service.java:366) ~[javax.mail-1.6.2.jar:1.6.2] at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:515) ~[spring-context-support-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.mail.javamail.JavaMailSenderImpl.testConnection(JavaMailSenderImpl.java:396) ~[spring-context-support-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration.validateConnection(MailSenderValidatorAutoConfiguration.java:52) ~[spring-boot-autoconfigure-2.1.0.RELEASE.jar:2.1.0.RELEASE] ... 25 common frames omitted
密码错误确实会出现553,但是具体原因是不同的。可见, 密码是没问题的。
需要一个授权码? 我记得163邮箱是挺好用的。qq邮箱需要授权码, 163好像不需要的吧。。
难道需要额外配置:
spring.mail.protocol=smtp spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.ssl.enable=true spring.mail.test-connection=true
加上了,然并卵。
这坑爹啊。。 查看所有可用的配置,偶然看到了一个配置 spring.boot.admin.notify.mail.from,设置一下吧, 同 spring.mail.username=klxxxx 一样的。 重启, 好了!
参考
https://www.cnblogs.com/xibei666/p/9016593.html
https://blog.csdn.net/sun2015_07_24/article/details/52074898