PHP Zend_mail Gmail API проблема резервного копирования электронной почты - PullRequest
0 голосов
/ 06 августа 2011

Я использую трехсторонний метод для получения резервных копий электронной почты из почтового ящика 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 Ответ

1 голос
/ 09 августа 2011

Вы должны добавить заголовки в файл .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());

?>

Удачи

...