0

我正在使用三足方法从 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 编码为字符串显示。

看不到任何主题、发件人、收件人或附件信息

显示未格式化的 html 而不是网页

附加图像作为字符串

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

4

1 回答 1

1

您必须将标题添加到 .eml 文件中才能在某些电子邮件客户端(outlook 等)中显示它

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

= ($totalMessages-$pager) && $i <= $totalMessages; $i--) { $msg = $storage->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());

?>

祝你好运

于 2011-08-09T12:40:49.437 回答