所以,我在谷歌的应用程序引擎上构建这个网络服务,我希望它能接收电子邮件。
问题是,我需要授权传入的邮件并仅根据 TO 字段确定目的地。这是为了让人们将服务集成到他们已经运行的任何电子邮件发送系统中。
至少我需要变量,一个键和一个目的地(也是一个电子邮件地址):
一个例子可以是:
af922514-60bc-4595-956d-ec29e6351d8e,kristian@mide.dk@application.appspotmail.com
这真的行不通(我认为),有什么方法可以逃避第一个@,或者我应该完全相反的方式解决这个问题?
我已经考虑过对其进行基本编码:
af922514-60bc-4595-956d-ec29e6351d8e,kristian@mide.dk@application.appspotmail.com
这是这样:
YWY5MjI1MTQtNjBiYy00NTk1LTk1NmQtZWMyOWU2MzUxZDhlLGtyaXN0aWFuQG1pZGUuZGs=@application.appspotmail.com
我不确定电子邮件地址中是否允许结尾"="
对此有什么想法吗?
首先,逗号是不行的,因为它会建议多个收件人,大多数邮件客户端会将逗号视为分隔符。
您可以做的是将其格式化为:
some-var+recipient-addresse+domain.tld@someapp.appspotmail.com
当您的应用收到电子邮件时,您只需执行一个正则表达式,该正则表达式将所有内容匹配到第一个 + 号。你有你的变量,然后匹配其余的,直到@符号,用@替换最后一个+,你就有了电子邮件。
这也将允许收件人电子邮件包含 +,因为您只替换第一个和最后一个 + 号。
由于+
不属于主机名,因此您可以将最后一个+
替换为@
,以便:
some-id,myinbox+tag+gmail.com@someapp.appspotmail.com
翻译为:
myinbox+tag@gmail.com
与some-id