节点邮件从我的账户发送信息给它自己

Nodemailer Sending messages from my account to it self

本文关键字:信息 它自己 我的 节点      更新时间:2023-09-26

我在本地设置了nodemailer从我的网站发送邮件,它应该从html中收集电子邮件并通过联系表单将其转发到我的gmail帐户

<form action="http://localhost:3000/contactForm" class="form-horizontal"
method="post" role="form">
    <div class="row">
        <div class="col-md-12">
            <input class="form-control" name="name" placeholder="Name"
            type="text"><br>
            <input class="form-control" name="email" placeholder="Email"
            type="email"><br>
            <input class="form-control" name="subject" placeholder=
            "Subject" type="text">
        </div>
    </div><br>
    <div class="row">
        <div class="col-md-12">
            <textarea class="form-control" cols="10" name="text"
            placeholder="Feel free to send me a mail" rows="6"></textarea>
        </div>
    </div><button id="send" value="submit">Send</button><br>
</form>

这是server.js文件。一切都在工作,因为它应该,邮件正在发送,主题和文本正在收集从html传递到服务器,并发送到我的gmail帐户,但电子邮件没有它一直拉我的gmail帐户出于某种原因,所以它基本上从j*********@gmail.com到j*********@gmail.com在我的电子邮件帐户这打败了整个点,因为我希望用户能够与我沟通。

app.post('/contactForm', urlencodedParser, function(req, res) {
response = {
    email:req.body.email,
    subject:req.body.subject,
    text:req.body.text
};
var transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        xoauth2: xoauth2.createXOAuth2Generator({
                user: 'j********@gmail.com',
                clientId: '********************************************',
                clientSecret: '****************************************',
                refreshToken: '****************************************',
                accessToken: '*******************************************'
            })
        }   
});
var mailOptions = { 
    from: req.body.email,
    to: 'joelebuka@gmail.com',
    subject: req.body.subject,
    text: req.body.text
};
transporter.sendMail(mailOptions, function(error, info) { 
    if(error) {
        return console.log(error);
    } else {
        console.log('Message sent: ' + info.response)
    }
});

})

感谢您耐心阅读并提供任何帮助

在当前设置下,您将无法实际从用户帐户发送电子邮件。您可以做的是将options对象上的replyTo值设置为表单提交者的电子邮件地址。

查看这里的选项:

https://github.com/nodemailer/nodemailer e-mail-message-fields

还可以设置name属性。查看地址格式选项:

https://github.com/nodemailer/nodemailer address-formatting