通过HtmlEmail 发送邮件

摘要:
自己撸代码学会了发送邮件。首先必须引进来三个jar包:compile'javax.mail:mail:1.4.7'compile'org.apache.commons:commons-email:1.3.2'compile'javax.activation:activation:1.1'这是我gradle配置文件的配制方法。1.Mail对象里面包含发送邮件的信息importjava.io.Serializable;/***Mail属性实体**@authorshadow**/@SuppressWarningspublicclassMailimplementsSerializable{publicstaticfinalStringENCODEING="UTF-8";privateStringhost;//服务器地址privateStringsender;//发件人的邮箱privateStringreceiver;//收件人的邮箱privateStringname;//发件人昵称privateStringusername;//账号privateStringpassword;//密码privateStringsubject;//主题privateStringmessage;//信息publicStringgetHost(){returnhost;}publicvoidsetHost{this.host=host;}publicStringgetSender(){returnsender;}publicvoidsetSender{this.sender=sender;}publicStringgetReceiver(){returnreceiver;}publicvoidsetReceiver{this.receiver=receiver;}publicStringgetName(){returnname;}publicvoidsetName{this.name=name;}publicStringgetUsername(){returnusername;}publicvoidsetUsername{this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword{this.password=password;}publicStringgetSubject(){returnsubject;}publicvoidsetSubject{this.subject=subject;}publicStringgetMessage(){returnmessage;}publicvoidsetMessage{this.message=message;}}2.发送邮件的工具类importorg.apache.commons.mail.EmailException;importorg.apache.commons.mail.HtmlEmail;importorg.apache.log4j.Logger;/***邮件发送工具实现类**@authorshadow*@create2013/07/12*/publicclassMailUtil{protectedfinalLoggerlogger=Logger.getLogger;publicbooleansend{//发送emailHtmlEmailemail=newHtmlEmail();try{//这里是SMTP发送服务器的名字:163的如下:"smtp.163.com"email.setHostName;//字符编码集的设置email.setCharset;//收件人的邮箱email.addTo;//发送人的邮箱email.setFrom;//如果需要认证信息的话,设置认证:用户名-密码。

今天第一次来上海市虹口图书馆上自习,感觉还是很爽的。自己撸代码学会了发送邮件。啥都不说了,直接撸代码吧!

首先 必须引进来三个jar包:

compile 'javax.mail:mail:1.4.7'
compile 'org.apache.commons:commons-email:1.3.2'
compile 'javax.activation:activation:1.1'
这是我gradle配置文件的配制方法。

1.Mail对象 里面包含发送邮件的信息

importjava.io.Serializable;
/**
 * Mail属性实体
 *
 * @authorshadow
 *
 */
@SuppressWarnings("serial")
public class Mail implementsSerializable {
  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)
  publicString getHost() {
    returnhost;
  }
  public voidsetHost(String host) {
    this.host =host;
  }
  publicString getSender() {
    returnsender;
  }
  public voidsetSender(String sender) {
    this.sender =sender;
  }
  publicString getReceiver() {
    returnreceiver;
  }
  public voidsetReceiver(String receiver) {
    this.receiver =receiver;
  }
  publicString getName() {
    returnname;
  }
  public voidsetName(String name) {
    this.name =name;
  }
  publicString getUsername() {
    returnusername;
  }
  public voidsetUsername(String username) {
    this.username =username;
  }
  publicString getPassword() {
    returnpassword;
  }
  public voidsetPassword(String password) {
    this.password =password;
  }
  publicString getSubject() {
    returnsubject;
  }
  public voidsetSubject(String subject) {
    this.subject =subject;
  }
  publicString getMessage() {
    returnmessage;
  }
  public voidsetMessage(String message) {
    this.message =message;
  }
}

2.发送邮件的工具类

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.log4j.Logger;
/**
 * 邮件发送工具实现类
 *
 * @author shadow
 * @create 2013/07/12
 */
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.debug(mail.getSender() + " 发送邮件到 " + mail.getReceiver());
      }
      return true;
    } catch (EmailException e) {
      e.printStackTrace();
      logger.info(mail.getSender() + " 发送邮件到 " + mail.getReceiver()
          + " 失败");
      return false;
    }
  }
}

3.测试类

/**
 * Created by DELL on 2016/6/19.
 */
public class test {
  public static void main(String[] args) {
    Mail mail = new Mail();
    mail.setHost("smtp.163.com"); // 设置邮件服务器,如果不用163的,自己找找看相关的
    mail.setSender("baizhanshijava@163.com");
    mail.setReceiver("baizhanshijava@163.com"); // 接收人
    mail.setUsername("baizhanshijava@163.com"); // 登录账号,一般都是和邮箱名一样吧
    mail.setPassword("XXXxxxx"); // 发件人邮箱的登录密码  此密码必须是你在邮箱设置打开pop3和SMTP之后设置的密码,否则收不到邮件的
    mail.setSubject("nishishsi");
    mail.setMessage("welcome to china");
    new MailUtil().send(mail);
  }
}

4.总结 :不管怎么说还是有点成就感的。以后每周还是要来图书馆充充电的。

免责声明:文章转载自《通过HtmlEmail 发送邮件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL基本语法总结经验解决Fragment被Replace后仍旧可见的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Guava LoadingCache不能缓存null值

测试的时候发现项目中的LoadingCache没有刷新,但是明明调用了refresh方法了。后来发现LoadingCache是不支持缓存null值的,如果load回调方法返回null,则在get的时候会抛出异常。 通过几个例子开看这个问题: public void test_loadNull() { LoadingCache<String,...

ElasticSearch 问题分析:No data nodes with HTTP-enabled available

环境:ES-5.4.0版本,部署方式:3master node+2client node+3data node 说明:data node和client node都配置了http.enabled: false,程序在写数据时报错:No data nodes with HTTP-enabled available 源码分析: 1 public static...

【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法

在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法。它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...) 在callS...

mailkit库收发邮件

mailkit库用于收发邮件.这个库可以替代C#自带的发邮件库 环境  W10 / VS2017CMMT / MailKit version="2.0.3" "net46"  / MimeKit version="2.0.3" "net46" mailkit使用nuget下载或者到GIT  https://github.com/jstedfast/Mail...

Log4net源码View之Logger解析

  1.简介 Logger是Log4net的三大核心载体之一,搞清楚它的意义很重大。另外两个分别是Appender和Layout。其对应关系为一个Logger对应多个Appender,一个Appender对应一个Layout。 对于Log4net的内部实现,ILogger才是接口(所有日志需要实现的——Interface that all logger...

C#WebBrowser控件使用教程与技巧收集

C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(string urlString, string targetFrameName, byt...