JavaMailSender发送邮件

发送文本信息

       SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("[email protected]"); // 邮件发送者
        message.setTo(address); // 邮件接收者
        message.setSubject(title); // 主题
        message.setText(content); // 邮件内容
        javaMailSender.send(message);

发送HTMl邮件

这种邮件稍后复杂一点,不能直接使用SimpleMailMessage了,可以用下面的方法

try {
                MimeMessage message = javaMailSender.createMimeMessage();
                MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
                helper.setTo(new String[]{contractEntity.getEmail()});//邮件接收者,数组,可以传多个
                helper.setFrom("[email protected]");//邮件发送者
                helper.setSubject("xx");//邮件主题
                //第一个参数,是html的方格,是String类型,第二个参数是,是否是HTML格式
                helper.setText(htmlText, true);
                //发送邮件
                javaMailSender.send(message);
            } catch (MessagingException e) {
                throw new RuntimeException(e);
            }

发送HTML中带图片

HTML邮件比较复杂,有些CSS语法,不同的邮箱客户端,兼容性不同,比如我自己测试,position: absolutegmail就识别不了。
但HTML中的图片是很常见,有两种方法:

第一种是把图片当作附件加进去以后,HTML就能读取到,如果下:
try {
            MimeMessage message = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
             helper.setTo(new String[]{"[email protected]"});
lper.setFrom("[email protected]");
            helper.setSubject("test");
            helper.setText(htmlText true);
            //图片名称,带了路径,放在resource文件夹下面
            String alarmIconName = "email/bg.jpg";
            //获取图片
            ClassPathResource img = new ClassPathResource(alarmIconName);
           //添加图片
            helper.addInline("bg", img);
            //发送邮件
            javaMailSender.send(message);
        } catch (MessagingException ignored) {

        }

HTML模版是下面这样:




    
    Title


//就是这里,src就是图片
第二种方法,就是直接把图片变成url,先把图片放在网络上,直接填写URL,亲测这种方法,兼容性好一些,如下面这种,是在gamil中,使用背景图的方法



    
    Title
    


发送附件

邮件中带附件,也是常用需求

        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
            messageHelper.setFrom("[email protected]");
            messageHelper.setTo(new String[]{"[email protected]", "[email protected]"});//接收者
            messageHelper.setSubject("mm");//主题
            messageHelper.setText("請看附件");
            //这里添加附件,第一个参数是附件名称,第二个是文件
            messageHelper.addAttachment("mm.xlsx", new File(fileName));
            javaMailSender.send(mimeMessage);
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }

你可能感兴趣的:(JavaMailSender发送邮件)