使用nuxt fastify 开发一个邮件发送功能

  • 首先安装自己需要的依赖包,我这边因为项目需要安装了
    image.png

*在server 文件夹下的index.js 中引入需要的包,

import fastify from "fastify";
import middie from "middie";
import mailer from "fastify-nodemailer";
import { Nuxt, Builder } from "nuxt";
import config from "../nuxt.config";
import {
  EMAIL_NAMES,
  EMAIL_TYPES,
  EMAIL_SUBJECT,
  EMAIL_ENSUBJECT
} from "./constant";

然后就可以编写发送邮件的主要代码,从request 中拿到后端传过来的需要放到邮件里的json数据,然后注入写的模版中,使用sendMail发送,

app.post("/emails/:name", async (request, reply, next) => {
    let name = request.params.name;
    let Subject = "";
    let IdSubject = "";
    let sub = "";
    const type = request.body.emailType;
    const index = EMAIL_TYPES.indexOf(type);
    if (index > -1) {
      name = EMAIL_NAMES[index];
      Subject = EMAIL_SUBJECT[index];
      IdSubject = EMAIL_ENSUBJECT[index];
    }
    request.body.subject = sub;
    let result;
    try {
      result = await nuxt.renderRoute(`/emails/${name}`, {
        req: request,
        res: reply
      });
      await app.nodemailer.sendMail({
        from: "123456@qq.com",
        to: request.body.sendEmail,
        subject: sub,
        html: result.html
      });
      reply.code(200).send();
    } catch (error) {
      console.log(error);
      reply.code(500).send({ error: JSON.stringify(error) });
    }
  });

注意在使用发送邮件时,邮件需要开通POP3/SMTP 功能,并且将用户名密码填入

const MAILER_CONFIG = {
  pool: true,
  host: "email-smtp.ap-southeast-1.amazonaws.com",
  port: 465,
  secureConnection: true,
  secure: true,
  auth: {
    user: "AKIARXEU22B2DQ3321R222E63",
    pass: "BJaxPo8ybBl0njbmX11333Ir22Yn+XRpeGyFyCAvAG/eGtIXA+"
  }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容