Loopback4: 使用QQ邮箱发送邮件

前置动作

从QQ邮箱中,获取授权码,具体方式请自行百度

代码撰写

环境安装

npm install nodemailer

创建一个用于发送邮件的Service

import {injectable, /* inject, */ BindingScope} from '@loopback/core';
import nodemailer from 'nodemailer';

@injectable({scope: BindingScope.TRANSIENT})
export class MailService {
  private transporter: nodemailer.Transporter;

  constructor() {
    this.transporter = nodemailer.createTransport({
      host: 'smtp.qq.com', //QQ邮箱的服务器
      port: 465, //SMTP地址,从邮件服务提供商获取
      secure: true, //465端口为true,其他接口为false
      auth: {
        user: '', // 自己的邮箱
        pass: '', // 邮箱授权码,从邮件服务提供商获取
      },
    });
  }

  async sendEmail(to: string, subject: string, text: string) {
    // 创建邮件选项对象
    const mailOptions: nodemailer.SendMailOptions = {
      from: '', // 替换为你的 QQ 邮箱地址
      to,
      subject,
      text,
    };

    // 使用 SMTP 运输器发送邮件
    await this.transporter.sendMail(mailOptions);
  }
}

在控制器中注入依赖,并调用sendMail方法

import {service} from '@loopback/core';
import {get} from '@loopback/rest';
import {MailService} from '../services';

export class EmailController {
  @service(MailService) emailService: MailService;

  async sendEmail() {
    const to = ''; // 替换为收件人的邮箱地址
    const subject = 'Hello';
    const text = 'This is a test email';

    // 调用邮件服务发送邮件
    await this.emailService.sendEmail(to, subject, text);

    return 'Email sent successfully';
  }

  @get('/send-mail')
  async callsendMail() {
    await this.sendEmail();
  }
}

验收

  1. 点击执行
    image
  2. 查看收到的邮件
    image
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值