java邮件开发详解笔记(创建一个内嵌图片和附件的邮件)

5 篇文章 0 订阅
package zxx.createMessage;

import java.io.FileOutputStream;
import java.util.Date;
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.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
 * 5.10 创建一个内嵌图片和附件的邮件
 * 要点:
 * 		1、创建html格式的邮件
 * 		2、创建相应的附件   
 * @author 后飞IT
 *
 */
public class ComplexMessage {

	public static void main(String[] args) {

		try {
			Session session = Session.getDefaultInstance(new Properties());
			MimeMessage message = createMessage(session);
			message.writeTo(new FileOutputStream("c:\\ComplexMessage.eml"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static MimeMessage createMessage(Session session) {
		try {
			String from = "763464507@126.com";
			String to = "763464507@126.com";
			String subject = "test";
			String body = "<h4>欢迎大家阅读次邮件</h4>"
					+ "<img src=\"cid:it315_alogo_gif\"/>";
			MimeMessage msg = new MimeMessage(session);
			msg.setFrom(new InternetAddress(from));
			msg.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse(to));
			msg.setSentDate(new Date());
			msg.setSubject(subject);
			// 创建代表邮件正文和附件的各个MimeBodyPart对象
			MimeBodyPart contentPart = createContent(body, "c:\\1.gif");
			MimeBodyPart attachPart1 = createAttachment(body, "c:\\InstallLog.log");
			MimeBodyPart attachPart2 = createAttachment(body, "c:\\setup.log");
			
			
			
			// 创建用于组合邮件正文和附件的MimeMultipart对象      此时是多种混合的是所以是mixed
			MimeMultipart allMultipart = new MimeMultipart("mixed");
			allMultipart.addBodyPart(contentPart);
			allMultipart.addBodyPart(attachPart1);
			allMultipart.addBodyPart(attachPart2);
			// 设置整个邮件内容为最红组合出的MimeMultipart对象
			msg.setContent(allMultipart);
			msg.saveChanges();
			return msg;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}

	}
	/**
	 * 这个部分是创建html格式的邮件
	 * @param body
	 * @param fileName
	 * @return
	 */
	private static MimeBodyPart createContent(String body, String fileName) {
		try {
			/*
			 * 创建代表组合MIME消息的MimeMulPart对象,和该MimeMulpart对象 保存到的MimeBodyPart对象
			 */
			MimeBodyPart contentPart = new MimeBodyPart();
			//创建html,是以来类型的 ralated
			MimeMultipart contentMultipart = new MimeMultipart("ralated");
			/*
			 * 创建用于保存HTML正文的mimebodyPart对象,并将保存到MIMEMULPART中
			 */
			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("it315_alogo_gif");
			contentMultipart.addBodyPart(gifBodyPart);
			// 将MimeMultiPart对象保存到MimeMultiPart对象中
			contentPart.setContent(contentMultipart);
			return contentPart;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}

	}
	/**
	 * 用于创建附件
	 * @param body
	 * @param fileName
	 * @return
	 */
	private static MimeBodyPart createAttachment(String body, String fileName) {
		try {
			//创建一个保存附件的MIMEBODYPART对象,并加入附件内容和相应的信息
			MimeBodyPart attchPart=new MimeBodyPart();
			FileDataSource fds=new FileDataSource(fileName);
			attchPart.setDataHandler(new DataHandler(fds));
			attchPart.setFileName(fds.getName());
			
			return attchPart;
		} catch (MessagingException e) {
			e.printStackTrace();
			return null;
		}
	}

	

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值