标签:java 发送邮件 apache email
一 邮件的发送过程
① 发件人编辑邮件
② 邮件发送至发送账号所有的SMTP服务器
③ 如果发送账号和接收账号不在同一SMTP服务器,发送账号所属的服务器负责将邮件发至收件人所属SMTP服务器
④ 收件人查看邮件时,收件人所属服务器把邮件传给收件人的客户端
从而使用Java开发程序所需做的事情:创建和编辑邮件,发送邮件至发件人所属服务器
二 邮件的基本组成内容
如上图所示,邮件的主要组成部分有
发件人,收件人,抄送,密送,主题,附件,正文
正文是用富文本编辑器编辑,即可以是无格式文本,也可以是html格式(含内联图片)
三 基于Apache Commons Email 发送邮件
1 开发包的引入
Apache Commons Email 是对JavaMail的包装,所以需要引入JavaMail所需的jar包,同时引入自身的jar包。
activation.jar包下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html
jdk6及以上版本已包含该jar无需引入
mail.jar包下载地址:https://java.net/projects/javamail/downloads
JavaEE包含该jar包无需引入
apache commons email 下载地址:http://commons.apache.org/proper/commons-email/download_email.cgi
2 常用API简介
上述类是对邮件对于正文和附件不同表现形式的实现,特定的类增加特定的功能。
Email类是对除了正文和附件的其他内容的实现,
SimpleEmail类添加无格式文本,
MultipartEmail添加附件,EmailAttachment是对附件的封装,
HtmlEmail添加显示html格式功能
ImageHtmlEmail实现内联图片,HtmlEmail也可以实现内联图片显示,但是需要cid,而ImageHtmlEmail无需cid
三 示例代码
下面提供一个开发常用的示例代码
public void sendEmail() throws EmailException{
//创建正文内容以html格式显示的邮件
HtmlEmail email = new HtmlEmail();
//设置环境参数
email.setHostName("smtp.sina.com");
email.setCharset("UTF-8");
//设置连接服务器的用户名密码
email.setAuthentication("account", "password");
//设置邮件的发件人和收件人
email.setFrom("email account");
//也可以调用email.setTo(aCollection)设置多个接收人,
//或者多次调用email.addTo
email.addTo("recepient");
//设置主题
email.setSubject("Apache Email发送邮件");
//添加附件
email.attach(new File("G:\\workspace\\javamail\\bin\\mail.properties"));
email.attach(new File("G:\\workspace\\javamail\\bin\\NOTICE.txt"));
//添加html
String cid = email.embed(new File("C:\\Documents and Settings\\Administrator\\桌面\\ApacheEmail类关系图.png"));
String aHtml =
"<html>"
+ "<span style=‘color:red;‘>这是一封使用Apache Email实现的使用程序发送Email</span>"
+ "<br>"
+ "<img src=‘cid:"+cid+"‘ alt=‘找不到图片‘>"
+ "</html>";
email.setHtmlMsg(aHtml);
//设置文本信息,当邮箱客户端不支持html格式信息时显示
email.setTextMsg("对不起,您的邮箱客户端不支持显示html格式内容");
//发送邮件
email.send();
} 效果图:
四 常用邮箱发送邮件说明
后期继续说明
本文出自 “philipzone” 博客,请务必保留此出处http://philipzone.blog.51cto.com/8856558/1795142
标签:java 发送邮件 apache email
原文地址:http://philipzone.blog.51cto.com/8856558/1795142