Commons Email-电子邮件发送
发布时间
阅读量:
阅读量
- 资源链接
- Commons Email简介
- Commons Email 的配置
- Commons Email 的用法
-
开通POP3SMTP服务
-
发送电子邮件源码
- Mail源码
- MailAction源码
- 测试代码MailTest源码
-
测试的结果
-
资源链接
Commons Email 官网地址
Commons Email API 文档
码云上的项目源码
Commons Email简介
公用电子邮件的目标是提供一个发送电子邮件的API。它是建立在Java邮件API之上的,它的目标是简化。
-
SimpleEmail - 这个类用于发送基本的基于文本的电子邮件。
-
MultiPartEmail - 该类用于发送多部分消息。这允许带有附件的文本消息或附件或附件。
-
HtmlEmail - 这个类用于发送HTML格式的电子邮件。它具有作为多部分电子邮件的所有功能,可以方便地添加附件。它还支持嵌入的图像。
-
ImageHtmlEmail - 这个类用于发送带有内联图像的HTML格式的电子邮件。它具有HtmlEmail的所有功能,但是将所有的图像引用转换为内联图像。
-
EmailAttachment - 这是一个简单的容器类,可以方便地处理附件。它适用于多部分电子邮件和HtmlEmail的实例。
Commons Email 的配置
这个的基础配置很简单,就一个Maven依赖项,如下:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
Commons Email 的用法
开通POP3/SMTP服务
在使用该Maven依赖发送电子邮件之前,我们先确保发送的电子邮件提供方已经开通了“POP3/SMTP服务”,如果没有开通的话可以参考下面的方法。
我这里是以网易邮箱为例来进行的说明。
首先是登录电子邮箱首页,如下:

找到图示的【设置】按钮,点击后在弹出的下拉列表框中选择“POP3/SMTP/IMAP”选项。

在弹出的页面中,选中“ POP3/SMTP服务”复选框,点击图示的【保存】按钮即可。

发送电子邮件源码
Mail源码:
package com.lyc.email;
import lombok.*;
import java.util.Set;
@Getter
@Setter
@Builder
public class Mail {
private String subject;
private String message;
private Set<String> receivers;
}
MailAction源码:
package com.lyc.email;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
@Slf4j
public class MailAction {
public static boolean send(Mail mail) {
//发送方电子邮件地址
String from = "zhangzhenyihi@163.com";
//发送的端口号
int port = 25;
//发送的主机地址(需要开通pop3服务)
String host = "smtp.163.com";
//发送方电子邮件密码
String pass = "password";
//发送方昵称
String nickname = "zhangzhenyi";
HtmlEmail email = new HtmlEmail();
try {
email.setHostName(host);
email.setCharset("UTF-8");
for (String str : mail.getReceivers()) {
email.addTo(str);
}
email.setFrom(from, nickname);
email.setSmtpPort(port);
email.setAuthentication(from, pass);
email.setSubject(mail.getSubject());
email.setMsg(mail.getMessage());
email.send();
log.info("{} 发送邮件到 {}", from, StringUtils.join(mail.getReceivers(), ","));
return true;
} catch (EmailException e) {
log.error(from + "发送邮件到" + StringUtils.join(mail.getReceivers(), ",") + "失败", e);
return false;
}
}
}
测试代码MailTest源码:
package com.lyc.mail;
import com.lyc.email.Mail;
import com.lyc.email.MailAction;
import org.junit.Assert;
import org.junit.Test;
import java.util.HashSet;
import java.util.Set;
public class MailTest {
@Test
public void test(){
//添加接收者电子邮件地址
Set<String> receivers = new HashSet<String>();
receivers.add("1078689276@qq.com");
Mail mail = Mail.builder()
.subject("异常信息标题") //发送的电子邮件标题
.message("异常信息内容") //发送的电子邮件内容
.receivers(receivers).build();
//断言发送的电子邮件是否成功
Assert.assertEquals(true,MailAction.send(mail));
}
}
测试的结果:

全部评论 (0)
还没有任何评论哟~
