`
yingruochen
  • 浏览: 74857 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

MailSender和SimpleMailMessage的基本用法

阅读更多

1、Spring发送邮件依赖于JavaMail和JAF的两个库文件:mail.jar和activation.jar

2、Spring提供的发送电子邮件的高级抽象层,向用户屏蔽了底层邮件系统的一些细节,同时代表客户端负责底层资源的处理

3、MailSender和SimpleMailMessage的基本用法:

首先定义一个借口:

package com.mail.service;

/**
 * Created with IntelliJ IDEA.
 * User: Administrator
 * Date: 12-6-12
 * Time: 下午3:37
 * To change this template use File | Settings | File Templates.
 */
public interface OrderManager {

    void placeOrder() ;
}

 实现类:

package com.mail.sender;

import com.mail.demo.Order;
import com.mail.service.OrderManager;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

/**
 * Created with IntelliJ IDEA.
 * User: Administrator
 * Date: 12-6-12
 * Time: 下午3:39
 * To change this template use File | Settings | File Templates.
 */
public class SimpleOrderManager implements OrderManager {

    private MailSender mailSender ;

    private SimpleMailMessage simpleMailMessage ;

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

    public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) {
        this.simpleMailMessage = simpleMailMessage;
    }

    public void placeOrder() {

        SimpleMailMessage simpleMailMessage1 = new SimpleMailMessage(this.simpleMailMessage); //SimpleMailMessage只能用来发送text格式的邮件
        simpleMailMessage1.setTo("XXX@qq.com");
        simpleMailMessage1.setText("hello,world");
        try{
            this.mailSender.send(simpleMailMessage1);
        }
        catch (MailException e){
            System.out.println(e.getMessage());
        }

    }
}

实现类完成了,要注入他的两个属性MailSender和SimpleMailMessage,配置如下:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.qq.com"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="username" value="XXXX@qq.com"/>
        <property name="password" value="XXXXX"/>
        <property name="javaMailProperties">
            <value>
                mail.smtp.auth=true
            </value>
        </property>
    </bean>

这里是mailSender的注入,MailSender是发送邮件的主要接口,Spring为它提供的一个子接口,即:org.springframework.mail.javamail.JavaMailSender,在他的实现类中有用来发送邮件的一些配置:

host是邮箱的host,这里的是qq,username是发邮件的邮箱账号,password是密码等属性

<bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage">
    <property name="from" value="XXX@qq.com"/>
    <property name="subject" value="welcome"/>
    </bean>

 SimpleMailMessage是值对象,封装了一些简单的属性,如from、to、subject、text等等,SimpleMailMessage只能用来发送text格式的邮件

注入SimpleOrderMessage对象:

 <bean id="orderManager" class="com.mail.sender.SimpleOrderManager">
        <property name="mailSender" ref="mailSender"/>
        <property name="simpleMailMessage" ref="templateMessage"/>
    </bean>
 

来测试一下:

public class MailTest {

    @Test
    public void main1(){
        BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring-config.xml") ;

        SimpleOrderManager simpleOrderManager = (SimpleOrderManager)
                beanFactory.getBean("orderManager");
        simpleOrderManager.placeOrder();
    }
}

 运行一下就会看到邮件


  • 大小: 4 KB
分享到:
评论
1 楼 jnjeC 2016-12-09  
  SimpleMailMessage simpleMailMessage1 = new SimpleMailMessage(this.simpleMailMessage);
赞一下这里,这样处理不会产生线程安全问题,网上很多例子都没注意到这点。

相关推荐

    spring+maven实现邮件发送

    该方法将邮件主题、内容和收件人作为参数,并使用 Spring Mail 的 MailSender 和 SimpleMailMessage 来发送邮件。 七、spring-smtp-mail.xml 配置文件 spring-smtp-mail.xml 是 Spring 的配置文件,用于配置邮件...

    Spring发送邮件简单实例

    2. **创建邮件信息**:使用`SimpleMailMessage`或` MimeMessageHelper`来设置邮件的属性,如发件人、收件人、主题和正文。 ```java SimpleMailMessage message = new SimpleMailMessage(); message.setTo(...

    java中email邮件发送接受和处理excel文件(xls)实例

    2. 创建`SimpleMailMessage`或使用`JavaMailSender`接口自定义邮件内容。 3. 调用`send()`方法发送邮件,可以附带文件作为附件。 4. 接收邮件方面,可以使用IMAP或POP3协议,通过`JavaMailAPI`创建监听器实时监控...

    用spring框架技术发邮件.pdf

    对于这种方式,可以创建一个配置类,使用`@Bean`注解声明`MailSender`和`SimpleMailMessage`。 7. **定时任务发送邮件**: - 如果需要定期发送邮件,可以结合Spring的`@Scheduled`注解和`TaskScheduler`接口来创建...

    Spring全家桶.pdf

    1. `JavaMailSender`:这是Spring提供的一个接口,定义了发送邮件的基本方法,如`send(SimpleMailMessage message)`等。 2. `JavaMailSenderImpl`:这是`JavaMailSender`接口的默认实现,负责实际的邮件发送逻辑。 ...

    Spring Boot.pdf

    对于简单的文本邮件,可以使用`SimpleMailMessage`对象来设置发件人、收件人、主题和正文。以下是一个示例: ```java @Autowired private JavaMailSenderImpl mailSender; public void sendSimpleMail() throws ...

    spring线程发送邮件

    `javaMailSender`接口提供了发送邮件的基本方法,而`SimpleMailMessage`则用于构建邮件的基本信息,如收件人、主题和正文。当需要实现异步发送时,我们可以利用Spring的`TaskExecutor`或`AsyncConfigurer`来实现...

    spring邮件抽象层详解

    这个抽象层主要包含在`org.springframework.mail`包中,提供了`MailSender`接口和`SimpleMailMessage`类等核心组件。 ### 22.1. 简介 `MailSender`接口是Spring邮件抽象的核心,它定义了发送简单邮件的基本方法。...

    java 发送邮件 spring发送邮件Mail

    这个接口提供了设置邮件服务器信息、配置邮件内容和发送邮件的方法。例如,我们可以创建一个`JavaMailSenderImpl`的实例,并配置SMTP服务器的相关信息,如主机名、端口、用户名和密码。 ```java @Configuration ...

    SpringMail发邮件

    SpringMail是Spring框架的一个扩展,它...以上就是SpringMail的基本使用方法。在实际开发中,可能还需要处理邮件模板、错误重试等高级场景。SpringMail提供了丰富的功能来满足这些需求,是Java应用发送邮件的首选工具。

    使用Spring发送邮件

    要使用此功能,你需要在Spring的配置文件中设置`JavaMailSender`的实现,通常我们会使用`SimpleMailMessage`类来定义邮件的基本属性,如发件人、收件人、主题和正文。 在配置文件(例如applicationContext.xml)中...

    用spring框架技术发邮件共4页.pdf.zip

    该接口定义了几个关键方法,如`send(Message message)`用于发送邮件,`send(SimpleMailMessage message)`则简化了发送简单邮件的过程。`SimpleMailMessage`是预配置的邮件模板,可以包含收件人、主题、正文和附件等...

    spring 发送邮件

    以上就是使用Spring MVC和`JavaMailSenderImpl`发送邮件的基本步骤。确保你的邮件服务器配置正确,并且允许通过第三方应用发送邮件(对于Gmail,可能需要在账户设置中启用“不够安全的应用的访问”或使用应用特定...

    springboot+shiro+jpa+email

    Spring Boot提供了MailSender接口和SimpleMailMessage类,用于配置邮件服务器信息并构建邮件内容。通过调用MailSender的send方法,可以发送预定义或者动态生成的邮件。 **项目结构** 项目中的`META-INF`目录通常...

    47. Spring Boot发送邮件【从零开始学Spring Boot】

    通过学习本文,你可以掌握Spring Boot集成JavaMailSender接口来发送邮件的基本步骤和配置。 首先,我们需要在Spring Boot项目中引入必要的依赖。在`pom.xml`或`build.gradle`文件中添加Spring Boot的`spring-boot-...

    spring发送邮件

    在这个例子中,`sendSimpleMail`方法接收收件人、主题和正文,创建一个`SimpleMailMessage`对象并设置相应属性,然后通过`mailSender`发送。 在实际项目中,我们可能需要发送更复杂的邮件,比如包含HTML内容、附件...

    spring发送Email

    - 使用JavaMailSender接口的send方法发送邮件。 ```java @Autowired private JavaMailSender emailSender; public void sendEmail(SimpleMailMessage message) { emailSender.send(message); } ``` 5. **...

    Springboot开发-使用springboot实现发邮件功能.zip

    以上代码定义了一个简单的邮件服务,包含一个`sendSimpleMessage`方法,接收收件人、主题和正文作为参数,调用JavaMailSender的`send`方法发送邮件。 在实际应用中,你可能需要根据业务需求扩展`EmailService`,...

    使用springMail发送带附件的email

    4. **发送邮件**: 使用SpringMail发送邮件主要包括两个步骤:创建`SimpleMailMessage`实例(用于设置收件人、主题、正文等基本信息)和调用`MailSender`的`send()`方法。如果要发送带有附件的邮件,我们需要使用`...

Global site tag (gtag.js) - Google Analytics