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
原创粉丝点击