Spring提供了一个发送电子邮件的高级抽象层,它向用户屏蔽了底层邮件系统的一些细节,同时负责低层次的代表客户端的资源处理。Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender和 封装了简单邮件的属性如from, to,cc, subject, text的值对象叫做SimpleMailMessage。
1、我们定义一个发送邮件的接口:OrderManager.java
1 public interface OrderManager extends BaseManager{
2 /**
3 *email,要发送的邮件地址;
4 *Code:激活码
5 */
6 public void placeOrder(String email);
7 }
2、我们需要对该接口进行实现的方法:OrderManagerImpl.java
1 import javax.mail.Message;
2 import javax.mail.MessagingException;
3 import javax.mail.internet.InternetAddress;
4 import javax.mail.internet.MimeMessage;
5 import org.springframework.mail.MailException;
6 import org.springframework.mail.javamail.JavaMailSender;
7 import org.springframework.mail.javamail.MimeMessagePreparator;
字串6
8 import service.OrderManager;
9
11 public class OrderManagerImpl extends BaseManagerImpl implements OrderManager {
字串2
字串2
12
13 private JavaMailSender mailsender;
14 private MyMailMessage message;
15
16
17 public void setMessage(CityMailMessage message)
18 {
19 this.message = message;
20 }
21 public void setMailsender(JavaMailSender mailsender) {
22 this.mailsender = mailsender;
23 }
24 public void placeOrder(final String email) {
25
26
27 MimeMessagePreparator preparator = new MimeMessagePreparator() {
28 public void prepare(MimeMessage mimeMessage) throws MessagingException {
29 mimeMessage.setRecipient(Message.RecipientType.TO,
30 new InternetAddress(email));
31 mimeMessage.setFrom(new InternetAddress(message.getFrom()));
32 /**转换编码为GBK*/
33 mimeMessage.setSubject(message.getSubject(),"GBK");
36 mimeMessage.setText(email+"<br>"+message.getSubject()+message.getText(),"GBK");
37
38 }
39 };
40 try{
41 mailsender.send(preparator);
42 }
43 catch(MailException ex) { 字串9 字串9
44 //log it and go on
45 System.err.println(ex.getMessage());
46 }
47 }
48 }
3、spring配置发送email的applicationContext-email.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
3 "http://www.springframework.org/dtd/spring-beans.dtd">
4
5 <beans>
6 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
7 <property name="host">
8 <value>smtp.163.com</value>
9 </property>
10 <property name="username">
11 <value>username</value>
12 </property>
13 <property name="password">
14 <value>password</value>
15 </property>
16 <property name="javaMailProperties">
17 <props>
18 <prop key="mail.smtp.auth">true</prop>
19 <prop key="mail.smtp.timeout">25000</prop>
20 </props>
21 </property>
22 </bean>
23
24 <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
字串3
字串2
25 <property name="from">
26 <value>Email</value>
27 </property>
28 <property name="subject">
29 <value>标题</value>
30 </property>
31 <property name="text">
32 <value>内容</value>
33 </property>
46 </bean>
47
48 <bean id="orderManager" class="cn.cityyouth.service.impl.OrderManagerImpl">
49 <property name="mailsender">
50 <ref bean="mailSender" />
51 </property>
52 <property name="message">
53 <ref bean="mailMessage" />
54 </property>
55 </bean>
56
57 </beans>
4、最后配置自己的jsp面以及action
1 package cn.cityyouth.web.action;
2
3 import javax.servlet.http.HttpServletRequest;
4 import javax.servlet.http.HttpServletResponse;
5 import org.apache.struts.action.ActionForm;
6 import org.apache.struts.action.ActionForward;
7 import org.apache.struts.action.ActionMapping;
8 import org.apache.struts.action.ActionMessage;
9 import org.apache.struts.action.ActionMessages; 字串6
字串8
10 import com.test.service.OrderManager;
11
12 public class SendMailAction extends BaseAction {
13
14 /**
15 * Method execute
16 *
17 * @param mapping
18 * @param form
19 * @param request
20 * @param response
21 * @return ActionForward
22 */
23 public ActionForward execute(ActionMapping mapping, ActionForm form,
24 HttpServletRequest request, HttpServletResponse response) {
25 OrderManager omi=(OrderManager)this.getBean("orderManager");
26 String useremail="123@163.com";
27 omi.placeOrder(useremail);
28 }
29 }
到此所有的开发以结束。
Sring邮件抽象层的主要包是:org.springframework.mail 包。它包含叫MailSender为发送邮件的核心接口和包含简单邮件属性例如from,to,cc,subject,text叫SimpleMailMessage的值对象. 这个包也包含一个检查异常的层次,它支持一个更高级别的抽象超过低级别的邮件系统异常伴随根异常存在MailException. 请参考JavaDocs为更多的信息杂邮件异常层次。
Spring也支持一个MailSender的专用于JavaMail特征例如MIME消息子接口,命名为org.springframework.javamail.JavaMailerSener。它也支持一个为JavaMail MIME信息的准备回调接口,命名为org.springframework.mail.JavaMail.MimeMessagePreparator.
字串7
分享到:
相关推荐
Spring Boot整合邮件发送并保存历史发送邮箱 项目描述 项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件...
这个项目"struts spring 实现简单的邮件发送"旨在展示如何整合这两个框架来完成邮件发送的功能。 首先,Struts是Apache组织的一个开源项目,它提供了一种模型驱动的方式来构建动态Web应用程序。Struts框架通过控制...
通过以上步骤,你就可以在Java应用中使用Spring发送邮件了。当然,实际的邮件发送可能更复杂,涉及HTML内容、附件、多部分消息等,可以使用`MimeMessage`和`MimeMessageHelper`类来构建复杂的邮件结构。例如,添加...
Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java应用程序中发送邮件变得更加简单。让我们深入探讨这个主题。 首先,JavaMail API是Java用来处理邮件收发的...
下面将详细介绍如何使用Spring发送邮件。 首先,我们需要在项目中引入Spring的邮件支持。这通常通过添加`spring-context-support`依赖来完成,该依赖包含了处理邮件发送所需的类。在Maven项目中,可以在pom.xml文件...
它提供了send()方法,可以用来发送简单的文本邮件或者带有附件的复杂邮件。为了实现批量邮件发送,我们需要创建一个邮件服务类,该类将利用MailSender接口,并通过适当的方式管理邮件的队列和发送过程。 批量邮件...
在"spring各种邮件发送"这个主题中,我们将探讨Spring框架如何帮助开发者实现电子邮件的发送。邮件服务在许多应用场景中都十分常见,例如用户注册确认、密码重置提醒等。 首先,Spring框架提供了`JavaMailSender`...
它支持SMTP(简单邮件传输协议)和JavaMail API,可以处理HTML邮件、附件等复杂需求。要使用Spring Mail,你需要在项目中引入相应的依赖,并配置邮件服务器的属性,如SMTP服务器地址、端口、用户名和密码。之后,你...
综上所述,Spring的JavaMailSenderImpl提供了一种简单易用的方式,在Java应用程序中发送电子邮件。配合JavaMail API,我们可以实现复杂的邮件功能,如添加附件、设置HTML格式的正文等。在实际项目中,根据具体需求...
标题中的"Spring发送邮件简单实例"表明我们即将探讨的是如何使用Spring框架来实现电子邮件的发送功能。Spring框架提供了丰富的工具类和接口,使得在Java应用中发送邮件变得相当简便。这个实例可能是通过...
它提供了一系列接口和类,用于操作邮件服务器,包括SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(Internet消息访问协议)。 Spring框架通过`org.springframework.mail`包提供了对JavaMail的支持。它抽象了...
它提供了一种简单的方式来进行邮件的发送,支持多种邮件发送协议,例如 SMTP 等,并且可以很好地与其他 Spring 组件集成。 #### 二、准备工作 在开始使用 Spring Mail 之前,我们需要做一些准备工作: 1. **添加...
要使用Spring发送邮件,我们需要进行以下步骤: 1. **配置JavaMailSender**:在Spring的配置文件中,我们需要配置`JavaMailSender`的实现,例如`JavaMailSenderImpl`。配置项包括SMTP服务器地址、端口、用户名、...
本项目聚焦于使用Spring Boot来开发一个支持多附件邮件发送的微服务平台。这个平台可以方便地集成到各种业务场景中,例如发送报告、通知或者用户验证邮件。 首先,我们需要了解Spring Boot的邮件服务模块——`...
在Java开发中,Spring框架提供了一种简单而强大的方式来发送电子邮件。Spring的`JavaMailSender`接口以及其实现类`SimpleMailMessage`和`MailMessage`,使得开发者能够轻松地集成邮件服务到应用程序中。这篇博客()...
本教程将聚焦于Spring的一个实用特性——定时任务,特别是如何利用Spring集成JavaMailSender来实现定时发送邮件。我们将探讨以下知识点: 1. **Spring定时任务(Scheduled Tasks)** Spring通过`@Scheduled`注解和`...
总的来说,Spring发送带附件的邮件涉及了对Spring框架、JavaMail API的理解,以及163邮箱的设置。这个过程涉及到的代码编写和配置调整对于任何需要通过电子邮件进行通信的Java应用都是至关重要的。通过学习和实践这...