-
首先安装自己需要的依赖包,我这边因为项目需要安装了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+"
}
};