前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

SpringBoot邮件发送示例(springboot邮件发送功能 java)

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


  • QQ邮箱开启SMTP

进入设置---》帐户

开启功能

生成授权码

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

  • 应用配置
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)


  • 简单邮件
@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);
		
	}

测试:

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

  • 带附件的邮件
@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);
	}

控制台

带附件的邮件发送时,最好吧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);
	}

完毕!!!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言