spring3 发送邮件和附件
2014-03-11 10:49
357 查看
spring3框架提供了非常有用的邮件功能,
假设这是个业务逻辑层代码,假设我们需要给客户发送关于订单信息的邮件
private SimpleMailMessage templateMessage;
publicvoid setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
publicvoid 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的配置文件,当然你也可以使用注解
<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 -->
<beanid="templateMessage"class="org.springframework.mail.SimpleMailMessage">
<property name="from"v alue="customerservice@mycompany.com"/>//发送者的邮箱地址
<property name="subject"value="Your order"/>
</bean>
<beanid="orderManager"class="com.mycompany.businessapp.support.SimpleOrderManager">
<propertyname="mailSender"ref="mailSender"/>
<propertyname="templateMessage"ref="templateMessage"/>
</bean>
//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的邮件
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;
publicvoid setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
publicvoid 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的配置文件,当然你也可以使用注解
<beanid="mailSender"class="org.springframework.mail.javamail.JavaMailSenderImpl"><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 -->
<beanid="templateMessage"class="org.springframework.mail.SimpleMailMessage">
<property name="from"v alue="customerservice@mycompany.com"/>//发送者的邮箱地址
<property name="subject"value="Your order"/>
</bean>
<beanid="orderManager"class="com.mycompany.businessapp.support.SimpleOrderManager">
<propertyname="mailSender"ref="mailSender"/>
<propertyname="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 message MimeMessageHelper helper = new MimeMessageHelper(message, true);//true 表示你发送的是带有附件的邮件 helper.setTo("test@host.com"); helper.setText("Check out this image!"); // 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 message MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo("test@host.com"); // use the true flag to indicate the text included is HTML helper.setText("<html><body><img src='cid:identifier1234'></body></html>", 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);
相关文章推荐
- Spring 发送带有内嵌图片和附件的邮件的java程序
- Spring代码实例系列-10:通过Spring Mail发送简单邮件、附件和HTML邮件
- spring使用模板发送邮件及附件笔记
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html
- spring使用模板发送邮件及附件笔记
- 利用spring mail 发送带附件的邮件
- spring 发送邮件代码示例(带附件和不带附件的)
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html
- spring使用FreeMarker模板发送邮件及附件笔记
- java邮件开发(8、用spring发送HTML嵌套图片并带附件)
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板
- spring集成的邮件发送,可发送附件和富文本
- springboot集成JMS含附件邮件发送
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板
- Spring 发送邮件 使用File指定附件
- Spring发送带附件邮件
- Spring 发送邮件 内嵌图片增加附件
- Spring任务调度之Spring-Task--应用实例:实现邮件(带附件)定时发送功能
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板