java发送邮件(2)
2015-08-03 23:10
489 查看
commons mail是对java mail的接口进行封装,使之使用起来能够更加方便,快捷。今天我们就来看看commons mail发送邮件应该怎么做呢? commons mail把java mail的接口封装成为一个抽象类org.apache.commons.mail.Email,此外Email又有四个子类分别是org.apache.commons.mail.SimpleEmail、org.apache.commons.mail.MultiPartEmail、org.apache.commons.mail.HtmlEmail和org.apache.commons.mail.ImageHtmlEmail。SimpleEmail负责发送基本的text邮件、MultiPartEmail负责发送带有附件的邮件,HtmlEmail负责发送HTML邮件,而ImageHtmlEmail则负责发送嵌有图片的邮件。 这几个类的类图如下: ![这里写图片描述](https://img-blog.csdn.net/20150803225421322) 因为对java mail做了比较好的封装,所以我们不用所有的邮件服务器地址、协议、内容、发件人、收件人等等的相关信息都直接在Email的子类中设置即可,设置完之后,就可以利用其子类直接发送信息。 下面我们来看看各类邮件发送的例子: 一、发送简单的文本邮件
public class BasicTextMailSender { public static void main(String[] args) throws EmailException { SimpleEmail mail = new SimpleEmail(); mail.setHostName("smtp.163.com"); mail.setSmtpPort(25); mail.setAuthenticator(new DefaultAuthenticator("choukakou@163.com", "BRZJH1SJHHRHL")); mail.setSSLOnConnect(true); mail.setFrom("choukakou@163.com"); mail.setDebug(true); mail.setSubject("commons simple mail test"); mail.setMsg("This is a mail sended by commons mail"); mail.addTo("zhao.jiahong@yahoo.com"); mail.send(); } }
二、发送HTML邮件
public class HtmlEmailSender { public static void main(String[] args) throws EmailException, MalformedURLException { HtmlEmail email = new HtmlEmail(); email.setHostName("smtp.163.com"); email.setFrom("choukakou@163.com", "me"); email.setDebug(true); email.setSubject("attachment mail test"); email.addTo("zhao.jiahong@yahoo.com"); email.setAuthenticator(new DefaultAuthenticator("choukakou@163.com", "BRZJH1SJHHRHL")); URL url = new URL("http://pic.mmfile.net/2014/08/20140815mt05.jpg"); String cid = email.embed(url, "beauty"); email.setHtmlMsg("<html>beauty -<img src=\"cid:" + cid + "\"></html>"); email.setTextMsg("your client does not support html messages"); email.send(); } }
三、发送嵌入图片的邮件
public class HtmlWithImageEmailSender { public static void main(String[] args) throws MalformedURLException, EmailException { String htmlEmailTemplate = "...<img src=\"http://pic.mmfile.net/2014/10/30t01.jpg\"..."; URL url = new URL("http://pic.mmfile.net"); ImageHtmlEmail email = new ImageHtmlEmail(); email.setDataSourceResolver(new DataSourceUrlResolver(url)); email.setHostName("smtp.qq.com"); email.setFrom("249745552@qq.com", "me"); email.setDebug(true); email.setSubject("attachment mail test"); email.addTo("zhao.jiahong@yahoo.com"); email.setAuthenticator(new DefaultAuthenticator("249745552@qq.com", "linlinjiahong21")); email.setHtmlMsg(htmlEmailTemplate); email.setTextMsg("your client does not support html messages"); email.send(); } }
四、发送带有附件的邮件
public class AttachmentEmailSender { public static void main(String[] args) throws EmailException { EmailAttachment attachment = new EmailAttachment(); attachment.setPath("F:\\hello.txt"); attachment.setDescription("chou"); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setName("hello"); MultiPartEmail mail = new MultiPartEmail(); mail.setHostName("smtp.163.com"); mail.setSmtpPort(25); mail.setAuthenticator(new DefaultAuthenticator("choukakou@163.com", "BRZJH1SJHHRHL")); mail.setSSLOnConnect(true); mail.setFrom("choukakou@163.com", "me"); mail.setDebug(true); mail.setSubject("attachment mail test"); mail.setMsg("This is a attachment mail sended by commons mail"); mail.addTo("zhao.jiahong@yahoo.com"); mail.attach(attachment); mail.send(); } }
我们可以看出来,经过commons mail对java mail相关接口的封装,我们发送邮件将变得很简单,并且方便操作。
相关文章推荐
- SpringMVC + Spring 3.2.14 + Hibernate 3.6.10
- SpringMVC 文件上传配置,多文件上传,使用的MultipartFile
- JNI——Java调用DLL
- java基础知识整理:
- java平台的提高性能的几点建议
- 黑马程序员——struts2学习笔记一
- win7搭建android开发环境——离线一体化配置Eclipse+ADT+SDK
- 如何在spring mvc中上传图片并显示出来
- java 特种兵笔记:论道 unilay
- 设计模式-单例模式(饿汉式及懒汉式的Java实现)
- 开涛SpringMVC笔记
- 【JAVA】浅谈java枚举类
- Java 打开文件夹
- java Date获取 年月日时分秒
- java培训 2015-08-3 面向对象 类
- Java多线程同步的方法
- java多线程概述
- struts项目&设置
- Eclipse常用快捷键
- Java生成和操作Excel文件