htmlemail java_Java HtmlEmail 邮件发送的简单实现代码

java 项目中常常回遇到发送邮件

java 发送邮件有几种,今天先给大家介绍用 htmlemail 来发送邮件,我这里是用 maven 来搭建的

htmlemail 可以抄带html

首先 需要导入jar 包

org.apache.commons

commons-email

1.4

然后我们来建立一个发送邮件的 mail 类 javabean

public class mail implements serializable{

private static final long serialversionuid = -6390720891150157552l;

public static final string encodeing = "utf-8";

// 服务器地址

private string host;

// 发件人的邮箱

private string sender;

// 发件人昵称

private string name;

// 账号

private string username;

// 密码

private string password;

// 收件人的邮箱

private string receiver;

// 收件人的名称

private string receivername;

// 收件人的邮箱(key)和名称(value)

private map to;

// 抄送人的邮箱(key)和名称(value)

private map cc;

// 秘密抄送人的邮箱(key)和名称(value)

private map bcc;

// 主题

private string subject;

// 信息(支持html)

private string message;

public string gethost() {

return host;

}

public void sethost(string host) {

this.host = host;

}

public string getsender() {

return sender;

}

public void setsender(string sender) {

this.sender = sender;

}

public string getreceiver() {

return receiver;

}

public void setreceiver(string receiver) {

this.receiver = receiver;

}

public string getname() {

return name;

}

public void setname(string name) {

this.name = name;

}

public string getusername() {

return username;

}

public void setusername(string username) {

this.username = username;

}

public string getpassword() {

return password;

}

public void setpassword(string password) {

this.password = password;

}

public string getsubject() {

return subject;

}

public void setsubject(string subject) {

this.subject = subject;

}

public string getmessage() {

return message;

}

public void setmessage(string message) {

this.message = message;

}

public string getreceivername() {

return receivername;

}

public void setreceivername(string receivername) {

this.receivername = receivername;

}

public map getto() {

return to;

}

public void setto(map to) {

this.to = to;

}

public map getcc() {

return cc;

}

public void setcc(map cc) {

this.cc = cc;

}

public map getbcc() {

return bcc;

}

public void setbcc(map bcc) {

this.bcc = bcc;

}

}

然后再来创建一个发送邮件的工具类 mailutil

public class mailutil {

public boolean send(mail mail){

htmlemail email = new htmlemail();

try {

// 这里是smtp发送服务器的名字:163的如下:"smtp.163.com"

email.sethostname(mail.gethost());

// 字符编码集的设置

email.setcharset(mail.encodeing);

// 发送人的邮箱

email.setfrom(mail.getsender(), mail.getname());

// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码

email.setauthentication(mail.getusername(), mail.getpassword());

// 设置收件人信息

setto(email, mail);

// 设置抄送人信息

setcc(email, mail);

// 设置密送人信息

setbcc(email, mail);

// 要发送的邮件主题

email.setsubject(mail.getsubject());

// 要发送的信息,由于使用了htmlemail,可以在邮件内容中使用html标签

email.sethtmlmsg(mail.getmessage());

// 发送

email.send();

if (log.isdebugenabled()) {

log.info(mail.getsender() + " 发送邮件到 " + mail.getreceiver());

}

return true;

} catch (exception e) {

e.printstacktrace();

log.info(mail.getsender() + " 发送邮件到 " + mail.getreceiver() + " 失败");

return false;

}

}

/**

* 设置收件人信息

*

* @param email

* @param mail

* @throws emailexception

*/

private void setto(htmlemail email, mail mail) throws emailexception{

// 收件人不为空

if (stringutils.isnotempty(mail.getreceiver())) {

// 收件人名称不为空

if (stringutils.isnotempty(mail.getreceivername())) {

email.addto(mail.getreceiver(), mail.getreceivername());

} else {

email.addto(mail.getreceiver());

}

}

// 收件人 map 不为空

if (mail.getto() != null) {

for (map.entry entry : mail.getto().entryset()) {

// 收件人名称不为空

if (stringutils.isnotempty(entry.getvalue())) {

email.addto(entry.getkey(), entry.getvalue());

} else {

email.addto(entry.getkey());

}

}

}

}

/**

* 设置抄送人信息

*

* @param email

* @param mail

* @throws emailexception

*/

private void setcc(htmlemail email, mail mail) throws emailexception{

// 抄送人 map 不为空

if (mail.getcc() != null) {

for (map.entry entry : mail.getcc().entryset()) {

// 抄送人名称不为空

if (stringutils.isnotempty(entry.getvalue())) {

email.addcc(entry.getkey(), entry.getvalue());

} else {

email.addcc(entry.getkey());

}

}

}

}

/**

* 设置密送人信息

*

* @param email

* @param mail

* @throws emailexception

*/

private void setbcc(htmlemail email, mail mail) throws emailexception{

// 密送人 map 不为空

if (mail.getbcc() != null) {

for (map.entry entry : mail.getbcc().entryset()) {

// 密送人名称不为空

if (stringutils.isnotempty(entry.getvalue())) {

email.addbcc(entry.getkey(), entry.getvalue());

} else {

email.addbcc(entry.getkey());

}

}

}

}

}

写到这里,大概也就差不多了,万里长征只有最后一步了

测试,测试,测试

这里编写一个 junit 方法来测试

@test

public void sendmail(){

mail mail = new mail();

// 设置邮件服务器

mail.sethost("smtp.exmail.qq.com");

// 发件人邮件地址

mail.setsender("chenhao@kezhanbang.cn");

// 发件人名称

mail.setname("java.小学生");

// 登录账号,一般都是和邮箱名一样吧

mail.setusername("chenhao@kezhanbang.cn");

// 发件人邮箱的登录密码

mail.setpassword("xxxxxxxx");

// 接收人

mail.setreceiver("huntertochen@163.com");

mail.setreceivername("我要女票");

mail.setsubject("万里长征最后一步测试");

string html = "";

html += "

";

html += "

insert title here";

html += "

";

html += "

";

html += "

我来看看邮件是否发送成功呢


";

html += "

下面是通过该协议可以创建一个指向电子邮件地址的超级链接,通过该链接可以在internet中发送电子邮件


";

html += "send mail";

html += "

";

html += "";

mail.setmessage(html);

new mailutil().send(mail);

}

赶紧登录邮箱看看吧

ae69b5424debc07c84d8170e93624caf.png

来看看这里 主题 内容,发送人名称和收件人名称是否和代码写的一样呢,如果一样的话,恭喜你成功啦

到这,其实发送邮件就算完了!!!

这里在啰嗦最后一个小知识点mailto

mailto: 通过该协议可以创建一个指向电子邮件地址的超级链接,通过该链接可以在internet中发送电子邮件

我们点击 send mail 会打开你邮件客户端一个发送界面,如果你有写抄带信息,也会给你带上

c9abfcc6d6d8b2ce74dce561f2411ec6.png

以上这篇java htmlemail 邮件发送的简单实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页