spring boot 邮件发送
-
之前的发邮件的话比较繁琐,spring bbot帮我们简化了开发,引入mail的启动类支持
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
-
既然spring boot中已经配置了,说明它里面肯定有一个关于mail的自动配置类:MailSenderAutoConfiguration
@Configuration( proxyBeanMethods = false ) @ConditionalOnClass({MimeMessage.class, MimeType.class, MailSender.class}) @ConditionalOnMissingBean({MailSender.class}) @Conditional({MailSenderAutoConfiguration.MailSenderCondition.class}) @EnableConfigurationProperties({MailProperties.class}) @Import({MailSenderJndiConfiguration.class, MailSenderPropertiesConfiguration.class}) public class MailSenderAutoConfiguration { public MailSenderAutoConfiguration() { } static class MailSenderCondition extends AnyNestedCondition { MailSenderCondition() { super(ConfigurationPhase.PARSE_CONFIGURATION); } @ConditionalOnProperty( prefix = "spring.mail", name = {"jndi-name"} ) static class JndiNameProperty { JndiNameProperty() { } } @ConditionalOnProperty( prefix = "spring.mail", name = {"host"} ) static class HostProperty { HostProperty() { } } } }
-
同样可以查看配置文件,可以看我们能配置什么内容:MailProperties
public class MailProperties { private static final Charset DEFAULT_CHARSET; private String host; private Integer port; private String username; private String password; private String protocol = "smtp"; private Charset defaultEncoding; private final Map<String, String> properties; private String jndiName;
-
配置自己与mail相关的配置
spring.mail.username=1151143042@qq.com spring.mail.password=qq邮箱授权码 spring.mail.host=smtp.qq.com # qq需要配置ssl spring.mail.properties.mail.smtp.ssl.enable=true
-
进行代码测试
@Autowired JavaMailSenderImpl mailSender; @Test public void emailTest(){ //邮件设置1:一个简单的邮件 SimpleMailMessage message = new SimpleMailMessage(); message.setSubject("邮件主题"); message.setText("邮件正文"); message.setTo("fageishui@qq.com"); message.setFrom("shuifade@qq.com"); mailSender.send(message); }
-
若带有附件的复杂的邮件发送
@Autowired
JavaMailSenderImpl mailSender;
@Test
public void contextLoads2() throws MessagingException {
//邮件设置2:一个复杂的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject("邮件的主题");
helper.setText("<b style='color:red'>邮件的正文,写一些格式</b>",true);
//发送附件
helper.addAttachment("1.jpg",new File("F:/1.jpg"));
helper.setTo("fageishui@qq.com");
helper.setFrom("shuifade@qq.com");
mailSender.send(mimeMessage);
}
```
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)