2015-01-21 321 views
2

我使用Gmail SMTP宿主T发送邮件弹簧引导和JavaMail的发件人:春季启动 - 无法连接到SMTP主机:smtp.gmail.com,端口:25,响应:421

我的邮件属性:

spring.mail.host = smtp.gmail.com 
spring.mail.username = [email protected] 
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端口?

+0

添加'spring.mail.port = 465'来改变港口。如果这不起作用,请添加您收到的错误。 – 2015-01-21 13:55:42

回答

1

其实我发现了什么会错了,我应该用他们两个一个是我的服务器的端口和Gmail服务器的其他的一个:

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

我对Spring Boot一无所知,但通常你应该[永远不需要设置套接字工厂属性](http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes) 。另请参阅[有关使用Gmail的一般JavaMail说明](http://www.oracle.com/technetwork/java/javamail/faq/index.html#gmail)。 – 2015-01-21 20:13:32

2

我不确定你在哪里得到这些属性。较常见的春季启动性能配置可以在这里找到:

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; 
} 
+0

我试着将属性spring.mail.port = 587添加到我的文件属性 ,现在它指向正确的端口,但仍然产生相同的错误,但具有正确的端口 失败的消息1:javax.mail .MessagingException:无法连接到SMTP主机:smtp.gmail.com,端口:587; – 2015-01-21 12:07:37

+0

相同的错误代码? – Steve 2015-01-21 12:15:47

+0

@Steve Spring Boot支持通过指定'application.properties'中的属性来自动配置'JavaMailSenderImpl'。请参阅参考指南的[mail](http://docs.spring.io/spring-boot/docs/1.2.1.RELEASE/reference/htmlsingle/#boot-features-email)部分和[属性部分] (http://docs.spring.io/spring-boot/docs/1.2.1.RELEASE/reference/htmlsingle/#common-application-properties)。 – 2015-01-21 13:54:45

2

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

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

+0

谢谢,因为我添加了“spring.mail.properties.mail.smtp.starttls.enable”,它对我来说工作正常。顺便说一下,我无法在http://docs.spring中找到这些属性。IO /弹簧引导/文档/电流/参考/ HTML /共应用properties.html。 有什么想法? – Dickson 2016-10-15 09:47:23

+0

spring.mail.properties是在spring-boot-autoconfigure中添加的前缀,但“mail.smtp.starttls.enable”是Java邮件API中的原始属性名称。 – Ajay 2016-10-17 03:54:08

+0

寒意..谢谢@Ajay的信息。 – Dickson 2016-10-23 22:43:15

相关问题