Maison > développement back-end > tutoriel php > Comment déterminer le type de contenu des pièces jointes aux e-mails en PHP ?

Comment déterminer le type de contenu des pièces jointes aux e-mails en PHP ?

Mary-Kate Olsen
Libérer: 2024-11-21 11:08:10
original
772 Les gens l'ont consulté

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

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;
}
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal