Spring框架发送Email
package com.eqifa.common.mail;
import com.eqifa.emar.common.util.Config;
import java.io.File;
import java.util.Hashtable;
import java.util.Enumeration;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
/**
* 邮件发送类,支持文本和HTML格式,多个附件
* @author zhoutao
* @version 1.0
*/
public class SendMail {
private Log log = LogFactory.getLog(getClass());
private JavaMailSenderImpl javaMailSender;
private MimeMessageHelper mimeMessageHelper;
//邮件服务器信息
private String host = Config.getString("mail.host");
private String protocol = Config.getString("mail.protocol");
private String port = Config.getString("mail.port");
//邮件服务器验证信息
private String userName = Config.getString("mail.userName");
private String password = Config.getString("mail.password");
private String ismailAuth = Config.getString("mail.auth");
public static void main(String args[]){
try {
SendMail sendMail = new SendMail();
sendMail.sendMailAsText("chenhui","chen.hui.12@163.com
",new String[]{"zhoutao"},new String[]{"zhoutao_bj@163.com"},null,"test","test");
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 使用默认参数发送邮件
*/
public SendMail() throws Exception {
this(true);
}
/**
* 使用发送邮件是否带附件
*/
private SendMail(boolean isMultipart) throws Exception {
javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(host);
javaMailSender.setProtocol(protocol);
javaMailSender.setPort(Integer.parseInt(port));
if (ismailAuth.equals("true")) {//如果需要服务器需要验证
javaMailSender.setUsername(userName);
javaMailSender.setPassword(password);
Properties p = new Properties();
p.put("mail.smtp.auth",ismailAuth);
javaMailSender.setJavaMailProperties(p);
}
mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(),isMultipart,"GB2312");
}
/**
* 发送普通文本邮件,不带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
*/
public void sendMailAsText(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText)
throws Exception {
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, null);
}
/**
* 发送html格式邮件,不带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
*/
public void sendMailAsHtml(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText)
throws Exception{
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, null);
}
/**
* 发送文本邮件,带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
* @param fileTable 附件表key为文件名value为File对象
*/
public void sendMailAsTextHasAtts(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText, Hashtable fileTable)
throws Exception {
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, fileTable);
}
/**
* 发送html邮件,带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
* @param fileTable 附件表key为文件名value为File对象
*/
public void sendMailAsHtmlHasAtts(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText, Hashtable fileTable)
throws Exception {
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, fileTable);
}
/**
* 发送邮件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
* @param html 邮件格式
* @param fileTable 附件表key为文件名value为File对象
*/
private void sendMail(String fromTitle,
String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs,
String subject, String strText, boolean html, Hashtable fileTable)
throws Exception {
if (null != mailTos) {
if (null == toTitles) {
mimeMessageHelper.setTo(mailTos);
} else {
for (int i=0; i<mailTos.length; i++) {
if (i > toTitles.length || toTitles.length == 0) {
mimeMessageHelper.addTo(mailTos[i]);
} else {
mimeMessageHelper.addTo(mailTos[i],toTitles[i]);
}
}
}
}
if (null != mailFrom) {
if (null != fromTitle) {
mimeMessageHelper.setFrom(mailFrom,fromTitle);
} else {
mimeMessageHelper.setFrom(mailFrom);
}
}
if (null != mailCCs) {
mimeMessageHelper.setCc(mailCCs);
}
if (null != subject) {
mimeMessageHelper.setSubject(subject);
}
if (null != strText) {
if (html) {
mimeMessageHelper.setText(strText, true);
} else {
mimeMessageHelper.setText(strText, false);
}
}
if (null != fileTable) {
Enumeration e = fileTable.keys();
while (e.hasMoreElements()) {
String key = (String)e.nextElement();
File value = (File)fileTable.get(key);
mimeMessageHelper.addAttachment(key, value);
}
}
javaMailSender.send(mimeMessageHelper.getMimeMessage());
}
}
分享到:
相关推荐
本篇文章将深入探讨如何使用Java结合Spring框架和微软的Exchange Web Services (EWS)来发送电子邮件。 首先,让我们从Spring Email说起。Spring Framework提供了`spring-context-support`模块,其中包含了一个Email...
在Spring框架中,定时任务是通过Spring Task模块实现的,它可以让我们轻松地配置和执行定时任务,例如定时发送电子邮件。这个"利用Spring定时发送email"的项目,包含了完整的jar包并经过测试,确保了功能的可行性。...
而发送电子邮件是许多应用程序中常见的需求,Spring框架通过其邮件支持模块Spring Mail,为开发者提供了一个简单易用的方式来实现这一功能。本文将深入探讨如何使用Spring发送电子邮件。 首先,我们需要了解Spring ...
在Spring框架中,发送电子邮件是一项常见的任务,尤其在企业级应用中用于通知、验证或客户服务。本教程将深入探讨如何利用Spring的JavaMailSender接口及其实现来发送电子邮件。首先,我们需要理解Spring对邮件服务的...
在IT行业中,Spring框架是Java开发中的一个关键组件,它为构建企业级应用程序提供了全面的解决方案。本主题将深入探讨Spring框架如何支持发送电子邮件(Email)功能,并解答一些常见的问题(FAQ)。首先,我们来详细...
在本文中,我们将深入探讨如何使用Spring框架实现定时发送HTML格式的电子邮件。首先,这个功能主要涉及两个核心部分:定时任务管理和电子邮件发送。 1. **定时任务管理**: Spring 提供了强大的任务调度框架,名为...
2. **SpringMail**: Spring框架的一个模块,它简化了JavaMail API的使用,通过Spring的依赖注入和配置模型,使得邮件发送变得更加便捷。 3. **配置SpringMail**: 在Spring项目中,我们通常会创建一个`MailSender` ...
Spring框架通过其MailSender接口和JavaMailSenderImpl实现了邮件服务,使得在Java应用中发送邮件变得简单。 首先,为了在Spring应用中启用邮件服务,我们需要在配置类中添加对应的bean。这通常涉及到创建一个`...
在这个场景中,我们将深入探讨如何使用Spring框架发送邮件,以及涉及到的相关知识点。 首先,我们需要在项目中引入Spring的核心库以及JavaMail相关的依赖。通常,Spring框架的`spring-context`模块包含了`...
在Spring MVC框架中,实现邮件发送功能通常涉及配置Spring的JavaMailSender接口和使用模板引擎如FreeMarker来创建动态邮件内容。以下是一个详细的步骤指南: 1. **依赖库**: - `javax.mail`:这是Java邮件API的...
在"spring各种邮件发送"这个主题中,我们将探讨Spring框架如何帮助开发者实现电子邮件的发送。邮件服务在许多应用场景中都十分常见,例如用户注册确认、密码重置提醒等。 首先,Spring框架提供了`JavaMailSender`...
在Spring框架中,发送电子邮件是一项常见的任务,尤其在企业级应用中用于通知、报表或客户服务。本示例将深入探讨如何使用Spring发送电子邮件,特别是针对中文乱码问题的解决方案。我们将涉及Spring的Java配置和...
Spring框架是Java开发中广泛使用的开源框架,它提供了一整套服务来简化企业级应用的开发。在Spring中,发送电子邮件的功能是通过Spring的Mail API实现的,这在系统监控、报警通知、用户验证等场景中非常常见。下面将...
Spring Email 是一个在Spring框架中发送电子邮件的强大工具。在现代应用程序中,发送电子邮件是一个常见的功能,无论是用于通知、验证用户账户、发送报告还是其他服务。Spring框架提供了多种方式来实现这个功能,...
在Java开发中,Spring框架提供了一种简单而强大的方式来发送电子邮件。Spring的`JavaMailSender`接口以及其实现类`SimpleMailMessage`和`MailMessage`,使得开发者能够轻松地集成邮件服务到应用程序中。这篇博客()...
在Java编程领域,Spring框架是广泛应用的开源框架,它提供了许多功能,其中之一就是发送电子邮件。SpringMail是Spring框架的一个扩展,专门用于简化邮件发送过程。本文将深入探讨如何使用SpringMail来实现邮件发送...
综上所述,Java结合Spring框架发送邮件是一个实用且功能强大的解决方案,通过合理的配置和编程,可以满足各种业务场景下的邮件需求。在实际项目中,根据具体的邮件服务提供商和业务需求,可能会有更多细节需要考虑和...
在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括但不限于依赖注入、面向切面编程以及各种实用工具。其中,Spring的JavaMailSenderImpl是用于发送电子邮件的一个重要工具,它使得开发者...