maven:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>${javax-mail.version}</version>
</dependency>
<dependency> config.properties:
######发送邮件配置##########
mail.smtp.host =
mail.smtp.port=465
mail.smtp.protocol=smtp
#######发送方账号和密码
mail.sender.username=
mail.sender.password=
#######收件人邮箱,多人以逗号(英文)隔开
mail.receive.user=
code:
package com.exl.analysis.core.util; import com.exl.framework.common.util.PropertyUtils;
import com.exl.framework.log.CustomLogger;
import com.sun.mail.util.MailSSLSocketFactory; import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.security.GeneralSecurityException;
import java.util.List;
import java.util.Properties; public class SendEmailUtil { private MimeMessage message; private String mailHost = "";
private String mailPort = "";
private String mailProtocol = "";
private String sender_username = "";
private String sender_password = "";
// 收件人列表,以","分割 private Properties properties = new Properties(); /*
* 初始化方法
*/
public SendEmailUtil(Boolean debug) {
this.mailHost = PropertyUtils.get("mail.smtp.host");
this.mailPort = PropertyUtils.get("mail.smtp.port");
this.mailProtocol = PropertyUtils.get("mail.smtp.protocol");
this.sender_username = PropertyUtils .get("mail.sender.username");
this.sender_password = PropertyUtils.get("mail.sender.password");
} /**
* 指定发送邮件
*
* @param subject
* 邮件主题
* @param sendHtml
* 邮件内容
* @param filePath
* 附件列表
* @param receiveUser
* 收件人(多个以英文逗号隔开)
*/
public boolean sendEmail(String subject,String sendHtml,List<String> filePath,String receiveUser){
Properties prop = new Properties();
// 协议
prop.setProperty("mail.transport.protocol", mailProtocol);
// 服务器
prop.setProperty("mail.smtp.host", mailHost);
// 端口
prop.setProperty("mail.smtp.port", mailPort);
// 使用smtp身份验证
prop.setProperty("mail.smtp.auth", "true");
// 使用SSL,企业邮箱必需!
// 开启安全协议
MailSSLSocketFactory sf = null;
try {
sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
} catch (GeneralSecurityException e1) {
System.out.println("开启SSL加密异常!");
e1.printStackTrace();
return false;
}
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
Session session = Session.getDefaultInstance(prop, new MyAuthenticator(
sender_username, sender_password));
// 开启DEBUG模式,在控制台中或日志中有日志信息显示,也就是可以从控制台中看一下服务器的响应信息;
session.setDebug(true);
message = new MimeMessage(session);
try{
message.setFrom(new InternetAddress(sender_username));
//邮件主题
message.setSubject(subject);
// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
Multipart multipart = new MimeMultipart();
// 添加邮件正文
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(sendHtml, "text/html;charset=UTF-8");
multipart.addBodyPart(contentPart);
if (filePath != null && filePath.size() > 0) {
for (String filename : filePath) {
BodyPart attachmentBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
attachmentBodyPart.setDataHandler(new DataHandler(
source));
// MimeUtility.encodeWord可以避免文件名乱码
attachmentBodyPart.setFileName(MimeUtility
.encodeWord(source.getName()));
multipart.addBodyPart(attachmentBodyPart);
}
// 移走集合中的所有元素
filePath.clear();
}
// 将multipart对象放到message中 message.setContent(multipart);
message.setRecipients(Message.RecipientType.TO,receiveUser);
message.saveChanges();
// 发送
Transport.send(message);
System.out.println("send success!");
return true;
}catch (Exception e){
return false;
}
} }

使用Javamail发送邮件Util的更多相关文章

  1. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...

  2. web应用中使用JavaMail发送邮件

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...

  3. web应用中使用JavaMail发送邮件 。。转载

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...

  4. (转载)JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件

    博客源地址:http://www.cnblogs.com/xdp-gacl/p/4220190.html 现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件 ...

  5. JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...

  6. javamail发送邮件的简单实例

    今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接 ...

  7. javamail发送邮件的简单实例(转)

    今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 注意:要先导入javamail的mail.jar ...

  8. javamail发送邮件的简单实例(转)

    javamail发送邮件的简单实例 今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码 ...

  9. javamail发送邮件(转)

    今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接 ...

随机推荐

  1. 反射中的 Class.forName() 与 ClassLoader.loadClass() 的区别

    在Java中,类加载器把一个类加载进Java虚拟机中,要经过三个步骤来完成:加载.链接和初始化,其中链接又可以分成验证.准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下 ...

  2. js的数组与对象关系

    有的时候总犯糊涂,不理解对象和数组的关系,转载一篇文章,深刻记忆一下 http://hi.baidu.com/samdan/item/05179313d1ee4b9e99ce3371 比如有一个数组a ...

  3. linux 前端部署

    linux.conf user root; worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice ...

  4. SQLPLUS的乱码问题

    我的中文系统,把对应非unicode字符时的设置,改成了 日文, 结果控制台使用sqlplus时候,总是出现乱码. 解决方法是,把NLS_LANG环境变量变成跟系统一样,就可以了. american_ ...

  5. hdu2188巴什博弈

    裸题,直接套公式 巴什游戏只是换了一个说法而已 #include<map> #include<set> #include<cmath> #include<qu ...

  6. 导入arr包

    提起项目的aar包 导入目标项目中 添加依赖 

  7. 笔记本用HDMI、VGA连接高清电视全过程实录2——各种问题

    内容中包含 base64string 图片造成字符过多,拒绝显示

  8. DIY远程控制开关(tiny6410+LED+yeelink+curl)

    上一次,介绍了如何实现远程监控室内温度,大家伙反响还是很热烈的,笔者很欣慰,独乐乐不如众乐乐啊.不过话说回来,那个实现只能是远程监测家中温度,假如发现家里热得很,想远程打开空调开关提前降降温,回家后不 ...

  9. 此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转

    感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-- ...

  10. Ubuntu系统安装,适用于14.04,16.04和17.10

    本文以14.04为案例进行安装,其他版本相关问题会做注解 1.选择要安装的系统语言 本界面建议选择English,之后再选择中文安装 注意: 安装服务器版时,对于14.x版本第一步选择中文没有问题,但 ...