java邮件开发-----生成本地复杂邮件eml格式文件

参考书籍《张孝详java邮件开发详解》

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

public class ComplexMessage {

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

Session session = Session.getDefaultInstance(new Properties());

MimeMessage message = createMessage(session);

message.writeTo(new FileOutputStream("D:\\Eclipse\\ComplexMessage.eml"));

}

private static MimeMessage createMessage(Session session) throws Exception, MessagingException {

// TODO Auto-generated method stub

String from = "xxxxxxxxxxxxxx@sina.com";  //发件人地址

String to = "xxxxxxxxxxxxxxx@qq.com";  //收件人地址

String subject = "HTML邮件" ;  //邮件主题

String body = "<a href=www.baidu.com>" +

"欢迎大家访问网址</a></br>"  +

"<img  src=\"cid:test_img\">";

MimeMessage message = new MimeMessage(session);

message.setFrom(new InternetAddress(from));

message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));

message.setSubject(subject);

//创建代表邮件正文和附件的各个MimeBodyPart对象

MimeBodyPart contentBodyPart = createContent(body,"F:\\个人资料\\照片\\IMG_4373(20181209-182601).jpg");

MimeBodyPart attachPart1 = createAttachment("F:\\个人资料\\xxxxxxx.MP4");

MimeBodyPart attachPart2 = createAttachment("F:\\个人资料xxxxxxxxxx.pptx");

//创建用于组合邮件正文和附件的MimeMultipart对象

MimeMultipart allMultipart = new MimeMultipart("mixed");

allMultipart.addBodyPart(contentBodyPart);

allMultipart.addBodyPart(attachPart1);

allMultipart.addBodyPart(attachPart2);

//设置整个邮件内容为最终组合出的MimeMultipart对象

message.setContent(allMultipart);

message.saveChanges();

return message;

}

private static MimeBodyPart createAttachment(String filename) throws Exception {

// TODO Auto-generated method stub

//创建保存附件的MimeBodyPart对象,并加入附件内容和相应信息

MimeBodyPart attachPart = new MimeBodyPart();

FileDataSource fds = new FileDataSource(filename);

attachPart.setDataHandler(new DataHandler(fds));

attachPart.setFileName(fds.getName());

return attachPart;

}

private static MimeBodyPart createContent(String body, String filename) throws Exception {

// TODO Auto-generated method stub

/*创建代表组合MIME消息的MimeMultipart对象,

* 和将该MimeMultipart对象保存到MimeBodyPart对象

*/

MimeBodyPart contentPart = new MimeBodyPart();

MimeMultipart contentMultipart = new MimeMultipart("related");

/*创建用于保存HTML正文的MimeBodyPart对象,

* 并将它保存到MimeMultipart中

*/

MimeBodyPart htmlBodyPart = new MimeBodyPart();

htmlBodyPart.setContent(body,"text/html;charset=gb2312");

contentMultipart.addBodyPart(htmlBodyPart);

/*创建用于保存图片的MimeBodyPart对象,

* 并将它保存到MimeMultipart中

*/

MimeBodyPart gifBodyPart = new MimeBodyPart();

FileDataSource fds = new FileDataSource(filename);

gifBodyPart.setDataHandler(new DataHandler(fds));

gifBodyPart.setContentID("test_img");

contentMultipart.addBodyPart(gifBodyPart);

//将MimeMultipart对象保存到MimeBodyPart对象中

contentPart.setContent(contentMultipart);

return contentPart;

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容