SpringBoot邮件发送

用于 用户注册验证邮箱

  • 引入maven相关架包

<!--发送邮件配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
  • 新建service层用来处理邮件发送

/**
* @author xiaoyc
* @description
* @date 2019/9/3 0003
*/
@Service
public class MailService {
    /**
     * Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口,这里直接注入即可使用
     */
    @Autowired
    private JavaMailSender mailSender;

    /**
     * 配置文件中我的qq邮箱
     */
    @Value("${spring.mail.from}")
    private String from;

    /**
     * 简单文本邮件
     *
     * @param to      收件人
     * @param subject 主题
     * @param content 内容
     */
    public Result sendSimpleMail(String to, String subject, String content,int number) {
        try {
            //创建SimpleMailMessage对象
            SimpleMailMessage message = new SimpleMailMessage();
            //邮件发送人
            message.setFrom(from);
            //邮件接收人
            message.setTo(to);
            //邮件主题
            message.setSubject(subject);
            //邮件内容
            message.setText(content);
            //发送邮件
            mailSender.send(message);
            return new Result(100, "发送成功", true,number);
        } catch (Exception e) {
            return new Result(200, "发送失败", false);
        }
    }

    /**
     * html邮件
     *
     * @param to      收件人
     * @param subject 主题
     * @param content 内容
     */
    public void sendHtmlMail(String to, String subject, String content) {
        //获取MimeMessage对象
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper messageHelper;
        try {
            messageHelper = new MimeMessageHelper(message, true);
            //邮件发送人
            messageHelper.setFrom(from);
            //邮件接收人
            messageHelper.setTo(subject);
            //邮件主题
            message.setSubject(subject);
            //邮件内容,html格式
            messageHelper.setText(content, true);
            //发送
            mailSender.send(message);
            //日志信息
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    /**
     * 带附件的邮件
     *
     * @param to       收件人
     * @param subject  主题
     * @param content  内容
     * @param filePath 附件
     */
    public void sendAttachmentsMail(String to, String subject, String content, String filePath) {
        MimeMessage message = mailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(content, true);

            FileSystemResource file = new FileSystemResource(new File(filePath));
            String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
            helper.addAttachment(fileName, file);
            mailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }
}
  • 配置文件

spring:
  profiles:
    active: dev
  servlet:
    multipart:
      enabled: true
      max-file-size: 20MB
      max-request-size: 200MB
  ##网易系(126/163/yeah)邮箱配置
#  mail:
#    host: smtp.163.com #发送邮件服务器
#    username: xi***b@163.com #发送邮件的邮箱地址
#    password: ***** #客户端授权码,不是邮箱密码,网易的是自己设置的
#    properties.mail.smtp.port: 994 #465或者994
#    from: xi***job@163.com # 发送邮件的地址,和上面username一致
#    properties.mail.smtp.starttls.enable: true
#    properties.mail.smtp.starttls.required: true
#    properties.mail.smtp.ssl.enable: true
#    default-encoding: utf-8
  mail:
    host: smtp.qq.com #发送邮件服务器
    username: 114**28@qq.com #发送邮件的邮箱地址
    password:  ******** #客户端授权码,不是邮箱密码,这个在qq邮箱设置里面自动生成的
    properties.mail.smtp.port: 465 #端口号465或587
    from: 114**28@qq.com # 发送邮件的地址,和上面username一致
    properties.mail.smtp.starttls.enable: true
    properties.mail.smtp.starttls.required: true
    properties.mail.smtp.ssl.enable: true
    default-encoding: utf-8

注意:

  • 126邮箱SMTP服务器地址:smtp.126.com,端口号:465或者994
  • 163邮箱SMTP服务器地址:smtp.163.com,端口号:465或者994
  • yeah邮箱SMTP服务器地址:smtp.yeah.net,端口号:465或者994

测试类

@Autowired
private MailService mailService;

@Test
public void sendEmail() {
    int number = (int) ((Math.random() * 9 + 1) * 100000);
    mailService.sendSimpleMail("xi****@163.com", "主题:你好普通邮件", "内容:验证码是"+number,number);
}

至此已经完成Springboot发邮件的操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值