import java.io.FileOutputStream;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
* 创建内含附件、图文并茂的邮件
* @author haolloyin
*/
public class WithAttachmentMessage {
/**
* 根据传入的文件路径创建附件并返回
*/
public MimeBodyPart createAttachment(String fileName) throws Exception {
MimeBodyPart attachmentPart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(fileName);
attachmentPart.setDataHandler(new DataHandler(fds));
attachmentPart.setFileName(fds.getName());
return attachmentPart;
}
/**
* 根据传入的邮件正文body和文件路径创建图文并茂的正文部分
*/
public MimeBodyPart createContent(String body, String fileName)
throws Exception {
// 用于保存最终正文部分
MimeBodyPart contentBody = new MimeBodyPart();
// 用于组合文本和图片,"related"型的MimeMultipart对象
MimeMultipart contentMulti = new MimeMultipart("related");
// 正文的文本部分
MimeBodyPart textBody = new MimeBodyPart();
textBody.setContent(body, "text/html;charset=gbk");
contentMulti.addBodyPart(textBody);
// 正文的图片部分
MimeBodyPart jpgBody = new MimeBodyPart();
FileDataSource fds = new FileDataSource(fileName);
jpgBody.setDataHandler(new DataHandler(fds));
jpgBody.setContentID("logo_jpg");
contentMulti.addBodyPart(jpgBody);
// 将上面"related"型的 MimeMultipart 对象作为邮件的正文
contentBody.setContent(contentMulti);
return contentBody;
}
/**
* 根据传入的 Seesion 对象创建混合型的 MIME消息
*/
public MimeMessage createMessage(Session session) throws Exception {
String from = test_hao@163.com;
String to = "test_hao@sina.cn";
String subject = "创建内含附件、图文并茂的邮件!";
String body = "<h4>内含附件、图文并茂的邮件测试!!!</h4> </br>"
+ "<a href = http://haolloyin.blog.51cto.com/> 蚂蚁</a></br>"
+ "<img src = \"cid:logo_jpg\"></a>";
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setSubject(subject);
// 创建邮件的各个 MimeBodyPart 部分
MimeBodyPart attachment01 = createAttachment("F:\\java\\Snake.java");
MimeBodyPart attachment02 = createAttachment("F:\\java\\meng.mp3");
MimeBodyPart content = createContent(body, "F:\\java\\logo.jpg");
// 将邮件中各个部分组合到一个"mixed"型的 MimeMultipart 对象
MimeMultipart allPart = new MimeMultipart("mixed");
allPart.addBodyPart(attachment01);
allPart.addBodyPart(attachment02);
allPart.addBodyPart(content);
// 将上面混合型的 MimeMultipart 对象作为邮件内容并保存
msg.setContent(allPart);
msg.saveChanges();
return msg;
}
// 测试生成邮件
public static void main(String[] args) throws Exception {
WithAttachmentMessage mail = new WithAttachmentMessage();
Session session = Session.getDefaultInstance(new Properties());
MimeMessage message = mail.createMessage(session);
message.writeTo(new FileOutputStream("withAttachmentMail.eml"));
}
}
From: test_hao@163.com To: test_hao@sina.cn Message-ID: <56667.2.1279677956578.JavaMail.Administrator@WWW-1477FF1578B> Subject: =?GBK?B?tLS9qMTauqy4vbz+oaLNvM7EsqLDr7XE08q8/qOh?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_1_13249998.1279677956546" ------=_Part_1_13249998.1279677956546 Content-Type: application/octet-stream; name=Snake.java Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=Snake.java // 省略被 BASE64 转码后的 Snake.java 附件内容 ------=_Part_1_13249998.1279677956546 Content-Type: application/octet-stream; name=meng.mp3 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=meng.mp3 // 省略被 BASE64 转码后的 meng.java 附件内容 ------=_Part_1_13249998.1279677956546 Content-Type: multipart/related; boundary="----=_Part_0_3373112.1279677956546" ------=_Part_0_3373112.1279677956546 Content-Type: text/html;charset=gbk Content-Transfer-Encoding: quoted-printable <h4>=C4=DA=BA=AC=B8=BD=BC=FE=A1=A2=CD=BC=CE=C4=B2=A2=C3=AF=B5=C4=D3=CA=BC= =FE=B2=E2=CA=D4=A3=A1=A3=A1=A3=A1</h4> </br><a href =3D http://haolloyin.bl= og.51cto.com/> =C2=EC=D2=CF</a></br><img src =3D "cid:logo_jpg"></a> ------=_Part_0_3373112.1279677956546 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-ID: logo_jpg // 省略被 BASE64 转码后的邮件正文部分内嵌的 .jpg 图片的内容 ------=_Part_0_3373112.1279677956546-- ------=_Part_1_13249998.1279677956546--
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有