PHP Zend_mail gmail API电子邮件备份编码问题

时间:2011-08-06 06:45:35

标签: php gmail zend-mail

我正在使用三条腿的方法来获取电子邮件备份grom gmail收件箱。 我试图将gmail邮件对象字符串存储到文件以进行电子邮件备份,并将其另存为.eml文件。使用以下代码:

<?php
    for($i = $totalMessages; $i >= ($totalMessages-$pager) && $i <= $totalMessages; $i-- )
{
    $msg = $storage->getMessage($i);

    file_put_contents($i.".eml", $msg);
?>

当我在Outlook或任何其他邮件浏览器中看到它时,我无法在邮件中找到必要的信息,附件显示为应该显示,但附件以base64编码显示为字符串。

Cannot see any Subject,sender, recipient or attachment information

Unformated html showing instead of webpage

attached image as string

我希望在邮件浏览器中看到它们,因为它们应该正确显示,然后再将电子邮件恢复到收件箱。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

您必须将标头添加到.eml文件中,以便在某些电子邮件客户端(Outlook等)中显示它。

我是通过以下方式做到的:

=($ totalMessages- $ pager)&amp;&amp; $ i&lt; = $ totalMessages; $我 - ) {     $ msg = $ storage-&gt; getMessage($ i);

$headers    =   "Date: " . $msg->date."\n"
                ."Delivered-To: ". $msg->to ."\n"
                ."Subject: " . $msg->subject ."\n"
                ."From: " . $msg->from ."\n"
                ."To: " . $msg->to ."\n"
                ."Content-Type: " . $msg->contentType."\n\n";


file_put_contents($i.".eml", $headers.$msg->getContent());

&GT;

祝你好运