1、发邮件的接口
public interface MailService{
public void sendMail(String to, String title, String contents);
public void sendHtmlMail(String to, String title, String contents);
public void test();
public void userValidate(UserBaseInfo userBaseInfo);
}
2、发邮件接口的实现
@Service("mailService")
public class MailServiceImpl implements MailService {
@Resource(name="mailSender")
private JavaMailSenderImpl mailSender;
@Resource(name="mailMessage")
private SimpleMailMessage mailMessage;
private static final String SubJect = "无不网络" ;
private static final String FROM_MAIL_HOST = "";
private static final String FROM_MAIL_NAME = "";
private static final String FROM_MAIL_PWD = "";
private static final String MAIL_FROM = "";
public void setMailSender(JavaMailSenderImpl mailSender) {
this.mailSender = mailSender;
}
public void setMailMessage(SimpleMailMessage mailMessage) {
this.mailMessage = mailMessage;
}
/**
* 发送HTML格式邮件
* @param to:收件人地址
* @param title:邮件标题
* @param content:邮件正文
*/
public void sendHtmlMail(String to, String title, String contents) throws MailException{
// TODO Auto-generated method stub
this.mailSender.setHost(FROM_MAIL_HOST);
this.mailSender.setUsername(FROM_MAIL_NAME);
this.mailSender.setPassword(FROM_MAIL_PWD);
MimeMessage msg = this.mailSender.createMimeMessage();
MimeMessageHelper messageHelper;
try {
messageHelper = new MimeMessageHelper(msg, true, "utf-8");
messageHelper.setFrom(MAIL_FROM);
messageHelper.setTo(to);
messageHelper.setSubject(title);
messageHelper.setText(contents, true); // HTML邮件内容
this.mailSender.send(msg);
} catch (Exception e) {
}
}
/**
* 发送简单邮件
* @param to:收件人地址
* @param title:邮件标题
* @param content:邮件正文
*/
public void sendMail(String to, String title, String contents) throws MailException{
// TODO Auto-generated method stub
this.mailMessage.setTo(to);
this.mailMessage.setSubject(title);//主题
this.mailMessage.setText(contents);//邮件内容
this.mailMessage.setFrom(MAIL_FROM);
this.mailSender.setHost(FROM_MAIL_HOST);
this.mailSender.setUsername(FROM_MAIL_NAME);
this.mailSender.setPassword(FROM_MAIL_PWD);
this.mailSender.send(this.mailMessage);
}
/**
* 用户通过邮件验证
* @param to:收件人地址
* @param userBaseInfo:用户信息
*/
public void userValidate(UserBaseInfo userBaseInfo) {
// TODO Auto-generated method stub
String contents = getContents(userBaseInfo.getUserName(), userBaseInfo.getPassword());
this.mailSender.setHost(FROM_MAIL_HOST);
this.mailSender.setUsername(FROM_MAIL_NAME);
this.mailSender.setPassword(FROM_MAIL_PWD);
MimeMessage msg = this.mailSender.createMimeMessage();
MimeMessageHelper messageHelper;
try {
messageHelper = new MimeMessageHelper(msg, true, "utf-8");
messageHelper.setFrom(MAIL_FROM);
messageHelper.setTo(userBaseInfo.getEmail());
messageHelper.setSubject(SubJect);
messageHelper.setText(contents, true); // HTML邮件内容
this.mailSender.send(msg);
} catch (Exception e) {
}
}
public void test() {
// TODO Auto-generated method stub
System.out.println("test");
}
public static String getContents(String userName , String passWord){
String htmlContents ="" +
"<html xmlns='http://www.w3.org/1999/xhtml'>" +
"<head>" +
"<meta http-equiv='Content-Type' content=\"text/html; charset=UTF-8\" />" +
"</head>" +
"<body>" +
"<table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">" +
"<tr>" +
"<td width=\"46%\" height=\"76\">" +
"<img src=\"http://www.unimarketing.com.cn/unimail/images/logo.jpg\" width=\"220\" height=\"82\" border=\"0\" />" +
"</td>" +
"<td width=\"54%\" height=\"19\" align=\"right\" valign=\"bottom\" style=\"padding-right:10px; padding-bottom:10px; font-size:12px;font-family:arial,'宋体';\">如遇问题请拨打" +
"<strong><font color=\"#FF9900\">服务热线:400-898-0118</font></strong>" +
"</td>" +
"</tr>" +
"</table>" +
"<tr><td><table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" class=\"text\" style=\"border:1px #d3d3d3 solid\">" +
"<tr>" +
"<td align=\"center\">" +
"<table width=\"96%\" height=\"133\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">" +
"<tr>" +
"<td> </td>" +
"</tr>" +
"<tr>" +
"<td style=\"font-size: 12px;font-family:arial,'宋体';\">尊敬的 ["+userName+"]</td>" +
"</tr>" +
"<tr>" +
"<td style=\"font-size: 12px;font-family:arial,'宋体';\">欢迎您注册无不网络系统</td>" +
"</tr>" +
"<tr>" +
"<td style=\"font-size: 12px;font-family:arial,'宋体';\">" +
"请点击下面的链接进行激活(如无法点击,请将链接复制到浏览器进行访问):" +
"</td>" +
"</tr>" +
"<tr>" +
"<a target=\"_blank\"></a>" +
"</tr>" +
"<tr>" +
"<td colspan=\"2\" style=\"font-size: 12px;font-family:arial,'宋体';\">" +
"<a href=\"http://192.168.1.100:8080/\" target='_blank'>http://192.168.1.100:8080/</a>" +
"</td>" +
"</tr>" +
"<tr>" +
"<td style=\"font-size: 12px;font-family:arial,'宋体';\">您的用户名: ["+userName+"]</td>" +
"</tr>" +
"<tr>" +
"<td style=\"font-size: 12px;font-family:arial,'宋体';\">密码: ["+passWord+"] </td>" +
"</tr>" +
"<tr>" +
"<td> </td>" +
"</tr>" +
"</table>" +
"</td>" +
"</tr>" +
"<tr>" +
"<td></td>" +
"</tr>" +
"</table>" +
"<table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" class=\"text\">" +
"<tr>" +
" <td> </td>" +
"</tr>" +
"<tr>" +
"<td style=\"font-size: 12px;font-family:arial,'宋体'; padding-left:10px\">百度知天下!<br />" +
"服务热线:888-888-8888 ,企业QQ:8888888888,联系时间:周一至周五09:00-18:00</td>" +
"</tr>" +
"</table>" +
"</body>" +
"</html>";
return htmlContents;
}
Spring 配置
<!-- 邮箱配置 -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<value>smtp.exmail.qq.com</value>
</property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
<property name="username">
<value>emailAddress</value>
</property>
<property name="password">
<value>emailPassword</value>
</property>
</bean>
<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"></bean>
注意
首先你要有一个邮箱(这是必须的),在你的邮箱里设置简单的设置一下,让其支持SMTP协议
在spring 中实现发送邮件功能首先需要引入对应的jar包
activation.jar,mail.jar,commons-logging-1.1.jar,Spring的jar包需要引入org.springframework.context.support-3.0.5.RELEASE.jar
特别要注意如果是在myeclipse中开发项目会出现一个error inputstream的错误解决方法是只需要按下面路径找到javaee.jar用rar打开删除里面mail文件就可以如果还不行就把activation也删掉吧!\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710\data\libraryset\EE_5\javaee.jar