【发布时间】:2011-08-26 07:16:29
【问题描述】:
我正在发送带有一些 xheader 的电子邮件。
当电子邮件的收件人重播该电子邮件时,我想对其进行解析,并从我通过重播获得的邮件中获取该 xheader 的内容。
不幸的是,当我解析收到的电子邮件时,我没有看到我的 xheader。 (我打印了整封邮件,xheader 不存在)
我如何在 PHP 中使用 Zend Framework 做到这一点(我正在使用 Zend_Mail_Storage_Imap)?
代码:
$mail = new Zend_Mail_Storage_Imap(array(
'host' => 'pop.gmail.com',
'user' => 'a@gmail.com',
'password' => 'a',
'ssl' => 'SSL'
));
$count = $mail->countMessages();
$message = $mail->getMessage($count);
print_r($message);
//go through the message
foreach(new RecursiveIteratorIterator($message) as $part){
echo '*****************<br/>';
print_r($part);
echo '<br/>*****************<br/>';
//match parts content type to text/html - the one that maches is the message HTML body
if (preg_match('/.*text\/html.*/', $part->contentType)){
$body = $part->getContent();
}
$headers = $part->getHeaders();
if (isset($headers['X-aHeader'])){
echo $headers['X-aHeader'];
}
谢谢, 鲍里斯。
【问题讨论】:
-
您从哪里发送邮件?您确定其中一个邮件服务器没有删除标头吗?
-
是的,我确定。我试图将邮件直接发送到解析邮件的邮箱,当我打印邮件时 - 标题就在那里。
-
嗯..重播时使用的电子邮件服务器可能会删除它。我想我在那种情况下无事可做,对吧?
-
如果它出现在目标框中,那么它应该在那里。但是,回复时肯定会丢失。我认为邮件客户端在回复时不包含标题。
标签: php zend-framework email imap email-headers