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. Cool Auto-Suggest 插件使用方法

    刚入职的时候公司主管曾经让我用Cool Auto-Suggest 插件写过后台管理页面内的自动填充及搜索功能. 其实这个插件的使用很简单,网上也有相应的翻译文档,但是明显的机翻看着无法忍受.我写一下使 ...

  2. WPF资源

    在WPF中.有着两种资源, 一种是组件资源:又被称为程序集资源,以二进制存在编译后的程序集中,通常用于存放图片或其他音频文件. 第二种是对象资源:通常放于xaml中.比如WPF的样式和数据绑定特性. ...

  3. Android之第三方平台实现多平台分享操作

    开发中常常遇到分享操作,当用到多种分享时,如:QQ,微信,微博,短信等,可以借助第三方平台来完成,此博客主要借助mob平台来完成相关操作,当然也可以借助其他平台,如友盟等. 先来看看效果图: 如图看出 ...

  4. UVA-1153 Keep the Customer Satisfied (贪心)

    题目大意:有n件工作,做每件工作的消耗时间为s,截止时间为d,问最多能做完几件工作. 题目分析:贪心策略:优先做截止时间靠前的,一旦做不完当前工作,则从已经做过的工作中删去一件耗时最长的,用当前工作取 ...

  5. Integer与int的种种比较你知道多少

    如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null. 但是如果面试官再问一下Integer i = 1 ...

  6. 前端构建工具 Grunt 入门

    之前也介绍过前端构建工具 Ant 和 Yeoman,其中 Yeoman 工具就包含了 Grunt 所以就不多说.那么与 Ant 相比 Grunt 有这么几个优点: Javascript 语法,相比 A ...

  7. Arachni web扫描工具

    扫描工具-Arachni from:https://blog.csdn.net/zixuanfy/article/details/52818527 ./arachni_console         ...

  8. Nginx笔记02-nginx常用参数配置说明

    nginx的主配置文件是nginx.conf,这里主要针对这个文件进行说明 1.主配置文件nginx.conf   2.nginx配置文件的结构 从上面的配置文件中我们可以总结出nginx配置文件的基 ...

  9. CAM350对比两个gerber之间的差异

    今天客供的gerber 版本更新,要检查区别. 参考: https://wenku.baidu.com/view/a154028c19e8b8f67d1cb93f.html 这个更加详细: https ...

  10. timer Compliant Controller project (2)--Project Demonstration

    1software flow diagram     As we know, Embedded design is the core of  Electronic Product Design. Di ...