spring对mail的支持是org.springframework.mail.MailSender接口来定义的,其中的org.springframework.mail.javamail.JavamailSenderImpl这个实现类提供了对javamail的支持,下面简单介绍其用法,首先看下不用注入的方法,再看用注入的方法。
1、发送简单邮件的例子
首先,我们要需要springframwork 1.2.8中lib目录下的j2ee目录的activation.jar和mail.jar文件,将它们放到工程的lib目录下去。
发送一个简单邮件的例子如下
import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.SimpleMailMessage; public class SimpleMailDemo { public static void main(String[] args) throws Exception { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 设定 Mail Server senderImpl.setHost("mail.xxxxx"); //SMTP验证时,需要用户名和密码 senderImpl.setUsername("abc"); senderImpl.setPassword("defdf"); // 建立邮件讯息 SimpleMailMessage mailMessage = new SimpleMailMessage(); // 设定收件人、寄件人、主题与内文 mailMessage.setTo(hello@abc.com); mailMessage.setFrom(der@def.com); mailMessage.setSubject("Test"); mailMessage.setText("This is a test!!!"); // 传送邮件 senderImpl.send(mailMessage); System.out.println("邮件传送OK.."); } }
2、发送HTML格式的邮件
要发送HTML格式的话,要用org.springframework.mail.javamail.MimeMessageHelper来建立HTML邮件
import org.springframework.mail.javamail.JavaMailSenderImpl; import javax.mail.internet.MimeMessage; import org.springframework.mail.javamail.MimeMessageHelper; public class HTMLMailDemo { public static void main(String[] args) throws Exception { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 设定 Mail Server senderImpl.setHost("mail.xxxxx"); //SMTP验证时,需要用户名和密码 senderImpl.setUsername("abc"); senderImpl.setPassword("defdf"); // 建立邮件讯息 MimeMessage mailMessage = senderImpl.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage); // 设定收件人、寄件人、主题与内文 messageHelper.setTo("xxx@your_mail_server.com"); messageHelper.setFrom("xxx@your_mail_server.com"); messageHelper.setSubject("Test"); messageHelper.setText( "<html><head></head><body><h1>Hello! Spring!" + "</h1></body></html>", true); // 传送邮件 senderImpl.send(mailMessage); System.out.println("邮件传送OK..."); } }
3、发送带附件的邮件
这时要用MimeMessageHelper的addAttachement()方法
import java.io.File; import org.springframework.mail.javamail.JavaMailSenderImpl; import javax.mail.internet.MimeMessage; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.javamail.MimeMessageHelper; public class AttachedFileDemo { public static void main(String[] args) throws Exception { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); //SMTP验证时,需要用户名和密码 senderImpl.setUsername("abc"); senderImpl.setPassword("defdf"); MimeMessage mailMessage = senderImpl.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true); messageHelper.setTo("def@erer.net"); messageHelper.setFrom("bfg@tom.com"); messageHelper.setSubject("Test"); messageHelper.setText( "<html><head></head><body><h1>Hello! Spring!" + "</h1></body></html>", true); FileSystemResource file = new FileSystemResource( new File("d:/test.rar")); messageHelper.addAttachment("test.rar", file); senderImpl.send(mailMessage); System.out.println("OK"); } }
4、用注入的方式来配置邮件,和之前的差不多拉
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" > <beans> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host"> <value>smtp.xxx.com</value> </property> <property name="javaMailProperties"> <props> <!-- 如果要使用用户名和密码验证,这一步需要 --> <prop key="mail.smtp.auth">true</prop> </props> </property> <property name="username"> <value>你的Email地址</value> </property> <property name="password"> <value>你的Email密码</value> </property> </bean> <!-- 简单的message --> <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"> <property name="to"> <value>收件人地址</value> </property> <property name="from"> <value>你的地址</value> </property> <property name="subject"> <!-- Email 标题 --> <value>A Spring Mail sender</value> </property> </bean> <!-- 测试发送的类 --> <bean id="testMailSender" class="test.mail.TestSenderMail"> <property name="mailMessage"> <ref bean="mailMessage"/> </property> <property name="mailSender"> <ref bean="mailSender"/> </property> </bean> </beans>
上面的配置好以后就可以直接发送了, 看看TestSenderMail.java的代码:
package test.mail; import org.springframework.mail.MailException; import org.springframework.mail.MailSender; import org.springframework.mail.SimpleMailMessage; public class TestSenderMail { private MailSender mailSender; private SimpleMailMessage mailMessage; public TestSenderMail() { } public SimpleMailMessage getMailMessage() { return mailMessage; } public void setMailMessage(SimpleMailMessage mailMessage) { this.mailMessage = mailMessage; } public MailSender getMailSender() { return mailSender; } public void setMailSender(MailSender mailSender) { this.mailSender = mailSender; } public void sendMail() { SimpleMailMessage message = new SimpleMailMessage(mailMessage); //设置email内容, message.setText("测试Spring 发送Email."); try { mailSender.send(message); } catch (MailException e) { // TODO Auto-generated catch block System.out.println("O . 发送Email失败了...."); e.printStackTrace(); } } }
TestApp.java
package test.mail; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestApp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ApplicationContext context = new ClassPathXmlApplicationContext( "test/mail/mail.xml"); TestSenderMail sender = (TestSenderMail) context .getBean("testMailSender"); sender.sendMail(); } }
相关推荐
Java发送邮件是软件开发中常见的功能,Spring框架提供了一种优雅的方式来实现这一需求。Spring框架以其模块化和灵活性而著名,它包含了一个名为`JavaMailSender`的接口,专门用于处理电子邮件的发送。在这个场景中,...
在Spring中,发送电子邮件的功能是通过Spring的Mail API实现的,这在系统监控、报警通知、用户验证等场景中非常常见。下面将详细介绍如何使用Spring发送邮件。 首先,我们需要在项目中引入Spring的邮件支持。这通常...
Spring Boot整合邮件发送并保存历史发送邮箱 项目描述 项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件...
在Spring框架中,发送邮件是一项常见的任务,尤其在企业级应用中用于通知、验证或客户服务。要实现这个功能,你需要一些特定的Java Archive (JAR) 文件,这些文件提供了Spring支持邮件发送所需的类和库。以下是一些...
本篇文章将深入探讨如何使用Spring进行JMS消息的发送和接收。 ### 1. JMS概述 JMS是一种中间件协议,它定义了生产、存储和消费消息的标准接口。JMS提供两种类型的消息模型:点对点(Point-to-Point, P2P)和发布/...
在Java编程领域,Spring框架是广泛应用的开源框架,它提供了许多功能,其中之一就是发送电子邮件。SpringMail是Spring框架的一个扩展,专门用于简化邮件发送过程。本文将深入探讨如何使用SpringMail来实现邮件发送...
其中,Spring框架的邮件服务模块为我们提供了发送邮件的功能,使得开发者无需深入了解底层的SMTP协议,也能轻松实现邮件发送。本教程将详细讲解如何使用Spring发送邮件,以及在遇到问题时如何排查。 首先,我们需要...
本例为完整的采用spring 发送带 附件的邮件。 下载后需要改动的地方: 1.在mail.properties中将接收者邮箱地址(username),邮箱密码换成真实的。 2.在SpringJavaMailDemo类中把发送者和接收者邮箱地址换成真实地址...
在"spring各种邮件发送"这个主题中,我们将探讨Spring框架如何帮助开发者实现电子邮件的发送。邮件服务在许多应用场景中都十分常见,例如用户注册确认、密码重置提醒等。 首先,Spring框架提供了`JavaMailSender`...
而发送电子邮件是许多应用程序中常见的需求,Spring框架通过其邮件支持模块Spring Mail,为开发者提供了一个简单易用的方式来实现这一功能。本文将深入探讨如何使用Spring发送电子邮件。 首先,我们需要了解Spring ...
《Spring In Action:使用Spring发送和接收JMS消息》 在Java消息服务(Java Message Service,JMS)中,Spring框架提供了一种高效且灵活的方式来处理消息传递。JMS允许应用程序在分布式环境中发送和接收消息,它...
"照着spring in action例子做的用spring发送邮件的例子"是一个基于Spring框架实现电子邮件发送功能的实践项目。在这个项目中,我们将探讨Spring如何与JavaMailSender接口结合,以发送邮件。 1. **Spring与邮件服务...
本项目聚焦于使用Spring Boot来开发一个支持多附件邮件发送的微服务平台。这个平台可以方便地集成到各种业务场景中,例如发送报告、通知或者用户验证邮件。 首先,我们需要了解Spring Boot的邮件服务模块——`...
在本文中,我们将深入探讨如何使用Spring框架来发送邮件,这是一个非常实用的功能,特别是在业务系统中通知用户、发送确认信息或进行客户服务时。 首先,我们需要了解Spring的邮件支持是通过`JavaMailSender`接口...
**Spring邮件发送** 在Java开发中,Spring框架提供了一种简单而强大的方式来发送电子邮件。Spring的`JavaMailSender`接口以及其实现类`SimpleMailMessage`和`MailMessage`,使得开发者能够轻松地集成邮件服务到应用...
标题中的"Spring发送邮件简单实例"表明我们即将探讨的是如何使用Spring框架来实现电子邮件的发送功能。Spring框架提供了丰富的工具类和接口,使得在Java应用中发送邮件变得相当简便。这个实例可能是通过...
本主题将深入探讨Spring框架如何支持发送电子邮件(Email)功能,并解答一些常见的问题(FAQ)。首先,我们来详细了解一下Spring发送Email的核心概念。 1. **Spring的JavaMailSender接口** Spring提供了一个`...
其中,Spring的JavaMailSenderImpl是用于发送电子邮件的一个重要工具,它使得开发者能够方便地集成邮件服务到他们的应用中。下面将详细介绍这个知识点。 **1. Spring的JavaMailSender接口与JavaMailSenderImpl实现*...