Détermination du type de contenu de fichier pour les pièces jointes d'e-mail en PHP
En PHP, l'envoi d'un e-mail avec des pièces jointes nécessite de spécifier le type de contenu de le fichier. Ces informations permettent au client de messagerie d'interpréter et d'afficher correctement la pièce jointe. Cet article explique comment définir correctement la variable $the_content_type à cet effet.
Solution :
Une approche consiste à utiliser la fonction getFileMimeType(), qui utilise une série de solutions de secours pour gérer différentes versions de PHP et les fonctions de type MIME peu fiables :
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; }
Cette fonction essaie séquentiellement le natif fonctions finfo_file, mime_content_type, file command et exif_imagetype pour déterminer le type de contenu. Si l'une de ces méthodes renvoie un résultat fiable, elle est utilisée. Sinon, la fonction renvoie un type de contenu de secours.
Une fois le type de contenu déterminé, vous pouvez définir la variable $the_content_type comme suit :
$the_content_type = getFileMimeType($filepath);
Cette approche fournit une approche robuste solution pour déterminer le type de contenu de différents types de fichiers en PHP, garantissant que vos pièces jointes sont affichées correctement par les clients de messagerie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!