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
分享到:
相关推荐
该方法将邮件主题、内容和收件人作为参数,并使用 Spring Mail 的 MailSender 和 SimpleMailMessage 来发送邮件。 七、spring-smtp-mail.xml 配置文件 spring-smtp-mail.xml 是 Spring 的配置文件,用于配置邮件...
2. **创建邮件信息**:使用`SimpleMailMessage`或` MimeMessageHelper`来设置邮件的属性,如发件人、收件人、主题和正文。 ```java SimpleMailMessage message = new SimpleMailMessage(); message.setTo(...
对于这种方式,可以创建一个配置类,使用`@Bean`注解声明`MailSender`和`SimpleMailMessage`。 7. **定时任务发送邮件**: - 如果需要定期发送邮件,可以结合Spring的`@Scheduled`注解和`TaskScheduler`接口来创建...
2. 创建`SimpleMailMessage`或使用`JavaMailSender`接口自定义邮件内容。 3. 调用`send()`方法发送邮件,可以附带文件作为附件。 4. 接收邮件方面,可以使用IMAP或POP3协议,通过`JavaMailAPI`创建监听器实时监控...
1. `JavaMailSender`:这是Spring提供的一个接口,定义了发送邮件的基本方法,如`send(SimpleMailMessage message)`等。 2. `JavaMailSenderImpl`:这是`JavaMailSender`接口的默认实现,负责实际的邮件发送逻辑。 ...
对于简单的文本邮件,可以使用`SimpleMailMessage`对象来设置发件人、收件人、主题和正文。以下是一个示例: ```java @Autowired private JavaMailSenderImpl mailSender; public void sendSimpleMail() throws ...
`javaMailSender`接口提供了发送邮件的基本方法,而`SimpleMailMessage`则用于构建邮件的基本信息,如收件人、主题和正文。当需要实现异步发送时,我们可以利用Spring的`TaskExecutor`或`AsyncConfigurer`来实现...
这个抽象层主要包含在`org.springframework.mail`包中,提供了`MailSender`接口和`SimpleMailMessage`类等核心组件。 ### 22.1. 简介 `MailSender`接口是Spring邮件抽象的核心,它定义了发送简单邮件的基本方法。...
这个接口提供了设置邮件服务器信息、配置邮件内容和发送邮件的方法。例如,我们可以创建一个`JavaMailSenderImpl`的实例,并配置SMTP服务器的相关信息,如主机名、端口、用户名和密码。 ```java @Configuration ...
SpringMail是Spring框架的一个扩展,它...以上就是SpringMail的基本使用方法。在实际开发中,可能还需要处理邮件模板、错误重试等高级场景。SpringMail提供了丰富的功能来满足这些需求,是Java应用发送邮件的首选工具。
要使用此功能,你需要在Spring的配置文件中设置`JavaMailSender`的实现,通常我们会使用`SimpleMailMessage`类来定义邮件的基本属性,如发件人、收件人、主题和正文。 在配置文件(例如applicationContext.xml)中...
该接口定义了几个关键方法,如`send(Message message)`用于发送邮件,`send(SimpleMailMessage message)`则简化了发送简单邮件的过程。`SimpleMailMessage`是预配置的邮件模板,可以包含收件人、主题、正文和附件等...
以上就是使用Spring MVC和`JavaMailSenderImpl`发送邮件的基本步骤。确保你的邮件服务器配置正确,并且允许通过第三方应用发送邮件(对于Gmail,可能需要在账户设置中启用“不够安全的应用的访问”或使用应用特定...
Spring Boot提供了MailSender接口和SimpleMailMessage类,用于配置邮件服务器信息并构建邮件内容。通过调用MailSender的send方法,可以发送预定义或者动态生成的邮件。 **项目结构** 项目中的`META-INF`目录通常...
通过学习本文,你可以掌握Spring Boot集成JavaMailSender接口来发送邮件的基本步骤和配置。 首先,我们需要在Spring Boot项目中引入必要的依赖。在`pom.xml`或`build.gradle`文件中添加Spring Boot的`spring-boot-...
在这个例子中,`sendSimpleMail`方法接收收件人、主题和正文,创建一个`SimpleMailMessage`对象并设置相应属性,然后通过`mailSender`发送。 在实际项目中,我们可能需要发送更复杂的邮件,比如包含HTML内容、附件...
- 使用JavaMailSender接口的send方法发送邮件。 ```java @Autowired private JavaMailSender emailSender; public void sendEmail(SimpleMailMessage message) { emailSender.send(message); } ``` 5. **...
以上代码定义了一个简单的邮件服务,包含一个`sendSimpleMessage`方法,接收收件人、主题和正文作为参数,调用JavaMailSender的`send`方法发送邮件。 在实际应用中,你可能需要根据业务需求扩展`EmailService`,...
4. **发送邮件**: 使用SpringMail发送邮件主要包括两个步骤:创建`SimpleMailMessage`实例(用于设置收件人、主题、正文等基本信息)和调用`MailSender`的`send()`方法。如果要发送带有附件的邮件,我们需要使用`...