public class JavaMainDemo
{
public static void main(String[] args) throws Exception {
//初始化默认参数
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", MAIL_HOST);
props.setProperty("mail.user", MAIL_USER);
props.setProperty("mail.from", MAIL_FROM);
//获取Session对象
Session session = Session.getInstance(props, null);
//开启后有调试信息
session.setDebug(true);
//通过MimeMessage来创建Message接口的子类
MimeMessage message = new MimeMessage(session);
// 发件人
InternetAddress from = new InternetAddress(MAIL_FROM, "测试发件人");
message.setFrom(from);
//设置收件人:
InternetAddress to = new InternetAddress(MAIL_TO);
message.setRecipient(Message.RecipientType.TO, to);
message.setRecipient(Message.RecipientType.CC, from);
//设置邮件主题
message.setSubject("test for 主题");
/*
* 邮件结构为
* mixed
* alternative
* related
* text/html
* inline
* text/plain
*
* attachment
*/
var mixed = new MimeMultipart();
message.setContent(mixed);
// 附件1
var attach1 = new MimeBodyPart();
mixed.addBodyPart(attach1);
attach1.attachFile(new File("mimefile.txt"));
attach1.setFileName("文件1.txt");
// 附件2
var attach2 = new MimeBodyPart();
mixed.addBodyPart(attach2);
attach2.setDisposition(MimeBodyPart.ATTACHMENT);
attach2.setFileName("文件2.txt");
attach2.setDataHandler(new DataHandler("文件2内容", "text/plain;charset=utf-8"));
// 主内容
var content_body = new MimeBodyPart();
mixed.addBodyPart(content_body);
// 二选一内容
var alternative_multi = new MimeMultipart("alternative");
content_body.setContent(alternative_multi);
// html+内联
var related_body = new MimeBodyPart();
alternative_multi.addBodyPart(related_body);
var related_multi = new MimeMultipart("related");
related_body.setContent(related_multi);
var html = new MimeBodyPart();
related_multi.addBodyPart(html);
// img1为下面的内联图片
html.setContent("hello <img src='cid:img1'>", "text/html");
var img = new MimeBodyPart();
related_multi.addBodyPart(img);
img.setDataHandler(new DataHandler(new FileDataSource("1.jpg")));
img.setContentID("<img1>");
// text 内容
var text_body = new MimeBodyPart();
alternative_multi.addBodyPart(text_body);
text_body.setText("文件显示内容", "utf-8", "plain");
//获取Transport对象
Transport transport = session.getTransport();
//smtp验证,就是你用来发邮件的邮箱用户名密码(若在之前的properties中指定默认值,这里可以不用再次设置)
transport.connect();
//发送邮件
transport.sendMessage(message, message.getAllRecipients()); // 发送
}
}