首页 > 解决方案 > 在没有来自地址的情况下通过 html 表单帖子发送电子邮件

问题描述

我正在尝试建立一个匿名反馈表,人们可以向我发送反馈。我已经查看了 nodemailer 和node-sendmail,但是如果没有发件人地址,它们似乎都无法工作。我知道可以使用 php 的邮件,但这也可以在 node.js 上完成吗?

这是表格:

<form action="http://localhost:3000/send_email" method="POST">
    <textarea type="text" name="suggestions"></textarea>
</form>

这是我后端的一个片段。消息排队,但从未发送过,当mailq我看到(Deferred: connection refused by [127.0.0.1])

const express = require("express");
const app = express();
app.use(express.urlencoded({extended:true}));
app.use(express.json());

const transport = nodemailer.createTransport({sendmail: true, newline:"unix", debug: true});
app.post("/send_email", function(req,res){
    transport.sendMail({
        to: "my@email.com",
        subject: "Hello World!",
        text: `You've got mail! ${req.body.suggestions}`},
        function(err, info){
            console.log("There was an error!");
        }
    );
});

标签: javascripthtmlnode.js

解决方案


请参阅规范。标题from是强制性的。

PHP 可能会插入一个默认的,但您使用的库似乎不是。

添加发件人地址。它不需要属于填写表格的人。


推荐阅读