`
raymond.chen
  • 浏览: 1451099 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用Spring的邮件抽象层发送邮件

阅读更多
1、MimeMessageHelper包装类
public class MessageWraper {
	private MimeMessage message;
	private MimeMessageHelper messageHelper;
	
	public MimeMessage getMessage() {
		return message;
	}

	public MimeMessageHelper getMessageHelper() {
		return messageHelper;
	}

	public MessageWraper(MimeMessage message, MimeMessageHelper messageHelper){
		this.message = message;
		this.messageHelper = messageHelper;
	}
	
	public void setFrom(String from)throws MessagingException{
		messageHelper.setFrom(from);
	}
	
	public void setTo(String[] toArray)throws MessagingException{
		messageHelper.setTo(toArray);
	}
	
	public void setCc(String[] ccArray)throws MessagingException{
		messageHelper.setCc(ccArray);
	}
	
	public void setSubject(String subject)throws MessagingException{
		messageHelper.setSubject(subject);
	}
	
	public void setText(String text, boolean isHtml)throws MessagingException{
		messageHelper.setText(text, isHtml);
	}
	
	public void setText(String text)throws MessagingException{
		messageHelper.setText(text, false);
	}
	
	public void setSentDate(Date date)throws MessagingException{
		if(date == null) date = new Date();
		messageHelper.setSentDate(date);
	}
	
	public void addAttachment(File file)throws MessagingException,UnsupportedEncodingException{
		if(file == null) return;
		String fileName = MimeUtility.encodeText(file.getName(), Constants.mailEncoding, null);
		messageHelper.addAttachment(fileName, file);
	}
}


2、发送邮件的工具类
public class MailFactory {
	private static JavaMailSender javaMailSender = null;
	
	static{
		javaMailSender = (JavaMailSender)SpringContextUtil.getBean("mailConfig");
	}
	
	/**
	 * 功能:获取邮件消息对象的包装类
	 */
	public static MessageWraper getMessageWraper()throws MessagingException{
		MimeMessage mimeMessage = javaMailSender.createMimeMessage();
		MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, Constants.mailEncoding); //multipart模式
		
		return new MessageWraper(mimeMessage, mimeMessageHelper);
	}
	
	/**
	 * 功能:发送邮件
	 * 
	 * @param messageWraper 消息对象的包装类对象
	 */
	public static void send(MessageWraper messageWraper) throws Exception{
		javaMailSender.send(messageWraper.getMessage()); 		
	}
}


3、包含邮件配置信息的bean
<bean id="mailConfig" class="org.springframework.mail.javamail.JavaMailSenderImpl">
	<property name="host" value="smtp.163.com"/>
	<property name="username" value="uid"/>
	<property name="password" value="pwd"/>
	<property name="javaMailProperties">
		<props>
			<prop key="mail.smtp.auth">true</prop>
		</props>
	</property>
</bean>


4、实例代码
MessageWraper w2 = MailFactory.getMessageWraper();
w2.setFrom("ServerMailAddress@163.com");
w2.setTo(new String[]{"TargetAddress@139.com"});
w2.setSubject("标题");
w2.setText("邮件内容");
w2.addAttachment(new File("d:\\附件.txt"));
MailFactory.send(w2);
分享到:
评论

相关推荐

    spring邮件抽象层详解

    Spring邮件抽象层是Spring框架提供的一套用于发送电子邮件的高级接口,它隐藏了与底层邮件系统交互的复杂性,使得开发者能够以一种简洁的方式发送邮件。这个抽象层主要包含在`org.springframework.mail`包中,提供了...

    Spring实现各种邮件的发送

    首先,Spring邮件抽象层的核心接口是`MailSender`,它定义了发送邮件的基本操作。`SimpleMailMessage`是用于封装基本邮件属性的值对象,这些属性包括发件人(from)、收件人(to)、抄送人(cc)、主题(subject)...

    spring各种邮件发送

    Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如from, to,cc, subject,text。 包里还包含一棵以...

    Spring进阶—如何用Java代码实现邮件发送

    此外,Spring的邮件抽象层还有一套异常处理机制,以更好地封装和处理邮件系统可能出现的异常。 使用Spring发送邮件的基本步骤如下: 1. 添加Spring核心库和相关的邮件发送库(如JavaMail API)到项目依赖中。 2. ...

    spring集成邮件服务

    同时,如果你需要发送的邮件具有模板,可以考虑使用Spring的`Thymeleaf`或者其他模板引擎来动态生成邮件内容。 总的来说,Spring集成邮件服务使得在Java应用中发送邮件变得简单且灵活。通过合理的配置和编程,你...

    Spring整合Quartz定时发送邮件

    在本文中,我们将深入探讨如何使用Spring框架与Quartz库集成,实现定时发送邮件的功能。Quartz是一个开源的作业调度框架,它允许开发者在Java应用程序中安排任务执行。而Spring则是一个强大的企业级应用开发框架,...

    ActiveMQ与Spring整合之异步发送邮件

    2. **Spring JMS抽象层**:Spring通过`JmsTemplate`类提供了简化JMS操作的抽象层,简化了消息的发送和接收。 3. **容器管理的bean**:Spring允许在bean中注入`ConnectionFactory`和`Destination`,使得配置更简洁。...

    spring整合quartz定时发送邮件

    Spring 整合 Quartz 定时发送邮件是一种常见的任务调度场景,用于定期执行如发送通知、报告等操作。Quartz 是一个开源的作业调度框架,它允许开发者创建、调度和管理任务。而Spring作为一个强大的企业级应用开发框架...

    spring整合freemarker发送邮件例子

    在这个场景中,Spring 提供了电子邮件服务的抽象层,使得发送邮件变得简单。 2. **FreeMarker**:FreeMarker 是一个基于模板的 Java 模板引擎,常用于生成动态 HTML、XML 或其他文本格式的文档。在这里,我们使用 ...

    SpringMailTest.zip

    Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender(实现类为org.springframework.mail.javamail.JavaMailSenderImpl,下面会用到改实现类)和封装了简单邮件属性的值...

    Java基于JDK1.6基础上Spring2.5.6版本上发送邮件功能需要的依赖lib.zip

    2. **Spring邮件支持**: - Spring 2.5.6提供了`JavaMailSender`接口,该接口定义了发送邮件的基本方法,如`send(SimpleMailMessage message)`和`send(MailMessage[] messages)`。 - `SimpleMailMessage`是一个预...

    SpringUseJavaMailSendEmail(spring使用javamail发送邮件的例子)

    首先,我们需要理解Spring框架中的邮件服务抽象。Spring提供了一个`JavaMailSender`接口,该接口定义了发送邮件的基本方法。我们可以通过配置Spring的bean来实现这个接口,以便与JavaMail API集成。在`...

    Spring+Freemarker 使用163发HTML格式的邮件

    标题 "Spring+Freemarker 使用163发HTML格式的邮件" 涉及到的主要知识点是使用Spring框架集成Freemarker模板引擎来发送HTML格式的邮件,通过163邮箱服务实现。以下是对这些技术的详细介绍: 1. **Spring框架**: ...

    spring发送邮件

    这两种方法都基于JavaMail API,但Spring提供了一层抽象,使得邮件发送的代码更加简洁和易于管理。 1. **JavaMailSender接口**: JavaMailSender接口提供了发送简单文本邮件、HTML邮件以及带有附件的邮件的方法。...

    Spring mail 使用多个账号发送带有附件的HTML邮件

    Spring Mail则是在这个API之上提供了一层抽象,使得邮件发送的代码更加简洁和易于管理。 1. **配置Spring Mail**: 在Spring应用中配置Spring Mail通常涉及以下步骤: - 添加依赖:确保项目中包含了`spring-...

    使用Java实现邮件发送功能,邮件发送API JavaMail

    在实际的开发过程中,许多开发者倾向于使用封装了JavaMail的邮件发送库,例如Spring Framework提供的邮件抽象层,这样可以进一步简化邮件发送的代码编写。 JavaMail作为一个功能强大的邮件处理库,为Java开发者提供...

    Spring Boot 发送邮件功能案例分析

    Spring 框架使用 JavaMailSender 接口为发送邮件提供了一个简单的抽象,并且 Spring Boot 也为它提供了自动配置和一个 starter 模块。如果 spring.mail.host 和相关的库(通过 spring-boot-starter-mail 定义)都...

    Java网络编程-基于Spring的邮件编程-1

    Spring框架为此提供了更简洁的抽象,使得邮件发送变得简单易行。 Spring中的`JavaMailSender`接口是发送邮件的核心接口,它定义了发送简单邮件、带附件的邮件等方法。我们可以通过Spring的配置文件或者Java配置来...

    java邮件发送组件

    在实际开发中,除了直接使用Java Mail API,还可以选择一些成熟的Java邮件发送库,例如Apache Commons Email、Spring Framework的MailSender接口等,它们提供了更友好的API和额外的特性,可以帮助开发者快速实现邮件...

Global site tag (gtag.js) - Google Analytics