2

PHP-imapを使用して、IMAPアカウントからの電子メールと添付ファイルを読み取ります。メールはiPhoneまたはiPadから送信されます。彼らが電子メールを書いて、彼らが撮った画像に貼り付けるとき、それはうまく働きます。

添付ファイルを取得する方法の抜粋は次のとおりです。

require_once("plugins/MailLib/MailLib.php");

$mailbox = new MailLib();
$mailbox->connect($username, $password, $server, $port, $path, false);

$mails = array();
$mailIds = $mailbox->getMails("UNSEEN");

if($mailIds != null && count($mailIds) > 0) {
    foreach($mailIds as $mailId) {
        $mail = $mailbox->getMail($mailId);
        if($mail['attachments']) {
            foreach($mail['attachments'] as $attachment) {
                $file = $mailbox->getAttachment($attachment, $mailId);
                $destFile = "path/to/folder/".time().".jpg";
                $fh = fopen($destFile, 'a') or die("can't open file");
                fwrite($fh, $file);
                fclose($fh);
            }
        }
 }

太字、斜体、下線などのデフォルトオプションを使用してコンテンツのフォーマットを開始するとすぐに、すべてがクラッシュします。それから私は次の電子メールの内容を受け取ります:

<div>
    <em>Test</em> with <strong>formatting</strong>
    <br>
    <br>
    <img id="7CB777EB-3124-4AEA-8894-6F743EA78F79" src="cid:7CB777EB-3124-4AEA-8894-6F743EA78F79" alt="image.jpeg">
    <br>
    <br>
    <div>Send from my iPhone</div>
</div>

それらの添付ファイルも取得するためのphpライブラリはありますか?

4

1 に答える 1

0

私はその問題の解決策を見つけました。誰かがインライン添付ファイルを抽出するための小さなクラスを作成しました

このクラスを使用すると、次のように、添付ファイルのコンテンツをファイルに直接書き込むことができます。

foreach($emailMessage->attachments as $attachment) {
    file_put_contents(time().".extension", $attachment['data']);
}
于 2012-10-06T20:48:47.410 に答える