java mail

 
/**   * 创建内含图片的邮件,保存为 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 文件,双击打开

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值