应用Spring发送邮件(一)
使用Spring发送邮件(一)? Spring对发送邮件提供了一个抽象层,对接收邮件没有提供额外的支持。Spring在org.s
使用Spring发送邮件(一)
? Spring对发送邮件提供了一个抽象层,对接收邮件没有提供额外的支持。Spring在org.springframework.mail包的MailMessage和MailSender这两个高层抽象层接口描述了邮件消息和发送者。
???????Spring通过MailSender的子接口JavaMailSender提供了发送负责邮件的功能。JavaMailSender类实现了该子接口,支持JavaMail的MimeMessage和Spring的MailMessage。
?????? MimeMessageHelper是MimeMessage的封装类,提供了编辑MimeMessage的方法,提供了设置html邮件内容、内嵌文件(如图片文件、音频文件等)及邮件附件的支持。
?
一、发送纯文本邮件
????? 在Spring中,使用JavaMailSenderImpl发送纯文本邮件。
package com.bb.spring.email;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;public class MailService {??public void sendSimpleMail(JavaMailSender sender){??SimpleMailMessage msg=new SimpleMailMessage();??msg.setFrom("dongkk@sina.com");??msg.setTo("dongkk@sina.com");??msg.setReplyTo("dongkk@sina.com");??msg.setSubject("使用Spring发送邮件");??msg.setText("test Spring发送邮件");????sender.send(msg);??System.out.println("成功发送!");??}??public static void main(String[] args) {??// TODO Auto-generated method stub??ApplicationContext ctx = new FileSystemXmlApplicationContext(?? ??????? "src/applicationContext.xml"); ??JavaMailSender sender=(JavaMailSender) ctx.getBean("mailsender");????MailService ms=new MailService();??ms.sendSimpleMail(sender);?}}?? 在src下的applicationContext.xml中对JavaMailSenderImpl的配置如下:
??
<bean id="mailsender" value="smtp.sina.com.cn"/>?? <property name="username" value="dongkk"/>?? <property name="password" value="123456"/>?? <property name="javaMailProperties">? ??????????? <props>? ??????????????? <prop key="mail.smtp.auth">true</prop>? ??????????????? <prop key="mail.smtp.timeout">25000</prop>? ??????????? </props>? ?? </property>? </bean>??? 此时可以发送成功。
?
二、发送html邮件
????? 发送html邮件和发送纯文本邮件差不多,但必须用MimeMessage创建邮件消息,可以通过MimeMessageHelper类创建并填充MimeMessage。
????
public void sendHtmlMail(JavaMailSender sender) throws MessagingException{MimeMessage msg=sender.createMimeMessage();//创建MimeMessageHelper实例,第2个参数表示是否为multipart邮件,第3个参数表示MimeMessage的编码MimeMessageHelper helper=new MimeMessageHelper(msg,false,"utf8");helper.setFrom("dongkk@sina.com");helper.setTo("dongkk@sina.com");helper.setSubject("注册成功");String htmlText="<html><head>"+"<meta http-equiv="content-type" content="text/html;charset=utf8">"+"</head><body>" +"恭喜你在淘宝网:<font color='red' size='30'>注册成功</font>"+"</body></html>";//设置邮件内容,第2个参数为true表示该邮件为html邮件helper.setText(htmlText,true); sender.send(msg);System.out.println("成功发送html邮件!");}??? 运行方法与纯文本一样:
??? MailService ms=new MailService();
??? ms.sendHtmlMail(sender);