我正在使用三条腿的方法来获取电子邮件备份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编码显示为字符串。
我希望在邮件浏览器中看到它们,因为它们应该正确显示,然后再将电子邮件恢复到收件箱。 有人能帮助我吗?
答案 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;
祝你好运