Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring启动-无法连接到SMTP主机:SMTP.gmail.com,端口:25,响应:421_Spring_Email_Smtp_Jakarta Mail_Spring Boot - Fatal编程技术网

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

Spring启动-无法连接到SMTP主机:SMTP.gmail.com,端口:25,响应:421,spring,email,smtp,jakarta-mail,spring-boot,Spring,Email,Smtp,Jakarta Mail,Spring Boot,我正在使用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.socketF

我正在使用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引导属性可以在此处找到:

因此,您可能应该使用
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=true 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
确保谷歌允许不太安全的应用程序:
打开它

我尝试将属性spring.mail.port=587添加到我的文件属性中,现在它指向正确的端口,但仍然出现相同的错误,但正确的端口失败消息1:javax.mail.MessagineException:无法连接到SMTP主机:SMTP.gmail.com,端口:587@Steve Spring Boot支持通过在
application.properties
中指定属性来自动配置
JavaMailSenderImpl
。请参阅参考指南的一节和。这就是我提到它的原因,但为了清晰起见,我添加了邮件配置类中的完整列表。我已经习惯于自己创建发件人,因为我需要禁用身份验证才能在当前环境中连接到MS Exchange。出于某些原因,Spring Boot automagic邮件发件人似乎不支持设置
mail.smtp.auth
属性。添加
Spring.mail.port=465
以更改端口。如果这不起作用,请添加您得到的错误。我不知道有关Spring Boot的任何信息,但通常您应该这样做。另请参阅。谢谢,因为我添加了“spring.mail.properties.mail.smtp.starttls.enable”,它对我来说运行良好。顺便说一下,我在中找不到这个属性。有什么想法吗?spring.mail.properties是spring启动自动配置中添加的前缀,但是“mail.smtp.starttls.enable”是Java mail API.Chill中的原始属性名称。。感谢@Ajay提供的信息。为方便起见,您可以在此处查看“mail.smtp.*”java属性: