简单的发送邮件功能,下次可以直接使用。
首先是依赖
<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了。可以拿去直接使用。包名没有粘贴,这个直接加上就好。