imap_savebody

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

imap_savebodySalva uma seção específica do corpo em um arquivo

Descrição

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

Salva uma parte ou todo o corpo da mensagem especificada.

Parâmetros

imap

Uma instância de IMAP\Connection.

file

O caminho (string) para o arquivo a ser gravado ou um descritor de arquivo válido retornado por fopen().

message_num

O número da mensagem

section

O número da parte. É uma sequência de inteiros delimitados por ponto que são índices de uma lista de partes do corpo conforme a especificação IMAP4.

flags

Uma máscara de bits de uma das seguintes constantes:

  • FT_UID - O message_num é um UID
  • FT_PEEK - Não define o sinalizador \Seen se ainda não estiver definido
  • FT_INTERNAL - A string de retorno está em formato interno, não será canonizada para CRLF.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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