如何配置 exim4 以允许井号(哈希)成为电子邮件地址的一部分?

如何配置 exim4 以允许井号(哈希)成为电子邮件地址的一部分?

看来 exim4 拒绝接收发送至“#[电子邮件保护]“这些在 Exchange 环境中相当常见。

我如何配置 exim4 以允许电子邮件地址中使用井号。

澄清:是的,我知道 RFC 不允许使用 # 符号,但我只能使用 exim4 过滤功能来删除某些服务器生成的某些消息,然后才能将这些消息传递到企业 Exchange 服务器。

答案1

目前这似乎是不可能的,所以我提出了一个错误: http://bugs.exim.org/show_bug.cgi?id=1465

不过,还是有一个解决办法的

如果您有拆分配置,请编辑30_exim4-config_check_rcpt并注释以下几行:

#  .ifdef CHECK_RCPT_REMOTE_LOCALPARTS
#  deny
#    domains = !+local_domains
#    local_parts = CHECK_RCPT_REMOTE_LOCALPARTS
#    message = restricted characters in address
#  .endif                             

如果您有兴趣修复此问题,请为此错误添加您的投票/评论。

答案2

电子邮件地址内的 # 不符合 RFC822(请参阅https://www.rfc-editor.org/rfc/rfc822#section-6.1)因此,进出口银行在拒绝这个地址方面做得很好。

答案3

哈希 (#) 在电子邮件地址的本地部分是完全合法的。RFC 5321 参考了 RFC5322 中对原子的定义:

3.2.3. 原子 atext = ALPHA / DIGIT / ; 可打印的 US-ASCII "!" / "#" / ; 字符不包括 "$" / "%" / ; 特殊字符。用于原子。"&" / "'" / "*" / "+" / "-" / "/" / "=" / "?” / "^" / "_" / "`" / "{" / "|" / "}" / "~"

所有这些字符在电子邮件地址的左侧都是合法的。Exim 的默认配置会阻止使用其中一些字符,因为如果 Exim 要将邮件保存到以地址的本地部分命名的邮箱中,这些字符是不安全的。但是,它不会阻止使用井号字符。

默认配置使用这些 ACL:

拒绝消息 = 地址域中的受限字符 = +local_domains local_parts = ^[.] : ^.[@%!/|]
拒绝消息 = 地址域中的受限字符 = !+local_domains local_parts = ^[./|] : ^.
[@%!] : ^.*/\.\./

这不是 Exim 的错误,但可能是某些第三方发行版的默认配置中的错误。

相关内容