EmailSenderService.java 2.74 KB
package com.erry.iclear.dateInterface.service;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.internet.*;
import java.util.*;

/**
 * Created on 2017-9-22.
 */
@Slf4j
@Service("emailSenderService")
public class EmailSenderService {

    @Value("${smtp_server}")
    String smtpServer;
    @Value("${smtp_account}")
    String smtpAccount;
    @Value("${smtp_account_name}")
    String smtpAccountName;
    @Value("${smtp_port}")
    Integer smtpPort;

    @Value("${send_email_msg}")
    String sendEmailMsg;
    @Value("${send_email_cc}")
    String sendEmailCc;

    /**
     * 邮件发送
     *
     * @param bcc     暗送地址
     * @param subject 邮件主题
     * @param body    邮件正文
     * @throws Exception
     */
    public void sendMail(String bcc, String subject, String body) throws Exception {
        if (this.sendEmailMsg == null || this.sendEmailMsg.length() == 0) {
            return;
        }
        try {
            JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
            senderImpl.setHost(this.smtpServer);
            senderImpl.setUsername(null);
            senderImpl.setPassword(null);
//            senderImpl.setUsername(smtpAccount);
//            senderImpl.setPassword(smtpPwd);
            senderImpl.setPort(this.smtpPort);
            Properties prop = new Properties();
//            prop.put("mail.smtp.auth", smtpAuthType);
            prop.put("mail.smtp.timeout", "60000");
            senderImpl.setJavaMailProperties(prop);
            MimeMessage mailMessage = senderImpl.createMimeMessage();
            MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");
            InternetAddress[] internetAddressTo = InternetAddress.parse(this.sendEmailMsg);
            messageHelper.setTo(internetAddressTo);
            if (this.sendEmailCc != null && this.sendEmailCc.length() > 0) {
                InternetAddress[] internetAddressCc = InternetAddress.parse(this.sendEmailCc);
                messageHelper.setCc(internetAddressCc);
            }
            if (bcc != null && bcc.length() > 0) {
                InternetAddress[] internetAddressBcc = InternetAddress.parse(bcc);
                messageHelper.setBcc(internetAddressBcc);
            }
            messageHelper.setFrom(this.smtpAccount, this.smtpAccountName);
            messageHelper.setSubject(subject);
            messageHelper.setText(body, true);
            senderImpl.send(mailMessage);
        } catch (Throwable e) {
            e.printStackTrace();
            throw e;
        }
    }
}