美文网首页
Java Mail 发送邮件

Java Mail 发送邮件

作者: berger_w | 来源:发表于2018-12-13 11:00 被阅读0次

转自梁桂钊的博客 

Spring 对 Java Mail 有很好的支持。因此,Spring Boot 也提供了自动配置的支持。

Spring Boot 集成 Java Mail

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-mail</artifactId>

</dependency>

在 src/main/resources/application.properties 中配置邮件信息,网易邮箱为例

#email

spring.mail.host=smtp.163.com

spring.mail.username=请输入用户名

spring.mail.password=请输入密码

spring.mail.port=25

spring.mail.protocol=smtp

spring.mail.default-encoding=UTF-8

我们通过编写单元测试用例,测试 Java Mail 是否正常工作。值得注意的是,邮件包括几种类型:简单文本的邮件、 HTML 文本的邮件、 内嵌图片的邮件、 包含附件的邮件。

@RunWith(SpringJUnit4ClassRunner.class)

@SpringApplicationConfiguration(WebMain.class)

public class SpringMailTest {

    @Autowired

    private JavaMailSenderImpl mailSender;

    /**

    * 发送包含简单文本的邮件

    */

    @Test

    public void sendTxtMail() {

        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();

        // 设置收件人,寄件人

        simpleMailMessage.setTo(new String[] {"lianggzone@163.com"});

        simpleMailMessage.setFrom("lianglevel@163.com");

        simpleMailMessage.setSubject("Spring Boot Mail 邮件测试【文本】");

        simpleMailMessage.setText("这里是一段简单文本。");

        // 发送邮件

        mailSender.send(simpleMailMessage);

        System.out.println("邮件已发送");

    }

    /**

    * 发送包含HTML文本的邮件

    * @throws Exception

    */

    @Test

    public void sendHtmlMail() throws Exception {

        MimeMessage mimeMessage = mailSender.createMimeMessage();

        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);

        mimeMessageHelper.setTo("lianggzone@163.com");

        mimeMessageHelper.setFrom("lianglevel@163.com");

        mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【HTML】");

        StringBuilder sb = new StringBuilder();

        sb.append("<html><head></head>");

        sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p></body>");

        sb.append("</html>");

        // 启用html

        mimeMessageHelper.setText(sb.toString(), true);

        // 发送邮件

        mailSender.send(mimeMessage);

        System.out.println("邮件已发送");

    }

    /**

    * 发送包含内嵌图片的邮件

    * @throws Exception

    */

    @Test

    public void sendAttachedImageMail() throws Exception {

        MimeMessage mimeMessage = mailSender.createMimeMessage();

        // multipart模式

        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

        mimeMessageHelper.setTo("lianggzone@163.com");

        mimeMessageHelper.setFrom("lianglevel@163.com");

        mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【图片】");

        StringBuilder sb = new StringBuilder();

        sb.append("<html><head></head>");

        sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p>");

        // cid为固定写法,imageId指定一个标识

        sb.append("<img src=\"cid:imageId\"/></body>");

        sb.append("</html>");

        // 启用html

        mimeMessageHelper.setText(sb.toString(), true);

        // 设置imageId

        FileSystemResource img = new FileSystemResource(new File("D:/images/01.jpg"));

        mimeMessageHelper.addInline("imageId", img);

        // 发送邮件

        mailSender.send(mimeMessage);

        System.out.println("邮件已发送");

    }

    /**

    * 发送包含附件的邮件

    * @throws Exception

    */

    @Test

    public void sendAttendedFileMail() throws Exception {

        MimeMessage mimeMessage = mailSender.createMimeMessage();

        // multipart模式

        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");

        mimeMessageHelper.setTo("lianggzone@163.com");

        mimeMessageHelper.setFrom("lianglevel@163.com");

        mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【附件】");

        StringBuilder sb = new StringBuilder();

        sb.append("<html><head></head>");

        sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p></body>");

        sb.append("</html>");

        // 启用html

        mimeMessageHelper.setText(sb.toString(), true);

        // 设置附件

        FileSystemResource img = new FileSystemResource(new File("D:/images/01.jpg"));

        mimeMessageHelper.addAttachment("image.jpg", img);

        // 发送邮件

        mailSender.send(mimeMessage);

        System.out.println("邮件已发送");

    }

}

相关文章

  • java发送邮件

    使用java mail forAndroid实现发送邮件 1.邮件发送协议smtp协议 smtp用户连接上邮件服务...

  • Java Mail 发送邮件

    转自梁桂钊的博客 Spring 对 Java Mail 有很好的支持。因此,Spring Boot 也提供了自动配...

  • java发送邮件的简单实例

    JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操...

  • python电子邮件系列(二)之SMTP发送邮件

    邮件发送与接收的流程 SMTP是发送邮件的协议,是MUA(Mail User Agent)发送到MTA(Mail ...

  • JAVA邮件发送Simple Java Mail

    前言 在我们日常工作中,邮件发送服务经常会用到,我们常用的java邮件服务实现方案有:java原生自带的javam...

  • Flask-Mail 发送邮件

    Flask 发送邮件 @(Flask)[Flask开发|Flask-Mail] 使用flask-mail扩展发送电...

  • email

    1. django 发送邮件 settings.py中配置发送邮件邮箱 使用send_mail方法发送邮件

  • python3之发送和读取邮件

    一、发送邮件 发送邮件使用SMTP协议【Simple Mail Transfer Protocol简单的邮件传输协...

  • Python3收发邮件(smtplib、email、poplib

    一、发送邮件 发送邮件使用SMTP协议【Simple Mail Transfer Protocol简单的邮件传输协...

  • Mail发送邮件

    本来是想用阿里云服务器测试发送邮箱,可是由于阿里云端口等问题,无奈只好在本地搭建虚拟机进行测试。本文是通过163邮...

网友评论

      本文标题:Java Mail 发送邮件

      本文链接:https://www.haomeiwen.com/subject/vkevhqtx.html