SMTP客户端 - 发送可以在回复中返回的隐藏信息

时间:2014-06-10 02:47:39

标签: node.js smtp

I am using the nodemailer SMTP node module,一种通过SMTP发送电子邮件的简单方法。

我使用此功能向各个手机运营商发送短信,这样您就可以通过电子邮件免费发送短信。一个示例电子邮件,它将发送Sprint电话(310)987-6543:

3109876543@messaging.sprintpcs.com

这些都是通过一个SMTP电子邮件地址发出的。这意味着来自某人手机的所有文字回复都会回复到我的电子邮件地址。

很多人发送这些文本。我想使用我自己的服务器端代码将回复文本路由回正确的人。

问题在于区分文本的来源。理想情况下,我可以在某种SMTP标头中隐藏我自己的发件人主键ID,这些标题会到达收件人电话并直接回到他们的文本回复中。

我对SMTP或电子邮件协议一无所知 - 这可能吗?

修改

如下面的每个答案所示,在更好的电子邮件服务器中,您可以使用电子邮件地址以及该地址的扩展名进行寻址,例如:

// original email
sms-service@mysite.com

// extension
sms-service+a6e1087b@mysite.com

这将是一个正确的答案,并将解决我的问题,如果只有这在我使用的电子邮件服务器Exchange Server中有效。我不知道是否有办法启用此解决方案或任何其他解决方法。

3 个答案:

答案 0 :(得分:1)

以下是您可以使用的一些方法:

地址唯一

您可以为每条消息(或每个收件人)使用唯一的“发件人”或“回复”地址。例如“sms-service+a6e1087b@mysite.com”。在该示例中,十六进制将是唯一标识符,可以映射到数据库中的对话。

Gmail支持这样的方案:针对[foo] + [无论如何] @ gmail.com的电子邮件将发送到[foo] @ gmail.com,接收方也知道也会收到[无论如何]。 (更多关于此http://lifehacker.com/144397/instant-disposable-gmail-addresses

识别用户,而不是对话

一种选择是不识别对话,而是识别回复来自的电话号码。在许多情况下,从短信回复发回的号码足以将该消息连接到对话。我确定您使用的短信网关将为您提供回复来源的号码。

商业短信网关

您也可以选择使用商业短信网关(想到smsglobal.com,尽管还有很多其他网关)。这些服务具有良好定义的API,用于发送接收回复。不过,这自然是有代价的。但是随着价格的提高,您对服务的可靠性也会更有信心。免费的SMS网关可能会在没有太多警告的情况下关闭。

答案 1 :(得分:1)

这个常见问题传统上是使用电子邮件的From:Reply-To:标题的语义实现的。事实上,这并非(直接)与SMTP相关,而是与ARPA网络文本消息相关。

RFC 5322是这些消息的当前规范。它声明:

  

当"回复:"字段存在,它指示消息的作者建议发送回复的地址。在没有"回复:"字段,回复应该默认发送到" From:"中指定的邮箱。除非作出回复的人另有指明,否则该字段。

因此,您只需将所需信息编码到Reply-To:标题中即可。由于您提到自己的服务器端代码,因此您可能自己正在运行SMTP服务器。在这种情况下,您可以将任何将路由到您的SMTP服务器的地址放在那里并编码合适的人的地址。

或者,如果您依赖其他SMTP服务器,则可能需要使用别名。 Postfix和GMail等邮件服务通常允许地址扩展,即user+foo@domain.com格式的地址,您可以在地址扩展中对必要的信息进行编码。

例如,我们假设alice@domain.com希望通过您的服务向Sprint电话(310)987-6543发送文本,您可以发送电子邮件至3109876543@messaging.sprintpcs.com

Reply-To: alice%40domain.com@yourservice.com

可替换地:

Reply-To: yourservice+alice%40domain.com@gmail.com

这样您就可以通过查看回复电子邮件的目的地来正确路由回复。

答案 2 :(得分:1)

Exchange服务器本身不支持plus地址,但可以通过自定义MTA实现此目的,例如: http://durdle.com/regexcatchall/

来源:https://serverfault.com/questions/195276/does-exchange-support-plussed-users-e-g-mynamespamexample-com-or-a-similar