Spring框架发送Email

Spring框架发送Email

package com.eqifa.common.mail;

import com.eqifa.emar.common.util.Config;

import java.io.File;

import java.util.Hashtable;

import java.util.Enumeration;

import java.util.Properties;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.springframework.mail.javamail.JavaMailSenderImpl;

import org.springframework.mail.javamail.MimeMessageHelper;

/**

* 邮件发送类,支持文本和HTML格式,多个附件

* @author zhoutao

* @version 1.0

*/

public class SendMail {

  private Log log = LogFactory.getLog(getClass());

  private JavaMailSenderImpl javaMailSender;

private MimeMessageHelper mimeMessageHelper;

//邮件服务器信息

private String host = Config.getString("mail.host");

private String protocol = Config.getString("mail.protocol");

private String port = Config.getString("mail.port");

//邮件服务器验证信息

private String userName = Config.getString("mail.userName");

private String password = Config.getString("mail.password");

private String ismailAuth = Config.getString("mail.auth");

public static void main(String args[]){

  try {

 

    SendMail sendMail = new SendMail();

    sendMail.sendMailAsText("chenhui","chen.hui.12@163.com ",new String[]{"zhoutao"},new String[]{"zhoutao_bj@163.com"},null,"test","test");

  }catch (Exception e) {

    e.printStackTrace();

  }

}

/**

* 使用默认参数发送邮件

*/

public SendMail() throws Exception {

  this(true);

}

/**

* 使用发送邮件是否带附件

*/

private SendMail(boolean isMultipart) throws Exception {

  javaMailSender = new JavaMailSenderImpl();

  javaMailSender.setHost(host);

  javaMailSender.setProtocol(protocol);

  javaMailSender.setPort(Integer.parseInt(port));

if (ismailAuth.equals("true")) {//如果需要服务器需要验证

  javaMailSender.setUsername(userName);

javaMailSender.setPassword(password);

  Properties p = new Properties();

  p.put("mail.smtp.auth",ismailAuth);

  javaMailSender.setJavaMailProperties(p);

}

  mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(),isMultipart,"GB2312");

}

/**

* 发送普通文本邮件,不带附件

* @param fromTitle 发件人昵称

* @param mailFrom 发件人地址

* @param toTitles 收件人昵称

* @param mailTos 收件人地址

* @param mailCCs 抄送地址

* @param subject 主题

* @param strText 邮件内容

*/

public void sendMailAsText(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText)

  throws Exception {

  sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, null);

}

/**

* 发送html格式邮件,不带附件

* @param fromTitle 发件人昵称

* @param mailFrom 发件人地址

* @param toTitles 收件人昵称

* @param mailTos 收件人地址

* @param mailCCs 抄送地址

* @param subject 主题

* @param strText 邮件内容

*/

public void sendMailAsHtml(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText)

  throws Exception{

  sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, null);

}

/**

* 发送文本邮件,带附件

* @param fromTitle 发件人昵称

* @param mailFrom 发件人地址

* @param toTitles 收件人昵称

* @param mailTos 收件人地址

* @param mailCCs 抄送地址

* @param subject 主题

* @param strText 邮件内容

* @param fileTable 附件表key为文件名value为File对象

*/

public void sendMailAsTextHasAtts(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText, Hashtable fileTable)

  throws Exception {

  sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, fileTable);

}

/**

* 发送html邮件,带附件

* @param fromTitle 发件人昵称

* @param mailFrom 发件人地址

* @param toTitles 收件人昵称

* @param mailTos 收件人地址

* @param mailCCs 抄送地址

* @param subject 主题

* @param strText 邮件内容

* @param fileTable 附件表key为文件名value为File对象

*/

public void sendMailAsHtmlHasAtts(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText, Hashtable fileTable)

  throws Exception {

  sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, fileTable);

}

/**

* 发送邮件

* @param fromTitle 发件人昵称

* @param mailFrom 发件人地址

* @param toTitles 收件人昵称

* @param mailTos 收件人地址

* @param mailCCs 抄送地址

* @param subject 主题

* @param strText 邮件内容

* @param html 邮件格式

* @param fileTable 附件表key为文件名value为File对象

*/

private void sendMail(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText, boolean html, Hashtable fileTable)

  throws Exception {

  if (null != mailTos) {

    if (null == toTitles) {

      mimeMessageHelper.setTo(mailTos);

    } else {

      for (int i=0; i<mailTos.length; i++) {

        if (i > toTitles.length || toTitles.length == 0) {

          mimeMessageHelper.addTo(mailTos[i]);

        } else {

          mimeMessageHelper.addTo(mailTos[i],toTitles[i]);

        }

      }

    }

  }

  if (null != mailFrom) {

    if (null != fromTitle) {

      mimeMessageHelper.setFrom(mailFrom,fromTitle);

    } else {

      mimeMessageHelper.setFrom(mailFrom);

    }

  }

  if (null != mailCCs) {

    mimeMessageHelper.setCc(mailCCs);

  }

  if (null != subject) {

    mimeMessageHelper.setSubject(subject);

    }

  if (null != strText) {

    if (html) {

      mimeMessageHelper.setText(strText, true);

    } else {

      mimeMessageHelper.setText(strText, false);

    }

    }

  if (null != fileTable) {

    Enumeration e = fileTable.keys();

    while (e.hasMoreElements()) {

      String key = (String)e.nextElement();

      File value = (File)fileTable.get(key);

      mimeMessageHelper.addAttachment(key, value);

    }

  }

  javaMailSender.send(mimeMessageHelper.getMimeMessage());

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值