使用Spring邮件发送Email

本文转载自:http://www.blogjava.net/rocky/archive/2005/10/29/17375.html

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> 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Spring Boot 的邮件发送功能来发送电子邮件。首先,你需要在项目的依赖中添加 Spring Boot 的邮件依赖。在 `pom.xml` 文件中添加以下代码: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 接下来,你需要在配置文件中配置邮件相关的属性。在 `application.properties`(或 `application.yml`)文件中添加以下属性: ```properties # 邮件服务器主机名 spring.mail.host=your-mail-host # 邮件服务器端口 spring.mail.port=your-mail-port # 邮件发送者用户名 spring.mail.username=your-username # 邮件发送者密码 spring.mail.password=your-password # 邮件发送者地址 spring.mail.from=your-email-address ``` 现在,你可以在你的代码中使用 `JavaMailSender` 接口来发送邮件。你可以注入 `JavaMailSender` 接口的实例,并使用 `send()` 方法发送邮件。以下是一个简单的示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailService { @Autowired private JavaMailSender javaMailSender; public void sendEmail(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); javaMailSender.send(message); } } ``` 你可以在需要发送邮件的地方调用 `sendEmail()` 方法,并传入收件人地址、邮件主题和邮件内容。 这是使用 Spring Boot 发送邮件的基本步骤。你可以根据自己的需求进行进一步的定制和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值