我正在使用我的 Web 应用程序平台 (node.js) 上的模块 (nodemailer) 从使用我的 Web 应用程序的联系页面的人向自己发送电子邮件。因为,我正在向自己发送电子邮件,如果我回复电子邮件,我将再次向自己发送电子邮件,而不是将其发送到电子邮件标题中设置的“发件人”标题中的电子邮件。我怎样才能让客户(gmail、yahoo 等)知道应该回复哪封电子邮件?
我正在使用 Node.js 的 Nodemailer 模块从 Ubuntu Linux 服务器进行发送。
我正在使用我的 Web 应用程序平台 (node.js) 上的模块 (nodemailer) 从使用我的 Web 应用程序的联系页面的人向自己发送电子邮件。因为,我正在向自己发送电子邮件,如果我回复电子邮件,我将再次向自己发送电子邮件,而不是将其发送到电子邮件标题中设置的“发件人”标题中的电子邮件。我怎样才能让客户(gmail、yahoo 等)知道应该回复哪封电子邮件?
我正在使用 Node.js 的 Nodemailer 模块从 Ubuntu Linux 服务器进行发送。
通常添加一个Reply-To:
标头就足以指示应将回复发送到哪个地址。
我遇到了完全相同的问题,并在这个StackOverflow 线程中找到了解决方案,它指向了这个论坛:
如果“发件人”地址与“收件人”地址相同,或者在 GMail 设置中配置为“发送为...”帐户之一,Gmail 会回复“收件人”地址而不是“回复-讲话。一个简单的解决方法是指定一个非 Gmail“发件人”地址
在找到解决方案之前,我浪费了很多时间。希望这对其他人有所帮助。
我对 Nodemailer 一无所知,但他们的文档似乎表明它支持设置 replyTo 属性——这听起来像你想要的吗?所有主要的电子邮件客户端都使用电子邮件的回复字段来发送回复(如果存在)。
将 replyTo 字段添加到 mailOptions 对象。这对我有用。它也在他们的文档中。
发件人仍会显示您的电子邮件,但回复将转到回复电子邮件。此外,请确保在 from 字段中使用“Fred Foo”语法,您将在会话 from 字段中看到发件人的姓名。
阅读所有答案后,这对我有用:
指定“ from ”和“ replyTo ”字段(以及您要回复的电子邮件),而不仅仅是一个或另一个。
这使您仍然可以使用 Gmail 帐户来发送这些邮件。
我想这个问题应该已经解决了。我刚刚使用当前最新的 nodemailer 自己测试了它,我能够发送给自己,并且回复设置为另一个在 gmail 中完美运行的电子邮件地址。我只需要确保将 from 和 to 指定为同一电子邮件(即我的电子邮件),然后将回复指定为用户的电子邮件。在此测试中,所有电子邮件地址都是 gmail 地址,以防有人想知道。
"nodemailer": "^6.6.0"
那是我刚刚测试过的nodemailer版本。
您可以通过添加 replyTo: email@email.com 作为 mailOptions 的路由选项来轻松做到这一点:
例子
var transporter = nodemailer.createTransport({
host: "smtp.server.com",
port: 465,
secure: true,
auth: {
user: "sender@email.com",
pass: "psw",
},
});
const mailOptions = {
from: "from@email.com",
to: "to@email.com",
subject: "New Feedback",
replyTo: email,
html: `
Your email html code here .... `,
};
transporter.sendMail(mailOptions, (error, data) => {
console.log(data);
if (error) {
console.log(error);
}
});