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();
}
}
验收
- 点击执行
- 查看收到的邮件
学以致用,知行合一
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
2021-08-19 typroa文件迁移时的图片问题
2020-08-19 ubuntu卸载mysql
2020-08-19 ubuntu下安装mysqlclient报错
2020-08-19 linux下安装git
2020-08-19 ubuntu上安装mysql
2020-08-19 扩展虚拟机容量
2020-08-19 【linux】你需要以 root 身份执行此命令