/**
*包名:com.thinkgem.jeesite.test
*描述:package com.thinkgem.jeesite.test;
*/
package com.thinkgem.jeesite.test; import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern; import javax.mail.internet.MimeMessage; import org.apache.commons.mail.HtmlEmail;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper; import com.jjqkkkaa.posp.common.utils.DateUtils; /**
* MailUtilsss.java
* 版权所有(C) 2018 裕福控股有限公司
* 创建:gll
* 时间:2018年2月8日
* 描述:MailUtils
*/
public class MailUtils { private static final String from = "aaaaaaaaa@163.com";
private static final String fromName = "测试公司";
private static final String charSet = "utf-8";
private static final String username = "aaaaaaaa@163.com";
private static final String password = "123456"; private static Map<String, String> hostMap = new HashMap<String, String>();
static {
// 126
hostMap.put("smtp.126", "smtp.126.com");
// qq
hostMap.put("smtp.qq", "smtp.qq.com"); // 163
hostMap.put("smtp.163", "smtp.163.com"); // sina
hostMap.put("smtp.sina", "smtp.sina.com.cn"); // tom
hostMap.put("smtp.tom", "smtp.tom.com"); // 263
hostMap.put("smtp.263", "smtp.263.net"); // yahoo
hostMap.put("smtp.yahoo", "smtp.mail.yahoo.com"); // hotmail
hostMap.put("smtp.hotmail", "smtp.live.com"); // gmail
hostMap.put("smtp.gmail", "smtp.gmail.com");
hostMap.put("smtp.port.gmail", "465");
} public static String getHost(String email) throws Exception {
Pattern pattern = Pattern.compile("\\w+@(\\w+)(\\.\\w+){1,2}");
Matcher matcher = pattern.matcher(email);
String key = "unSupportEmail";
if (matcher.find()) {
key = "smtp." + matcher.group(1);
}
if (hostMap.containsKey(key)) {
return hostMap.get(key);
} else {
throw new Exception("unSupportEmail");
}
} public static int getSmtpPort(String email) throws Exception {
Pattern pattern = Pattern.compile("\\w+@(\\w+)(\\.\\w+){1,2}");
Matcher matcher = pattern.matcher(email);
String key = "unSupportEmail";
if (matcher.find()) {
key = "smtp.port." + matcher.group(1);
}
if (hostMap.containsKey(key)) {
return Integer.parseInt(hostMap.get(key));
} else {
return 25;
}
} /**
* 发送普通邮件
*
* @param toMailAddr
* 收信人地址
* @param subject
* email主题
* @param message
* 发送email信息
*/
public static void sendCommonMail(String toMailAddr, String subject,
String message) {
HtmlEmail hemail = new HtmlEmail();
try {
hemail.setHostName(getHost(from));
hemail.setSmtpPort(getSmtpPort(from));
hemail.setCharset(charSet);
hemail.addTo(toMailAddr);
hemail.setFrom(from, fromName);
hemail.setAuthentication(username, password);
hemail.setSubject(subject);
hemail.setMsg(message);
hemail.send();
System.out.println("email send true!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("email send error!");
} } public static void main(String[] args) {
try {
sendInlineMail();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // 发送带内嵌文件的HTML格式邮件
public static void sendInlineMail() throws Exception {
String smtp = "smtp";
String host = "smtp.163.com";
String sslIs ="true";
String authIs = "true";
String userName = "aa@163.com";
String password = "aa#"; // spring提供的邮件实现类
JavaMailSenderImpl send = new JavaMailSenderImpl();
Properties prop = new Properties();
prop.setProperty("mail.transport.protocol", smtp); // 设置邮件发送协议
prop.setProperty("mail.host", host); // 邮件服务器地址
prop.setProperty("mail.smtps.ssl.enable", sslIs); // 邮件ssl验证
prop.setProperty("mail.smtp.auth", authIs); // 邮件服务身份验证 send.setUsername(userName); // 设置用户名
send.setPassword(password); // 设置密码
send.setJavaMailProperties(prop); MimeMessage msg = send.createMimeMessage();
// 指定HTML编码,参数true表示为multipart
MimeMessageHelper helper = new MimeMessageHelper(msg, true, "UTF-8");
helper.setFrom(userName); // 发送者邮箱
helper.setTo("800@163.com"); // 接收者邮箱
// helper.setCc(CC_MAIL); // 抄送邮箱
// helper.setBcc(BCC_MAIl); // 密送邮箱
helper.setSentDate(new Date()); // 发送日期
helper.setSubject("工资条(" + DateUtils.getDate("yyyy-MM-dd HH:mm:ss")
+ ")");
String html = "<font size='5' color='red'>HTML格式测试成功!</font>";
helper.setText(html, true); // 邮件内容,参数true表示是html代码
send.send(msg); // 发送邮件
} }

  

MailUtils的更多相关文章

  1. 测试MailUtils,作用是发邮件

    package cn.itcast.test; import java.io.IOException; import javax.mail.MessagingException; import jav ...

  2. javaWeb开发小工具---MailUtils及其单元测试

    本次介绍的是,在javaWeb开发中,我们不免会遇到发送邮件的需求,比如:用户注册账号,需要激活登录,以及服务器定期向会员发送礼品信息等.所以参考有关资料,写了这个MailUtils工具类. 1.Ma ...

  3. 01_JavaMail_05_创建邮件工具类MailUtils等方便发送邮件

    [工程截图] [代码实现] [Mail.java] package com.Higgin.Utils; import java.util.ArrayList; import java.util.Lis ...

  4. 利用工具MailUtils实现邮件的发送,遇到的大坑,高能预警!!

    java实现邮件的发送依赖的jar包有两个:mail.jar和activation.jar,我也找到了一个工具包:itcast-tools-1.4.jar,实现原理大家可以查看源码,先放出资源链接 h ...

  5. MailUtils类:用于发送激活邮件

    该类用于发送激活邮件 package com.itheima.utils; import java.util.Properties; import javax.mail.Authenticator; ...

  6. springboot email 中常量值 配置 mailUtils

    列如:邮件配置: application-test.properties #################Email config start############################ ...

  7. MailUtils 测试邮件是否发送

    import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail ...

  8. [ERROR] /D:/IDEA文件/travel/src/main/java/cn/itcast/travel/util/MailUtils.java:[1,1] 非法字符: '\ufeff'

    报错: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (defau ...

  9. SSH实战 · JAVA发送邮件相关

    发送激活邮件 电子邮箱:邮件服务器上的一块空间: 邮件服务器:类比于web服务器(tomcat),有相应的服务器软件: 邮件协议:大公司发送和接收服务器分开,也可以都用一个服务器.           ...

随机推荐

  1. IO操作之ObjectInputStream与ObjectOutputStream

    之前写过DataInputStream和DataOutputStream,使用这两个类可以对java基本数据类型进行序列化和反序列化. 本篇再来两个新东西:ObjectInputStream,Obje ...

  2. Angular JS - 1 - 环境准备

    1.webstorm 下载安装 webstorm 同 intellij IDEA  一样智能好用~ 智能的同时,比较费内存 2. chrome插件安装 按照下图,打开扩展程序,选择开发者模式: 下载n ...

  3. k-近邻算法(kNN)完整代码

    from numpy import *#科学计算包 from numpy import tile from numpy import zeros import operator #运算符模块 impo ...

  4. C#编写ActiveX控件

    用C#编写ActiveX控件 http://www.cnblogs.com/homer/archive/2005/01/04/86473.html http://www.cnblogs.com/hom ...

  5. 【Java架构:持续交付】一篇文章搞掂:Jenkins

    一.安装 1.使用yum本地安装 1.1.使用yum安装JDK a.检查系统是否有安装open-jdk rpm -qa |grep java rpm -qa |grep jdk rpm -qa |gr ...

  6. java并发编程笔记(八)——死锁

    java并发编程笔记(八)--死锁 死锁发生的必要条件 互斥条件 进程对分配到的资源进行排他性的使用,即在一段时间内只能由一个进程使用,如果有其他进程在请求,只能等待. 请求和保持条件 进程已经保持了 ...

  7. 用 Flask 来写个轻博客 (27) — 使用 Flask-Cache 实现网页缓存加速

    目录 目录 前文列表 扩展阅读 Flask-Cache 应用 Flask-Cache 实现视图函数缓存 缓存无参数的普通函数 缓存带参数的普通函数 缓存无动态参数的视图函数 缓存带动态参数的视图函数 ...

  8. 抓包工具fiddler下载配置(一):下载/安装&信任证书

    简介 Fiddler一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件 ...

  9. Cocos2d-x之Action

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 在Cocos2d-x中的Node对象可以有动作,特效和动画等动态特性.因此在Node类中定义了这些动态特性,因此精灵,标签,菜单,地图和粒 ...

  10. Goals ? Ideals ?

    Why is it important to set goals ? Because goal can help you do , be , and experience anything you w ...