我使用 postfix 2.9.6 并使用 milter 读取应用程序的内容。我发现 Postfix 吞下了传入电子邮件中的 Bcc: 标头,而我的 milter 恰好错过了该 Bcc 标头。发生这种情况的原因是什么?有什么方法可以告诉 postfix 不要删除此 Bcc 标头?我搜索了一番,但找不到有关此问题的任何线索。
答案1
据我所知,Postfix 对 BCC 字段不执行任何操作。
密件抄送地址与抄送地址一样,只存在于您的电子邮件客户端中。SMTP 服务器只知道RCPT TO:
信封中的地址。
就像蜗牛邮件一样,SMTP 电子邮件具有两组不同的地址信息:信封头(如打印在信封外面的地址),SMTP 服务器使用它来路由和发送电子邮件,以及普通头,它是邮件消息的一部分,只能由用户在其邮件客户端/网络邮件中读取和解释,就像信封中物理信件开头的称呼中附加的地址一样。
与邮局不同,SMTP 通常在将邮件交给用户之前丢弃大部分信封。
当与外发 SMTP 服务器通信时,您的电子邮件客户端会将每个收件人(电子邮件客户端中的To:
、 CC:
和字段中的每个地址)设置为信封中唯一的“ ”地址,并且不会在邮件本身中包含任何密件抄送地址。 BCC:
RCPT TO:
一个简单的 telnet 邮件会话可能更好地说明这一点:
[user@example ~]$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
<<< 220 example.com ESMTP Sendmail 8.14.4/8.14.4; Fri, 17 Jul 2015 20:29:26 +0200
helo localhost
<<< 250 example.com Hello localhost [127.0.0.1], pleased to meet you
MAIL FROM:me@localhost
<<< 250 2.1.0 me@localhost... Sender ok
RCPT TO:[email protected]
<<< 250 2.1.5 [email protected]... Recipient ok
RCPT TO:[email protected]
<<< 250 2.1.5 [email protected]... Recipient ok
RCPT TO:[email protected]
<<< 250 2.1.5 [email protected]... Recipient ok
DATA
<<< 354 Enter mail, end with "." on a line by itself
Subject: test
From: [email protected]
To: [email protected]
Cc: [email protected]
this is an email message.
that has two lines.
.
<<< 250 2.0.0 t6HITQXA020072 Message accepted for delivery
quit
编辑
我没有检查最新的 Postfix 版本,但显然 Postfixcleanup
守护进程将默认从邮件正文中删除以下邮件头: Bcc
、、 Content-Length
和 。可以使用中的设置调整此行为Resent-Bcc
: Return-Path
message_drop_headers
main.cfg
可用Postfix 3.0 及更高版本:
message_drop_headers
(bcc, content-length, resent-bcc, return-path
) 在应用 header_checks(5) 之后和调用 Milter 应用程序之前,cleanup(8) 守护进程将删除的消息头的名称。
答案2
上述答案具有误导性。
BCC 不仅仅存在于您的邮件客户端中。假设我发送电子邮件给[email protected]
,我会将其放入[email protected]
BCC 中。会生成两封单独的电子邮件:
- 收到的邮件
[email protected]
-> 此电子邮件只有标题,并且您无法从电子邮件中看出密件抄送的内容to: [email protected]
- 收到的邮件
[email protected]
-> 这封邮件有两个标题 -和to: [email protected]
bcc: [email protected]
换句话说,BCC 标头是非常真实的东西,它向 BCC 收件人表明他已被用作 BCC 收件人。
假设您有 Postfix mydestination: test.com
,第二封电子邮件寄到了它。行为取决于版本:
bcc
无论如何,Postfix v.2 都会从电子邮件中删除标题。- Postfix v.3 将遵循此
message_drop_headers
设置。默认情况下,它也会删除bcc
标头,但您可以将其配置为保留标头。