springboot实战代码之使用JavaMail发送邮件的封装

springboot实战代码之【使用JavaMail发送邮件的封装】,拿来即用。

1.导入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2.加入配置

spring:
  mail:
    host: xxx.com
    username: uuu
    password: pppp
    port: 25
    properties:
      mail:
        smtp:
		  auth: false
	# 下面这俩是我自己加的配置,springboot不存在
	# 发件人邮箱
    from: xxx@jimo.com
    nickname: JIMO

3.发邮件工具类

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.List;

/**
 * send mail
 *
 * @author jimo
 * @version 1.0.0
 */
@Slf4j
@Service
public class MailService {
    /**
     * mail sender
     */
    private final JavaMailSender mailSender;
    /**
     * from who
     */
    @Value("${spring.mail.from}")
    private String from;
    /**
     * from username
     */
    @Value("${spring.mail.nickname}")
    private String nickname;

    /**
     * 构造
     */
    public MailService(JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }

    /**
     * send simple mail
     */
    public void sendSimpleMail(String subject, String body, String... to) {
        final SimpleMailMessage msg = new SimpleMailMessage();
        msg.setFrom(from);
        msg.setSubject(subject);
        msg.setText(body);
        msg.setTo(to);
        mailSender.send(msg);
    }

    /**
     * send mime mail
     *
     * @param attachments 附件文件的绝对路径
     */
    public void sendMimeMail(String to, String subject, String body, List<String> attachments) {
        final MimeMessage msg = mailSender.createMimeMessage();
        try {
            final MimeMessageHelper helper = new MimeMessageHelper(msg, true);
            helper.setFrom(from, nickname);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(body, true);
            if (attachments != null && attachments.size() > 0) {
                for (String attachment : attachments) {
                    helper.addAttachment(attachment.substring(attachment.lastIndexOf(File.separator) + 1),
                            new FileSystemResource(attachment));
                }
            }
            mailSender.send(msg);
        } catch (Exception e) {
            log.error("mime邮件发送失败", e);
            throw new RuntimeException("发送邮件失败:" + e.getMessage());
        }
    }
}

如果要发给多个人,使用重构函数即可:

public void setTo(String[] to)

4.未完待续~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值