Help us understand the problem. What is going on with this article?

メールの文字コードは「ISO-2022-JP-MS」じゃなくて「UTF-8」でもいいらしい

PHPのメール送信で検索すると「ISO-2022-JP-MS」に文字コードを変換して送信するコードが多かったので
「ISO-2022-JP-MS」でないといけないと思い込んでいました。

「UTF-8」でのメール送信

<?php
$defaultLanguage = mb_language();
$defaultEncoding = mb_internal_encoding();

mb_language('uni');
mb_internal_encoding("UTF-8");

$to = '送信先メールアドレス';
$subject = '件名';
$body = '本文';
$header = 'From: 送信元メールアドレス';

mb_send_mail($to, $subject, $body, $header);

mb_language($defaultLanguage);
mb_internal_encoding($defaultEncoding);

mb_language()の設定が'Japanese'になっているコードよく見るけど
'uni'に直した方が良さげ。(多分)
https://www.php.net/manual/ja/function.mb-language.php

「UTF-8」と「ISO-2022-JP-MS」

そもそもなんで「UTF-8」で送信したかったかと言うと、「ISO-2022-JP」では第3、第4水準の文字に対応していないらしく、
人名を送信した時に「?」に文字化けする文字があったから。「UTF-8」だと文字化けせずに送信できた。

ただ、「UTF-8」はメーラーによっては対応していないものもあるらしいので、
古いガラケーとかにも対応したいなら「ISO-2022-JP-MS」の方がいいのかも。

SendGridでは「UTF-8」で送信しているみたいなので、一般的な環境では「UTF-8」で問題なさそうですが。
https://sendgrid.kke.co.jp/blog/?p=8400
https://sendgrid.kke.co.jp/blog/?p=10958

文字種に対応したいなら「UTF-8」
古いメーラーにも対応したいなら「ISO-2022-JP-MS」

みたいな使い分けで考えていいかな?
文字コードよくわからん。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした