使用Spring 的SimpleMailMessage,JavaMailSenderImpl发送邮件

先贴代码:

代码
package bookmark.model;

import java.util.Properties;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
public class SimpleEmail {
private String smtpHost;
private String from;
public void sendPassdEmail(String email,String username,String passwd){
JavaMailSenderImpl sender
=new JavaMailSenderImpl();
sender.setHost(getSmtpHost());
sender.setUsername(
"用户名");
sender.setPassword(
"用户密码");
sender.setJavaMailProperties(
new MailProperties());
SimpleMailMessage message
=new SimpleMailMessage();
message.setTo(email);
message.setFrom(getFrom());
message.setSubject(
"您的密码是:");
message.setText(username
+" 您好,您的密码是"+passwd);
sender.send(message);
}
public String getSmtpHost() {
return smtpHost;
}
public void setSmtpHost(String smtpHost) {
this.smtpHost = smtpHost;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public static void main(String args[]){
SimpleEmail mail
=new SimpleEmail();
mail.setFrom(
"struct029@163.com");
mail.setSmtpHost(
"smtp.163.com");
mail.sendPassdEmail(
"sun.jrvin@gmail.com", "sun", "adfa");
}
class MailProperties extends Properties{
private String auth;
public MailProperties(){
super.setProperty("mail.smtp.auth","true");
}
}
}

使用SPRING的javamail发送email很简单。看代码就知道了。

有时会出现java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream异常。

原因是:javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,就是JDK中自带了已经,但是里面的方法与现在外面的mail.jar和activation.jar有一些出入。进到

X:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806\data\libraryset\EE_5

这个路径里,可以看到javaee.jar,用rar把这个文件打开,然后进到javax文件夹里,删除mail.jar和activation.jar。

删掉之后运行下面的代码,经行简单的修改以后就可以实现接收邮件的功能了!我已经测试过完全可行。我用的是javamail-1.4.3包。其他的包需要哪个就导入那个就好了。我这个发邮件功能只是一个附属功能。所以包含的包就不列出来了。

posted @ 2010-12-16 16:48  jrvin  阅读(4656)  评论(0编辑  收藏  举报