diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailProperties.java index bd2b54146c..b8db99c6c7 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailProperties.java @@ -55,6 +55,11 @@ public class MailProperties { */ private String password; + /** + * Protocol used by the SMTP server. + */ + private String protocol = "smtp"; + /** * Default MimeMessage encoding. */ @@ -107,6 +112,14 @@ public class MailProperties { this.password = password; } + public String getProtocol() { + return this.protocol; + } + + public void setProtocol(String protocol) { + this.protocol = protocol; + } + public Charset getDefaultEncoding() { return this.defaultEncoding; } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfiguration.java index 37a0938916..394e652a9d 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfiguration.java @@ -18,7 +18,6 @@ package org.springframework.boot.autoconfigure.mail; import java.util.Map; import java.util.Properties; - import javax.activation.MimeType; import javax.mail.Session; import javax.mail.internet.MimeMessage; @@ -79,6 +78,7 @@ public class MailSenderAutoConfiguration { } sender.setUsername(this.properties.getUsername()); sender.setPassword(this.properties.getPassword()); + sender.setProtocol(this.properties.getProtocol()); if (this.properties.getDefaultEncoding() != null) { sender.setDefaultEncoding(this.properties.getDefaultEncoding().name()); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfigurationTests.java index db6f0e3e16..0d1e8025e9 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mail/MailSenderAutoConfigurationTests.java @@ -100,14 +100,16 @@ public class MailSenderAutoConfigurationTests { JavaMailSenderImpl bean = (JavaMailSenderImpl) this.context .getBean(JavaMailSender.class); assertEquals(host, bean.getHost()); + assertEquals(JavaMailSenderImpl.DEFAULT_PORT, bean.getPort()); + assertEquals(JavaMailSenderImpl.DEFAULT_PROTOCOL, bean.getProtocol()); } @Test - public void smptHostWithSettings() { + public void smtpHostWithSettings() { String host = "192.168.1.234"; load(EmptyConfig.class, "spring.mail.host:" + host, "spring.mail.port:42", "spring.mail.username:john", "spring.mail.password:secret", - "spring.mail.default-encoding:US-ASCII"); + "spring.mail.default-encoding:US-ASCII", "spring.mail.protocol:smtps"); JavaMailSenderImpl bean = (JavaMailSenderImpl) this.context .getBean(JavaMailSender.class); assertEquals(host, bean.getHost()); @@ -115,6 +117,7 @@ public class MailSenderAutoConfigurationTests { assertEquals("john", bean.getUsername()); assertEquals("secret", bean.getPassword()); assertEquals("US-ASCII", bean.getDefaultEncoding()); + assertEquals("smtps", bean.getProtocol()); } @Test diff --git a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index f7c65dfc30..64d40d1647 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -548,6 +548,7 @@ content into your application; rather pick only the properties that you need. # Email ({sc-spring-boot-autoconfigure}/mail/MailProperties.{sc-ext}[MailProperties]) spring.mail.host=smtp.acme.org # mail server host spring.mail.port= # mail server port + spring.mail.protocol=smtp # mail server protocol spring.mail.username= spring.mail.password= spring.mail.default-encoding=UTF-8 # encoding to use for MimeMessages