package com.hzk.mail;

import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date; import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail; /***
* HtmlEmail 用于发送HTML格式的邮件。完全的兼容MultiPartEmail, 易于添加附件,同时也支持内嵌图像
* MultiPartEmail 用于发送带附件的或者内嵌形式的邮件
* @author Administrator
*
*/
public class MailTest2 {
public static void main(String[] args) {
try {
//Create the attachment 创建附件1
//System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
EmailAttachment attachment1 = new EmailAttachment();
attachment1.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif")); // 发送网络文件
attachment1.setDisposition(EmailAttachment.ATTACHMENT);
attachment1.setDescription("apache logo");
attachment1.setName("apache logo"); //Create the attachment 创建附件2
EmailAttachment attachment2 = new EmailAttachment(); //发送本地文件
attachment2.setPath("img/qq_znone.gif");//不支持png格式的图片
attachment2.setDisposition(EmailAttachment.ATTACHMENT);
attachment2.setDescription("qq znone logo");
attachment2.setName("qq znone logo"); //Create the mail message
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setHostName("smtp.163.com");//你的邮件服务器的地址
htmlEmail.setAuthentication("tjhouzhikai", "757583770");//如果你的邮件服务器设置了密码,请输入密码,否则此语句可以忽略
htmlEmail.addTo("china_houzhikai@163.com", null);//设置收件人,如果想添加多个收件人,将此语句多写几次即可。
//其中参数1,代表收件人邮件地址;
//参数2,用于收件人收到邮件时看到的收件人姓名
htmlEmail.setFrom("tjhouzhikai@163.com", "张三");//发件人
htmlEmail.setCharset("UTF-8");
htmlEmail.setSubject("带图片和附件的java测试");
htmlEmail.setMsg("hello wellcome"); URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = htmlEmail.embed(url, "Apache logo");
String testEditor = "亲 你想登录qq空间吗?想的话就<a href='http://qzone.qq.com/'> 点击 </a>"+
     "<br />"+
     "<html>" +
"<img src=\"cid:"+cid+"\">" +
"<br />" +
"<iframe src='http://i.qq.com' height='100' scrolling='auto' width='50%' frameborder='1'></iframe>" +
"</html>";///关于iframe :出于安全考虑,大多邮箱是不支持iframe框架或javascript脚本内容的,也就是说,你就算成功把内容发给别人,对方邮箱不一定能把内容显示出来,例如发给qq、163、126等主流邮箱就不行,会显示空白。 htmlEmail.setHtmlMsg(testEditor);//testEditor 变量包含html内容
htmlEmail.attach(attachment1);//添加 --附件 1
htmlEmail.attach(attachment2);//添加 --附件 2 htmlEmail.send();//发送邮件
System.out.println("发送成功!");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
邮件箱截图如下:

=======================================================================================================================================

最新文章

  1. OC中的深拷贝与浅拷贝
  2. FME2014汉化问题
  3. Google翻译
  4. 关于 Cocoa Pods 的使用
  5. 模板--&gt;中国剩余定理[互质版本]
  6. jQuery 分割按钮(Split Button)
  7. SQL Server 查看数据库空间分配情况的 2 种方法
  8. openssl生成pem,密钥证书的创建
  9. Windows Phone开发(40):漫谈关键帧动画之中篇
  10. composer 安装和修改中国镜像
  11. .Net 调用微信公众号扫一扫
  12. ArXiv最受欢迎开源深度学习框架榜单:TensorFlow第一,PyTorch第四
  13. 如何解决Mac无法读取外置硬盘问题?
  14. [WC2018]通道——边分治+虚树+树形DP
  15. PM学习梳理--搭建产品架构
  16. 修改tomcat的默认访问日志信息
  17. 交换上的FLAPPING事件 (zhuan)
  18. MySQL事件不自动执行
  19. Redis 学习笔记(十二)Redis 复制功能详解 ----- (error) READONLY You can&#39;t write against a read only slave
  20. zookeeper leader选举机制

热门文章

  1. [Angular2 Router] Exiting an Angular 2 Route - How To Prevent Memory Leaks
  2. 对cocos2d 之autorelease\ratain\release的理解
  3. D2 前端技术论坛总结(下)
  4. APP快速通过苹果AppStore审核九大诀窍
  5. DNS服务器全面解析--转
  6. ALM/QC OTA Field in Database(查询ALM数据库的字段)
  7. EntityFramework优缺点(转)
  8. java发送邮件 实现编辑html代码
  9. date类型时间比较大小
  10. IOS开发UI篇之tableView 的用法详解