`
Jerry.Liu
  • 浏览: 3970 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用Spring邮件发送Email

阅读更多
****************本人申明,本人所发之贴均为原创****************
Spring提供了一个发送电子邮件的高级抽象层,它向用户屏蔽了底层邮件系统的一些细节,同时负责低层次的代表客户端的资源处理。Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender和 封装了简单邮件的属性如from, to,cc, subject, text的值对象叫做SimpleMailMessage。
首先:我们定义一个发送邮件的接口:IMailManager.java
/*
* IMailManager.java
* Copyright 2005, All rights reserved.
*/
package test.mail.manager;

import test.common.logic.IManager;
import test.model.Order;

/**
* Note:this interface mainly deal with the sendOrder
*/
public interface IMailManager extends IManager{
   
    void sendOrder(Order order);
}

然后实现这个接口:MailManager.java
/*
* MailManager.java
* Copyright 2005, All rights reserved.
*/
package test.mail.manager;

import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

import test.common.logic.impl.Manager;
import test.model.Order;

/**
* Note:the implements of IMailManager
*/
public class MailManager extends Manager implements IMailManager {
   
    private MailSender mailSender;
    private SimpleMailMessage message;

    public void sendOrder(Order order) {
        SimpleMailMessage mailMessage = new SimpleMailMessage(this.message);
        mailMessage.setTo(order.getUser().getEmail());
        mailMessage.setText("Dear"
                + order.getUser().getFirstName()
                + order.getUser().getLastName()
                + ", thank you for placing order. Your order code is "
                + order.getCode());
        try{
            mailSender.send(mailMessage);
        }catch(MailException ex) {
            System.err.println(ex.getMessage());           
        }

    }

    /**
     * @param mailSender The mailSender to set.
     */
    public void setMailSender(MailSender mailSender) {
        this.mailSender = mailSender;
    }
    /**
     * @param message The message to set.
     */
    public void setMessage(SimpleMailMessage message) {
        this.message = message;
    }
}

然后我们在Action 里面调用: SendMailAction.java
/*
* SendMail.java
* Copyright 2005, All rights reserved.
*/
package test.mail.action;

import test.common.action.BaseAction;
import test.mail.manager.IMailManager;
import test.order.dao.IOrderDao;
import test.model.Order;


/**
* Note: SendMailAction
*/
public class SendMailAction extends BaseAction {
    private IMailManager mailManager;
    private IOrderDao orderDao;
    private long orderId;
   
    public String execute() throws Exception {
        Order order = orderDao.getOrder(orderId);
        mailManager.sendOrder(order);
        return SUCCESS;
    }

   
    /**
     * @return Returns the mailManager.
     */
    public IMailManager getMailManager() {
        return mailManager;
    }
    /**
     * @param mailManager The mailManager to set.
     */
    public void setMailManager(IMailManager mailManager) {
        this.mailManager = mailManager;
    }
   
    /**
     * @return Returns the orderDao.
     */
    public IOrderDao getOrderDao() {
        return orderDao;
    }
    /**
     * @param orderDao The orderDao to set.
     */
    public void setOrderDao(IOrderDao orderDao) {
        this.orderDao = orderDao;
    }
    /**
     * @return Returns the orderId.
     */
    public long getOrderId() {
        return orderId;
    }
    /**
     * @param orderId The orderId to set.
     */
    public void setOrderId(long orderId) {
        this.orderId = orderId;
    }
}

最后的就是配置了.在ApplicationContext.xml文件里加上如下的内容:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host"><value>smtp服务器</value></property>
        <property name="username"><value>用户名</value></property>
        <property name="password"><value>密码</value></property>
/**如果服务器要求验证,加上此**/
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.timeout">25000</prop>
            </props>
        </property>
</bean>

<bean id="mailMessage"
class="org.springframework.mail.SimpleMailMessage">
<property name="from">
<value>你的电子邮件地址</value>
</property>
<property name="subject">
<value>邮件标题</value>
</property>
</bean>


<bean id="mailManager" class=" test.mail.manager.MailManager" >
<property name="mailSender">
<ref bean="mailSender" />
</property>
<property name="message">
<ref bean="mailMessage" />
</property>
</bean>
在对应的action配置文件中加入:
<bean id="SendMailAction"
class=" test.mail.action.SendMailAction" singleton="false" >
<property name="mailManager">
<ref bean="mailManager" />
</property>
<property name="orderDao">
<ref bean="orderDao"/>
</property>
</bean>

在xwork配置文件中:
<action name="sendMailBG" class="SendMailAction">
<interceptor-ref name="defaultStack" />
<result name="success" type="freemarker">success.ftl</result>
<result name="error" type="freemarker">error.ftl</result>
</action>

运行结果如下:用户163.com账户作测试:
分享到:
评论

相关推荐

    Spring邮件发送

    **Spring邮件发送** 在Java开发中,Spring框架提供了一种简单而强大的方式来发送电子邮件。Spring的`JavaMailSender`接口以及其实现类`SimpleMailMessage`和`MailMessage`,使得开发者能够轻松地集成邮件服务到应用...

    java发送邮件 spring发送邮件

    通常,Spring框架的`spring-context`模块包含了`JavaMailSender`接口,而`javaee-api`或`javax.mail`库则提供了邮件发送的具体实现。确保在`pom.xml`(如果是Maven项目)或`build.gradle`(Gradle项目)中添加相应的...

    spring各种邮件发送

    在IT行业中,Spring框架是Java开发中的一个关键组件,它提供了丰富的...对于那些需要发送大量或定期邮件的应用,还可以考虑使用邮件队列服务,如Amazon SES或SendGrid,配合Spring进行集成,实现高效、可靠的邮件发送。

    Spring邮件发送服务(java邮件发送)

    下面将详细阐述Spring邮件发送服务的核心概念和技术细节。 首先,我们需要配置SpringMail的相关设置。这通常通过一个XML配置文件完成,例如`springmail_config.xml`。在这个文件中,我们定义了邮件服务器的相关属性...

    使用springMail发送带附件的email

    2. **SpringMail**: Spring框架的一个模块,它简化了JavaMail API的使用,通过Spring的依赖注入和配置模型,使得邮件发送变得更加便捷。 3. **配置SpringMail**: 在Spring项目中,我们通常会创建一个`MailSender` ...

    Spring邮件发送源码

    首先,让我们来了解如何配置Spring邮件服务。在Spring的配置文件(如`applicationContext.xml`)中,我们需要定义一个`JavaMailSender` bean。这个bean通常会包含SMTP服务器的信息,如主机名、端口号、用户名和密码...

    java 发送邮件 spring发送邮件Mail

    接下来,我们可以创建一个服务类来处理邮件发送的具体逻辑,使用`JavaMailSender`发送邮件: ```java @Service public class EmailService { @Autowired private JavaMailSender mailSender; public void ...

    spring发送邮件demo

    这通常通过添加`spring-context-support`依赖来完成,该依赖包含了处理邮件发送所需的类。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.springframework <artifactId>spring-context-...

    Java发送email:spring email、微软ews

    总结,Java结合Spring可以方便地处理基本的邮件发送需求,而EWS则适用于更复杂的企业环境,特别是需要与Exchange Server交互时。两者都有各自的优点和适用场景,选择哪种取决于具体项目的需求。在实际开发中,确保...

    Spring邮件发送实例

    以下是对Spring邮件发送实例的详细讲解。 首先,我们需要在项目中引入Spring Mail的相关依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.springframework.boot ...

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

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

    利用Spring定时发送email

    这个"利用Spring定时发送email"的项目,包含了完整的jar包并经过测试,确保了功能的可行性。下面我们将深入探讨如何在Spring中设置定时发送电子邮件以及相关的关键知识点。 首先,我们需要在Spring的配置文件中启用...

    Spring发送Email

    Spring Mail是Spring框架的一个扩展,它基于JavaMail API,用于处理邮件发送任务。JavaMail API是Java中用于处理邮件的规范,而Spring Mail则提供了一层抽象,简化了邮件发送的配置和实现。 要使用Spring Mail,...

    简单学习使用Spring+Velocity发送邮件

    本教程将围绕如何使用Spring框架与Velocity模板引擎来实现邮件发送功能进行详细讲解。 首先,让我们理解Spring框架的邮件发送服务。Spring提供了`JavaMailSender`接口,该接口提供了发送邮件的基本方法,如`send...

    Spring mvc 发送邮件功能

    在Spring MVC框架中,实现邮件发送功能通常涉及配置Spring的JavaMailSender接口和使用模板引擎如FreeMarker来创建动态邮件内容。以下是一个详细的步骤指南: 1. **依赖库**: - `javax.mail`:这是Java邮件API的...

    Springboot发送邮件

    本主题将深入探讨如何使用Spring Boot实现邮件发送功能,涵盖了文本邮件、图片邮件、模板邮件和HTML邮件的发送。 一、Spring Boot集成邮件服务 Spring Boot通过集成了JavaMailSender接口和JavaMailSenderImpl类,...

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

    【Spring进阶—如何用Java代码实现邮件发送】 在现代软件开发中,特别是在企业级应用中,邮件发送是一项常见的功能,比如在进销存系统中发送库存预警通知,或者在招聘网站上验证用户注册时的电子邮件地址。这些场景...

Global site tag (gtag.js) - Google Analytics