您的位置:首页 > 编程语言 > Java开发

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相关接口的封装,我们发送邮件将变得很简单,并且方便操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: