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.port
。 spring.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.required 到 false。
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
打开它
我正在使用 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.port
。 spring.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.required 到 false。
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 打开它