java发送邮件(2)

来源:互联网 发布:linux cpu调为高性能 编辑:程序博客网 时间:2024/06/05 05:25
   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则负责发送嵌有图片的邮件。   这几个类的类图如下:![这里写图片描述](http://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相关接口的封装,我们发送邮件将变得很简单,并且方便操作。
0 0
原创粉丝点击