Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan Jenis Kandungan Lampiran E-mel dalam PHP?

Bagaimana untuk Menentukan Jenis Kandungan Lampiran E-mel dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-21 11:08:10706semak imbas

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

Menentukan Jenis Kandungan Fail untuk Lampiran E-mel dalam PHP

Dalam PHP, menghantar e-mel dengan lampiran fail memerlukan menyatakan jenis kandungan fail tersebut. Maklumat ini membolehkan klien e-mel mentafsir dan memaparkan lampiran dengan betul. Artikel ini membincangkan cara untuk menetapkan pembolehubah $the_content_type dengan betul untuk tujuan ini.

Penyelesaian:

Satu pendekatan melibatkan penggunaan fungsi getFileMimeType(), yang menggunakan satu siri sandaran untuk mengendalikan versi PHP yang berbeza dan jenis mime yang tidak boleh dipercayai fungsi:

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

Fungsi ini secara berurutan mencuba fungsi fifo_file, mime_content_type, arahan fail dan exif_imagetype untuk menentukan jenis kandungan. Jika salah satu kaedah ini mengembalikan hasil yang boleh dipercayai, kaedah ini digunakan. Jika tidak, fungsi ini mengembalikan jenis kandungan sandaran.

Setelah jenis kandungan ditentukan, anda boleh menetapkan pembolehubah $the_content_type seperti berikut:

$the_content_type = getFileMimeType($filepath);

Pendekatan ini menyediakan yang mantap penyelesaian untuk menentukan jenis kandungan pelbagai jenis fail dalam PHP, memastikan lampiran e-mel anda dipaparkan dengan betul oleh pelanggan e-mel.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Jenis Kandungan Lampiran E-mel dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn