mb_encode_mimeheader

関数の概要

mb_encode_mimeheaderは、PHPのマルチバイト文字列関数の一つで、メールのヘッダー部分に使用するために文字列を適切にエンコードする関数です。特に日本語などのマルチバイト文字を含む名前や件名をメールヘッダーで扱う際に、文字化けを防ぐために利用されます。

パラメータの説明

  • string $string – エンコードしたい元の文字列を指定します。
  • string|null $charset = null – 文字コードを指定します。指定しない場合は内部文字コード(mb_internal_encoding()の値)が使われます。
  • string $transfer_encoding = 'B' – 転送エンコード。’B’(BASE64)または ‘Q’(Quoted-Printable)が指定できます。通常は’B’が使われます。
  • string|null $linefeed = null – 改行コードの指定。デフォルトは “rn” です。
  • int $indent = 0 – インデントの幅。複数行にわたる場合の続き行のスペース数を指定します。

戻り値

指定された文字列をMIMEヘッダー用にエンコードした文字列が返されます。この文字列はメールヘッダーの名前や件名などに直接利用可能です。

使用例

基本的な使い方

<?php
$name = "山田太郎";
$encoded_name = mb_encode_mimeheader($name);
echo $encoded_name;
?>

日本語の名前をMIMEヘッダー用にエンコードし、メールヘッダーに適した文字列を作成しています。

件名をエンコードする例

<?php
$subject = "こんにちは、世界!";
$encoded_subject = mb_encode_mimeheader($subject, 'UTF-8', 'B');
echo $encoded_subject;
?>

UTF-8文字コードで日本語の件名をBASE64形式でエンコードしています。

Quoted-Printableエンコードを使う例

<?php
$comment = "テストメールです。";
$encoded_comment = mb_encode_mimeheader($comment, 'ISO-2022-JP', 'Q');
echo $encoded_comment;
?>

ISO-2022-JP文字コードでQuoted-Printable(Q)エンコードを使用してエンコードしています。メールクライアントによってはこちらを好む場合があります。

関連する関数

  • mb_convert_encoding – 文字コード変換を行う関数。
  • mb_send_mail – マルチバイト文字のメール送信をサポートする関数。
  • mb_decode_mimeheader – エンコードされたMIMEヘッダーをデコードする関数。

まとめ

mb_encode_mimeheaderは、メールのヘッダーに日本語やその他マルチバイト文字を安全に使うために欠かせない関数です。特にメールの件名や送り主名を文字化けさせずに送信したい場合に活躍します。転送エンコード方式や文字コードを正しく指定し、用途に応じて使い分けることで、実務のメール処理がより安定・確実になります。