PHP 8.4.1 Released!

imap_savebody

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

imap_savebodyСохраняет часть тела сообщения в файл

Описание

imap_savebody(
    IMAP\Connection $imap,
    resource|string|int $file,
    int $message_num,
    string $section = "",
    int $flags = 0
): bool

Записывает часть тела сообщения в файл.

Список параметров

imap

Экземпляр класса IMAP\Connection.

file

Путь к файлу в виде строки, либо открытый с помощью fopen() файловый дескриптор.

message_num

Номер сообщения

section

Номер секции сообщения. Строка целых чисел, разделённых точками, определяющая часть тела сообщения в соответствии со спецификацией IMAP4

flags

Битовая маска из одной или нескольких опций:

  • FT_UID - The message_num is a UID
  • FT_PEEK - Не устанавливать флаг \Seen, если он уже не установлен
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

Версия Описание
8.1.0 Параметр imap теперь ожидает экземпляр класса IMAP\Connection; раньше параметр ждал ресурс (resource) imap.

Смотрите также

  • imap_fetchbody() - Извлекает конкретную секцию тела сообщения

Добавить

Примечания пользователей 1 note

up
13
anon
12 years ago
By using imap_fetchbody() you may run in trouble by using too much memory. Using imap_savebody() may prevent this.

But the content will be encoded, in other words it is useless. Adding a filter can help here.

<?php
$whandle
= fopen('./incomming/tmp.tif','w');

stream_filter_append($whandle,
'convert.base64-decode',STREAM_FILTER_WRITE);

imap_savebody ($mbox, $whandle, $i, $partcounter++);

fclose($whandle);
?>

NOTE: To find the proper filter you need to check the encoding given by the structure of the body.
To Top