/**
*包名: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. 2017 山东一轮集训 Day2 Shadow (三维凸包点在面上投影)

    在三维坐标中,给定一个点光源,一个凸多面体,以及一个平面作为地面. 求该凸多面体在地面上阴影的面积. 这三个点共同确定了一个平面,这个平面就是地面.保证这三个点坐标互异且不共线.前三行每行三个实数,每 ...

  2. QUartus 使用之001_空格_箭头切换----FPGA--001

    Quartus里的Tab键,按下后,显示的为什么是箭头,以前显示的是空白,图片如下: 解决方式如下: 修改后效果图如下:

  3. 31 July

    P1005 矩阵取数游戏 高精度不能更坑-- #include <cstdio> #include <cstring> struct INT { long long h, l; ...

  4. selenium2-java 浏览器cookie的获取

    //成功登陆后增加如下代码        File cookieFile = new File("C:\\tmp\\tangdai.cookie.txt");           ...

  5. js另存为、打印、属性、加入收藏、关闭等代码

    js打开代码 <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开> &l ...

  6. HTML块,含样式的标签

    HTML块,含样式的标签 html块 div标签 块元素,表示一块内容,没有具体的语义. span标签 行内元素,表示一行中的一小段内容,没有具体的语义. 含样式和语义的标签 em标签 行内元素,表示 ...

  7. HDU 3571 N-dimensional Sphere( 高斯消元+ 同余 )

    N-dimensional Sphere Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  8. C# .NET 和.NET Framework区别

    一,C#简介 1>C#是一种面向对象的.运行于.NET Framework之上的高级程序设计语言. 2>C# 是一种简洁.类型安全的面向对象的语言,开发人员可以使用它来构建在 .NET F ...

  9. html/js部分问题和小结

    2015/9/8 1.js中不要试图去处理由[变量:变量]组成的map(不过可以通过DWR.addOptions添加),而是处理[bh:变量][xm:变量],然后通过data[i].bh,data[i ...

  10. jQuery学习笔记(基础部分)

    参考:菜鸟教程 一.简介 1.jQuery 是一个 JavaScript 库. 2.jQuery的版本:压缩版(用户生成)和未压缩(用于测试和开发) 3.jQuery的引入方式: 从http://jq ...