`
408516584
  • 浏览: 17960 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java集成spring异步发送邮件

阅读更多
package com.goujia.ges.common.helper;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.goujia.ges.common.util.SSLUtils;

/**
 * 邮件发送器
 * 
 * @author xieshangzhen
 * @date 2015年9月28日
 * @version 1.0
 */
public class MailSender {

	private static final Logger logger = LoggerFactory
			.getLogger(MailSender.class);

	private JavaMailSender mailSender;

	private Executor executor = Executors.newFixedThreadPool(10);

	public void setMailSender(JavaMailSender mailSender) {
		this.mailSender = mailSender;
	}

	/**
	 * 邮件发送同步
	 * @param to 接收方
	 * @param subject 主题
	 * @param content 内容
	 * @throws Exception 
	 */
	public void sendMail(final String to, final String subject,
			final String content) throws Exception {

			//SSLUtils.ignoreSsl();
		try {
			MimeMessage message = mailSender.createMimeMessage();
			MimeMessageHelper helper = new MimeMessageHelper(message, true,
					"utf-8");
			helper.setTo(to);
			helper.setFrom("goujia@goujiawang.com");
			helper.setSubject(subject);
			helper.setText(content, true);
			mailSender.send(message);
			logger.info("mail already send");
		} catch (MessagingException e) {
			logger.error("generate mail fialure");
			e.printStackTrace();
		}
	}

	/**
	 * 邮件发送异步
	 * @param to 接收方
	 * @param subject 主题
	 * @param content 内容
	 */
	public void sendMailAsync(final String to, final String subject,
			final String content) {
		Runnable task = new Runnable() {

			@Override
			public void run() {
				try {
					sendMail(to, subject, content);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		};
		executor.execute(task);
	}
}

 

<beans:bean class="com.goujia.ges.common.helper.MailSender">
    	<beans:property name="mailSender" ref="javaMailSender"></beans:property>
    </beans:bean>
    
     <beans:bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">  
       <beans:property name="host" value="smtp.qq.com" />
       <beans:property name="port" value="25" />
       <beans:property name="username" value="" />
       <beans:property name="password" value="" />
       <!-- SMTP服务器验证 -->  
       <beans:property name="javaMailProperties">  
           <beans:props>  
               	<!-- 验证身份 -->  
           		<beans:prop key="mail.smtp.auth">true</beans:prop>
            	<beans:prop key="mail.smtp.timeout">25000</beans:prop> 
          </beans:props>  
       </beans:property>  
   </beans:bean> 

 

1
2
分享到:
评论

相关推荐

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

    当ActiveMQ与Spring整合时,可以方便地实现异步处理,比如异步发送邮件,这在大型系统中尤为常见,因为它们能够避免阻塞主线程,提升系统性能。 **ActiveMQ基础** 1. **概念理解**:ActiveMQ作为消息代理,接收并...

    java-spring经典教材

    - **JMS支持**:Spring提供了对Java消息服务(JMS)的支持,使得异步消息处理更加容易。 #### 五、Spring框架的发展历程 自2003年发布以来,Spring框架经历了多次迭代和发展,逐渐成为Java领域最重要的开源项目之...

    JAVA与XML异步刷新

    在Java中,可以使用Servlet或者Spring MVC等框架来处理异步请求。服务器端的Java代码接收请求,处理XML数据,然后将结果返回。XML作为数据交换格式,可以方便地被解析和生成,Java中的DOM、SAX和StaX等解析器都能很...

    java发送邮件,spring JavaMailSender 邮件,复制粘贴直接用!!2发送方式

    Java发送邮件是常见的系统集成需求,Spring框架中的JavaMailSender接口提供了一种便捷的方式来实现这一功能。本教程将详细介绍如何使用Spring MVC与JavaMailSender发送邮件,并提供两种发送方式。 首先,我们需要...

    手把手教你 ,spring定时发送邮件

    本教程将聚焦于Spring的一个实用特性——定时任务,特别是如何利用Spring集成JavaMailSender来实现定时发送邮件。我们将探讨以下知识点: 1. **Spring定时任务(Scheduled Tasks)** Spring通过`@Scheduled`注解和`...

    【java框架】SpringBoot(4)--SpringBoot实现异步、邮件、定时任务(csdn)————程序.pdf

    SpringBoot集成邮件发送非常方便,只需要添加对应的Starter模块,配置好邮件服务器参数,然后调用JavaMailSender接口即可发送邮件。以下是使用QQ邮箱发送邮件的基本步骤: 1. **添加依赖**:首先,需要在项目的pom....

    Spring mail 发送邮件

    通过集成Spring Mail,开发者可以轻松地将邮件发送功能整合到他们的应用中。本篇将深入探讨如何使用Spring Mail发送邮件,以及它背后的实现原理。 首先,我们需要在项目中引入Spring Mail的依赖。通常,这可以通过...

    tomcat spring jms 异步消息传递入门实例

    本教程将带你逐步了解如何利用Tomcat、Spring和JMS(Java Message Service)构建一个简单的异步消息传递入门实例。 首先,让我们来理解一下核心组件: 1. **Tomcat**:这是一个流行的开源Java Servlet容器,用于...

    java学习之spring2.0

    - **JMS和JavaMail支持**:Spring提供了对Java消息服务(JMS)和邮件服务的接口,方便开发者处理异步通信和邮件发送。 综上,Spring 2.0不仅是一个强大的框架,也是构建现代Java应用的重要基石。它的全面性和灵活...

    java rabbitmq spring springAMQP 代码包 project

    这个“java rabbitmq spring springAMQP 代码包 project”显然是一个综合性的项目,旨在展示如何在Java环境中集成和使用RabbitMQ消息队列服务,结合Spring框架以及Spring AMQP的高级抽象来实现。接下来,我们将详细...

    DWR集合Spring实现异步提交

    **DWR(Direct Web ...**DWR集成Spring** 1. **配置DWR**:首先,我们需要在Spring配置文件中引入DWR相关的bean。这通常包括`DwrServlet`和`DWRConfig`配置,它们分别用于处理DWR请求和定义DWR的行为。 ```xml ...

    Spring 集成Java消息服务

    当我们谈论"Spring集成Java消息服务"时,意味着我们要利用Spring框架的能力来实现基于JMS的消息传递功能。 **Spring与JMS的集成** 1. **Spring JMS模块**:Spring框架提供了一个JMS模块,使得开发者可以轻松地在...

    使用Spring Boot 开发支持多附件邮件发送微服务平台代码

    本项目聚焦于使用Spring Boot来开发一个支持多附件邮件发送的微服务平台。这个平台可以方便地集成到各种业务场景中,例如发送报告、通知或者用户验证邮件。 首先,我们需要了解Spring Boot的邮件服务模块——`...

    jms简单demo,集成spring和不集成

    JMS(Java Message Service)是Java平台中用于创建、发送、接收和读取消息的标准API。它提供了一种可靠和可扩展的方式来进行异步通信,是企业级应用中常见的组件。在本示例中,"jms简单demo"涵盖了两个方面:与...

    spring中邮件及定时任务

    Spring Boot提供了内置的Tomcat服务器和自动配置功能,使邮件服务和定时任务的集成变得更加简单。 关于压缩包中的文件"spring_扩展_邮件及定时任务_2",它很可能包含了示例代码或者配置文件,用于演示如何在Spring...

    java邮件系统-javaweb项目

    Java邮件系统是一个基于Java Web技术构建的B/S(Browser/Server)架构的应用程序,它允许用户通过网页浏览器发送、接收和管理电子邮件。在本项目中,开发者利用了Java的强大力量,特别是对于网络通信和数据处理的...

    异步redis + java源码

    6. 集成Spring 在Spring框架中,可以使用`LettuceConnectionFactory`创建异步Redis连接工厂,并通过`@EnableCaching`和`CacheManager`配置,将异步Redis集成到Spring的缓存管理中。 7. 源码分析 分析Lettuce的...

    Java_Spring Integration提供了Spring编程模型的扩展,以支持众所周知的企业集成模式EIP.zip

    Java Spring Integration 是一个强大的框架,它扩展了Spring编程模型,以实现企业级应用程序之间的无缝集成。这个框架的主要目标是简化微服务、系统和服务之间的通信,遵循Enterprise Integration Patterns (EIP)这...

    spring boot发送普通文本邮件/HTML邮件/附件邮件/图片邮件完整代码.zip

    在Spring Boot应用中,发送...在实际应用中,可能还需要处理异常、异步发送、模板引擎集成等功能,但这些基础示例已经足够帮助理解如何在Spring Boot中使用邮件服务。记得根据实际邮件服务提供商的设置调整SMTP配置。

    spring mvc ajax异步文件的上传和普通文件上传

    在Spring MVC框架中,文件上传是一项常见的功能,无论是普通的文件上传还是通过Ajax实现的异步文件上传,都为用户提供了更好的交互体验。本篇将详细讲解这两种方式的实现原理及步骤。 首先,让我们来理解一下普通...

Global site tag (gtag.js) - Google Analytics