mb_encode_mimeheader関数の使い方(MIMEヘッダの文字列をエンコードする)

PHP で用意されている組み込み関数の一つである mb_encode_mimeheader 関数の使い方です。 mb_encode_mimeheader 関数はメールの MIME ヘッダに設定する文字列をエンコードします。

(2022 年 09 月 28 日公開 / 2022 年 09 月 28 日更新)

mb_encode_mimeheader関数の書式と基本的な使い方

mb_encode_mimeheader 関数は次のように定義されています。

mb_encode_mimeheader
string mb_encode_mimeheader ( string $str
                           [, string $charset
                           [, string $transfer_encoding
                           [, string $linefeed
                           [, string $indent]]]] )
mb_encode_mimeheader() は、MIME ヘッダ エンコーディング方式によって文字
列 str をエンコードします。この関数は、ASCII 表現の文字列を返します。

引数:
  $str  対象の文字列
  $charset  文字エンコーディング名。デフォルトはISO-2022-JP。
  $transfer_encoding  MIME エンコーディングの方式を指定します。
    "B" (Base64) または "Q" (Quoted-Printable) のどちらか。デフォルト
    は"B"です。
  $linefeed  EOL(行末)のマーカで、 mb_encode_mimeheader() が行を折り
    たたむ(RFC 用語で、ある一定より長い行を複数行に分割することを言い
    ます。分割する長さは現在 74 文字に固定されています)際に利用します。
    デフォルトは "\r\n" (CRLF) です。
戻り値:
  エンコードされた文字列

MIMEヘッダ内で使われる文字列をエンコードします。基本的にはISO-2022-JPのBase64でエンコードすればいいので引数は対象文字列だけを指定しても問題無いと思います。

具体的には次のように記述します。

$name = "日本語の名前";
print($name."<br>");

$name = mb_encode_mimeheader($str);
print($name."<br>");
サンプルコード

では実際に試してみます。

<html>
<head><title>PHP TEST</title></head>
<body>

<p>MIMEエンコーディング</p>

<?php
$subject = "日本語サブジェクト";
print($subject."<br>");

$subject = mb_encode_mimeheader($subject);
print($subject);
?>

</body>
</html>

上記ファイルを Web サーバに設置しブラウザ経由で見ると下記のように表示されます。

mb_encode_mimeheader

-- --

PHP で用意されている組み込み関数の一つである mb_encode_mimeheader 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。