spring 发送简单邮件Javamail

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="[email protected]"/>
        <!--这里并非是你登录邮箱的密码, 而是你开启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="[email protected]"/>
</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简单发送邮件

猜你喜欢

转载自blog.csdn.net/m0_37838381/article/details/78183388