MailSendException SSLHandshakeException JavaMail 电子邮件未发送

MailSendException SSLHandshakeException JavaMail emails not being sent

使用 JavaMail 发送电子邮件时,我收到此异常:

org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Can't send command to SMTP host;
  nested exception is:
    javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake. Failed messages: javax.mail.MessagingException: Can't send command to SMTP host;

我正在使用 Tomcat 8,其中添加了这些参数:

-Dcatalina.home=C:\Development\apache-tomcat-8.5.12
-Dcatalina.base=C:\Development\apache-tomcat-8.5.12
-Djava.io.tmpdir=C:\Development\apache-tomcat-8.5.12\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Development\apache-tomcat-8.5.12\conf\logging.properties
-XX:PermSize=128m
-XX:MaxPermSize=512m
-XX:+CMSClassUnloadingEnabled
-XX:+UseG1GC
-Dmail.smtp.starttls.enable=true 
-Dmail.debug=true
-Dhttps.protocols=TLSv1.1,TLSv1.2

我的 java 邮件属性是:

<property name="javaMailProperties">
  <props>
      <prop key="mail.smtp.auth">true</prop>
      <prop key="mail.smtp.debug">true</prop>
      <prop key="mail.smtp.starttls.enable">true</prop>
  </props>
</property>

我正在使用 Spring Java Mail v.3.2.2.

最奇怪的是,这个配置多年来一直正常工作,但现在突然间,80% 的电子邮件都因此而无法发送。但是,其他 20% 的电子邮件照常发送。

我检查了远程服务器中的配置,没有任何更改。

感谢所有回复的人。

看来所有的问题都是由于微软关于租户基本身份验证的政策发生了变化。

对帐户设置进行一些更改后,一切恢复正常,并重新发送电子邮件。