先搞一个增加背景图片
首先要准备图片,这个图片可以是本地的也可以是远程的
如果你使用本地的,那么会有一些问题,稍后再说,大家也帮忙给看看问题
如果是使用了远程,那很简单,就是发送一个HTML格式的邮件而已:
package com.mail; import java.util.Date; import java.util.Properties; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; 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 HtmlMail { public static void main(String[] args) throws Exception { Properties props = new Properties(); props.put( "mail.smtp.host ", "smtp.163.com "); props.put("mail.smtp.auth", "true"); Session session = Session.getInstance(props); Message message = new MimeMessage(session); InternetAddress from = new InternetAddress("test20120711120200@163.com"); from.setPersonal(MimeUtility.encodeText("风中落叶<test20120711120200@163.com>")); message.setFrom(from); InternetAddress to = new InternetAddress("test20120711120200@163.com"); message.setRecipient(Message.RecipientType.TO, to); message.setSubject(MimeUtility.encodeText("强哥邀请,谁敢不从!")); message.setSentDate(new Date()); // 构建邮件内容对象 Multipart mm = new MimeMultipart(); // 构建一个消息内容块 BodyPart mbpFile = new MimeBodyPart(); mbpFile.setContent("<body background='http://dl.iteye.com/upload/picture/pic/110267/e244bda9-9034-36e3-87fd-807629b84222.jpg'>" + "<font color='red'>强哥邀请你访问我的博客:http://cuisuqiang.iteye.com/!</font></body>","text/html;charset=UTF-8"); mm.addBodyPart(mbpFile); message.setContent(mm); message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect("smtp.163.com", 25, "test20120711120200", "test123456"); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("发送完毕"); } }
想想也是,你的图片肯定是要放到一个服务器的,不然每次发送一个大包给人家,谁不烦
当然我还是说一下怎么增加图片直接放到消息包内
先贴代码后解释:
package com.mail; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; 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 Html_BjPic { public static void main(String[] args) throws Exception { Properties props = new Properties(); props.put( "mail.smtp.host ", "smtp.163.com "); props.put("mail.smtp.auth", "true"); Session session = Session.getInstance(props); Message message = new MimeMessage(session); InternetAddress from = new InternetAddress("test20120711120200@163.com"); from.setPersonal(MimeUtility.encodeText("风中落叶<test20120711120200@163.com>")); message.setFrom(from); InternetAddress to = new InternetAddress("test20120711120200@163.com"); message.setRecipient(Message.RecipientType.TO, to); message.setSubject(MimeUtility.encodeText("强哥邀请,谁敢不从!")); message.setSentDate(new Date()); // 我就当这是一个消息包,类型是混杂的 MimeMultipart msgMultipart = new MimeMultipart("mixed");// 指定为混合关系 message.setContent(msgMultipart); // 这是消息包里面的一个消息体块 MimeBodyPart content = new MimeBodyPart(); msgMultipart.addBodyPart(content); // 消息体块包含了一组有依赖关系的元素 MimeMultipart bodyMultipart = new MimeMultipart("related"); // 依赖关系 content.setContent(bodyMultipart); // 这两个依赖关系的元素是HTML文本内容和依赖的图片资源 MimeBodyPart htmlPart = new MimeBodyPart(); MimeBodyPart gifPart = new MimeBodyPart(); // TODO 组装的顺序非常重要,一定要先组装文本域 bodyMultipart.addBodyPart(htmlPart); bodyMultipart.addBodyPart(gifPart); DataSource gifds = new FileDataSource("D:\\123.jpg"); DataHandler gifdh = new DataHandler(gifds); gifPart.setDataHandler(gifdh); gifPart.setHeader("Content-Location", "bg.jpg"); htmlPart.setContent( "<body background='bg.jpg'>" + "<div style='position: absolute; left: 390px; top: 150px;height: " + "100px;width: 200px;' align='center'>" + "这是测试邮件,请勿回复" + "</div></body>", "text/html;charset=UTF-8"); message.setContent(msgMultipart); message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect("smtp.163.com", 25, "test20120711120200", "test123456"); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("发送完毕"); } }
这个有点麻烦
首先是有一个 复杂关系的 MimeMultipart ,然后在这个对象里面增加一个消息体,这个消息体包含了一个是 依赖关系的包 ,这个包内又包含了两个元素
因为涉及到附件,所以你运行时会很慢
但是有一个问题
如果你这样指定,那么邮箱会人为你发送了两个普通附件,一个是图片一个是HTML文件
然后邮箱不会显示图片,只是把图片做为了一个普通附件,但是你要是用 foxmail 看的话就会显示
如果你看源码,会发现其实 foxmail 是把普通附件下载下来,然后图片就是显示本地文件了,而邮箱不会
谁知道怎么解决说一声!
如果是增加背景音乐的话,那就把上面的代码改一下,然后你的邮件内容是这样的
// 邮件内容 mbpFile.setContent("<html><head><bgsound src='bg.mp3' loop='-1'>" + "</head><body><center><font color='red'>强哥邀请你访问我的博客:http://cuisuqiang.iteye.com/!<br>" + "您听到背景音乐了么?</font></center></body>" + "</html>", "text/html;charset=UTF-8");
发送后你用foxmail 打开就可以听到音乐!
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
JavaMail邮件发送-为你的邮件增加背景音乐和背景图片
NULL 博文链接:https://cuisuqiang.iteye.com/blog/1750866
关于Java使用JavaMail实现邮件发送的源码。里面包含了需要的包。共享给大家,不用收费。免费快乐~
javamail 邮件发送支持带有图片的html格式和普通文本格式
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP...
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP...
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP...
该邮件系统不仅提供了基础的电子邮件发送和接收功能,还可能包括了用户管理、邮件存储、附件处理等高级功能,旨在帮助学生了解和掌握电子邮件通信协议以及如何在Java环境下实现这些网络服务。该源码文件包内,你可以...
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP...
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP...
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP...
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP...
发送邮件信息使用了javaMail技术。 十 角色权限管理 整个系统的角色权限管理由李长乐负责,查询了角色名称和每种角色的人数,可以赋权限。 十一 日志管理 整个系统的日志管理由张晓甜负责,利用了mongodb技术,...
使用JPA访问数据库 第12章 整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用...
使用JPA访问数据库 第12章 整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用...
使用JPA访问数据库 第12章 整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用...