java 发送邮件工具类

@Component
public static class MailSenderAgent {


    private static final Logger logger = LoggerFactory.getLogger(MailSenderAgent.class);

    @Inject
    private JavaMailSender mailSender;

    @Value("${spring.mail.username}")
    private String sender;


    public void sendSimpleMail(String receiver, String subject, String content) {

        checkReceiver(receiver);
        checkSubject(subject);
        checkContent(content);
        XxlJobLogger.log("send mail, receiver->{}, subject->{}, content-> {}", receiver, subject, content);
        SimpleMailMessage simple = buildSimpleMailMessage(receiver, subject, content);
        mailSender.send(simple);
    }

    public void sendMimeMail(String receiver, String subject, String content, File file) {

        checkReceiver(receiver);
        checkSubject(subject);
        checkContent(content);
        XxlJobLogger.log("send mail, receiver->{}, subject->{}, content-> {}", receiver, subject, content);
        try {
            MimeMessage simple = buildMimeMessage(receiver, subject, content, file);
            mailSender.send(simple);
        } catch (Exception e) {
            XxlJobLogger.log("send fail", e);
        }

    }

    private SimpleMailMessage buildSimpleMailMessage(String receiver, String subject, String content) {

        SimpleMailMessage simple = new SimpleMailMessage();
        simple.setFrom(getSender());
        simple.setTo(receiver.split(","));
        simple.setSubject(subject);
        simple.setText(content);

        return simple;
    }

    public MimeMessage buildMimeMessage(String receiver, String subject, String content, File file) throws Exception {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setFrom(getSender());
        helper.setTo(receiver.split(","));
        helper.setSubject(subject);
        helper.setText(content);
        if (null != file) {
            FileSystemResource attachment = new FileSystemResource(file);
            helper.addAttachment(attachment.getFilename(), file);
        }
        return mimeMessage;
    }

    public void sendMail(Workbook workbook, String sender, String receiver, String cc, String subject, String content, String fileName) throws IOException {
        String newFileName = MimeUtility.encodeText(fileName);
        //临时缓冲区
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        InputStreamSource iss = null;
        workbook.write(os);
//        workbook.close();
        iss = new ByteArrayResource(os.toByteArray());
        os.close();

        sendFileMail(receiver, cc, subject, content, iss, newFileName, sender);
    }

    public void sendFileMail(String receiver, String cc, String subject, String content, InputStreamSource file, String fileName, String sender) {

        checkReceiver(receiver);
        checkSubject(subject);
        checkContent(content);
        XxlJobLogger.log("send mail start, receiver->{}, subject->{}, content-> {}", receiver, subject, content);
        try {
            MimeMessage simple = buildSendFileMail(sender, cc, subject, content, file, fileName, receiver);
            mailSender.send(simple);
            XxlJobLogger.log("send mail end, receiver->{}, subject->{}, content-> {}", receiver, subject, content);
        } catch (Exception e) {
            XxlJobLogger.log("send fail:{}", com.borui.health.insurance.utils.StringUtils.stackTraceToString(e));
        }

    }

    public MimeMessage buildSendFileMail(String sender, String cc, String subject, String content, InputStreamSource file, String fileName, String receiver) throws Exception {

        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(sender);
        helper.setTo(receiver.split(","));
        helper.setSubject(subject);
        helper.setText(content);
        if (!StringUtils.isEmpty(cc)) {
            helper.setCc(cc);
        }
        if (null != file) {
            helper.addAttachment(fileName, file);
        }
        return message;
    }


    private void checkContent(String content) {

        if (StringUtils.isEmpty(content)) {

            throw new RuntimeException("content is empty");
        }
    }

    private void checkSubject(String subject) {

        if (StringUtils.isEmpty(subject)) {

            throw new RuntimeException("subject is empty");
        }
    }

    private void checkReceiver(String receiver) {
        if (StringUtils.isEmpty(receiver)) {

            throw new RuntimeException("receiver is empty");
        }
    }


    public String getSender() {
        return sender;
    }

发送邮件用户配置

#邮件配置
spring.mail.host=
spring.mail.port=
spring.mail.username=
spring.mail.password=
spring.mail.sender=
spring.mail.receiver=多个接收者以,隔开

示例:

  //邮件发送者
  @Value("${spring.mail.username}")
  private String MAIL_SENDER;
 //邮件接收者
  @Value("${spring.mail.receiver}")
  private String receiver;
  public static void main(String[] args) {
        String fileName = "fileName"+ ".xlsx";;
        String subject = "邮件标题";
        String content = "邮件内容";
        Workbook workBook = null;
        try {
            String filePath = "Excel文件路径";
            FileInputStream instream = new FileInputStream(new File(filePath));
            //读取工作簿
            workBook = new XSSFWorkbook(instream);
            mailSenderAgent.sendMail(workBook, MAIL_SENDER, receiver, null, subject, content, fileName);
        } catch (Exception e) {
            XxlJobLogger.log("rcb sendMail error:{}", StringUtils.stackTraceToString(e));
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值