使用Spring 的SimpleMailMessage,JavaMailSenderImpl发送邮件
先贴代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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包。其他的包需要哪个就导入那个就好了。我这个发邮件功能只是一个附属功能。所以包含的包就不列出来了。