HTMLメールを作成したいのですが、その方法についてたくさん読んでいます。私が見つけられない情報が1つあります。 mimeタイプをどのように宣言すればよいですか?私は試してみました:
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
しかし、それは機能しません。
後の編集:
メールのコンテンツタイプをtext/html
に設定しようとしていますが、方法がわかりません。通常の電子メールクライアントから書き込む場合、これはすべてです。メール本文で申告する必要がありますか?またはメールヘッダーに(もしそうなら、どうすればいいですか?)?
メールサーバーに送信されるメッセージヘッダー内にコンテンツタイプ宣言を設定しようとしていますか?その場合は、次のように設定する必要があります。
Content-Type: text/html; charset=UTF-8
メタタグの終了タグは、xhtml/xml
でのみ使用されます。 htmlを使用している場合は、次のような<head>
タグ内で使用する必要があります。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
基本的に、電子メールクライアントは、コンテンツタイプが含まれるMETAタグを無視します(少なくとも2013年10月17日現在)。
電子メールサーバーの特別なヘッダーにコンテンツタイプ宣言を設定する必要があります。
この問題の詳細については、 http://www.emailonacid.com/blog/details/C13/the_importance_of_content-type_character_encoding_in_html_emails を参照してください。
これがあなたにとって意味をなさないのなら、私はあなたが運が悪いのではないかと心配しています。私が見つけた唯一の信頼できる解決策は、特殊文字を同等のHTMLエンティティに変換することです。上記のリンクには、これを行うツールへのリンクがあります。
お役に立てば幸いです。
これはphpに適用されます:
// To send HTML mail, the Content-type header must be set
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';
// Additional headers
$headers[] = 'To: Mary <[email protected]>, Kelly <[email protected]>';
$headers[] = 'From: Birthday Reminder <[email protected]>';
$headers[] = 'Cc: [email protected]';
$headers[] = 'Bcc: [email protected]';
// Mail it
mail($to, $subject, $message, implode("\r\n", $headers));