您的位置:首页 > 编程语言 > Java开发

spring 发送简单邮件Javamail

2017-10-09 15:51 423 查看
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"/>
<!--你设置开启授权码的邮箱-->
<prop
4000
erty 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简单发送邮件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: