Apache commons email邮件工具类简介及使用说明
下文笔者讲述Apache commons email邮件工具类的简介说明,如下所示
Apache commons email邮件工具类简介
commons-email是apache提供的一个开源的API 是对javamail的封装
实现思路:
1.引入相应的jar包
2.调用类中相应的方法
即可实现apache commons email的使用
引入jar包
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
例:
package com.java265.mail;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.ImageHtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;
import org.apache.commons.mail.resolver.DataSourceUrlResolver;
import org.junit.Test;
/**
* 使用Apache Commons Email发送邮件
*/
public class CommonsEmailTest {
/**
* 发送内容为简单文本的邮件
*/
@Test
public void sendSimpleTextEmail() throws EmailException {
// 发送简单的email,不能添加附件
Email email = new SimpleEmail();
// 邮件服务器域名
email.setHostName("smtp.163.com");
// 邮件服务器smtp协议的SSL端口
email.setSmtpPort(465);
// 用户名和密码为邮箱的账号和密码
email.setAuthenticator(new DefaultAuthenticator("用户名", "密码"));
// SSL安全连接
email.setSSLOnConnect(true);
// 设置字符编码方式
email.setCharset("UTF-8");
// 发件人
email.setFrom("xxx@163.com");
// 收件人
email.addTo("xxx@163.com");
// email.addTo(String... emails);//发送给多人
// // 抄送
// email.addCc("xxx");
// // 密送
// email.addBcc("xxx");
// 邮件主题
email.setSubject("测试邮件");
// 邮件正文
email.setMsg("这是一封测试邮件!");
// 发送
email.send();
}
/**
* 发送包含附件的邮件(附件为本地资源)
*/
@Test
public void sendEmailsWithAttachments() throws EmailException {
// 附件类,可以添加本地资源,也可以指定网络上资源,在发送时自动将网络上资源下载发送
EmailAttachment attachment = new EmailAttachment();
// 本地路径
attachment.setPath("D:\\test\\java265.jpg");
// 定义附件
attachment.setDisposition(EmailAttachment.ATTACHMENT);
// 附件描述
attachment.setDescription("Picture");
// 附件名(为中文时要处理编码)
attachment.setName("pic.jpg");
// 文本邮件,可以添加多个附件
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.163.com");
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@163.com");
email.addTo("xxx@163.com");
email.setSubject("测试邮件");
email.setMsg("测试邮件的正文内容!");
email.attach(attachment);
email.send();
}
/**
* 发送包含附件的邮件(附件为在线资源)
*/
@Test
public void sendEmailsWithOnlineAttachments() throws EmailException, MalformedURLException {
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("https://www.baidu.com/img/bd_logo1.png"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Baidu logo");
attachment.setName("Baidu.png");
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.163.com");
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@163.com");
email.addTo("xxx@163.com");
email.setSubject("测试邮件");
email.setMsg("发送的图片是一个网站的logo");
email.attach(attachment);
email.send();
}
/**
* 发送内容为HTML格式的邮件,内嵌图片
*/
@Test
public void sendHTMLFormattedEmail() throws EmailException, MalformedURLException {
// HTML格式邮件,同时具有MultiPartEmail类所有“功能”
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.163.com");
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@163.com");
email.addTo("xxx@163.com");
email.setSubject("测试邮件");
// 图片的网络地址
URL url = new URL("https://www.baidu.com/img/bd_logo1.png");
String cid = email.embed(url, "Baidu logo");
// 将图片引入html标签
email.setHtmlMsg("<html>这是百度的logo<br/><img src='cid:" + cid + "'></html>");
email.send();
}
/**
* 发送内容为HTML格式的邮件,内嵌图片
*/
@Test
public void sendHTMLFormattedEmailWithEmbeddedImages() throws MalformedURLException, EmailException {
// ImageHtmlEmail类通常是用来发送Html格式并内嵌图片的邮件
//它拥有所有HtmlEmail的功能,但是图片主要是以html内嵌的为主
ImageHtmlEmail email = new ImageHtmlEmail();
email.setHostName("smtp.163.com");
email.setSmtpPort(456);
email.setSSLOnConnect(true);
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@163.com");
email.addTo("xxx@163.com");
email.setCharset("UTF-8");
email.setSubject("测试邮件");
URL url = new URL("https://www.baidu.com");
// 这样HTML内容里如果有此路径下的图片会直接内联
email.setDataSourceResolver(new DataSourceUrlResolver(url));
String htmlEmail = "这里<img src='https://www.baidu.com/img/bd_logo1.png'>有图片。";
email.setHtmlMsg(htmlEmail);
email.send();
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


