SpringBoot邮件发送示例

导读:本篇文章讲解 SpringBoot邮件发送示例,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

环境:SpringBoot2.3.9.RELEASE + QQ邮箱 + JDK8


  • QQ邮箱开启SMTP

SpringBoot邮件发送示例

 

进入设置—》帐户

SpringBoot邮件发送示例

 

开启功能

SpringBoot邮件发送示例

 

生成授权码

SpringBoot邮件发送示例

 

这里的授权码用于配置邮件服务的密码。

  • 应用配置
spring:
  mail:
    host: smtp.qq.com
    port: 465
    default-encoding: UTF-8
    username: xxxx@qq.com
    password: xxxxx #这里是上一步生成的授权码
    properties:
      mail.smtp.ssl.enable: true #开启SSl
      mail.smtp.connectiontimeout: 5000
      mail.debug: true #调试模式,这样在发送邮件时会输出详细信息

这里properties支持如下属性(smtp)

SpringBoot邮件发送示例

 


  • 简单邮件
@Resource
	private JavaMailSender sender ;
	
	@Test
	public void testSimpleMailSend() {
		// 构建一个邮件对象
        SimpleMailMessage message = new SimpleMailMessage();
        // 设置邮件主题
        message.setSubject("测试邮件");
        // 设置邮件发送者,这个跟application.yml中设置的要一致
        message.setFrom("123456@qq.com");
        // 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
        message.setTo("123456@qq.com");
        // 设置邮件抄送人,可以有多个抄送人
        message.setCc("76007509@qq.com");
        // 设置隐秘抄送人,可以有多个
        message.setBcc("123456@qq.com");
        // 设置邮件发送日期
        message.setSentDate(new Date());
        // 设置邮件的正文
        message.setText("这是简单的邮件");
        // 发送邮件
        sender.send(message);
		
	}

测试:

SpringBoot邮件发送示例

 

控制台输出了详细信息,同时收到了邮件。

  • 带附件的邮件
@Test
	public void testSendAttachMail() throws Exception {
        MimeMessage mimeMessage = sender.createMimeMessage();
      	// true表示构建一个可以带附件的邮件对象
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

        helper.setSubject("有附件的邮件");
        helper.setFrom("123456@qq.com");
        helper.setTo("123456@qq.com");
        helper.setSentDate(new Date());
        helper.setText("我有附件");
        helper.addAttachment("JavaMail规范文档", new File("D:\\java\\opensource\\javamail\\JavaMail-1.6.pdf"));
        sender.send(mimeMessage);
	}

控制台

SpringBoot邮件发送示例

 

SpringBoot邮件发送示例

 

带附件的邮件发送时,最好吧debug关闭,不然控制台一直输出内容,比较慢。

  • 带图片的邮件
@Test
	public void testSendImageMail() throws Exception {
	    MimeMessage mimeMessage = sender.createMimeMessage();
	    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
	    helper.setSubject("带图片的邮件");
	    helper.setFrom("348792955@qq.com");
	    helper.setTo("348792955@qq.com");
	    helper.setSentDate(new Date());
	    // src='cid:p01' 占位符写法 ,第二个参数true表示这是一个html文本
	    helper.setText("<p>这封邮件包含两种图片,"
	    		+ "分别如下</p><p>第一张图片:</p><img src='cid:p01'/><p>第二张图片:</p><img src='cid:p02'/>", true);
	    // 第一个参数指的是html中占位符的名字,第二个参数就是文件的位置
	    helper.addInline("p01",new FileSystemResource(new File("D:\\images\\1.jpg")));
	    helper.addInline("p02",new FileSystemResource(new File("D:\\images\\2.jpg")));
	    sender.send(mimeMessage);
	}

SpringBoot邮件发送示例

 

SpringBoot邮件发送示例

 

完毕!!!

SpringBoot邮件发送示例

 

SpringBoot邮件发送示例

 

SpringBoot邮件发送示例

SpringBoot邮件发送示例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/80064.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!