我正在使用 gmail smtp 主机 t 通过 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 Boot 属性:
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;
}
关于Spring Boot - 无法连接到 SMTP 主机 : smtp. gmail.com,端口 : 25, 响应:421,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28064904/