我不得不电子邮件标题,我想提取不同的数据:发件人,主题,日期等。拆分邮件标题使用的preg_match
$mail1 = 'From: <[email protected]>
To: [email protected]
Subject: Califique nuestro servicio
Date: Sat, 19 May 2012 10:39:04 -0400
Message-ID: <[email protected]>
MIME-Version: 1.0';
$mail2 = 'Date: Fri, 21 Oct 2011 13:42:46 +0000 (GMT)
From: "Decolar.com" <[email protected]>
To: [email protected]
Message-ID: <[email protected]>
Subject: =?UTF-8?Q?Decolar.com_-_Solicita=C3=A7=C3=A3o_?=
=?UTF-8?Q?de_compra_-_N=C3=BAmero:10603789?=
MIME-Version: 1.0';
preg_match("/Subject: (.)*(Date|Message-ID|From|To|MIME-Version):/s",$mail1,$m);
print_r($m);
我用上面的代码用于获取刚刚主题,但结果不是预期的。
对于MAIL1我得到:
Array
(
[0] => Subject: Califique nuestro servicio
Date: Sat, 19 May 2012 10:39:04 -0400
Message-ID: <[email protected]>
MIME-Version:
[1] =>
[2] => MIME-Version
)
对于mail2我得到:
Array
(
[0] => Subject: =?UTF-8?Q?Decolar.com_-_Solicita=C3=A7=C3=A3o_?=
=?UTF-8?Q?de_compra_-_N=C3=BAmero:10603789?=
MIME-Version:
[1] =>
[2] => MIME-Version
)
我这两种情况下,主题是空的。
这不是我正在寻找的,但它甚至是更好的解决方案!非常感谢inhan – capsula
不客气。你可能想要在主题字段中删除换行符(因为它们不能存在),在其中添加''\ r \ n'=>'','\ n'=>'','\ r'=>'''替换数组。 – inhan
是的,我不确定他们是否可以存在,我认为他们只是因为保存电子邮件时的包装。无论如何,它是一个很好的清洁工作。 – capsula