1、服务接口
package com.*.email.service;
/**
* Description : 邮件相关服务接口.
* Create Time : 2013年12月2日 上午10:08:42
* Copyright : Copyright (c) 2010 - 2013 All rights reserved.
*
* @author Mr Yan
* @version 1.0
*/
public interface EmailService {
/**
* 发送邮件
* @param mailto 收件邮箱
* @param fromEmail 发送邮箱
* @param text 内容
* @param title 标题
* @throws Exception
*/
public void sendMail(String mailto, String fromEmail, String text, String title) throws Exception;
/**
* 批量下发邮件
* @param mailto 收件邮箱
* @param fromEmail 发送邮箱
* @param text 内容
* @param title 标题
* @throws Exception
*/
public void sendBatchMail(String[] mailto, String fromEmail, String text, String title) throws Exception;
/**
* 批量下发邮件待附件
* @param mailto 收件邮箱
* @param fromEmail 发送邮箱
* @param text 内容
* @param title 标题
* @param filePath 附件
* @throws Exception
*/
public void sendBatchMailWithFile(String[] mailto, String fromEmail, String text, String title, String[] filePath) throws Exception;
}
2、服务接口实现
package com.*.email.service.impl;
import java.util.ArrayList;
import java.util.List;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.annotation.Resource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import com.*.email.service.EmailService;
/**
* Description : 邮件相关服务接口实现.
* Create Time : 2013年12月2日 上午10:10:25
* Copyright : Copyright (c) 2010 - 2013 All rights reserved.
*
* @author Mr Yan
* @version 1.0
*/
@Service
public class EmailServiceImpl implements EmailService{
@Resource(name = "javaMailSender")
private JavaMailSenderImpl javaMailSender;
class EmailThread extends Thread {
private final MimeMessage mimeMessage;
public EmailThread(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
}
@Override
public void run() {
javaMailSender.send(mimeMessage);
}
}
@Override
public void sendMail(String mailto, String fromEmail, String text, String title) throws Exception {
fromEmail = javaMailSender.getUsername();
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
messageHelper.setFrom(new InternetAddress(fromEmail));
messageHelper.setSubject(title);
messageHelper.setText(text, true);
messageHelper.setTo(new InternetAddress(mailto));
mimeMessage = messageHelper.getMimeMessage();
EmailThread et = new EmailThread(mimeMessage);
et.start();
}
@Override
public void sendBatchMail(String[] mailto, String fromEmail, String text, String title) throws Exception {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
messageHelper.setFrom(new InternetAddress(fromEmail));
messageHelper.setSubject(title);
messageHelper.setText(text, true);
List<InternetAddress> list = new ArrayList<InternetAddress>();
for (int i = 0; i < mailto.length; i++) {
list.add(new InternetAddress(mailto[i]));
}
InternetAddress[] address = list.toArray(new InternetAddress[list.size()]);
mimeMessage.setRecipients(Message.RecipientType.TO, address);
mimeMessage = messageHelper.getMimeMessage();
EmailThread et = new EmailThread(mimeMessage);
et.start();
}
@Override
public void sendBatchMailWithFile(String[] mailto, String fromEmail, String text, String title, String[] filePath) throws Exception {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
messageHelper.setFrom(new InternetAddress(MimeUtility.encodeText(fromEmail)));
messageHelper.setSubject(title);
if (filePath != null) {
BodyPart mdp = new MimeBodyPart();// 新建一个存放信件内容的BodyPart对象
mdp.setContent(text, "text/html;charset=UTF-8");// 给BodyPart对象设置内容和格式/编码方式
Multipart mm = new MimeMultipart();// 新建一个MimeMultipart对象用来存放BodyPart对象
mm.addBodyPart(mdp);// 将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
// 把mm作为消息对象的内容
MimeBodyPart filePart;
FileDataSource filedatasource;
// 逐个加入附件
for (int j = 0; j < filePath.length; j++) {
filePart = new MimeBodyPart();
filedatasource = new FileDataSource(filePath[j]);
filePart.setDataHandler(new DataHandler(filedatasource));
try {
filePart.setFileName(MimeUtility.encodeText(filedatasource.getName()));
} catch (Exception e) {
e.printStackTrace();
}
mm.addBodyPart(filePart);
}
mimeMessage.setContent(mm);
} else {
messageHelper.setText(text, true);
}
List<InternetAddress> list = new ArrayList<InternetAddress>();
for (int i = 0; i < mailto.length; i++) {
list.add(new InternetAddress(mailto[i]));
}
InternetAddress[] address = list.toArray(new InternetAddress[list.size()]);
mimeMessage.setRecipients(Message.RecipientType.TO, address);
mimeMessage = messageHelper.getMimeMessage();
EmailThread et = new EmailThread(mimeMessage);
et.start();
}
}
3、服务配置
<bean name="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.163.com" />
<property name="defaultEncoding" value="UTF-8"></property>
<property name="username" value="username@163.com"></property>
<property name="password" value="password"></property>
<property name="javaMailProperties">
<map>
<entry key="mail.smtp.auth" value="true" />
</map>
</property>
</bean>
分享到:
相关推荐
而Spring集成邮件服务则是一个常见的需求,特别是对于那些需要发送确认邮件、通知或者报告的应用来说。下面将详细阐述Spring如何与JavaMail API结合,实现邮件服务的集成。 首先,我们需要理解JavaMail API。...
下面将详细阐述Spring邮件发送服务的核心概念和技术细节。 首先,我们需要配置SpringMail的相关设置。这通常通过一个XML配置文件完成,例如`springmail_config.xml`。在这个文件中,我们定义了邮件服务器的相关属性...
总的来说,Spring邮件服务提供了一种便捷的方式,让我们能够轻松地在Java应用中集成邮件发送功能。通过配置文件设置邮件服务器信息,然后通过工具类调用相应的API,我们可以实现复杂邮件的发送,包括多附件、多收件...
Spring通过JavaMailSender接口提供了一种简单易用的方式来发送邮件。为了使用这个功能,你需要在配置文件中配置JavaMailSender,包括SMTP服务器的地址、端口、用户名和密码。同时,你可以设置邮件的From、To、...
最后,`JavaMailSender`接口和相关的邮件服务支持使得Spring成为开发中实现邮件功能的强大工具。结合源码阅读和实际应用,开发者可以更深入地理解和掌握Spring框架的邮件发送功能,提升工作效率。对于那些需要发送...
标题中的“邮件微服务平台接口文档”指的是一个使用Spring Boot框架开发的微服务应用,该应用专注于提供邮件发送功能。这个微服务提供了API接口,允许其他系统或应用与其交互,实现邮件的发送,包括可能支持多附件的...
总结起来,Spring邮件发送功能通过`JavaMailSender`接口提供了灵活且强大的邮件服务集成。开发者可以根据需求配置SMTP服务器信息,创建邮件并发送,甚至处理复杂格式的邮件,如HTML邮件和带附件的邮件。这使得在Java...
首先,让我们来了解如何配置Spring邮件服务。在Spring的配置文件(如`applicationContext.xml`)中,我们需要定义一个`JavaMailSender` bean。这个bean通常会包含SMTP服务器的信息,如主机名、端口号、用户名和密码...
总的来说,Spring框架提供了强大的邮件发送支持,通过`JavaMailSender`接口和相关辅助类,开发者可以方便地实现各种邮件功能,无论是简单的文本邮件还是包含复杂格式和附件的邮件。在实际项目中,确保正确配置SMTP...
Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java应用程序中发送邮件变得更加简单。让我们深入探讨这个主题。 首先,JavaMail API是Java用来处理邮件收发的...
Spring邮件抽象层是Spring框架提供的一套用于发送电子邮件的高级接口,它隐藏了与底层邮件系统交互的复杂性,使得开发者能够以一种简洁的方式发送邮件。这个抽象层主要包含在`org.springframework.mail`包中,提供了...
在Spring框架中,我们可以利用`JavaMailSender`接口来发送电子邮件。为了使用这个接口,我们需要在Spring配置文件中定义一个bean,如下所示: ```xml <bean id="mailSender" class="org.springframework.mail....
配置完成后,我们可以通过Spring的`JavaMailSender`接口来发送邮件。下面是一个简单的发送邮件的示例代码: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework....
在这个"基于Java Spring邮件群发的demo"中,我们将探讨如何利用Spring框架的邮件服务模块实现高效的邮件群发功能。同时,这个项目还涉及到了MySQL数据库和MyBatis持久层框架,这三者共同构成了一个完整的数据驱动的...
综上所述,这个项目提供了一个基础的邮件服务模板,开发者可以通过调整Maven配置和Spring邮件服务设置,快速地将邮件功能集成到自己的项目中,无需从零开始编写代码。对于初学者和需要快速实现邮件功能的项目来说,...
在本话题中,我们将探讨“Spring高效批量邮件发送”这一技术点,这通常涉及到Spring框架中的邮件服务模块以及如何优化邮件发送的效率。 首先,Spring框架的MailSender接口是处理邮件发送的核心组件。它提供了send()...
本项目是关于Spring Boot结合Spring封装的Mail服务的一个学习demo,旨在帮助开发者掌握如何在Spring Boot应用中实现邮件服务功能。下面将详细介绍这个项目涉及的核心知识点。 1. **Spring Boot简介** Spring Boot...
压缩文件名"Spring08MailSpring2"可能表示这是一个关于Spring邮件发送的系列教程的第八部分,或者可能是某个特定版本的示例代码。如果文件中包含源码,你可以期待找到一个完整的配置示例,以及如何创建和发送带附件...