日常开发过程中,比较常用的邮件发送方包括:163、QQ等,网上常见的配置与测试,也大多基于上述完成。
Outlook作为微软提供的企业电子邮件服务品牌,与其他品牌不同的是:Outlook使用的加密方式为STARTTTL。本文主要讲解Outlook SMTP的开启方式、OutLook STARTTTL的配置、如何通过JavaMail来实现电子邮件的发送等。
一、开启帐号的SMTP服务
首先,通过office.com登录你的微软邮箱。
进入设置页面,点击"同步电子邮件"选项,将POP选项选为"是".然后保存即可。
注意:
如果你的帐号为E3、E5等商用类型帐号,子账号是不具备开启SMTP选项的权限的,需要联系管理员开启。
开启方法参考微软官方文档: 启用或禁用通过身份验证的客户端 SMTP (SMTP AUTH) smtp Exchange Online
二、配置文件
修改配置文件,配置JavaMail邮件发送的基本参数。由于Office365邮件发送启用了STARTTLS的加密验证方式,所以需要通过spring.mail.properties的自定义属性来进行加密信息的相关配置。
配置文件如下:
spring.mail.username=mail@outlook.com #此处修改为你的邮箱帐号
spring.mail.password=1*******Acws* #此处为你的邮箱密码
spring.mail.host=smtp.office365.com
spring.mail.port=587
# 自定义属性
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.ssl.socketFactory.class=com.sun.mail.util.MailSSLSocketFactory
spring.mail.properties.mail.smtp.ssl.socketFactory.fallback=false
spring.mail.default-encoding=UTF-8
三、发送测试邮件
编写测试工具类,发送邮件。由于本文仅做简单测试,所以仅以简单的邮件形式来作为测试,其他复杂形式,包括附件、抄送人、HTML格式邮件等,会在后续的章节中进行介绍。
@SpringBootTest
class SpringBootTaskApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Value("${spring.mail.username}")
private String username;
@Test
void contextLoads() {
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("这里写测试邮件标题");
message.setText("这里写正文内容");
message.setTo("*****@qq.com"); //收件人邮箱地址,请自行修改
message.setFrom(username);
mailSender.send(message);
}
}
四、发送邮件
执行测试代码即可完成测试邮件的发送。