PHP 8.4.2 Released!

imap_savebody

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

imap_savebodySpeichert einen Teil des Nachrichtentextes in einer Datei

Beschreibung

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

Speichert einen Teil des Nachrichtenkörpers oder den gesamten Textkörper der angegebenen Nachricht.

Parameter-Liste

imap

Eine IMAP\Connection-Instanz.

file

Der Name der Zieldatei oder ein gültiger von fopen() zurückgegebener Dateideskriptor.

message_num

Die Nummer der Nachricht

section

Die Nummer des Nachrichtenabschnitts. Ein String aus ganzen Zahlen, getrennt durch Punkte, der einen Teil des Nachrichtentextes gemäß der IMAP4-Spezifikation definiert.

flags

Eine Bitmaske aus einem oder mehrereren der folgenden Werte:

  • FT_UID - message_num ist eine UID
  • FT_PEEK - Das \Seen-Flag nicht setzen, falls es nicht bereits gesetzt ist
  • FT_INTERNAL - Rückgabe im internen Format ohne Umwandlung der Zeilenenden in CRLF.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

Version Beschreibung
8.1.0 Der Parameter imap erwartet nun eine IMAP\Connection-Instanz; vorher wurde eine gültige imap-Ressource erwartet.

Siehe auch

  • imap_fetchbody() - Liefert einen bestimmten Abschnitt aus dem Textkörper einer Nachricht

add a note

User Contributed Notes 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