如何解决尝试打开通过Nodemailer发送的图像附件时,为什么会收到504服务器错误?
我一直在尝试找出如何通过React中的电子邮件表单发送上载的图像,以便当用户提交表单时,他们上载的图像直接发送到我的电子邮件地址。我最终能够使附件与电子邮件一起显示,但是当我尝试打开附件时,它会挂起几分钟,然后超时,并显示“服务器错误504”。我尝试了几种设置缓冲区的方法,但我不认为我正在正确实施代码。有人可以帮我弄清楚如何在附件中实际看到图像吗?我当前的代码,谢谢:
const express = require("express");
const bodyParser = require("body-parser");
const fileUpload = require("express-fileupload");
const nodemailer = require("nodemailer");
const app = express();
const creds = require("./config");
const cors = require("cors");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use(fileUpload());
app.use(cors());
app.post("/api/form",(req,res) => {
nodemailer.createTestAccount((err,account) => {
const htmlEmail = `
<h3>Contact Details</h3>
<ul>
<li>
Name: ${req.body.name}
</li>
<li>
Email: ${req.body.email}
</li>
</ul>
<h3>Message</h3>
<p>${req.body.message}</p>
`;
let transport = nodemailer.createTransport({
host: "some.service.email",port: ***,auth: {
user: creds.USER,pass: creds.PASS,},});
let mailOptions = {
from: "test@test.com",to: "receiveTest@test.com",replyTo: "test@test.com",subject: "Test Message",text: req.body.message,html: htmlEmail,attachments: [
{
filename: req.files.file.name,content: new Buffer.from(req.files.file.name,"base64"),],};
transport.sendMail(mailOptions,(err,info) => {
if (err) {
res.json({
status: "fail",});
} else {
res.json({
status: "success",});
}
});
});
});
const PORT = process.env.PORT || 3001;
app.listen(PORT,() => {
console.log(`Server listening on port ${PORT}`);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。