制作一封复杂的邮件(包括附件、回信地址),并写到文件中
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邮件开发教程》
相关文章推荐
- javamail 发送邮件,发复杂html,包括附件,以及内嵌图片的邮件
- 发送带附件的邮件(包括文件上传)
- java mail发送复杂邮件代码(包括附件,html消息,纯文本消息)
- 用MIME协议生成一封复杂的邮件(三)
- outlook 2003如何接收带可执行文件附件的邮件
- 收到一封附件带Trojan-PSW.Win32.Magania.ibs/Packer.Win32.Mian007.a的邮件
- 抓取网络文件的URL地址作附件发送
- VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)
- 用MIME协议生成一封复杂的邮件(一)
- Java调用dll与C++通讯(包括.dll文件的制作)
- 邮件发送程序(可以同时发给多个地址、可以带附件)
- 类似163邮件附件选择文件上传
- 邮件发送程序(可以同时发给多个地址、可以带附件)
- Outlook数据文件的转移,联系人地址的配置,邮件规则的导入导出
- 用java实现的邮件系统六(javamail发送复杂邮件-带附件和html)
- PHP通过eml邮件文件提取图片附件
- 对MIME格式的邮件文件进行解码获取其可读内容和附件等
- 如果将 lotus 邮件(包括plain text,html,richtext)转化成eml文件
- Ant搞定全部开发流程 (包括编译、打包,签名,制作安装文件,生成帮助文档全部搞定)
- .net导出EXCEL文件操作类包括格式较复杂表格导出