首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

应用Spring发送邮件(一)

2012-10-06 
使用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);

热点排行