java发送邮件


前言

java发邮件小demo


一、获取邮箱授权码?

QQ邮箱:

https://zhuanlan.zhihu.com/p/551399559

二、使用步骤

1.引入库

代码如下(示例):

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

2.新建表、dto

代码如下(示例):

@Data
@TableName("sms_info")
public class SmsInfo {
    private String id;
    private String to;
    private String subject;
    private String content;
    private Date date;
}
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for sms_info
-- ----------------------------
DROP TABLE IF EXISTS `sms_info`;
CREATE TABLE `sms_info`  (
  `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `date` datetime NULL DEFAULT NULL,
  `subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `to` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

3.配置yml、核心代码开发

spring:
	mail:
    	default-encoding: UTF-8
    	host: smtp.qq.com
    	password: xxx #获取的授权码
    	username: xxx@qq.com
    	from: @qq.com # 发送邮件的地址,和上面username一致可以任意

controller

@RestController
@RequestMapping("/sendMail")
@Slf4j
public class SendMailController {

    @Autowired
    private IMailService mailService;

    @PostMapping("/send")
    private void send(@RequestBody SmsInfo smsInfo) {
        mailService.sendSimpleMail(smsInfo);
    }
}

service

public interface IMailService {

    void sendSimpleMail(SmsInfo smsInfo);
}

impl

@Service
public class IMailServiceImpl implements IMailService {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
     * Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口,这里直接注入即可使用
     */
    @Autowired
    private JavaMailSender mailSender;

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


    @Override
    public void sendSimpleMail(SmsInfo smsInfo) {
        //创建SimpleMailMessage对象
        SimpleMailMessage message = new SimpleMailMessage();
        //邮件发送人
        message.setFrom(from);
        //邮件接收人
        message.setTo(smsInfo.getTo());
        //邮件主题
        message.setSubject(smsInfo.getSubject());
        //邮件内容
        message.setText(smsInfo.getContent());
        //发送邮件
        mailSender.send(message);
    }

}

4.测试

请求地址

localhost:8088/sendMail/send

参数

{
    "to": "XXX@qq.com",
    "subject": "主题",
    "content": "正文内容12345,打开网页版的QQ邮箱,登录邮箱,进入设置-》帐户 然后,在“帐户”设置中,找到服务设置项,进行设置:开启POP3/SMTP服务器,验证密保 用正确的手机好发送正确的验证内容到指定的号码,成功获取授权码 注意:如果之前有设置过授权码 或新版QQ邮箱,则可能在 “管理服务”这里 进入 获取授权码 如果之前获取过,也可点这里 继续获取授权码 "
}

总结

其他邮箱可以自行百度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值