javascript - 使用 Express 和 Sendgrid 发送电子邮件
问题描述
我刚开始,我知道这个问题可能看起来微不足道。我创建了我网站的主页(index.html),里面有一个表格。每次提交表单时,我希望能够向我的电子邮件地址发送一封包含信息的自动电子邮件。
为此,我使用了 Node 和 Express,但我不清楚一件事。当我去测试电子邮件的发送时,一切正常,但服务器在端口 5000 上,而 index.html 页面在端口 5500 上。
如果我在以下 url 上测试表单 --> localhost://5000 一切正常,而如果我从相对于我的索引页面的 url 测试表单 --> localhost://5500 它会将我重定向到默认错误 405页。
我认为存在与 express 路径相关的问题,有人可以帮助我修改 server.js 文件,以使表单正常工作(在 index.html 页面内)。
这是 server.js 文件的代码:
// Send email after that form is submitted
const express = require("express");
const app = express();
const path = require("path");
const router = express.Router();
// Import sendEmail function from utils/sendEmail
const sendEmail = require("./utils/sendEmail");
// Middleware
app.use(express.urlencoded({ extended: false }));
// view engine setup
app.set("view engine", "html");
// Use Static folder
app.use("/public", express.static(path.join(__dirname, "public")));
app.use("/public", express.static(path.join(__dirname + "/css/style.css")));
app.use("/public", express.static(path.join(__dirname + "/fonts/fonts.css")));
router.get("/", function (req, res) {
res.sendFile(path.join(__dirname + "/views/index.html"));
//__dirname : It will resolve to your project folder.
});
//add the router
app.use("/", router);
app.listen(process.env.port || 5500);
console.log("Running at Port 5500");
app.post("/sendemail", (req, res) => {
const { nome, email, telefono, data, deadline, messaggio, budget, gdpr } =
req.body;
const from = "Irene@liberamente.site";
const to = "irenetestarella.it@gmail.com";
const subject = "Nuovo Prospect";
const output = `
<p> Un nuovo prospect ha appena compilato il form sul sito Liberamente </p>
<h3>Dettagli prospect: </h3>
<ul>
<li>Nome: ${nome} </li>
<li>Email: ${email} </li>
<li>Telefono: ${telefono} </li>
<li>Data ed ora preferita: ${data} </li>
<li>Deadline: ${deadline} </li>
<li>Messaggio: ${messaggio} </li>
<li>Budget: ${budget} </li>
<li>Consenso informato GDPR: ${gdpr} </li>
</ul>
`;
sendEmail(to, from, subject, output);
// res.redirect("/");
res.redirect("/");
});
解决方案
推荐阅读
- javascript - “npm run build”导致 ETXTBSY: text file is busy 错误
- laravel - Laravel 从没有 id 数组的模型中更新特定数据
- google-colaboratory - 无法导入名称“TextVectorization”
- python - 无法加载动态库“libcuda.so.1”;dlerror:libcuda.so.1:
- amazon-web-services - aws ApiGatewayWebACLAssociation “模型验证失败(#/ResourceArn:预期 minLength:20,实际:10)”
- azure - 您是否能够在托管 VNet Synapse 工作区中使用数据流活动?
- java - 使用 Java 发送电子邮件附件 - org.apache.commons.net.smtp.SMTPClient
- html - 如何使用 flexbox 访问和更改孙元素的属性?
- python - 从数组中提取元素
- excel - VBA 工作簿停止使用升级到 Excel 365 - VBA 编译问题?