メールを送信するための PHP アプレットは非常にシンプルですが、注意する必要がある点がいくつかあります。まずコード:
リーリー注意事項がいくつかあります。上記のコードに $subject = "=?UTF-8?B?".base64_encode($subject)."?=; が含まれていない場合、メールのタイトルは文字化けしていますが、本文は文字化けしていることがわかります。メールは正しいです。電子メール ヘッダーでは、まず関数base64_encode()を使用する必要があります。この関数は、MIME Base64を使用してデータをエンコードします。タイトル文字列の前にエンコード タイプを追加します (例: =?UTF-8?B?)。
また、電子メールの種類を $headers = 'MIME-Version: 1.0' に設定します。
Wiki からの説明: MultiPurpose Internet Mail Extensions (MIME、MultiPurpose Internet Mail Extensions) は、非 ASCII 文字、バイナリ形式の添付ファイルなど、複数の形式の電子メール メッセージをサポートするために電子メール標準を拡張するインターネット標準です。この標準は、RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049 などの RFC で定義されています。 RFC 822 を変換した RFC 2822 では、電子メール標準では電子メール メッセージ内で 7 ビット ASCII 文字セット以外の文字の使用を許可しないと規定されています。このため、英語以外の文字メッセージや、バイナリファイル、画像、音声などのテキストメッセージ以外の一部のメッセージは、電子メールで送信できません。 MIME は、さまざまなデータ型を表現するための記号メソッドを指定します。 さらに、MIME フレームワークは、World Wide Web で使用される HTTP プロトコルでも使用されます。
MIME は、電子メール メッセージのヘッダーの追加フィールドを標準化することによって実装されます。ヘッダーのこれらの追加フィールドは、新しいメッセージ タイプの内容と構成を記述します。
$headers .= 'Content-type: text/html; charset=utf-8' . "rn"; タイプが html に設定されている場合、メール本文には HTML タグを使用できます。
いくつかの一般的なタイプ:
さらに、正式なデータ型としてまだ受け入れられていないサブタイプは、x- で始まる独立した名前を使用できます (例: application/x-gzip)。 vnd- で始まる組み込み名も使用できます (例: application/vnd.ms-excel)。
パラメータは追加情報を指定するために使用できます。多くの場合、これは text/plain や text/htm などのテキスト エンコード方法を指定するために使用される charset パラメータです。 MIME は、タイプに基づいてデフォルトのサブタイプを設定します。クライアントがメッセージのサブタイプを判断できない場合、メッセージは処理のデフォルトのサブタイプとして扱われます。テキストのデフォルトは text/plain、アプリケーションのデフォルトは application/octet-stream、マルチパートはデフォルトで multipart/mixed として扱われます。