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

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

 

发送邮件的工具类以及发送邮件的示例代码,支持发送html标签,和发送附件。依赖commons-emailmail两个jar包。

/** * 发送邮件Util */public final class MailUtil {    //发送邮件的主机    private static String mailServerHost = "smtp.126.com";    //发件人邮箱    private static String mailSenderAddress = "发件邮箱地址@126.com";    //发件人昵称    private static String mailSenderNick = "发件人昵称";    //发件人使用的账号    private static String mailSenderUsername = "发件邮箱地址@126.com";    //登陆发件主机的密码(或授权码)    private static String mailSenderPassword = "授权码";    /**     * 发送 邮件方法 (Html格式,支持附件)     *      * @return void     */    public static final boolean sendEmail(MailInfo mailInfo) {                 try {            HtmlEmail email = new HtmlEmail();            // 配置发送邮件的主机            email.setHostName(mailServerHost);            // 配置发送者地址和昵称            email.setFrom(mailSenderAddress,mailSenderNick);            // 配置用于登陆发送邮件主机的账号和登陆密码(或授权码)            email.setAuthentication(mailSenderUsername,mailSenderPassword);            // 配置邮件使用的字符集            email.setCharset("UTF-8");            // 设置启用SSL连接            email.setSSLOnConnect(true);            //设置邮件主题            email.setSubject(mailInfo.getSubject());            //设置邮件内容            email.setHtmlMsg(mailInfo.getContent());            //设置当邮件客户端不能显示HTML标签时的提示语句            email.setTextMsg("您的邮件客户端不支持HTML标签(Your email client does not support HTML messages)");            // 添加附件            List
attachments = mailInfo.getAttachments(); if (!attachments.isEmpty()) { for (EmailAttachment emailAttachment : attachments) { email.attach(emailAttachment); } } // 添加收件人 Set
toAddress = mailInfo.getToAddress(); if (!toAddress.isEmpty()) { System.out.print("收件人:"); for (String string : toAddress) { email.addTo(string); System.out.print(string+"\t"); } System.out.println(); } // 添加抄送人 Set
ccAddress = mailInfo.getCcAddress(); if (!ccAddress.isEmpty()) { for (String string : ccAddress) { email.addCc(string); } } //发送邮件 email.send(); System.out.println("邮件发送成功!"); return true; } catch (Exception e) { e.printStackTrace(); } return false; } /** * 根据邮件主题和收件人,创建一封邮件对象 * @param subject 邮件主题 * @param toAddress 收件人 * @return */ public static final MailInfo createEmail(String subject,String toAddress) { return new MailInfo(subject,toAddress); } /** * 封装一封邮件信息的类 */ public static class MailInfo { // 收件人 private Set
toAddress = new HashSet<>(); // 抄送人地址 private Set
ccAddress = new HashSet<>(); // 附件信息 private List
attachments = new ArrayList<>(); // 邮件主题 private String subject; // 邮件的文本内容 private StringBuffer content = new StringBuffer(); private MailInfo(String subject,String toAddress) { this.subject = subject; this.toAddress.add(toAddress.trim()); } /** * 添加收件人 * @param toAddress */ public void addToAddress(String... toAddress) { for (String string : toAddress) { this.toAddress.add(string.trim()); } } /** * 添加抄送人 * @param ccAddress */ public void addCcAddress(String... ccAddress) { for (String string : ccAddress) { this.ccAddress.add(string.trim()); } } /** * 添加本地文件为附件 * @param aPath:附件路径 * @param aName:附件名字 * @param description:附件描述 */ public void addAttachment(String aPath,String aName,String description) { EmailAttachment attachment = new EmailAttachment(); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setName(aName); attachment.setPath(aPath); attachment.setDescription(description); this.attachments.add(attachment); } /** * 添加远程文件为附件 * @param aUrl:附件资源的路径 * @param aName:附件的名字 * @param description:附件的描述 */ public void addAttachment(URL aUrl,String aName,String description) { EmailAttachment attachment = new EmailAttachment(); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setName(aName); attachment.setURL(aUrl); attachment.setDescription(description); this.attachments.add(attachment); } public void setSubject(String subject) { this.subject = subject; } public void addContent(String content) { this.content.append(content); } public Set
getToAddress() { return toAddress; } public Set
getCcAddress() { return ccAddress; } public List
getAttachments() { return attachments; } public String getSubject() { return subject==null?"快学大数据":subject; } public String getContent() { return content.toString(); } }}

 

 

发送邮件的测试类:

import java.net.MalformedURLException;import java.net.URL;import com.kuaixueit.utils.MailInfo;import com.kuaixueit.utils.MailUtil;public class EmailTest {    public static void main(String[] args) throws MalformedURLException {        //创建一个MailInfo对象,用来表示要发送的邮件        MailUtil.MailInfo mail = MailUtil.createEmail("这是一封测试邮件","收件邮箱");//设置邮件内容        mail.addContent("

这是一封来自快学大数据的生日问候!

"); //往邮件中添加一个超链接 mail.addContent("点我查看美女
"); mail.addContent(""); //往邮件中添加一个附件,附件是本地文件 mail.addAttachment("F:\\pic\\3c560cf458034c21b54c5b6a77120045.jpg", "美女图片.jpg", "这是送给你的生日福利"); //往邮件中添加一个附件,附件是一个远程图片 mail.addAttachment(new URL("https://www.baidu.com/img/bd_logo1.png?where=super"), "美女图片2.jpg", "这是送给你的生日福利"); //调用工具类发送邮件 MailUtil.sendEmail(mail); }}

收件箱收到的邮件:

 

转载于:https://www.cnblogs.com/pf1988/p/9056892.html

你可能感兴趣的文章
MIUI刷机曝重大危险 可致短信照片等个人隐私被盗
查看>>
物联网时代 企业需做出的十大战略选择
查看>>
光速运行的量子加密
查看>>
ESG:浅析思科进军服务器市场行业影响
查看>>
美国“黑色星期五”单日销量不及双十一
查看>>
《中国人工智能学会通讯》——11.20 多任务学习在交通分析中的应用
查看>>
分析:大数据如何催化电子商务企业
查看>>
H3C吴健:技术与行业理解是我们的核心竞争力
查看>>
CycleBeads:App不仅能避孕,成功率还有95%
查看>>
Android热修复技术总结
查看>>
飞康软件定义平台为Oracle提供全面保护与恢复
查看>>
Java常用算法1——冒泡排序
查看>>
如何在数据中心行业玩转互联网思维?
查看>>
9月6日云栖精选夜读:DMS前后端技术揭秘及最佳实践
查看>>
Oracle Resource Manager和调度任务
查看>>
OpenStack建设企业私有云要解决五大问题
查看>>
美国抢跑5G高频段规划,我国如何应对挑战?
查看>>
路由器桥接怎么设置 其实很简单
查看>>
新型变种病毒,专门攻击安卓机银行App
查看>>
机器学习零基础?手把手教你用TensorFlow搭建图像识别系统(三)| 干货
查看>>