java发送邮件工具类
来源:互联网 发布:sql批量修改字段值 编辑:程序博客网 时间:2024/04/30 17:07
准备工作:
1:163邮箱账号,用来发送邮件
账号注册好后,需要设置授权密码,程序需要使用这个密码来发送邮件
2 . jar包
需要两个jar mail.jar commons-email-1.4.jar
链接如下:
http://pan.baidu.com/s/1i55ckRz
maven配置如下:
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version></dependency><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.4</version></dependency>
3.代码
其中邮件的密码已经屏蔽,要使用需要自己申请163账号并设置授权密码
Mail.java 配置信息
package cn.wtzvae.util.mail;import java.io.Serializable;/** * * @author LiuJinan * @version V1.0.0 2016年11月23日 * @version V1.1.0 2016年12月26日 */@SuppressWarnings("serial")class Mail implements Serializable{ public final static String ENCODEING = "UTF-8"; private final static String HOST = "smtp.163.com"; private final static String SENDER = "jinanvae@163.com"; //发送人邮箱 private final static String NAME = "昵称"; //发件人昵称 private final static String PASSWORD = "授权密码"; //密码 private final static String SUBJECT = "标题"; //邮件标题 private final static String USERNAME = "jinanvae@163.com"; //发送人邮箱 /** * 服务器地址 */ private String host = this.HOST; /** * 发件人邮箱 */ private String sender = this.SENDER; /** * 收件人 */ private String receiver; /** * 发件人昵称 */ private String name = this.NAME; /** * 发件人账号 */ private String username = this.USERNAME; /** * 发件人密码 */ private String password = this.PASSWORD; /** * 主题 */ private String subject = this.SUBJECT; /** * 发送的信息 */ 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; }}
MailUtil.java
package cn.wtzvae.util.mail;import java.util.regex.Pattern;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;/** * * @author LiuJinan * @version V1.0.0 2016年11月23日 * @version V1.1.0 2016年12月26日 */public class MailUtil { /** * 发送邮件 * @author LiuJinan * @time 2016-11-23 上午9:10:22 * @param to 收件人 * @param title 标题 * @param message 发送内容 * @return */ public static boolean send(String to, String title, String message) throws MailException{ if(to==null || to.equals("")){ throw new MailException(MailError.MAIL_NULL_RECEIVER); } if(title==null || title.equals("")){ throw new MailException(MailError.MAIL_NULL_SUBJECT); } if(message==null || message.equals("")){ throw new MailException(MailError.MAIL_NULL_MESSSAGE); } Mail mail = new Mail(); mail.setReceiver(to); mail.setSubject(title); mail.setMessage(message); // 发送email HtmlEmail email = new HtmlEmail(); try { 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()); // 发送 String result = email.send(); return true; } catch (EmailException e) { // e.printStackTrace(); // logger.info(mail.getSender() + " 发送邮件到 " + mail.getReceiver() // + " 失败"); return false; } }
异常类
package cn.wtzvae.util.mail;/** * * @author LiuJinan * @version V1.0.0 2016年11月23日 * @version V1.1.0 2016年12月26日 */public class MailException extends RuntimeException { /** * */ private static final long serialVersionUID = 1L; public MailException(Object msg) { super(msg.toString()); }}
异常码
package cn.wtzvae.util.mail;/** * * @author LiuJinan * @version V1.0.0 2016年11月23日 * @version V1.1.0 2016年12月26日 */public enum MailError { /** * 收件人为空 */ MAIL_NULL_RECEIVER("收件人为空。"), /** * 标题为空 */ MAIL_NULL_SUBJECT("标题为空。"), /** * 发送内容为空 */ MAIL_NULL_MESSSAGE("发送内容为空。"), /** * 邮箱格式错误 */ MAIL_ERROR_MAILE("格式错误"), private String msg; MailError(String msg){ this.msg = msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String toString(){ return this.msg; }}
4.使用
使用很简单。
看下面的例子
收到的邮件如下:
代码下载链接:
http://pan.baidu.com/s/1slEpt3B
0 0
- Java发送邮件工具类
- java邮件发送工具类
- java 邮件发送工具类
- java发送邮件工具类
- Java发送邮件工具类
- java发送邮件工具类
- java发送邮件工具类
- java发送邮件工具类
- java工具类------邮件发送
- JAVA 发送邮件工具类
- java发送邮件工具类
- [JAVA工具类]--邮件发送
- java邮件发送工具
- java Mail 发送邮件 工具类
- java实现邮件发送功能工具类
- Java-工具类之发送邮件
- Java之工具类发送邮件
- java代码发送邮件工具类
- 【好的做事习惯】六、团队合作
- phpadmin安装
- sockaddr_in详解
- C语言结构体与共用体(3)
- mysql qps tps一般多大
- java发送邮件工具类
- 复旦FM1208 CPU卡调试(转)
- Cstring Unicode转非Unicode
- 【Pandas-Cookbook】03:噪音数据处理
- error: command 'gcc' failed with exit status 1
- 判断当前设备是PC Android或者iOS
- 跟我学STM32107RC--- STM32中的跑马灯实验总结
- 02为什么要引入成员函数?
- 网络分层协议基础解析