Spring 启动 - 无法连接到 SMTP 主机:smtp.gmail.com,端口:25,响应:421

Spring Boot - Could not connect to SMTP host: smtp.gmail.com, port: 25, response: 421

我正在使用 gmail smtp 主机发送邮件 spring boot 和 JavaMail Sender :

我的邮件属性:

 spring.mail.host = smtp.gmail.com
 spring.mail.username = XXX@gmail.com
 spring.mail.password = XXX

 spring.mail.properties.mail.smtp.auth = true
 spring.mail.properties.mail.smtp.socketFactory.port = 465
 spring.mail.properties.mail.smtp.starttls.enable = true
 spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
 spring.mail.properties.mail.smtp.socketFactory.fallback = false

获取错误:

Failed message 1: javax.mail.MessagingException: Could not connect to SMTP host: smtp.9business.fr, port: 25, response: 421] with root cause

即使我使用的是 465 端口,他为什么指向 25 端口?

我不确定你从哪里得到这些属性。更常见的 Spring 要配置的引导属性可以在这里找到:

http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

所以您可能应该使用 spring.mail.portspring.mail 命名空间中可用的属性是:

host
port
username
password
defaultEncoding (default: "UTF-8")

但是,如果您要创建自己的 JavaMailSender,则设置 SMTP 端口的 属性 是 mail.smtp.port。我像这样将 JavaMailSender 设置为 bean:

@Value(value = "${mail.smtp.host}")
private String smtpHost;

@Value(value = "${mail.smtp.port}")
private String smtpPort;

@Bean
public JavaMailSender mailSender() {
    JavaMailSenderImpl sender = new JavaMailSenderImpl();

    Properties p = new Properties();
    p.setProperty("mail.smtp.auth", "false");
    p.setProperty("mail.smtp.host", smtpHost);
    p.setProperty("mail.smtp.port", smtpPort);
    sender.setJavaMailProperties(p);

    return sender;
}

实际上我发现出了什么问题,我应该同时使用它们中的一个是我的服务器的端口,另一个是 gmail 服务器的端口:

spring.mail.properties.mail.smtp.socketFactory.port = 25
mail.smtp.port= 465

在您的属性文件中禁用 mail.smtp.starttls.requiredfalse

spring.mail.properties.mail.smtp.starttls.enable=真 spring.mail.properties.mail.smtp.starttls.required=false

试试这个

spring.mail.host = smtp.gmail.com
spring.mail.port = 587
spring.mail.username = xxxxxx
spring.mail.password = xxxxxx
spring.mail.properties.mail.smtp.starttls.enable = true
spring.mail.properties.mail.smtp.starttls.required = true
spring.mail.properties.mail.smtp.auth = true

确保google允许安全性较低的应用程序: https://myaccount.google.com/lesssecureapps 打开它