3

这封电子邮件有什么办法可以运行吗?łōręmıpśum@łōręmıpśum.com 这不是一个完全轻率的追求。我们有波兰用户在我们的应用程序中输入了非 ascii 电子邮件。

gmail 验证器将其标记为无效,但也许这是他们不允许这样做的罕见情况。“łōręmıpśum.com”的 punycode 是“xn--rmpum-j0a3o6e4dtg.com”,info@xn--rmpum-j0a3o6e4dtg.com似乎工作正常。用户部分让我很头疼。

我以为我可以像在 url 中那样对其进行 utf8+percent 编码(结果为“%C5%82%C5%8Dr%C4%99m%C4%B1p%C5%9Bum”),但 SMTP 服务器返回我的邮件有错误:

The mail system

<%C5%82%C5%8Dr%C4%99m%C4%B1p%C5%9Bum@xn--rmpum-j0a3o6e4dtg.com>: host
    eforward3.registrar-servers.com[38.101.213.199] said: 554 5.7.1
    <%C5%82%C5%8Dr%C4%99m%C4%B1p%C5%9Bum@xn--rmpum-j0a3o6e4dtg.com>: Relay
    access denied (in reply to RCPT TO command)

Final-Recipient: rfc822; %C5%82%C5%8Dr%C4%99m%C4%B1p%C5%9Bum@xn--rmpum-j0a3o6e4dtg.com
Original-Recipient: rfc822;%C5%82%C5%8Dr%C4%99m%C4%B1p%C5%9Bum@xn--rmpum-j0a3o6e4dtg.com
Action: failed
Status: 5.7.1
Remote-MTA: dns; eforward3.registrar-servers.com
Diagnostic-Code: smtp; 554 5.7.1
    <%C5%82%C5%8Dr%C4%99m%C4%B1p%C5%9Bum@xn--rmpum-j0a3o6e4dtg.com>: Relay
    access denied

电子邮件似乎可以很好地通过本地 SMTP 服务器,但在远程端失败。可能 namecheap 邮件服务器是以 ASCII 为中心的方式配置的。

我的主要问题:我已经向自己证明了电子邮件的服务器部分可以是波兰语,但用户部分可以吗?如果不是,为什么?在我看来,上面的电子邮件虽然非常丑陋,但只是 ASCII,不应该被不支持 unicode 的电子邮件系统特别对待。

4

2 回答 2

2

Unicode 是一个完全的红鲱鱼;这与奇怪的字符或编码无关,与%.

“中继访问被拒绝”是来自 Postfix 的错误消息,当您要求它将您的邮件转发到其他服务器时产生。(“开放中继”曾经并且很可能仍然是垃圾邮件问题的主要贡献者,其方式与开放代理难以禁止不法分子的方式大致相同。)

那么,为什么 Postfix 认为你是在要求它转发这封邮件呢?让我们检查一下文档

2.3.3.1。开放中继预防

不要将邮件从远程主机中继到远程地址!(除非发件人经过身份验证)。

这对我们大多数人来说似乎很明显,但显然这是一个经常被忽视的考虑因素。此外,并不是每个人都完全掌握与电子邮件地址和传递路径相关的各种 Internet 标准(考虑“百分比黑客域”、“砰(!)路径”等)。

等等,什么?我不认为完全掌握最后两件事是什么。

谷歌搜索解释

多年后,在创建 CSNET 期间,开发了另一种中继符号。CSNET 的第一个实例在 RAND 和特拉华大学建立了计算机,为未连接到 ARPANET 的站点提供电子邮件连接。为了指示所需的中继,创建了一个称为“percent hack”的符号,以便可以按以下形式指定电子邮件地址:

玛丽%compsci@udel

上面的电子邮件地址指定用户“mary”在计算机“compsci”上有一个帐户,可以通过特拉华大学的中继主机访问。选择 % 符号是因为它没有被任何其他流行的电子邮件系统使用,并且因为它在视觉上类似于用于表示通过邮政邮件发送的信件的“正在处理”的符号“C/O”。尽管百分比破解启用了多级中继,但它的实际使用仅限于单个中继——一个 % 和一个 @。

同一页面还解释了!.

我不认为这些行为中的任何一种都是特定的(因此,“hack”......);两者%!应该是本地部分中的普通字符。但是 Postfix 默认支持这两种 hack,所以它们实际上是保留的。


至于 Unicode:百分比编码只是 URI 的东西没有理由期望它可以在电子邮件地址的任何地方工作。

RFC6531将 SMTP 扩展到“国际”字符。它与任何其他与电子邮件相关的 RFC 一样清晰,但听起来您可以在本地部分使用 UTF-8,并且接收服务器将通过 SMTPUTF8 扩展名理解它,或者......它不会。(假设任何拥有 Unicode 本地部分的人都已经在使用能够理解 Unicode 的电子邮件服务器。)

于 2013-02-08T18:02:52.113 回答
0

用户部分只需 utf8 编码,无需 % 编码。此电子邮件完全适用于“łōręmıpśum@xn--rmpum-j0a3o6e4dtg.com”,左侧为 utf8,右侧为 punycode(又名 IDNA)。

于 2013-02-09T01:49:00.987 回答