邮件发布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);//发送
}
}

