/**
*包名: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. 4412 搭建和测试NFS服务器

    一.NFS网络文件系统 NFS是Network FileSystem的缩写,NFS是基于UDP/IP协议的应用.它的最大功能就是可以通过网络让不同的机器,不通的操作系统彼此共享文件, 可以通过NFS挂 ...

  2. 三、PCB设计与Allegro基本概念

    PCB:印制电路板 如--update更新时无法变为0 4.区域规则--设置区域规则--赋予区域轮廓 5.铜皮 把.sav改为.dsn--就可以恢复出突然关闭的.dsn文件 生成规则钻孔文件(.drl ...

  3. [CSP-S模拟测试]:Lighthouse(哈密顿回路+容斥)

    题目背景 $Billions\ of\ lighthouses...stuck\ at\ the\ far\ end\ of\ the\ sky.$ 题目描述 平面有$n$个灯塔,初始时两两之间可以相 ...

  4. CPU C-States Power Saving Modes

    http://www.hardwaresecrets.com/article/611 Everything You Need to Know About the CPU C-States Power ...

  5. 彻底搞定C指针-函数名与函数指针

     函数名与函数指针 一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件 void MyFun(int x); //此处的申明也可写成:void MyFun( int ); int mai ...

  6. "New page after" by code

    Hi. There is a method for starting of the new page in the EngineV2: Engine.NewPage(); You can call i ...

  7. DataTable删除行Delete与Remove的问题

    DataTable删除行使用Delete后,只是该行被标记为deleted,但是还存在,用Rows.Count来获取行数时,还是删除之前的行数,需要使用datatable.AcceptChanges( ...

  8. 正则search与match的区别

    import re # #1.search和match的区别 # pattern = re.compile(r'\d+') # #match从头开始匹配 # m = pattern.match('on ...

  9. python 装饰器 对类和函数的装饰

    #装饰器:对类或者函数进行功能的扩展  很多需要缩进的没有进行缩进'''#第一步:基本函数def laxi(): print('拉屎')#调用函数laxi()laxi() print('======= ...

  10. python 装饰器 第十步:装饰器来装饰器一个类

    第十步:装饰器来装饰一个类 def kuozhan(cls): print(cls) #声明一个类并且返回 def newHuman(): # 扩展类的功能1 cls.cloth = '漂亮的小裙子' ...