0

私はこれに何時間も立ち往生しています。しかし、基本的には、取り出したいコンテンツと添付の PDF が記載された電子メールが送信される受信トレイがあります。必要な HTML をすべて取り出す方法はわかりましたが、添付された PDF を保存するにはどうすればよいですか?

これは私がこれまでに持っているタラです:

public function read_emails(){ // チェックするユーザーを設定

    $strUser     = "email";
    $strPassword = "passwrd";
    $delete_emails=false;

    // open
    $hMail = imap_open ("{webmail.somethingsomething.com:143/notls}INBOX", "$strUser", "$strPassword") or die("can't connect: " . imap_last_error());
    // get headers
    $aHeaders = imap_headers( $hMail );
    // get message count
    $objMail = imap_mailboxmsginfo( $hMail );
    if($objMail != NULL)
    {           
        // process messages
        for( $idxMsg = 1; $idxMsg <= $objMail->Nmsgs; $idxMsg++  )
        {
            // get header info
            $objHeader = imap_headerinfo( $hMail, $idxMsg );

            // get from object array
            $aFrom = $objHeader->from;

            // process headers
            for( $idx = 0; $idx < count($aFrom); $idx++ )
            {
                // get object
                $objData = $aFrom[ $idx ];
                // get email from
                $strEmailFrom = $objData->mailbox . "@" . $objData->host;
                //Get the subject 
                $message_subject = $objHeader->subject;
                //Get the body of the message
                $fullBody = imap_fetchbody($hMail,$idxMsg, 2);//displays full body including junk
                $bodyMessage = quoted_printable_decode($fullBody);
                //Get the msg structure 
                $message_structure = imap_fetchstructure($hMail, $idx);
                //WHAT DO I DO HERE????
            }

            // delete message
            if($delete_emails == true){
                imap_delete( $hMail, $idxMsg );
            }

        }

        // expunge deleted messages
        if($delete_emails == true){
            imap_expunge( $hMail );
        }


        //Clears the cache
        imap_gc($hMail, IMAP_GC_ELT);

    }
    // close
    imap_close( $hMail );



}

メッセージ構造があり、print_r を実行すると、パーツの 1 つに添付ファイルがあることがわかり、それが PDF であることがわかります。次に何が来るかわからない。私は試してみましたが、良い解決策が見つからないようです。

ありがとう!

編集:ここに imap_fetchstructure の内容があります

stdClass オブジェクト ( [タイプ] => 1 [エンコーディング] => 0 [ifsubtype] => 1 [サブタイプ] => MIXED [ifdescription] => 0 [ifid] => 0 [ifdisposition] => 0 [ifdparameters] => 0 [ifparameters] => 1 [parameters] => 配列 ( [0] => stdClass オブジェクト ( [属性] => 境界 [値] => f46d044473ef81609f04d5f1997c ) ) [パーツ] => 配列 ( [0] => stdClass オブジェクト( [タイプ] => 1 [エンコーディング] => 0 [ifsubtype] => 1 [サブタイプ] => 代替 [ifdescription] => 0 [ifid] => 0 [ifdisposition] => 0 [ifdparameters] => 0 [ ifparameters] => 1 [パラメータ] => 配列 ( [0] => stdClass オブジェクト ( [属性] => 境界 [値] => f46d044473ef81609b04d5f1997a ) ) [パーツ] => 配列 ( [0] => stdClass オブジェクト ( [ type] => 0 [encoding] => 0 [ifsubtype] => 1 [subtype] => PLAIN [ifdescription] =>0 [ifid] => 0 [行] => 1 [バイト] => 37 [ifdisposition] => 0 [ifdparameters] => 0 [ifparameters] => 1 [parameters] => Array ( [0] => stdClassオブジェクト ( [属性] => charset [値] => ISO-8859-1 ) ) ) [1] => stdClass オブジェクト ( [タイプ] => 0 [エンコーディング] => 0 [ifsubtype] => 1 [サブタイプ] => HTML [ifdescription] => 0 [ifid] => 0 [行] => 1 [バイト] => 37 [ifdisposition] => 0 [ifdparameters] => 0 [ifparameters] => 1 [parameters] => Array ( [0] => stdClass Object ( [attribute] => charset [value] => ISO-8859-1 ) ) ) ) [1] => stdClass Object ( [type] => 3 [encoding] => 3 [ifsubtype] => 1 [subtype] => PDF [ifdescription] => 0 [ifid] => 0 [bytes] => 179876 [ifdisposition] => 1 [disposition] => attachment [ifdparameters] => 1 [ dパラメータ] =>Array ( [0] => stdClass Object ( [attribute] => filename [value] => Statement of Account.pdf ) ) [ifparameters] => 1 [parameters] => Array ( [0] => stdClass Object ( [ attribute] => name [value] => Statement of Account.pdf ) ) ) ) )

4

1 に答える 1