Springboot使用Javamail发送邮件

介绍

JavaMail 是SUN公司提供给广大Java开发人员的一款邮件发送和接受的一款开源类库,官网地址https://www.oracle.com/java/technologies/javamail.html

springboot整合JavaMail

引入依赖包

  <!--Email相关开始-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mail</artifactId>
      <version>2.5.0</version>
  </dependency>
  <!--Email相关结束-->

修改配置文件

我这里使用的是163邮箱

server:
  port: 8080
spring:
  mail:
    host:  smtp.163.com
    port:
    username: 邮箱
    password: 授权码
    default-encoding: UTF-8
    protocol: smtp

代码实现


import au.com.koalaclass.email.core.entity.EmailTemplate;
import au.com.koalaclass.email.core.repository.EmailTemplateRepository;
import au.com.koalaclass.email.core.service.EmailTemplateService;
import au.com.koalaclass.email.core.service.MailService;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.apache.tomcat.jni.Local;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.HashMap;
import java.util.Locale;

/**
 * @Author : luzhiyong
 * @CreateTime : 2021/7/13
 * @Description :
 **/
@Service
public class MailServiceImpl implements MailService {

    //邮件的发送者
    @Value("${spring.mail.username}")
    private String from;

    //注入MailSender
    @Resource
    private JavaMailSender javaMailSender;

    //发送邮件的模板引擎
    @Resource
    private FreeMarkerConfigurer configurer;

    @Resource
    private EmailTemplateService emailTemplateService;

    /**
     * @param params       发送邮件的主题对象 object
     * @param title        邮件标题
     * @param templateName 模板名称
     */
    @Override
    public void sendMessageMail(Object params, String title, String templateName) {
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setFrom(from);
            //发送给谁
            helper.setTo(InternetAddress.parse("luzhiyong@erfou.com"));
            //邮箱标题
            helper.setSubject("【" + title + "-" + LocalDate.now() + " " + LocalTime.now().withNano(0) + "】");
			//text是发送的内容
            helper.setText(text, true);
            //发送消息
            javaMailSender.send(mimeMessage);
      
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值