简单的发送邮件功能,下次可以直接使用。
首先是依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
下面是邮件实体类。
import java.io.Serializable;
/**
* Mail属性实体
*/
@SuppressWarnings("serial")
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)
......省略get,set
}
在然后就是工具类
import java.util.regex.Matcher;
import java.util.regex.Pattern;
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());
private 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.debug(mail.getSender() + " 发送邮件到 " + mail.getReceiver());
}
return true;
} catch (EmailException e) {
logger.error(mail.getSender() + " 发送邮件到 " + mail.getReceiver()
+ " 失败",e);
return false;
}
}
public boolean sendDirectly(String receiver,String subject,String content){
Mail mail = new Mail();
mail.setHost("smtp.dm.aliyun.com"); // 设置邮件服务器,如果不用163的,自己找找看相关的
mail.setSender("省略");//发件人邮箱
mail.setReceiver(receiver); // 接收人
mail.setUsername("省略"); // 邮箱账号
mail.setPassword("省略"); // 邮箱登录密码
mail.setSubject(subject);//主题
mail.setMessage(content);//内容
return send(mail);
}
/**
* Description: 校验邮箱是否合法
* @param email 邮箱
* @return 是否合法
*/
public static boolean validateEmail(String email){
String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern pattern = Pattern.compile(check);
Matcher matcher = pattern.matcher(email);
boolean flag = matcher.matches();
return flag;
}
public static void main(String[] args) {
new MailUtil().sendDirectly("6248493@qq.com","test","test");
System.out.println();
}
}
这样直接就OK了。可以拿去直接使用。包名没有粘贴,这个直接加上就好。