您的位置:首页 > 编程语言 > Java开发

制作一封复杂的邮件(包括附件、回信地址),并写到文件中

2017-06-28 10:13 253 查看


一、项目整体结构



二、新建Demo3

下面的邮件包括附件(名称为中文名)、回信地址、好友名称等。

具体代码如下:

package javamail;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

/**
* 开发比较复杂的邮件
*/
public class Demo3 {

public static void main(String[] args) throws Exception {
Session session = Session.getInstance(new Properties());
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress
("\"" + MimeUtility.encodeText("网易邮箱") + "\" <**********@163.com>"));
//设置回信信息
msg.setReplyTo(new Address[]{
new InternetAddress("************@163.com")
});
//设置邮件收件人
msg.setRecipients(RecipientType.TO,
InternetAddress.parse(
MimeUtility.encodeText("卡卡罗特的163")
+ " <*************@163.com>,"
+ MimeUtility.encodeText("卡卡罗特的QQ")
+ "************@qq.com"));
//设置邮件主题
msg.setSubject("你们的Java培训真的是最牛的吗?");

//定义邮件正文
MimeMultipart msgMultipart = new MimeMultipart("mixed");
msg.setContent(msgMultipart);

MimeBodyPart attach1 = new MimeBodyPart();//附件一
MimeBodyPart attach2 = new MimeBodyPart();//附件二
MimeBodyPart content = new MimeBodyPart();//内容
msgMultipart.addBodyPart(attach1);//附件一
msgMultipart.addBodyPart(attach2);//附件二
msgMultipart.addBodyPart(content);//添加内容

//制作第一个附件
DataSource ds1 = new FileDataSource(
"resource\\Java培训.txt"
);
DataHandler dh1 = new DataHandler(ds1);
attach1.setDataHandler(dh1);
//解决附件名中文乱码问题
attach1.setFileName(
//给中文名编码
MimeUtility.encodeText("java培训.txt")
);

//制作第二个附件
DataSource ds2 = new FileDataSource(
"resource\\slogo.gif"
);
DataHandler dh2 = new DataHandler(ds2);
attach2.setDataHandler(dh2);
attach2.setFileName("slogo.gif");//设置文件名称

//正文主要架构
//设置子类型
MimeMultipart bodyMultipart = new MimeMultipart("related");
content.setContent(bodyMultipart);//设置正文体
MimeBodyPart htmlPart = new MimeBodyPart();//正文内容体
MimeBodyPart gifPart = new MimeBodyPart();//正文内容体
bodyMultipart.addBodyPart(htmlPart);
bodyMultipart.addBodyPart(gifPart);

//设置正文图片
DataSource gifds = new FileDataSource(
"resource\\logo.png"
);
DataHandler gifdh = new DataHandler(gifds);
gifPart.setDataHandler(gifdh);
gifPart.setHeader("Content-Location", "http://www.itcast.cn/images/logo.png");

htmlPart.setContent("你们的Java培训真的是最牛的吗?大家都这么说,我想跟你们比试一下!这可是我自己用程序生成和发送的邮件哦!<img src='http://www.itcast.cn/images/logo.png'>",
"text/html;charset=gbk");

msg.saveChanges();

//接下来可以把msg交给transport发送,
//这里把msg写到文件中

OutputStream ops = new FileOutputStream("resource\\demo3.eml");
msg.writeTo(ops);
ops.close();
}

}


参考书籍:《Java邮件开发详解》
参考视频:《传智播客_张孝祥_Java邮件开发教程》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息