邮件(地址)标题和RFC2047编码中的特殊字符

Exim上的RFC2047 “From”标题有一些意外的处理。

(实际地址已更改,原始显示名称包含非ASCII字符)

对于这个“From”标题:

From: =?iso-8859-1?Q?Doe=2C_John?= <[email protected]> 

解码到

 From: Doe, John <[email protected]> 

预期的等效格式可能是:

 From: "Doe, John" <[email protected]> 

Exim使用Doe:[email protected]填充${addresses:$h_from:} ,这似乎意味着Exim首先对string进行解码,然后对其进行解释。

这是一个错误? 地址字段中的RFC2047编码string是否应该被邮件服务器处理为带引号的string? (这是有道理的,因为头文件的解释从RFC2047感知和非RFC2047感知的邮件服务器是相同的,同时要求编码string中的引号允许To: [email protected]=2C_John?= <[email protected]>不同的邮件软件会有不同的解释)

一个在线的RFC2047解码器,用于解docker文件

使用${addresses:$rh_from:}而不是${addresses:$h_from:}解决这个问题。

这使得Exim从非解码版本中提取地址,而不是解码版本。 ( ${addresses:<string>}解码当时的string值,这意味着如果解码的头文件$h_from作为input提供,则逗号被解释,导致出现问题)