Heim > Backend-Entwicklung > PHP-Tutorial > Wie bestimme ich den Inhaltstyp von E-Mail-Anhängen in PHP?

Wie bestimme ich den Inhaltstyp von E-Mail-Anhängen in PHP?

Mary-Kate Olsen
Freigeben: 2024-11-21 11:08:10
Original
773 Leute haben es durchsucht

How to Determine the Content-Type of Email Attachments in PHP?

Bestimmen des Dateiinhaltstyps für E-Mail-Anhänge in PHP

In PHP erfordert das Senden einer E-Mail mit Dateianhängen die Angabe des Inhaltstyps von die Datei. Diese Informationen ermöglichen es dem E-Mail-Client, den Anhang korrekt zu interpretieren und anzuzeigen. In diesem Artikel wird erläutert, wie Sie die Variable $the_content_type für diesen Zweck richtig festlegen.

Lösung:

Ein Ansatz besteht darin, die Funktion getFileMimeType() zu verwenden, die eine Reihe von verwendet Fallbacks zur Handhabung unterschiedlicher PHP-Versionen und unzuverlässiger Mime-Typ-Funktionen:

function getFileMimeType($file) {
    // Try finfo_file
    if (function_exists('finfo_file')) {
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $type = finfo_file($finfo, $file);
        finfo_close($finfo);
    }
    // Try mime_content_type
    else {
        require_once 'upgradephp/ext/mime.php';
        $type = mime_content_type($file);
    }

    // Check for unreliable results
    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        // Try file command (only available on *NIX systems)
        $secondOpinion = exec('file -b --mime-type ' . escapeshellarg($file), $foo, $returnCode);
        if ($returnCode === 0 && $secondOpinion) {
            $type = $secondOpinion;
        }
    }

    // Try exif_imagetype for images
    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        require_once 'upgradephp/ext/mime.php';
        $exifImageType = exif_imagetype($file);
        if ($exifImageType !== false) {
            $type = image_type_to_mime_type($exifImageType);
        }
    }

    return $type;
}
Nach dem Login kopieren

Diese Funktion probiert nacheinander den nativen aus Funktionen finfo_file, mime_content_type, file command und exif_imagetype zur Bestimmung des Inhaltstyps. Wenn eine dieser Methoden ein zuverlässiges Ergebnis liefert, wird sie verwendet. Andernfalls gibt die Funktion einen Fallback-Inhaltstyp zurück.

Sobald der Inhaltstyp bestimmt wurde, können Sie die Variable $the_content_type wie folgt festlegen:

$the_content_type = getFileMimeType($filepath);
Nach dem Login kopieren

Dieser Ansatz bietet eine robuste Lösung zur Bestimmung des Inhaltstyps verschiedener Dateitypen in PHP, um sicherzustellen, dass Ihre E-Mail-Anhänge von E-Mail-Clients korrekt angezeigt werden.

Das obige ist der detaillierte Inhalt vonWie bestimme ich den Inhaltstyp von E-Mail-Anhängen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage