发邮件已经是老生常谈了,今天又遇到了,而且又出了各种问题。我晕哦。

我的配置是:

spring.mail.host=smtp..com
spring.mail.username=klxxxx
spring.mail.password=qwer1234
spring.boot.admin.notify.mail.to=lkxxx@qq.com

出现了553:

-- ::21.022  WARN  --- [ctor-http-nio-] d.c.b.a.s.notify.NotificationTrigger     : Unexpected error while handling null

org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException:  Mail from must equal authorized user
;
nested exception is:
com.sun.mail.smtp.SMTPSenderFailedException: Mail from must equal authorized user at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:) ~[spring-context-support-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:) ~[spring-context-support-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:) ~[spring-context-support-5.1..RELEASE.jar:5.1..RELEASE]
at de.codecentric.boot.admin.server.notify.MailNotifier.lambda$doNotify$(MailNotifier.java:) ~[spring-boot-admin-server-2.1..jar:2.1.]
at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:) [reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxFilter$FilterSubscriber.request(FluxFilter.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:) [reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onSubscribe(FluxFilter.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFilter.subscribe(MonoFilter.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Mono.subscribe(Mono.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoIgnorePublisher.subscribe(MonoIgnorePublisher.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Mono.subscribe(Mono.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Mono.subscribe(Mono.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.onNext(FluxSubscribeOn.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPublish$PublishSubscriber.drain(FluxPublish.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPublish$PublishSubscriber.onNext(FluxPublish.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.UnicastProcessor.drainFused(UnicastProcessor.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.UnicastProcessor.drain(UnicastProcessor.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.UnicastProcessor.onNext(UnicastProcessor.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxCreate$IgnoreSink.next(FluxCreate.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxCreate$SerializedSink.next(FluxCreate.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at de.codecentric.boot.admin.server.eventstore.InstanceEventPublisher.lambda$publish$(InstanceEventPublisher.java:) ~[spring-boot-admin-server-2.1..jar:2.1.]
at java.util.ArrayList.forEach(ArrayList.java:) ~[na:1.8.0_131]
at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:) ~[na:1.8.0_131]
at de.codecentric.boot.admin.server.eventstore.InstanceEventPublisher.publish(InstanceEventPublisher.java:) ~[spring-boot-admin-server-2.1..jar:2.1.]
at de.codecentric.boot.admin.server.eventstore.InMemoryEventStore.lambda$append$(InMemoryEventStore.java:) ~[spring-boot-admin-server-2.1..jar:2.1.]
at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:) [reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Mono.subscribe(Mono.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onError(FluxPeekFuseable.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:) [reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onError(Operators.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:) [reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:) [reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxRetry$RetrySubscriber.onError(FluxRetry.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.FluxRetryPredicate$RetryPredicateSubscriber.onError(FluxRetryPredicate.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$TcpClientSubscriber.onError(HttpClientConnect.java:) ~[reactor-netty-0.8..RELEASE.jar:0.8..RELEASE]
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:) ~[reactor-core-3.2..RELEASE.jar:3.2..RELEASE]
at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.operationComplete(PooledConnectionProvider.java:) ~[reactor-netty-0.8..RELEASE.jar:0.8..RELEASE]
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.channel.pool.SimpleChannelPool.notifyConnect(SimpleChannelPool.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.pool.SimpleChannelPool.access$(SimpleChannelPool.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.pool.SimpleChannelPool$.operationComplete(SimpleChannelPool.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.pool.SimpleChannelPool$.operationComplete(SimpleChannelPool.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:) ~[netty-transport-4.1..Final.jar:4.1..Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$.run(SingleThreadEventExecutor.java:) ~[netty-common-4.1..Final.jar:4.1..Final]
at java.lang.Thread.run(Thread.java:) ~[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.
-- ::52.452 ERROR --- [ 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:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$(AbstractBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:) ~[spring-context-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:) ~[spring-context-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:) ~[spring-boot-2.1..RELEASE.jar:2.1..RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:) [spring-boot-2.1..RELEASE.jar:2.1..RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:) [spring-boot-2.1..RELEASE.jar:2.1..RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:) [spring-boot-2.1..RELEASE.jar:2.1..RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:) [spring-boot-2.1..RELEASE.jar:2.1..RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:) [spring-boot-2.1..RELEASE.jar:2.1..RELEASE]
at com.lk.DemoSpringbootAdminApplication.main(DemoSpringbootAdminApplication.java:) [classes/:na]
Caused by: java.lang.IllegalStateException: Mail server is not available
at org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration.validateConnection(MailSenderValidatorAutoConfiguration.java:) ~[spring-boot-autoconfigure-2.1..RELEASE.jar:2.1..RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:) ~[na:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:) ~[na:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:) ~[na:1.8.0_131]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:) ~[spring-beans-5.1..RELEASE.jar:5.1..RELEASE]
... common frames omitted
Caused by: javax.mail.AuthenticationFailedException: Error: authentication failed at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:) ~[javax.mail-1.6..jar:1.6.]
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:) ~[javax.mail-1.6..jar:1.6.]
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:) ~[javax.mail-1.6..jar:1.6.]
at javax.mail.Service.connect(Service.java:) ~[javax.mail-1.6..jar:1.6.]
at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:) ~[spring-context-support-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.mail.javamail.JavaMailSenderImpl.testConnection(JavaMailSenderImpl.java:) ~[spring-context-support-5.1..RELEASE.jar:5.1..RELEASE]
at org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration.validateConnection(MailSenderValidatorAutoConfiguration.java:) ~[spring-boot-autoconfigure-2.1..RELEASE.jar:2.1..RELEASE]
... 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

Springboot admin 发送邮件失败:com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user的更多相关文章

  1. com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal authorized user

    1.错误描写叙述 553 Mail from must equal authorized user com.sun.mail.smtp.SMTPSendFailedException: 553 Mai ...

  2. jenkins配置邮件 -- com.sun.mail.smtp.SMTPSenderFailedException: 550 5.7.1 Client does not have permissions to send as this sender

    jenkins配置邮件设置 发送邮件测试时,报错: com.sun.mail.smtp.SMTPSenderFailedException: Client does not have permissi ...

  3. 【总结 】550,535,553 Mail from must equal authorized user— jenkins(hudson) email163邮箱和26邮箱成功配置总结

    Failed to send out e-mail com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal author ...

  4. 【异常】553 Mail from must equal authorized user

    1 详细异常打印 2019-08-12 14:54:42,178 ERROR org.apache.camel.processor.DefaultErrorHandler: Failed delive ...

  5. 实战SpringBoot Admin

    长话短说哦,直接查看下文吧 目录 声明 先锋 前提 SpringBoot Admin 介绍 服务端的搭建 客户端的搭建 参数的指南 尾声 声明 见名知意,实战SpringBoot Admin,实战!实 ...

  6. 使用SpringBoot Admin监控SpringCloud微服务

    spring-boot admin的github地址:https://github.com/codecentric/spring-boot-admin 本文基于SpringCloud的环境和配置上增加 ...

  7. springboot简单发送邮件介绍

    1.新建一个springboot项目 2.所需要的的jar包: <dependency> <groupId>org.springframework.boot</group ...

  8. 使用SpringBoot + JavaMailSender 发送邮件报错 Mail server connection failed;Could not connect to SMTP host

    说明: 出于安全考虑,阿里云默认封禁 TCP 25 端口出方向的访问流量,无法在阿里云上的云服务器通过 TCP 25 端口连接外部地址. [官方提示]:如果您需要使用阿里云上的云服务器对外部发送邮件, ...

  9. python通过SMTP发送邮件失败,报错505/535

    python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')    我们使用pyth ...

随机推荐

  1. getRealPath()和getContextPath()的区别

    转载自:http://sucre.iteye.com/blog/319178 在程序中常常要获取文件的路径,有的时候需要用到相对路径而有的时候就要用到绝对路径,一提到绝对路径大家一定想到了getRea ...

  2. ODS ,EDW,DM

    ODS: 操作数据存储ODS(Operational Data Store),操作型数据仓库,最早的数据仓库模型,是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特 ...

  3. [Java Web学习]Tomcat启动时报war exploded: Error during artifact deployment

    报错:Artifact FirstWeb:war exploded: Error during artifact deployment. See server log for details. SEV ...

  4. C语言学习笔记之位运算求余

    我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注意:该方法只对除数是2的N次方幂时才有效. ...

  5. dataframe基础

    1 df[i]   其中i是0,1,2,3,...  此时选中的是dataframe的第i列 2 dataframe查看每一列是否有缺失值 temp = data.isnull().any() #列中 ...

  6. Reactor和Proactor

    服务器编程框架 IO处理单元 :处理用户连接,读写网络数据:(单机) :作为接入服务器,实现负载均衡;(集群) 请求队列 :各个单元之间通信的抽象,通常被实现为池的一部分:一个单元通知另外一个单元,或 ...

  7. c标签 多个条件

    <c:if test="${(rwyy01.yyry==NULL || rwyy01.yyry=='') && (rwyy01.shry==NULL || rwyy01 ...

  8. php获取数组最后一个值

    $array = array(1,2,3,4,5);

  9. LOJ 3089 「BJOI2019」奥术神杖——AC自动机DP+0/1分数规划

    题目:https://loj.ac/problem/3089 没想到把根号之类的求对数变成算数平均值.写了个只能得15分的暴力. #include<cstdio> #include< ...

  10. Java递归:一个NB自慰的操作

    递归的核心思想:自身调用自身 示例一:求5的阶乘 常规方法: 使用while循环 1 public class Demo01 { 2 3 public static void main(String[ ...