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

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

Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如fromto,ccsubject,text。 包里还包含一棵以MailException为根的checked Exception继承树,它们提供了对底层邮件系统异常的高级别抽象。 要获得关于邮件异常层次的更丰富的信息,请参考Javadocs。

为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口, 即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail.MimeMessagePreparator,  用于准备JavaMail的MIME信件。

这里简单的介绍了如何使用spring发送各种形式的邮件以及配置。

一,Spring配置发送邮件

1,配置邮件发送信息

#sys.mail.protocol=smtpsys.mail.transport.protocol=smtpsys.mail.host=smtp.exmail.qq.comsys.mail.sysEmailAddress=***@***.comsys.mail.password=***sys.mail.debug=truesys.mail.smtp.auth=truesys.mail.smtp.timeout=25000sys.mail.smtp.port=465sys.mail.smtp.ssl.enable=truesys.mail.toSet=****,***,***

  2,spring配置信息

classpath:config/mail.properties
#{mailProp['sys.mail.debug']}
#{mailProp['sys.mail.smtp.auth']}
#{mailProp['sys.mail.smtp.timeout']}
#{mailProp['sys.mail.smtp.port']}
#{mailProp['sys.mail.smtp.ssl.enable']}
#{mailProp['sys.mail.transport.protocol']}

  3,注入发送配置信息

4,发送邮件

/**     * 发送邮件     */    public void sendMail(JavaMailSender mailSender, String from, Set
set, String subject, String content, Boolean isHtml, Boolean isAttachment, Map
attachments) throws Exception { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, isAttachment); //添加发送者 helper.setFrom(from);// Set
toSet = simpleEmail.getToSet(); //添加接收者 helper.setTo(set.toArray(new String[set.size()])); //添加主题 helper.setSubject(subject); //添加正文 helper.setText(content, isHtml); //添加附件 if (isAttachment && attachments != null) { for (Map.Entry
attach : attachments.entrySet()) { helper.addAttachment(attach.getKey(), attach.getValue()); } } JavaMailSenderImpl javaMailSender = (JavaMailSenderImpl) mailSender;     ///避开认证问题 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); javaMailSender.getJavaMailProperties().put("mail.smtp.ssl.socketFactory", sf); javaMailSender.send(message); // 发送 }

  二,javaMail发送工具类

package com.ehaoyao.jobcenter.order.utils;import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.Address;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Date;import java.util.Properties;/** * com.ehaoyao.utils * 发送邮件工具类 * * @author PF * @create 2017-10-12 17:34 **/public class EmailUtil {    public static void sendMail(String fromMail, String user, String password, String toMail, String mailTitle, String mailContent) throws Exception {        Properties props = new Properties();        // 开启debug调试        props.setProperty("mail.debug", "true");        // 发送服务器需要身份验证        props.setProperty("mail.smtp.auth", "true");        // 设置邮件服务器主机名        props.setProperty("mail.host", "smtp.qq.com");        // 发送邮件协议名称        props.setProperty("mail.transport.protocol", "smtp");        MailSSLSocketFactory sf = new MailSSLSocketFactory();        sf.setTrustAllHosts(true);        props.put("mail.smtp.ssl.enable", "true");        props.put("mail.smtp.ssl.socketFactory", sf);        Session session = Session.getInstance(props);        Message msg = new MimeMessage(session);        msg.setSubject(mailTitle);        msg.setText(mailContent);        msg.setFrom(new InternetAddress(fromMail));        Transport transport = session.getTransport();        transport.connect("smtp.exmail.qq.com", fromMail, password);        transport.sendMessage(msg, new Address[]{new InternetAddress(toMail)});        transport.close();    }    public static void main(String[] args) throws Exception {        EmailUtil.sendMail("***@***.com","ces","***","***@qq.com","测试","测试");    }}

  

转载于:https://www.cnblogs.com/wlsblog/p/7778891.html

你可能感兴趣的文章
WPF----数据绑定
查看>>
子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
查看>>
C语言中判断int,long型等变量是否赋值的方法
查看>>
leetcode -- Longest Valid Parentheses
查看>>
中位数与第K小元素
查看>>
详解JAVA输出Hello World
查看>>
概率问题随笔
查看>>
关于在堆中创建字符串对象的疑惑
查看>>
poj1077(康托展开+bfs+记忆路径)
查看>>
hibernate 树状映射
查看>>
值得 Web 开发人员收藏的20个 HTML5 实例教程
查看>>
经典网页设计:无缝过渡的响应式设计案例
查看>>
ASP.NET MVC 多语言方案
查看>>
移动设备、手机浏览器Javascript滑动事件代码
查看>>
linux,__attribute__用法
查看>>
LinqToXML~读XML文件续
查看>>
java.sql.SQLException: JZ00L
查看>>
struts的标签库出现Failed to load or instantiate TagExtraInfo class
查看>>
Java Web入门必知
查看>>
2014-3-5 星期三 [New Change && New Start]
查看>>