一:首先需要导入三个jar包:
activation-1.1.1.jar
commons-email-1.0.jar
mail-1.5.0-b01.jar
二:创建一个Mail实体类:
package com.xxx.util.emailUtil;import java.io.Serializable;public class Mail implements Serializable { public static final String ENCODEING = "UTF-8"; private String host; // 服务器地址 private String sender; // 发件人的邮箱 private String receiver; // 收件人的邮箱 private String name; // 发件人昵称 private String username; // 账号 private String password; // 密码 private String subject; // 主题 private String message; // 信息(支持HTML) 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 static String getEncodeing() { return ENCODEING; } }
三:创建发送邮件的工具类
package com.diannuo.util.emailUtil;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;import org.apache.log4j.Logger;public class MailUtil { protected final Logger logger = Logger.getLogger(getClass()); public boolean send(Mail mail) { // 发送email HtmlEmail email = new HtmlEmail(); try { // 这里是SMTP发送服务器的名字:163的如下:"smtp.163.com" email.setHostName(mail.getHost()); // 字符编码集的设置 email.setCharset(Mail.ENCODEING); // 收件人的邮箱 email.addTo(mail.getReceiver()); // 发送人的邮箱 email.setFrom(mail.getSender(), mail.getName()); // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码 email.setAuthentication(mail.getUsername(), mail.getPassword()); // 要发送的邮件主题 email.setSubject(mail.getSubject()); // 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签 email.setMsg(mail.getMessage()); // 发送 email.send(); if (logger.isDebugEnabled()) { logger.error(mail.getSender() + " 发送邮件到 " + mail.getReceiver()); } return true; } catch (EmailException e) { e.printStackTrace(); logger.error(mail.getSender() + " 发送邮件到 " + mail.getReceiver() + " 失败"); return false; } } }
四:创建SendMail类配置邮箱服务器等参数,作为发送邮件的入口
package com.diannuo.util.emailUtil;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;import org.apache.log4j.Logger;/** * 发送邮件的工具类 * @author Administrator * */public class SendMail { public static final Logger logger = Logger.getLogger(SendMail.class); public static void main(String[] args) { SendMail.doSendMail("邮件测试", "2016年11月4日 09:23:30"); } /** * 发送邮件的入口方法 * @param title 邮件标题 * @param msg 邮件内容 */ public static void doSendMail(String title,String msg) { Properties p = new Properties(); InputStream is = SendMail.class.getResourceAsStream("/config.properties"); try { p.load(is); } catch (IOException e) { logger.error("加载邮件配置信息异常",e); } Mail mail = new Mail(); mail.setHost(p.getProperty("host")); // 设置邮件服务器,如果不用163的,自己找找看相关的 mail.setSender(p.getProperty("sender")); // 发件人 mail.setReceiver(p.getProperty("receiver")); // 收件人 mail.setUsername(p.getProperty("userName")); // 登录账号,一般都是和邮箱名一样 mail.setPassword(p.getProperty("password")); // 发件人邮箱的登录密码 mail.setSubject(title); // 邮件标题 mail.setMessage(msg); // 邮件内容 new MailUtil().send(mail); }}
配置文件config.properties如下:
#host地址,邮件服务器
host=smtp.163.com #留言功能邮件发件人 sender=xxxx@163.com #邮件收件人 receiver=xxxx@qq.com #邮箱登录名 userName=xxxxx@163.com #邮箱密码 password=xxxx