java mail
来源:互联网 发布:剑三霸气军娘捏脸数据 编辑:程序博客网 时间:2024/06/10 07:19
/** * 创建内含图片的邮件,保存为 Outlook 的 ".eml" 文件 * @author haolloyin */ public class WithPictureMessage { public static void main(String[] args) throws Exception{ String from = "test_hao@sina.cn"; String to = "test_hao@163.com"; String subject = "创建一个内含图片的邮件!"; String body = "<h4>内含图片的邮件测试!!!</h4> " + "<a href = http://haolloyin.blog.51cto.com/> 蚂蚁</a></br></br>" + "<a href = http://haolloyin.blog.51cto.com/>" + "<img src = \"cid:haolloyin_logo_jpg\"></a>"; /** 上面的 cid 是指 MIME 协议中的 Content-ID 头,它是 * 对于文件资源的唯一标识符,下面的 setContentID()方法 * 中传入的 ID 号就必须与这个haolloyin_logo_jpg相一致*/ // 创建该邮件应用程序所需的环境信息以及会话信息 Session session = Session.getDefaultInstance(new Properties()); // 以下几句是设置邮件的基本信息 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); msg.setSubject(subject); msg.setSentDate(new Date()); /* * 创建一个子类型为 “related” 的 MIME 消息组合对象, * 其实 MimeMultipart 类还有另外两种子类型,请自行 * 查阅并比较其中的适用场景 */ MimeMultipart multipart = new MimeMultipart("related"); /* * 创建一个表示 HTML 正文部分的 MimeBodyPart 对象, * 并加入 到上一语句创建的 MimeMultiPart 对象中, * 由于 HTML 正文中包含中文,故下面应该指定字符集为 gbk 或 gb2312 */ MimeBodyPart htmlBodyPart = new MimeBodyPart(); htmlBodyPart.setContent(body, "text/html;charset=gbk"); multipart.addBodyPart(htmlBodyPart); /* * 创建一个表示图片文件的 MimeBodyPart 对象, * 并加入 到上面所创建的 MimeMultiPart 对象中, * 使用 JAF 框架中的 FileDataSource 类获取图片文件源, * 它能够自动获知文件的 MIME 格式并设置好消息头 */ MimeBodyPart jpgBodyPart = new MimeBodyPart(); FileDataSource fds = new FileDataSource("F:\\java\\haolloyin_logo.jpg"); jpgBodyPart.setDataHandler(new DataHandler(fds)); jpgBodyPart.setContentID("haolloyin_logo_jpg"); multipart.addBodyPart(jpgBodyPart); /* * 这里不用再设置字符集了,因为上面的 HTML MimeBodyPart 对象中 * 已经设置了,而图片文件的因为使用了 DataSource 对象,即 JAF 框架 * 中的具体数据处理操作类,能够自动判断获知数据的 MIME 类型 */ msg.setContent(multipart); // 保存对邮件的修改并写入文件中 msg.saveChanges(); msg.writeTo(new FileOutputStream("withPictureMail.eml")); } } 编译、运行,生成 withPictureMail.eml 文件,双击打开
/** * 创建内含图片的邮件,保存为 Outlook 的 ".eml" 文件 * @author haolloyin */ public class WithPictureMessage { public static void main(String[] args) throws Exception{ String from = "test_hao@sina.cn"; String to = "test_hao@163.com"; String subject = "创建一个内含图片的邮件!"; String body = "<h4>内含图片的邮件测试!!!</h4> " + "<a href = http://haolloyin.blog.51cto.com/> 蚂蚁</a></br></br>" + "<a href = http://haolloyin.blog.51cto.com/>" + "<img src = \"cid:haolloyin_logo_jpg\"></a>"; /** 上面的 cid 是指 MIME 协议中的 Content-ID 头,它是 * 对于文件资源的唯一标识符,下面的 setContentID()方法 * 中传入的 ID 号就必须与这个haolloyin_logo_jpg相一致*/ // 创建该邮件应用程序所需的环境信息以及会话信息 Session session = Session.getDefaultInstance(new Properties()); // 以下几句是设置邮件的基本信息 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); msg.setSubject(subject); msg.setSentDate(new Date()); /* * 创建一个子类型为 “related” 的 MIME 消息组合对象, * 其实 MimeMultipart 类还有另外两种子类型,请自行 * 查阅并比较其中的适用场景 */ MimeMultipart multipart = new MimeMultipart("related"); /* * 创建一个表示 HTML 正文部分的 MimeBodyPart 对象, * 并加入 到上一语句创建的 MimeMultiPart 对象中, * 由于 HTML 正文中包含中文,故下面应该指定字符集为 gbk 或 gb2312 */ MimeBodyPart htmlBodyPart = new MimeBodyPart(); htmlBodyPart.setContent(body, "text/html;charset=gbk"); multipart.addBodyPart(htmlBodyPart); /* * 创建一个表示图片文件的 MimeBodyPart 对象, * 并加入 到上面所创建的 MimeMultiPart 对象中, * 使用 JAF 框架中的 FileDataSource 类获取图片文件源, * 它能够自动获知文件的 MIME 格式并设置好消息头 */ MimeBodyPart jpgBodyPart = new MimeBodyPart(); FileDataSource fds = new FileDataSource("F:\\java\\haolloyin_logo.jpg"); jpgBodyPart.setDataHandler(new DataHandler(fds)); jpgBodyPart.setContentID("haolloyin_logo_jpg"); multipart.addBodyPart(jpgBodyPart); /* * 这里不用再设置字符集了,因为上面的 HTML MimeBodyPart 对象中 * 已经设置了,而图片文件的因为使用了 DataSource 对象,即 JAF 框架 * 中的具体数据处理操作类,能够自动判断获知数据的 MIME 类型 */ msg.setContent(multipart); // 保存对邮件的修改并写入文件中 msg.saveChanges(); msg.writeTo(new FileOutputStream("withPictureMail.eml")); } } 编译、运行,生成 withPictureMail.eml 文件,双击打开