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; }
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);
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!