使用弹出窗口通知用户使用 nodemailer 成功发送电子邮件

Using a popup to notify the user about successfully sending an email using nodemailer

我正在尝试使用 nodemailer 创建一个电子邮件表单以添加到网站。我已成功将电子邮件发送到所需的电子邮件,并尝试通知用户邮件是使用警报发送的,但这似乎不起作用。

我的代码:

app.post("/", function (req, res) {
    console.log(req.body.email + " " + req.body.message);
    var mailOptions = {
        from: ****@gmail.com',
        to: ****@gmail.com',
        subject: '[WEBSITE] Email from '+ req.body.email,
        text: req.body.message
    }
    transporter.sendMail(mailOptions, function (error, info) {
        if (error) {
            console.log(error);
        } else {
            alert("Your mail sent successfully!")
            console.log("email sent: " + info);
        }
    })
});

我关注了 nodemailer 上的 w3shcools 页面以使电子邮件正常工作。 html 部分是我为测试代码而创建的准系统 HTML 表单。

HTML:

<form action="/" method="post">
        <input type="text" name="email" placeholder="Your email">
        <textarea name="message" placeholder="Your message" cols="30" rows="10"></textarea>
        <button type="submit">Send</button>
        </form>
    </div>

我的问题是如何向用户提供一个简单的弹出式警报,提示邮件发送成功

服务器代码警报将不执行任何操作。您可以发送 json 并在客户端处理它,或者您可以传入脚本标记以响应警报。

试试这个应该有用。 (但这不是推荐的方法)。

app.post("/", function (req, res) {
    console.log(req.body.email + " " + req.body.message);
    var mailOptions = {
        from: ****@gmail.com',
        to: ****@gmail.com',
        subject: '[WEBSITE] Email from '+ req.body.email,
        text: req.body.message
    }
    transporter.sendMail(mailOptions, function (error, info) {
        if (error) {
            console.log(error);
        } else {
            res.send(`<script>alert("Email Sent Successfully.")</script>`);
            console.log("email sent: " + info);
        }
    })
});