0

Gmailの受信トレイからメールのバックアップを取得するために3本足の方法を使用しています。Gmailのメールオブジェクト文字列をメールバックアップ用のファイルに保存して、.emlファイルとして保存しようとしています。次のコードを使用します。

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

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

Outlookやその他のメールブラウザで見たときに必要な情報がメールに見つかりません。添付ファイルは表示どおりに表示されますが、添付ファイルは文字列としてエンコードされたbase64で表示されます。

件名、送信者、受信者、または添付ファイルの情報が表示されない

Webページの代わりに表示されるフォーマットされていないHTML

文字列として添付された画像

正しく表示されるはずなので、メールブラウザで表示し、後でメールを受信トレイに復元したいと思います。誰かが私を助けることができますか?

4

1 に答える 1

1

一部の電子メールクライアント(Outlookなど)に表示するには、.emlファイルにヘッダーを追加する必要があります。

私はそれを次のように行いました:

=($ 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 に答える