#php #email #pear #mbox
#php #Адрес электронной почты #груша #mbox #pear
Вопрос:
Это отлично работает, если я пытаюсь загрузить из файла, но я работаю с сообщениями в формате mbox, ранее сохраненными в таблице MySQL. Я загрузил сообщение в переменную $, и по какой-то причине оно не хочет его принимать. Есть идеи?
Пример кода:
<?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, "rn");
$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, "rn");
$structuredMessage = $decodedMessage->decode(
array(
'include_bodies' => true,
'decode_bodies' => true
)
);
?>
Ответ №1:
конструктор void Mail_Mbox::Mail_Mbox ( строка $file )
Класс не принимает строки, только файлы.
Возможно, вы захотите попробовать потоковую оболочку, такую как Stream_Var, чтобы сделать переменную доступной как файл. Возможно, это работает. Если этого не произойдет, откройте запрос функции в PEAR bugtracker.