为了账号安全,请及时绑定邮箱和手机立即绑定

Spring boot email(1)

标签:
SpringBoot

Email protocols

  • SMTP: upload and transfer between mail servers.

  • POP3: pull emails to local.

  • IMAP: After receiving the email, the email is still reserved on the server. Mapping client and server.

  • Mime: SMTP was using ASCII. Mime extends to binary transfer.

Unit test

We need to add two annotations in the unit test class

@RunWith(SpringRunner.class)
@SpringBootTest

Spring-boot-starter-mail

  • Maven dependency
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
  • property file
spring.mail.host=smtp.gmail.com
spring.mail.username=<your email username>
spring.mail.password=<your email password>
spring.mail.default-encoding=utf-8

#If you use Gmail, the follow two lines are necessary
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory

Sending a simple text email

@Service
public class MailService {

    @Value("${spring.mail.username}")
    private String from;

    @Autowired
    private JavaMailSender mailSender;

    public void sendSimpleMail(String to, String subject, String content) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setSubject(subject);
        message.setText(content);
        message.setFrom(from);

        mailSender.send(message);
    }
}

Test this service

@RunWith(SpringRunner.class)
@SpringBootTest
public class MailServiceTest {

    @Resource
    MailService mailService;

    @Test
    public void sendSimpleMail() {
        mailService.sendSimpleMail("<Send to email address>",
                                "Test email",
                                "Hello World");
    }
}

Sending a HTML email

public void sendHTMLMail(String to, String subject, String content) throws MessagingException {
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setFrom(from);
    helper.setTo(to);
    helper.setSubject(subject);
    helper.setText(content, true);
    mailSender.send(message);
}

Test this service

@Test
public void sendHTMLMail() throws MessagingException {
    String content = "<html>\n<body>\n<h3> Hello world! This is a HTML email.</h3>\n</body>\n</html>";
    mailService.sendHTMLMail("<Send to email address>", "HTML Email", content);
}

Sending an email with attachments

public void sendAttachmentMail(String to, String subject, String content, String filePath) throws MessagingException {
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setFrom(from);
    helper.setTo(to);
    helper.setSubject(subject);
    helper.setText(content, true);

    FileSystemResource file = new FileSystemResource(new File(filePath));
    String filename = file.getFilename();
    helper.addAttachment(filename, file);
    mailSender.send(message);
}
@Test
public void sendAttachmentMail() throws MessagingException {
    String filePath = "C:\\Users\\***";
    mailService.sendAttachmentMail("<Send to email address>",
            "Test email",
            "Hello World", filePath);
}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消