将邮件发送给自己,但允许我回复另一个电子邮件

11
我正在使用一个模块(nodemailer)在我的Web应用程序平台(node.js)上发送一封邮件给自己,这封邮件是从使用我的Web应用程序的联系页面的人那里发送的。因为我正在发送一封邮件给自己,如果我回复这封邮件,我会再次将邮件发送给自己,而不是发送到电子邮件头中设置的"from"标头中的电子邮件地址。如何让客户(gmail、yahoo等)知道应该回复哪个电子邮件地址?
我正在使用Nodemailer模块在Ubuntu Linux服务器上进行发送。
7个回答

8
通常,添加一个 Reply-To: 头部就足以指示应将回复发送到哪个地址。

我已经在Gmail的原始邮件选项中设置了“回复地址”和“发件人”头部,验证它们确实被设置了。但是,Gmail仍然不会回复这些电子邮件。 - Sam
当消息被接收时,您能确认标题是否显示出来吗? - tadman
这可能是 Gmail 处理某些“回复地址”时的怪癖。一些早前的讨论或许会有所帮助。 - tadman

4
我曾经遇到完全相同的问题,并在这个StackOverflow线程中找到了解决方案,它指向了这个论坛

如果“发件人”地址与“收件人”地址相同或已配置为Gmail设置中的“发送为...”帐户之一,则Gmail会回复“收件人”地址而不是“回复地址”。一个简单的解决方法是指定一个非Gmail的“发件人”地址。

在找到解决方案之前,我浪费了很多时间。希望这能帮助其他人。

3
你可以通过将 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); 
    } 
  });

3

我对Nodemailer一无所知,但他们的文档似乎表明它支持设置replyTo属性-这听起来就是你想要的?所有主要的电子邮件客户端都会使用电子邮件的回复地址字段(如果存在)来发送回复。


1
我已经正确设置了电子邮件的“回复地址(reply-to)”和“发件人(from)”头信息,但 Gmail 仍然将回复发送到“发件人(from)”头信息。:\ - Sam

2
在mailOptions对象中添加replyTo字段。这对我很有用。在他们的文档中也有相关说明。
发件人仍将显示您的电子邮件地址,但回复将发送到replyTo电子邮件地址。 另外,请确保在from字段中使用'"Fred Foo" '语法,您将在会话from字段中看到发件人的名称。

0
阅读了所有答案后,以下是对我有效的方法:
同时指定“from”和“replyTo”字段(使用您要回复的电子邮件地址),而不仅仅是其中一个。
这样可以让您仍然使用Gmail帐户发送这些消息。

这对我没用。我认为“发件人”字段必须是您自己的电子邮件地址。出现错误,553 5.7.1发件人地址被拒绝:非授权用户所有。 - Mike K

0

我认为这个问题一定已经解决了。我刚刚用最新的nodemailer进行了测试,我能够将邮件发送给自己,并且回复地址被设置为另一个电子邮件地址,在gmail中完美地工作。我只需要确保将发件人和收件人指定为相同的电子邮件(即我的电子邮件),然后将回复地址指定为用户的电子邮件即可。在这个测试中,所有的电子邮件地址都是gmail地址,以防有人想知道。

"nodemailer": "^6.6.0"

这是我刚刚测试过的nodemailer版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接