用Spring发Email

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

<xml version="1.0" encoding="UTF-8" >DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" >

<beans>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<value>smtp.163.com</value>
</property>
<property name="javaMailProperties">
<props>
<!-- 如果要使用用户名和密码验证,这一步需要 -->
    <prop key="mail.smtp.auth">true</prop>
</props>
</property>
<property name="username">
<value>你的Email地址</value>
</property>
<property name="password">
<value>你的Email密码</value>
</property>
</bean>

<!-- 简单的message -->

<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="to">
<value>收件人地址</value>
</property>
<property name="from">
<value>你的地址</value>
</property>
<property name="subject"> <!-- Email 标题 -->
<value>A Spring Mail sender</value>
</property>
</bean>

<!-- 测试发送的类 -->

<bean id="testMailSender" class="test.mail.TestSenderMail">
<property name="mailMessage">
<ref bean="mailMessage"/>
</property>
<property name="mailSender">
<ref bean="mailSender"/>
</property>
</bean>

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


package test.mail;

import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

public class TestSenderMail {
  private MailSender mailSender;
  private SimpleMailMessage mailMessage;
  
  public TestSenderMail() {
    
  }
  
  public SimpleMailMessage getMailMessage() {
    return mailMessage;
  }
  public void setMailMessage(SimpleMailMessage mailMessage) {
    this.mailMessage = mailMessage;
  }
  public MailSender getMailSender() {
    return mailSender;
  }
  public void setMailSender(MailSender mailSender) {
    this.mailSender = mailSender;
  }
  
  public void sendMail() {
    SimpleMailMessage message = new SimpleMailMessage(mailMessage);
    //设置email内容,
    message.setText("测试Spring 发送Email.");
    
    try {
      mailSender.send(message);
    } catch (MailException e) {
      // TODO Auto-generated catch block
      System.out.println("O . 发送Email失败了....");
      e.printStackTrace();
    }
  }
}


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


package test.mail;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestApp {

  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    ApplicationContext context = new ClassPathXmlApplicationContext(
        "test/mail/mail.xml");

    TestSenderMail sender = (TestSenderMail) context
        .getBean("testMailSender");
    sender.sendMail();
  }
  //抛出如下异常,是瑞星监控的问题,关闭就可以了
  /**
   * DEBUG SMTP: QUIT failed with 250 O . 发送Email失败了....
   * org.springframework.mail.MailSendException: Could not send mails: 354
   *
   * com.sun.mail.smtp.SMTPSendFailedException: 354
   *
   * at
   * com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)
   * at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1215) at
   * com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:586)
   */
} 


现在就可以发送Email了.

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值