用Spring发Email

在Spring中发送Email是很简单的,使用Spring提高的MailSender和MailMessage就可以了,配置代码如下:

  
  
  
  
  1. <xml version="1.0" encoding="UTF-8" >DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" >  
  2.  
  3. <beans>  
  4. <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">  
  5. <property name="host">  
  6. <value>smtp.163.com</value>  
  7. </property>  
  8. <property name="javaMailProperties">  
  9. <props>   
  10. <!-- 如果要使用用户名和密码验证,这一步需要 -->   
  11. <prop key="mail.smtp.auth">true</prop>  
  12. </props>  
  13. </property>  
  14. <property name="username">  
  15. <value>你的Email地址</value>  
  16. </property>  
  17. <property name="password">  
  18. <value>你的Email密码</value>  
  19. </property>  
  20. </bean>  
  21.  
  22. <!-- 简单的message -->   
  23.  
  24. <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">  
  25. <property name="to">  
  26. <value>收件人地址</value>  
  27. </property>  
  28. <property name="from">  
  29. <value>你的地址</value>  
  30. </property>  
  31. <property name="subject"> <!-- Email 标题 -->  
  32. <value>A Spring Mail sender</value>  
  33. </property>  
  34. </bean>  
  35.  
  36. <!-- 测试发送的类 -->   
  37.  
  38. <bean id="testMailSender" class="test.mail.TestSenderMail">  
  39. <property name="mailMessage">  
  40. <ref bean="mailMessage"/>  
  41. </property>  
  42. <property name="mailSender">  
  43. <ref bean="mailSender"/>  
  44. </property>  
  45. </bean>  
  46.  
  47. </beans>  

上面的配置好以后就可以直接发送了, 看看TestSenderMail.java的代码:

  
  
  
  
  1. package test.mail;  
  2.  
  3. import org.springframework.mail.MailException;  
  4. import org.springframework.mail.MailSender;  
  5. import org.springframework.mail.SimpleMailMessage;  
  6.  
  7. public class TestSenderMail {  
  8. private MailSender mailSender;  
  9. private SimpleMailMessage mailMessage;  
  10.  
  11. public TestSenderMail() {  
  12.  
  13. }  
  14.  
  15. public SimpleMailMessage getMailMessage() {  
  16. return mailMessage;  
  17. }  
  18. public void setMailMessage(SimpleMailMessage mailMessage) {  
  19. this.mailMessage = mailMessage;  
  20. }  
  21. public MailSender getMailSender() {  
  22. return mailSender;  
  23. }  
  24. public void setMailSender(MailSender mailSender) {  
  25. this.mailSender = mailSender;  
  26. }  
  27.  
  28. public void sendMail() {  
  29. SimpleMailMessage message = new SimpleMailMessage(mailMessage);  
  30. //设置email内容,   
  31. message.setText("测试Spring 发送Email.");  
  32.  
  33. try {  
  34. mailSender.send(message);  
  35. } catch (MailException e) {  
  36. // TODO Auto-generated catch block  
  37. System.out.println("O . 发送Email失败了....");  
  38. e.printStackTrace();  
  39. }  
  40. }  
  41. }   


很简单吧. 下面是测试类: TestApp.java

  
  
  
  
  1. package test.mail;  
  2.  
  3. import org.springframework.context.ApplicationContext;  
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  5.  
  6. public class TestApp {  
  7.  
  8. /**  
  9. * @param args  
  10. */  
  11. public static void main(String[] args) {  
  12. // TODO Auto-generated method stub  
  13. ApplicationContext context = new ClassPathXmlApplicationContext(  
  14. "test/mail/mail.xml");  
  15.  
  16. TestSenderMail sender = (TestSenderMail) context  
  17. .getBean("testMailSender");  
  18. sender.sendMail();  
  19. }  
  20. //抛出如下异常,是瑞星监控的问题,关闭就可以了  
  21. /**  
  22. * DEBUG SMTP: QUIT failed with 250 O . 发送Email失败了....  
  23. * org.springframework.mail.MailSendException: Could not send mails: 354  
  24. *   
  25. * com.sun.mail.smtp.SMTPSendFailedException: 354  
  26. *   
  27. at 
  28. * com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)  
  29. at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1215) at 
  30. * com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:586)  
  31. */  
  32. }   


呵呵, 现在就可以发送Email了.

以上内容转自:http://www.java-cn.com/technology/tech/4251.html

注意:如果用j2ee5.0,可能会出现java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream异常,用1.4就好了!

你可能感兴趣的:(spring,version,email)