博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MailUtil 邮件发送工具类
阅读量:2453 次
发布时间:2019-05-10

本文共 4956 字,大约阅读时间需要 16 分钟。

d

mail.properties

#邮件服务器是否需要验证用户存在与否 ,使用“true”、“false”、“0”、“1”mail.smtp.auth=true#邮件服务器使用的协议mail.transport.protocol=smtp#邮件服务器地址mail.smtp.host=smtp.126.com#邮件服务器使用的端口mail.smtp.port=25#默认服务器端用户名mail.host.user=*****#默认服务器用户密码mail.host.user.password=****#默认主机地址mail.host.user.from=****@126.com

 MailUtil.java

import java.io.File;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.Locale;import java.util.Map;import java.util.Properties;import java.util.ResourceBundle;import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import org.apache.commons.lang.BooleanUtils;import org.apache.commons.lang.StringUtils;import org.apache.commons.lang.math.NumberUtils;/** * 邮件发送工具 *  * @author linzq *  */public class MailUtil {	public static boolean sendMail(String to, String subject, String content)			throws AddressException, MessagingException {		Map
fileMap = new HashMap
(); ResourceBundle rb = ResourceBundle.getBundle("email", Locale.getDefault()); Boolean isAutheticate = BooleanUtils.toBooleanObject(rb .getString("mail.smtp.auth")); String protocol = rb.getString("mail.transport.protocol"); String host = rb.getString("mail.smtp.host"); Integer port = NumberUtils.toInt(rb.getString("mail.smtp.port"), 25); String user = rb.getString("mail.host.user"); String password = rb.getString("mail.host.user.password"); String from = rb.getString("mail.host.user.from"); return sendMail(isAutheticate, protocol, host, port, user, password, from, to, subject, content, fileMap); } /** * @param isAutheticate * 邮件务器是否验证用户 * @param protocol * 协认 * @param host * 邮件务器地址 * @param port * 端口 * @param user * 用户 * @param password * 密码 * @param from * 邮件发送地址 * @param to * 邮件接收地址 * @param subject * 标题 * @param content * 内容 * @param filePathMap * 附件,它是一个“文件名=全路径地址”的映射 * @return * @throws AddressException * @throws MessagingException */ public static boolean sendMail(Boolean isAutheticate, String protocol, String host, Integer port, String user, String password, String from, String to, String subject, String content, Map
filePathMap) throws AddressException, MessagingException { boolean bool = false; Properties p = new Properties(); p.put("mail.smtp.auth", isAutheticate.toString()); p.put("mail.transport.protocol", protocol); p.put("mail.smtp.host", host); p.put("mail.smtp.port", port); // 建立会话 Session session = Session.getInstance(p); // 建立消息 Message msg = new MimeMessage(session); // 设置发件人 msg.setFrom(new InternetAddress(from)); // 收件人 msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 发送日期 msg.setSentDate(new Date()); // 主题 msg.setSubject(subject); // 设置邮件内容,作为Multipart对象的一部分 MimeBodyPart mbp = new MimeBodyPart(); mbp.setText(content); Multipart mulp = new MimeMultipart(); mulp.addBodyPart(mbp); // 文件件名 String fileName = null; // 全路径 String fileFullPath = null; DataSource source = null; if (filePathMap != null && filePathMap.size() > 0) { Iterator it = filePathMap.entrySet().iterator(); while (it.hasNext()) { // 为每个附件做为Multipart对象的一部分 mbp = new MimeBodyPart(); Map.Entry
entry = (Map.Entry) it.next(); fileName = entry.getKey(); fileFullPath = entry.getValue(); if (fileName == null || fileName.equals("") || fileFullPath == null || fileFullPath.equals("")) { continue; } File f = new File(fileFullPath); if (!f.exists()) { continue; } source = new FileDataSource(fileFullPath); mbp.setDataHandler(new DataHandler(source)); mbp.setFileName(fileName); mulp.addBodyPart(mbp); } } // 设置信息内容,将Multipart 对象加入信息中 msg.setContent(mulp); // 登陆邮件服务器进行用户验证 Transport tran = session.getTransport(protocol); tran.connect(host, user, password); // 发送 tran.sendMessage(msg, msg.getAllRecipients()); bool = true; return bool; } /** * @param args * @throws MessagingException * @throws AddressException */ public static void main(String[] args) throws AddressException, MessagingException { // 调试使用 Map map = new HashMap
(); map.put("jasper-el.jar", "D:\\apache-tomcat-6.0.29\\lib\\jasper-el.jar"); map.put("RUNNING.txt", "D:\\apache-tomcat-6.0.29\\RUNNING.txt"); //sendMail(true, "smtp", "smtp.126.com", 25, "con", "***", // "con@126.com", "con@163.com", "答话稀有", "快点下在", map); sendMail("conkeyn@163.com", "答话稀有", "快点下在"); }}

 dd

 

转载地址:http://nddhb.baihongyu.com/

你可能感兴趣的文章
devops 中台_DevOps中的门控生产
查看>>
keil 开源替代_您需要替代开源的哪些专有工具?
查看>>
总论点和分论点_将破坏性的论点变成富有成效的对话
查看>>
pythonic_使用Pythonic在Python中以图形方式编程
查看>>
python black_格式化Python,但您喜欢使用Black
查看>>
如何在Mac上为Python设置虚拟环境
查看>>
使用Python在GitHub Pages上运行博客
查看>>
如何使用Python和Apache Spark分析日志数据
查看>>
移动端仿钉钉聊天 git_使用Git作为聊天的后端
查看>>
raspberry pi_PiFlash入门:在Linux上启动Raspberry Pi
查看>>
固态硬盘损坏数据如何挽救_开放数据和工具如何在灾难期间挽救生命
查看>>
raspberry_您最老的Raspberry Pi多大了?
查看>>
vscode构建rust_使用rust-vmm构建未来的虚拟化堆栈
查看>>
joplin_介绍Joplin,这是Evernote的开源替代方案
查看>>
使用Pygame模块使用Python构建游戏框架
查看>>
如何使用PostgreSQL简化Python代码
查看>>
软件博览会上的致辞_本地制造商博览会上有4个著名的开源项目
查看>>
pygame游戏角色旋转_使用Pygame移动游戏角色
查看>>
为什么Python和Pygame是入门程序员的最佳选择
查看>>
上海微钉科技面试题_钉住面试的7个技巧
查看>>