Spring mail实现邮件发送

来源:互联网 发布:留学办什么银行卡知乎 编辑:程序博客网 时间:2024/05/22 16:55

使用Spring Mail实现邮件发送功能,具体步骤如下所示:

1、首先配置邮件服务器的信息mail.properties文件,如下所示:

# This properties file is used to configure mail settings in
# /WEB-INF/applicationContext-service.xml.

mail.from=lghroger@126.com
mail.debug=false
mail.transport.protocol=smtp
mail.host=smtp.126.com
mail.port=25
mail.username=lghroger
mail.password=
mail.smtp.auth=true
mail.smtp.timeout=25000
mail.smtp.starttls.enable=true
mail.smtp.socketFactory.fallback=false
2、将该文件添加到applicationContext-service.xml中,代码如下:
<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:mail.properties</value>
            </list>
        </property>
    </bean>
3、管理Spring bean代码如下所示:
package com.mindray.login.service;
import javax.mail.internet.MimeMessage;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.mindray.login.model.CandidateBasic;
public class EmailService{
    private SimpleMailMessage mailMessage;
    private MailSender mailSender;

    public SimpleMailMessage getMailMessage() {
        return mailMessage;
    }

    public void setMailMessage(SimpleMailMessage mailMessage) {
        this.mailMessage = mailMessage;
    }

    public MailSender getMailSender() {
        return mailSender;
    }

    public void setMailSender(MailSender mailSender) {
        this.mailSender = mailSender;
    }

    public boolean sendRecruitmentEmail(String userId, String password) {
        JavaMailSenderImpl sender = (JavaMailSenderImpl) mailSender;
        try {
            MimeMessage mimeMessage = sender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(
                    mimeMessage, true, "UTF-8");
            mimeMessageHelper.setFrom(mailMessage.getFrom());
            mimeMessageHelper.setTo(userId);
            mimeMessageHelper.setSubject("mindray");
            mimeMessageHelper
                    .setText(password, false);
            sender.send(mimeMessage);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}
4、通过调用EmailService类中的sendRecruitmentEmail()方法实现邮件发送