邮件发布Java

邮件发布Java

import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.context.Context;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import java.beans.Encoder;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Base64;
import java.util.Date;
import java.util.Properties;

@SpringBootTest
public class sendText {
    @Autowired
    JavaMailSender javaMailSender;//邮件发送
    @Autowired
    SpringTemplateEngine springTemplateEngine;//Spring 模板引擎
    @Test
    public void test4() throws MessagingException, MalformedURLException {

        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost("smtp.qq.com");
        javaMailSender.setPort(465);
        javaMailSender.setUsername("8@qq.com");
        javaMailSender.setPassword("u");
        javaMailSender.setDefaultEncoding("UTF-8");

        Properties properties = new Properties();
        properties.setProperty("mail.smtp.timeout", "30000");
        properties.setProperty("mail.smtp.auth", "true");
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        javaMailSender.setJavaMailProperties(properties);

        MimeMessage msg = javaMailSender.createMimeMessage();//创建模拟的消息
        MimeMessageHelper helper = new MimeMessageHelper(msg, true);//创建模拟的消息工具
        helper.setFrom("89@qq.com");//发件人
        helper.setSentDate(new Date());//发送日期
        helper.setSubject("这是测试主题(thymeleaf)");//发送主题
        Context context = new Context();
        context.setVariable("username", "javaboy");
        context.setVariable("position", "Java工程师");
        context.setVariable("dept", "产品研发部");
        context.setVariable("salary", 9999);
        context.setVariable("joblevel", "高级工程师");
        String process = springTemplateEngine.process("index.html", context);
        helper.setText(process, true);//内容是否设置成html,true代表是
        helper.setTo("137@qq.com");//收件人

//        MimeBodyPart img = new MimeBodyPart();
//        DataHandler dh = new DataHandler(new FileDataSource("www.itxm.net/templets/style/html/images/qr1.jpg"));//图片路径
//        img.setDataHandler(dh);
       // FileSystemResource file = new FileSystemResource("www.itxm.net/templets/style/html/images/qr1.jpg");




        String src = "https://s9.rr.itc.cn/r/wapChange/20176_21_8/a7t2t65624640852619.jpg";
        URL url = new URL(src);
        InputStream in = null;
        byte[] data = null;
        try {
            in = url.openStream();//远程文件
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        Base64.Encoder encoder = Base64.getEncoder();
        String value= encoder.encodeToString(data).replaceFirst("^data:image/[^;]*;base64,?", "");
        byte[] bytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(value);

        helper.addAttachment("MyImageName", new ByteArrayResource(bytes));

//        helper.addAttachment("MyImageName.jpg", new ByteArrayResource(IOUtils.toByteArray(encoder.encodeToString(data))));
        //helper.addInline("file", file);
        javaMailSender.send(msg);//发送
    }
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/b7c9d152bbbd4437a6757570b45c2e09.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/dc0583a97cb94d9ab7ab3c1c5ed10c01.png)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值