1.开启发送邮箱的SMTP服务
注意开启过程要记住授权码(下面需要用到)
2.引入jar包
(1)java-mail-1.x.jar
(2)org.springframework-context.support-x.x.x.jar
3.配置
(1)配置JavaMailSenderImpl
<!-- 配置发送邮件的bean -->
<bean id = "mailSender" class = "org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.163.com"/>
<property name="port" value="25"/>
<property name="protocol" value="smtp"/>
<!--你设置开启授权码的邮箱-->
<property name="username" value="xxxx@163.com"/>
<!--这里并非是你登录邮箱的密码, 而是你开启SMTP服务时候设置的授权码-->
<property name="password" value="xxx"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="javaMailProperties">
<props>
<!--这个值一定要设置, 这是授权验证-->
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.timeout">25000</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
(2)配置SimpleMailMessage
<bean id = "templateMessage" class = "org.springframework.mail.SimpleMailMessage">
<property name="from" value="xxx@163.com"/>
</bean>
4.编写邮件发送的工具类
package com.xxxx.webapp.util;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
@Component(value = "sendEmail")
public class SendEmail {
@Resource(name = "mailSender")
private JavaMailSender javaMailSender;//配置邮件发送类
@Resource(name = "templateMessage")//配置邮件模板类
private SimpleMailMessage simpleMailMessage;
/*
*to: 对方邮箱
*subject: 邮件主题
*content: 邮件内容
*/
public void Send(String to, String subject, String content){
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = null;
try {
helper = new MimeMessageHelper(message, true, "UTF-8");
helper.setFrom(simpleMailMessage.getFrom());
helper.setSubject(subject);
helper.setTo(to);
helper.setText(content, true);
javaMailSender.send(message);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5.在Service层调用该工具类
package com.xxx.webapp.login.service.impl;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.xxx.pojo.Useraccount;
import com.xxx.webapp.login.dao.UseraccountDao;
import com.xxx.webapp.login.service.ForgetPasswordService;
import com.xxx.webapp.util.SendEmail;
@Service(value = "forgetPasswordService")
@Transactional
public class ForgetPasswordServiceImpl implements ForgetPasswordService{
@Autowired
private SendEmail sendEmail;
public Map ForgetPassword(Useraccount useraccount) {
....
/*
* 发送邮件
* */
sendEmail.Send(u.getEmail(), "智慧景区webapp验证邮件", "<a href='http://127.0.0.1:8080/xxx/index.jsp'>点击我确认验证</a>");
....
}
}
至此完成spring使用Javamail简单发送邮件