前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >邮箱调用发送信息

邮箱调用发送信息

作者头像
java后端指南
发布2021-05-13 14:44:39
5780
发布2021-05-13 14:44:39
举报
文章被收录于专栏:java后端java后端

今日主题:邮箱调用发送信息

简介

上个礼拜讲了短信验证码如何登陆,现在来向大家讲讲如何使用邮箱验证码登录,其实原理比较简单,和短信差不多,因为不管是短信还是邮箱,他只是一个发送工具,难的是里面的业务。

环境

  • springboot
  • QQ邮箱

实现过程

1、QQ 邮箱通过生成授权码来设置密码

2、建立一个springboot工程,添加依赖:

代码语言:javascript
复制
 <!--邮箱依赖-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mail</artifactId>
   </dependency>

3、配置properties文件

代码语言:javascript
复制
spring.mail.host=smtp.qq.com
spring.mail.username=邮箱名
spring.mail.password=这里填邮箱的授权码
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

或者yml文件

代码语言:javascript
复制
server:
  port: 8080
spring:
  mail:
    host: smtp.qq.com
    username: 2926502315@qq.com
    #授权码
    password: 
    default-encoding: UTF-8
    port: 465
    properties:
      mail:
        smtp:
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory
        debug: true

4、写控制类,单个发送

代码语言:javascript
复制
@RestController
public class MailController {
    @Autowired
    JavaMailSender mailSender;
    @RequestMapping("/send")
    public String sendEmail(){
        try {
           final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            //设置发送人
            message.setFrom("2926502315@qq.com");
            //发送给谁
            message.setTo("2447432515@qq.com");
            //标题
            message.setSubject("测试");
            //正文
            message.setText("这是一个邮件信息发送功能测试");
        } catch (MessagingException e) {
            e.printStackTrace();
            return "error";
        }
    }
}

发送成功

5、批量发送

代码语言:javascript
复制
 @RequestMapping("/sendMore")
    public String sendMoreEmail(){
        list.add("232515@qq.com");
        list.add("2542616@qq.com");
        try {
            final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            //设置发送人
            message.setFrom("2922315@qq.com");
            //发送给谁
            //将集合转成数组
            String[] emails=list.stream().toArray(String[]::new);
            message.setTo(emails);
            //标题
            message.setSubject("测试");
            //正文
            message.setText("这是一个邮件信息发送功能测试");
            this.mailSender.send(mimeMessage);
            return "success send";
        } catch (MessagingException e) {
            e.printStackTrace();
            return "error";
        }
    }

6、携带附件发送

代码语言:javascript
复制
 @RequestMapping("/sendMoreAndFile")
    public String sendMoreAndFileEmail(){
        list.add("2432515@qq.com");
        list.add("25429616@qq.com");
        list.add("2922315@qq.com");
        try {
            final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            //携带附件,需要加true参数
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage,true);
            //设置发送人
            message.setFrom("292315@qq.com");
            //发送给谁
            //将集合转成数组
            String[] emails=list.stream().toArray(String[]::new);
            message.setTo(emails);
            //标题
            message.setSubject("测试");
            //正文
            message.setText("这是一个邮件信息发送功能测试");

            File file=new File("src/main/resources/《Linux就该这么学》正式版电子书.pdf");
            System.out.println("文件是否存在:"+file.exists());
            message.addAttachment(file.getName(),file);
            this.mailSender.send(mimeMessage);
            return "success send";
        } catch (MessagingException e) {
            e.printStackTrace();
            return "error";
        }
    }

7、我这里只写如何发送,具体的业务可以去参考我之前写的短信验证的文章

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java后端指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日主题:邮箱调用发送信息
    • 简介
      • 环境
        • 实现过程
        相关产品与服务
        短信
        腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档