PHP での電子メール添付ファイルのコンテンツ タイプの決定
PHP では、ファイルを添付した電子メールを送信するには、コンテンツ タイプを指定する必要があります。ファイル。この情報により、電子メール クライアントは添付ファイルを正しく解釈して表示できるようになります。この記事では、この目的のために $the_content_type 変数を適切に設定する方法について説明します。
解決策:
1 つのアプローチには、一連の getFileMimeType() 関数を使用することが含まれます。異なる PHP バージョンと信頼性の低い MIME タイプ関数を処理するためのフォールバック:
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; }
この関数ネイティブの finfo_file、mime_content_type、file コマンド、および exif_imagetype 関数を順番に試行して、コンテンツ タイプを決定します。これらのメソッドのいずれかが信頼できる結果を返した場合、それが使用されます。それ以外の場合、関数はフォールバック コンテンツ タイプを返します。
コンテンツ タイプが決定したら、次のように $the_content_type 変数を設定できます。
$the_content_type = getFileMimeType($filepath);
このアプローチは、堅牢なコンテンツ タイプを提供します。 PHP でさまざまなファイル タイプのコンテンツ タイプを判断し、電子メールの添付ファイルが電子メール クライアントで正しく表示されるようにするためのソリューション。
以上がPHP で電子メール添付ファイルのコンテンツ タイプを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。