Signatur
Beschreibung
mailparse_msg_free() gibt den Speicher einer MIME-Ressource explizit frei, die zuvor mit mailparse_msg_create() oder mailparse_msg_parse_file() erzeugt wurde. Da PHP-Ressourcen grundsätzlich vom Garbage Collector verwaltet werden, ist ein expliziter Aufruf dieser Funktion nicht immer zwingend notwendig, gilt jedoch als gute Praxis, wenn große E-Mail-Nachrichten verarbeitet werden und der Speicher zeitnah freigegeben werden soll.
Insbesondere bei der Verarbeitung vieler E-Mails in einer Schleife – etwa bei der Analyse eines Postfachs – verhindert der explizite Aufruf von mailparse_msg_free(), dass unnötig viele Ressourcen gleichzeitig im Speicher gehalten werden und reduziert damit den Speicherdruck auf den PHP-Prozess.
Nach dem Aufruf von mailparse_msg_free() darf die übergebene Ressource nicht mehr verwendet werden. Jeder weitere Zugriff führt zu einer PHP-Warnung, da die Ressource ungültig ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $mimemail Pflicht | resource | Eine gültige MIME-Ressource, die zuvor mit mailparse_msg_create() oder mailparse_msg_parse_file() erstellt wurde. |
Rückgabewert
true bei Erfolg zurück, false wenn die übergebene Ressource ungültig ist oder die Freigabe fehlschlägt.Beispiele
Einfaches Parsen und Freigeben einer E-Mail
<?php
// Eine E-Mail-Datei parsen
$mime = mailparse_msg_parse_file('/path/to/email.eml');
if ($mime === false) {
echo 'Fehler beim Parsen der E-Mail.';
exit;
}
// Struktur der MIME-Nachricht auslesen
$structure = mailparse_msg_get_structure($mime);
var_dump($structure);
// Ressource explizit freigeben
mailparse_msg_free($mime);
echo 'Ressource erfolgreich freigegeben.';
Mehrere E-Mails in einer Schleife verarbeiten
<?php
$emailFiles = glob('/var/mail/inbox/*.eml');
foreach ($emailFiles as $file) {
$mime = mailparse_msg_parse_file($file);
if ($mime === false) {
echo "Fehler beim Parsen: $file\n";
continue;
}
// Teile der MIME-Nachricht auslesen
$parts = mailparse_msg_get_structure($mime);
echo "Datei: $file — Teile: " . count($parts) . "\n";
// Ressource sofort freigeben, um Speicher zu schonen
mailparse_msg_free($mime);
}
// Wichtig · Fallstricke
Hinweis zur PECL-Erweiterung: mailparse_msg_free() gehört zur PECL-Erweiterung mailparse, die separat installiert werden muss. Sie ist nicht standardmäßig in PHP enthalten.
Ressource nach Freigabe: Nach dem Aufruf von mailparse_msg_free() ist die Variable, die die Ressource hält, ungültig. Jede weitere Verwendung führt zu einer PHP-Warnung (supplied resource is not a valid mailparse_mail_object resource). Es empfiehlt sich, die Variable anschließend auf null zu setzen oder den Gültigkeitsbereich zu verlassen.