0

ファイルからロードしようとするとうまく機能しますが、以前にMySQLテーブルに保存されていたmbox形式のメッセージを使用しています。メッセージを$variableにロードしましたが、何らかの理由でメッセージを受け入れたくありません。何か案は?

サンプルコード:

<?php
    // Reads a mbox file
    #$mbox = new Mail_Mbox('test.mbox');        // Works
    $mbox = new Mail_Mbox($data);               // Doesn't work (what the heck?!)
    $mbox->open();

    $message = $mbox->get(0);

    $decodedMessage = new Mail_mimeDecode($message, "\r\n");
    $structuredMessage = $decodedMessage->decode(
        array(
            'include_bodies'    =>  true,
            'decode_bodies'     =>  true
        )
    );
?>

ファイルではなく、文字列からこのスクリプトにメッセージをロードすることを除いて、すべてが機能しています。これで完全に失われました。

参考: http: //pear.php.net/package/Mail_Mbox

動作するソリューションの例:

<?php
    // Setup a Stream_Var() to let us use a $variable like a file...so that Mail_Mbox() works
    stream_wrapper_register( "var", "Stream_Var" );

    // Reads a mbox file
    $mbox = new Mail_Mbox('var://GLOBALS/this-is-my-variable');   // Leave the $ off
    $mbox->open();

    $message = $mbox->get(0);

    $decodedMessage = new Mail_mimeDecode($message, "\r\n");
    $structuredMessage = $decodedMessage->decode(
        array(
            'include_bodies'    =>  true,
            'decode_bodies'     =>  true
        )
    );
?>
4

1 に答える 1

2

ドキュメントには次のように記載されています。

voidコンストラクターMail_Mbox::Mail_Mbox(string $ file)

クラスは文字列を受け入れ、ファイルのみを受け入れます。

Stream_Varのようなストリームラッパーを試して、ファイルのように変数にアクセスできるようにすることをお勧めします。多分それは動作します。そうでない場合は、PEARバグトラッカーで機能リクエストを開きます。

于 2011-06-07T05:54:57.487 に答える