MailUtil.java


package com.lucky.base.common.util; import com.zuche.framework.utils.PropertiesReader;
import org.apache.commons.mail.HtmlEmail; import javax.mail.internet.InternetAddress;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties; /**
* 发送邮件
* Created by dongdong.shi@ucarinc.com on 2017/7/29.
*/
public final class MailUtil { /**
* 邮件配置
*/
private static final Properties CONFIG = PropertiesReader.getProperties("mail");
/**
* 默认编码
*/
private static final String UTF8 = "utf-8";
/**
* 域名
*/
private static String DOMAIN = CONFIG.getProperty("mail.domain");
/**
* 发送服务器地址
*/
private static String HOST = CONFIG.getProperty("mail.host");
/**
* 发送端口
*/
private static String PORT = CONFIG.getProperty("mail.port");
/**
* 用户名
*/
private static String USER = CONFIG.getProperty("mail.user");
/**
* 密码
*/
private static String PASSWORD = CONFIG.getProperty("mail.password");
/**
* 发送者
*/
private static String SENDER = CONFIG.getProperty("mail.sender"); /**
* 获取邮件domain
* @return 返回domain
*/
public static String getMailDomain() {
return DOMAIN;
} /**
* 获取admin的邮箱
* @return admin邮箱地址
*/
public static String getAdminMail() {
return USER+"@"+DOMAIN;
} /**
* 发送邮件
* @param receives 收件人,多个收件人以;隔开
* @param subject 邮件主题
* @param msg 邮件内容
* @throws Exception 发送邮件异常
*/
public static void send(String receives, String subject, String msg) throws Exception {
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setHostName(HOST);
htmlEmail.setSmtpPort(Integer.parseInt(PORT));
htmlEmail.setAuthentication(USER, PASSWORD);
htmlEmail.setFrom(SENDER);
htmlEmail.setTo(getSendAddressList(receives));
htmlEmail.setCharset(UTF8);
htmlEmail.setSubject(subject);
htmlEmail.setMsg(msg);
htmlEmail.send();
} /**
* 格式化邮件内容
* @param template 邮件模板
* @param args 参数
* @return 返回实际的邮件内容
*/
public static String format(String template, String[] args) {
MessageFormat format = new MessageFormat(template);
return format.format(args);
} /**
* 组装收件人
* @param receives 收件人
* @return 真实的收件人地址
* @throws Exception 拼装邮件地址异常
*/
private static List<InternetAddress> getSendAddressList(String receives) throws Exception {
List<InternetAddress> addressList = new ArrayList<InternetAddress>();
String[] tokens = receives.split(";");
for(String address : tokens) {
addressList.add(new InternetAddress(address));
}
return addressList;
}
}
#配置文件#
mail.domain=luckycoffee.com
mail.host=mail.luckycoffee.com
mail.port=25
mail.user=sysadmin
mail.password=lucky_admin_2017
mail.sender=sysadmin@luckycoffee.com

mail.properties


mail.domain=luckycoffee.com
mail.host=mail.luckycoffee.com
mail.port=25
mail.user=sysadmin
mail.password=lucky_admin_2017
mail.sender=sysadmin@luckycoffee.com

基于apache-commons-email1.4 邮件发送的更多相关文章

  1. 使用Apache Commons Email 发生邮件

    Apache Commons Email的Maven依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-e ...

  2. 邮件发送工具类 SendMail.java

    package com.util; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.Simp ...

  3. Spring 邮件发送

      前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender 关于邮件服务器的设置就不在这里说了,直接去QQ邮箱 ...

  4. Java系列--第八篇 基于Maven的SSME之定时邮件发送

    关于ssme这个我的小示例项目,想做到麻雀虽小,五脏俱全,看到很多一些web都有定时发送邮件的功能,想我ssme也加入一下这种功能,经查询相关文档,发现spring本身自带了一个调度器quartz,下 ...

  5. 【commons】邮件发送工具——commons-email

    一.概述 直接通过官网的overview进行了解,一句话概括如下: Commons Email aims to provide a API for sending email. It is built ...

  6. 基于Vue、Springboot网站实现第三方登录之QQ登录,以及邮件发送

    基于Vue.Springboot实现第三方登录之QQ登录 前言 一.前提(准备) 二.QQ登录实现 1.前端 2.后端 1.application.yml 和工具类QQHttpClient 2.QQL ...

  7. java apache commons HttpClient发送get和post请求的学习整理(转)

    文章转自:http://blog.csdn.net/ambitiontan/archive/2006/01/06/572171.aspx HttpClient 是我最近想研究的东西,以前想过的一些应用 ...

  8. AspNetCore 目前不支持SMTP协议(基于开源组件开发邮件发送,它们分别是MailKit 和 FluentEmail )

    net所有的功能都要重新来一遍,集成众多类库,core任重道远,且发展且努力!! 我们都知道,很多的邮件发送都是基于这个SMTP协议,但现在的.net core对这方面还不太支持,所以我们选择这两个组 ...

  9. 基于javaMail的邮件发送--excel作为附件

    基于JavaMail的Java邮件发送 Author xiuhong.chen@hand-china.com Desc 简单邮件发送 Date 2017/12/8 项目中需要根据物料资质的状况实时给用 ...

随机推荐

  1. Vue_(基础)Vue中的指令

    Vue.js中文文档 传送门 Vue的指令:其实就是单个JavaScript表达式,一般来说是带有v-前缀   Vue指令: v-model:数据双向绑定: v-text:以纯文本方式显示数据: v- ...

  2. 回调函数(callback) python / c++ 演示

    什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是 ...

  3. linux IP 网关配置

    1. 关闭selinux 与防火墙 在虚拟机装好之后之后,先关闭selinux与防火墙 关闭selinx,重启生效 vim /etc/selinux/config 修改 SELINUX=disable ...

  4. JVM 监控工具——jstack

    [参考文章]:jstack 命令使用经验总结 1. 简介 jstack主要用于生成java虚拟机当前时刻的线程快照. 线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合, 主要目的是定位 ...

  5. Unexpected ConvertTo-Json results? Answer: it has a default -Depth of 2

    Unexpected ConvertTo-Json results? Answer: it has a default -Depth of 2 问题 Why do I get unexpected C ...

  6. Oracle 表空间扩容

    1 系统表空间扩容 注:表空间监测或扩容方式很多,这里只提供一种方便使用的方法 1)查询SQL 注:需要输入百分比,如:90,就可查出使用率超过90%的表空间, with t as (select b ...

  7. jenkins安装以及自由风格的项目搭建(jenkins+tomcat+svn)

    jenkins提供了直接通过war包启动以及通过tomcat容器启动的启动方法,这里使用tomcat来启动jenkins,这也是我觉得更稳定的方法. 提前搭建好tomcat环境,这里我使用的版本是:A ...

  8. py matplotlib 多个figure同时画多个图以及多个图例多个折线图

    图例负号乱码的问题 import numpy as np  import matplotlib.pyplot as pltimport  matplotlibplt.rcParams['axes.un ...

  9. tensorflow二进制文件读取与tfrecords文件读取

    1.知识点 """ TFRecords介绍: TFRecords是Tensorflow设计的一种内置文件格式,是一种二进制文件,它能更好的利用内存, 更方便复制和移动,为 ...

  10. 八十一:memcached之telnet操作memcached

    先打开telnet服务否则会报错 确认memcached服务已启动 telnet ip 端口 连上以后敲一下回车 常用的命令: 1.set:在memcached中添加一个key->value,如 ...