`
ediku
  • 浏览: 12075 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring发送各种类型的邮件

    博客分类:
  • java
阅读更多

备忘录:使用Spring发送各种类型的邮件,经测试,发送方和接收方可以是gmail,163。

 

当发送方是gmail时,设置有点不同。

 

Spring的设置:

 

Spring的设置代码 复制代码
  1. <!-- Activates annotation-based bean configuration -->   
  2. <!--   
  3. <context:component-scan base-package="com.aboy" />   
  4. -->   
  5.   
  6. <!-- JavaMailSender -->   
  7. <!--   
  8. <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">   
  9.     <property name="host" value="smtp.163.com" />   
  10.     <property name="username" value="obullxl@163.com" />   
  11.     <property name="password" value="********" />   
  12.     <property name="javaMailProperties">   
  13.         <props>   
  14.             <prop key="mail.smtp.auth">true</prop>   
  15.             <prop key="mail.smtp.timeout">25000</prop>   
  16.         </props>   
  17.     </property>   
  18. </bean>   
  19. -->   
  20. <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">   
  21.     <property name="host" value="smtp.gmail.com" />   
  22.     <property name="username" value="obullxl@gmail.com" />   
  23.     <property name="password" value="********" />   
  24.     <property name="javaMailProperties">   
  25.         <props>   
  26.             <prop key="mail.smtp.auth">true</prop>   
  27.             <prop key="mail.smtp.timeout">25000</prop>   
  28.             <prop key="mail.smtp.port">465</prop>   
  29.             <prop key="mail.smtp.socketFactory.port">465</prop>   
  30.             <prop key="mail.smtp.socketFactory.fallback">false</prop>   
  31.             <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>   
  32.         </props>   
  33.     </property>   
  34. </bean>   
  35.   
  36. <!-- 简单的message -->   
  37. <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">   
  38.     <property name="to" value="obullxl@163.com" />   
  39.     <property name="from" value="obullxl@gmail.com" />   
  40.     <property name="subject" value="测试邮件" />   
  41. </bean>   
  42.   
  43. <!-- MimeMessage -->   
  44. <bean id="mimeMessage" class="javax.mail.internet.MimeMessage" factory-bean="javaMailSender"  
  45.     factory-method="createMimeMessage" />  
	<!-- Activates annotation-based bean configuration -->
	<!--
	<context:component-scan base-package="com.aboy" />
	-->
	
	<!-- JavaMailSender -->
	<!--
	<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.163.com" />
		<property name="username" value="obullxl@163.com" />
		<property name="password" value="********" />
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.auth">true</prop>
				<prop key="mail.smtp.timeout">25000</prop>
			</props>
		</property>
	</bean>
	-->
	<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.gmail.com" />
		<property name="username" value="obullxl@gmail.com" />
		<property name="password" value="********" />
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.auth">true</prop>
				<prop key="mail.smtp.timeout">25000</prop>
				<prop key="mail.smtp.port">465</prop>
				<prop key="mail.smtp.socketFactory.port">465</prop>
				<prop key="mail.smtp.socketFactory.fallback">false</prop>
				<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
			</props>
		</property>
	</bean>
	
	<!-- 简单的message -->
	<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
		<property name="to" value="obullxl@163.com" />
		<property name="from" value="obullxl@gmail.com" />
		<property name="subject" value="测试邮件" />
	</bean>
	
	<!-- MimeMessage -->
	<bean id="mimeMessage" class="javax.mail.internet.MimeMessage" factory-bean="javaMailSender"
		factory-method="createMimeMessage" />

 

 

上面的设置中,第一个JavaMailSender的发送方为163邮箱,后面的一个为gmail邮箱的。

 

下面是单元测试代码:

 

单元测试代码代码 复制代码
  1. private JavaMailSender mailSender;   
  2. private MailMessage    mailMessage;   
  3. private MimeMessage    mimeMessage;   
  4.   
  5. @Before   
  6. public void setUp() {   
  7.     ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/mail-context.xml");   
  8.        
  9.     Assert.notNull(context);   
  10.        
  11.     this.mailSender = context.getBean(JavaMailSender.class);   
  12.     this.mailMessage = context.getBean(MailMessage.class);   
  13.     this.mimeMessage = context.getBean(MimeMessage.class);   
  14.        
  15.     Assert.notNull(this.mailSender);   
  16.     Assert.notNull(this.mailMessage);   
  17.     Assert.notNull(this.mimeMessage);   
  18. }   
  19.   
  20. /**   
  21.  * 普通文本邮件   
  22.  */   
  23. @Test   
  24. public void testSendPlainTextMail() {   
  25.     this.mailMessage.setSubject("普通文本邮件");   
  26.     this.mailMessage.setText("测试Spring发送Email.");   
  27.        
  28.     try {   
  29.         mailSender.send((SimpleMailMessage) this.mailMessage);   
  30.     } catch (MailException e) {   
  31.         System.out.println("Oops: 发送Email失败了....");   
  32.         e.printStackTrace();   
  33.     }   
  34. }   
  35.   
  36. /**   
  37.  * HTML格式邮件   
  38.  * @throws MessagingException    
  39.  */   
  40. @Test   
  41. public void testSendHTMLMail() throws MessagingException {   
  42.     MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");   
  43.        
  44.     messageHelper.setTo("obullxl@163.com");   
  45.     messageHelper.setFrom("obullxl@gmail.com");   
  46.     messageHelper.setSubject("HTML格式邮件");   
  47.     messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);   
  48.        
  49.     this.mailSender.send(this.mimeMessage);   
  50.        
  51. }   
  52.   
  53. /**   
  54.  * 带附件的HTML格式邮件   
  55.  * @throws MessagingException    
  56.  */   
  57. @Test   
  58. public void testSetAttachMail() throws MessagingException {   
  59.     MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");   
  60.        
  61.     messageHelper.setTo("obullxl@163.com");   
  62.     messageHelper.setFrom("obullxl@gmail.com");   
  63.     messageHelper.setSubject("带附件的HTML格式邮件");   
  64.     messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);   
  65.        
  66.     FileSystemResource file = new FileSystemResource(new File("E:/Study/Spring/Spring-Validator.jpg")); // 根据个人情况设置   
  67.     messageHelper.addInline("SpringValidator", file);   
  68.     messageHelper.addAttachment("SpringValidator", file);   
  69.        
  70.     ClassPathResource resource = new ClassPathResource("jbpm.cfg.xml"); // 根据个人情况设置   
  71.     messageHelper.addInline("jbpm.cfg.xml", resource);   
  72.     messageHelper.addAttachment("jbpm.cfg.xml", resource);   
  73.        
  74.     this.mailSender.send(this.mimeMessage);   
  75. }  
    private JavaMailSender mailSender;
    private MailMessage    mailMessage;
    private MimeMessage    mimeMessage;
    
    @Before
    public void setUp() {
        ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/mail-context.xml");
        
        Assert.notNull(context);
        
        this.mailSender = context.getBean(JavaMailSender.class);
        this.mailMessage = context.getBean(MailMessage.class);
        this.mimeMessage = context.getBean(MimeMessage.class);
        
        Assert.notNull(this.mailSender);
        Assert.notNull(this.mailMessage);
        Assert.notNull(this.mimeMessage);
    }
    
    /**
     * 普通文本邮件
     */
    @Test
    public void testSendPlainTextMail() {
        this.mailMessage.setSubject("普通文本邮件");
        this.mailMessage.setText("测试Spring发送Email.");
        
        try {
            mailSender.send((SimpleMailMessage) this.mailMessage);
        } catch (MailException e) {
            System.out.println("Oops: 发送Email失败了....");
            e.printStackTrace();
        }
    }
    
    /**
     * HTML格式邮件
     * @throws MessagingException 
     */
    @Test
    public void testSendHTMLMail() throws MessagingException {
        MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");
        
        messageHelper.setTo("obullxl@163.com");
        messageHelper.setFrom("obullxl@gmail.com");
        messageHelper.setSubject("HTML格式邮件");
        messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);
        
        this.mailSender.send(this.mimeMessage);
        
    }
    
    /**
     * 带附件的HTML格式邮件
     * @throws MessagingException 
     */
    @Test
    public void testSetAttachMail() throws MessagingException {
        MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");
        
        messageHelper.setTo("obullxl@163.com");
        messageHelper.setFrom("obullxl@gmail.com");
        messageHelper.setSubject("带附件的HTML格式邮件");
        messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);
        
        FileSystemResource file = new FileSystemResource(new File("E:/Study/Spring/Spring-Validator.jpg")); // 根据个人情况设置
        messageHelper.addInline("SpringValidator", file);
        messageHelper.addAttachment("SpringValidator", file);
        
        ClassPathResource resource = new ClassPathResource("jbpm.cfg.xml"); // 根据个人情况设置
        messageHelper.addInline("jbpm.cfg.xml", resource);
        messageHelper.addAttachment("jbpm.cfg.xml", resource);
        
        this.mailSender.send(this.mimeMessage);
    }

 

运行测试用例,即可看到结果!

分享到:
评论

相关推荐

    java发送邮件 spring发送邮件

    利用spring下的一个类进行邮件发送,内附具体用法

    spring各种邮件发送

    它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如from, to,cc, subject,text。 包里还包含一棵以MailException为根的checked Exception继承树,它们提供了对底层...

    springboot集成javamail实现发送邮件功能

    springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981

    Spring 2.0 开发参考手册

    7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对...

    Spring-Reference_zh_CN(Spring中文参考手册)

    7.3.2. Spring里的通知类型 7.3.2.1. 拦截around通知 7.3.2.2. 前置通知 7.3.2.3. 异常通知 7.3.2.4. 后置通知 7.3.2.5. 引入通知 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 ...

    一个用于深入学习并实战Spring Boot的项目

    spring boot demo是一个用于深度学习并实战...强大的ORM框架)、upload( 本地文件上传和七牛云文件上传)、redis( 缓存)、ehcache( 缓存)、email( 发送各种类型邮件)、task( 基础定时任务)、quartz( 动态管理定时任务)等

    Spring中文帮助文档

    7.3.2. Spring里的通知类型 7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 ...

    spring boot demo 是一个用来深度学习并实战 spring boot 的项目

    plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...

    关于和spring-boot相关的demo大全

    plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...

    spring chm文档

    7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对...

    Spring攻略(第二版 中文高清版).part1

    第1章 Spring简介 1 1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用...

    Spring API

    7.3.2. Spring里的通知类型 7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 ...

    基于Java实现mail的邮件收发系统

    功能特点: 发送邮件: 用户可以通过系统发送邮件,包括设置收件人、主题、正文等信息。...附件处理: 需要支持不同类型的邮件附件,确保能够准确发送和接收附件。 安全性意识: 需要考虑邮件传输

    java发送邮件封装,链式传递参数

    .subject("使用JavaMail发送混合组合类型的邮件测试主题") // .attachFiles(attachFiles) .content(contentBuf.toString()) .toRecipients(toRecipients); ServiceResponse&lt;String&gt; serviceResponse = ...

    Spring攻略(第二版 中文高清版).part2

    第1章 Spring简介 1 1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service

    spring-email-master:使用spring4.3.4 发送邮件,三种方式:文本格式,HTML格式,velocity模版,Thymeleaf模版,使用模版以及策略设计模式实现同步和异步发送

    Spring Email抽象核心接口MailSender,其实现类JavaMailSenderImpl,在其中配置邮件 服务器host,pssword,协议等 。。。。。 1.发送简单的消息 SimpleMailMessage:发送简单的消息 2.发送丰富的消息(比如带有附件,内...

    Spring in Action(第2版)中文版

    12.2.1配置邮件发送器 12.2.2构建电子邮件 12.3调度任务 12.3.1使用javatimer调度任务 12.3.2使用quartz调度器 12.3.3按调度计划调用方法 12.4使用jmx管理springbean 12.4.1将springbean输出为mbean 12.4.2...

    Spring in Action(第二版 中文高清版).part2

    12.2.1 配置邮件发送器 12.2.2 构建电子邮件 12.3 调度任务 12.3.1 使用Java Timer调度任务 12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为...

    Spring in Action(第二版 中文高清版).part1

    12.2.1 配置邮件发送器 12.2.2 构建电子邮件 12.3 调度任务 12.3.1 使用Java Timer调度任务 12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为...

Global site tag (gtag.js) - Google Analytics