spring3框架提供了非常有用的邮件功能,org.springframework.mail 提供了对邮件的发送的jar包,最好还是自己去看一下里面的函数。spring framework提供了简单和带附件的邮件发送功能。

假设这是个业务逻辑层代码,假设我们需要给客户发送关于订单信息的邮件

publicinterface OrderManager {    void placeOrder(Order order);}

简单邮件发送功能

import org.springframework.mail.MailException;import org.springframework.mail.MailSender;import org.springframework.mail.SimpleMailMessage;publicclass SimpleOrderManager implements OrderManager {

   private MailSender mailSender;//spring 提供的一个已经封装好的库,具体的实现可以参考API

private SimpleMailMessage templateMessage;
public
void setMailSender(MailSender mailSender) {
this.mailSender = mailSender; }
public
void setTemplateMessage(SimpleMailMessage templateMessage) {
this.templateMessage = templateMessage; }
public
void placeOrder(Order order) {
// Do the business calculations...
// Call the collaborators to persist the order...
// Create a thread safe "copy" of the template message and customize it SimpleMailMessage msg =
new SimpleMailMessage(
this.templateMessage); msg.setTo(order.getCustomer().getEmailAddress()); msg.setText(
"Dear " + order.getCustomer().getFirstName() + order.getCustomer().getLastName() +
", thank you for placing order. Your order number is " + order.getOrderNumber());
try{
this.mailSender.send(msg); }
catch(MailException ex) {
// simply log it and go on... System.err.println(ex.getMessage()); } }

}

xml的配置文件,当然你也可以使用注解

 <propertyname="host"value="mail.mycompany.com"/>//邮箱的服务主机

 <property name="port" value="25"/>

 

<property name="port" value="25" />

<property name="javaMailProperties">

<props>

<prop key="mail.smtp.auth">true</prop>

<prop key="mail.smtp.timeout">25000</prop>

</props>

</property>

<property name="username" value="**********" />//用户名

<property name="password" value="*******"></property>//密码

<
/bean> <
!-- this is a template message that we can pre-load with default state --> <
bean
id=
"templateMessage"
class=
"org.springframework.mail.SimpleMailMessage"> <
property
name=
"from"
v alue=
"customerservice@mycompany.com"/>//发送者的邮箱地址 <
property
name=
"subject"
value=
"Your order"/> <
/bean> <
bean
id=
"orderManager"
class=
"com.mycompany.businessapp.support.SimpleOrderManager"> <
property
name=
"mailSender"
ref=
"mailSender"/> <
property
name=
"templateMessage"
ref=
"templateMessage"/> <
/bean>

发送附件和内嵌的htm啊

JavaMail and MimeMessageHelper

1 附件的发送

JavaMailSenderImpl sender = new JavaMailSenderImpl();MimeMessage message = sender.createMimeMessage();// use the true flag to indicate you need a multipart messageMimeMessageHelper helper = new MimeMessageHelper(message, true);//true 表示你发送的是带有附件的邮件helper.setTo("test@host.com");helper.setText("Check out this p_w_picpath!");// let's attach the infamous windows Sample file (this time copied to c:/)

FileSystemResource file = new FileSystemResource(new File("c:/Sample.jpg"));

//spring 2.5的版本需要

//FileSystemResource file = new FileSystemResource(new File("file:c:/Sample.jpg"));

helper.addAttachment(
"CoolImage.jpg", file);

// helper.addAttachment(MimeUtility.encodeWord("个人申请表.pdf"),new FileSystemResource(new File(pdfP//ath)));

sender.send(message);

2 发送带有html的邮件

JavaMailSenderImpl sender = new JavaMailSenderImpl();sender.setHost("mail.host.com");MimeMessage message = sender.createMimeMessage();// use the true flag to indicate you need a multipart messageMimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setTo("test@host.com");// use the true flag to indicate the text included is HTMLhelper.setText("", true);// let's include the infamous windows Sample file (this time copied to c:/)FileSystemResource res = new FileSystemResource(new File("c:/Sample.jpg"));helper.addInline("identifier1234", res);sender.send(message);