9

精简版

附件上的 Content-ID 标头必须采用local-part "@" domain. Gmail 的 Content-ID 中没有@这是一个真正的错误,还是我误读了规范?

长版

当我尝试重新发送从 Gmail 发送的附有内嵌图像的电子邮件时,我注意到了这个问题。我的邮件程序 (SwiftMailer) 声称 Content-ID 无效。

这是我正在使用的电子邮件。我通过在 Gmail 中插入内联图像并将其通过电子邮件发送给自己来创建它。

以下是规范的相关部分(据我所知):

RFC 2045

Content-ID Header Field

In constructing a high-level user agent, it may be desirable to allow
one body to make reference to another.  Accordingly, bodies may be
labelled using the "Content-ID" header field, which is syntactically
identical to the "Message-ID" header field:

 id := "Content-ID" ":" msg-id

RFC 822此处此处

msg-id      =  "<" addr-spec ">"            ; Unique message id

addr-spec   =  local-part "@" domain        ; global address

我在这里想念什么?Gmail 是否不遵循规范,或者是否可以@在 Content-ID 中没有一个?

4

1 回答 1

10

看到没有人发布更好的答案……</p>

我对 RFC 的解释与你的一致。我会说Gmail在这里做错了,从书本上讲。但是,根据定义,Gmail 所做的实际上是有效的。Gmail 太受欢迎了,以至于其他软件无法接受,但它确实可以做一些事情,这为更多软件以同样的方式违反规范打开了大门,直到它成为标准做法。

不幸的是,这意味着目前没有与现实相匹配的确切规格。幸运的是,这个问题现在出现在 Google 结果中。


问题中的原始电子邮件已消失,因此这是另一个示例。这只是多部分消息的编码图像部分。请注意 Content-ID 标头。

--089e0153807e5a346d04f1ae7c38
Content-Type: image/gif; name="blank.gif"
Content-Transfer-Encoding: base64
Content-ID: <ii_14403b4fa16783bf>
X-Attachment-Id: ii_14403b4fa16783bf

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
--089e0153807e5a346d04f1ae7c38--
于 2014-02-05T21:49:14.593 回答