我正忙着编写SMTP中继引擎的最后一位。基本上,人们将邮件发送到此SMTP地址,它会通过管道传输到文件,进行分析,然后将页眉和页脚添加到正文中。我的问题是,我不确定我改变邮件的方式是否适用于所有情况。基本上,如果我有这个:
Return-path: <XXXX@YYYY>
Envelope-to: system-filter
Delivery-date: Thu, 25 Sep 2014 12:43:53 +0200
Received: from localhost ([127.0.0.1]:XXXX helo=XXXX.XXXX.com)
by XXXX.XXXX.com with XXXX(XXXX-XXXX-XXXX-XXXX:XXXX)
(Exim XXXX)
(envelope-from <XXXX@XXXX.XXXX>)
id XXXX-XXXX-67
for XXXX.XXXX@XXXX.com; Thu, 25 Sep 2014 12:43:52 +0200
Received: from XXXX.XXXX.XXXX.XXXX ([197.87.204.210]) by XXXX.XXXX.com
(Horde Framework) with HTTP; Thu, 25 Sep 2014 10:43:50 +0000
Date: Thu, 25 Sep 2014 10:43:50 +0000
Message-ID: <XXXX.Horde.XXXX@XXXX.XXXX.com>
From: XXXX@XXXX.XXXX
To: XXXX.XXXX@XXXX.com
Subject: This is the subject
User-Agent: Internet Messaging Program (IMP) H5 (XXXX)
Content-Type: text/plain; charset=UTF-8; format=flowed; DelSp=Yes
MIME-Version: 1.0
Content-Disposition: inline
X-OutGoing-Spam-Status: No, score=-2.9
And this is the message.
这个想法是: 1.找到第一个空行并将标题放在那里,然后将页脚附加到末尾。 2.使用PHP Mime Mail Parser改变身体
1的问题在于我认为可能会出现不同格式,不遵循正常布局。 2的问题是,我只限于邮件解析器可以解析的任何内容。
那么,我所描述的最安全的电子邮件转发方式是什么?
答案 0 :(得分:2)
只是在邮件正文中添加或附加内容将不起作用。它不起作用,因为消息可以通过multipart(例如带附件)或编码(例如base64)。 PHP Mime Mail Parser似乎能够处理这些情况,但它没有一种方法来保存修改后的消息。
我建议使用一些可以编写消息的电子邮件解析库,而不仅仅是阅读。例如,Python标准库具有email包,可以满足您的需要。但是,您必须检查邮件是否为多部分,如果是,则将页眉和页脚添加到右侧部分(即添加到实际内容而不是图像或附件)。您还需要检查邮件是纯文本还是HTML,并对页眉和页脚进行适当格式化。