備忘録

【PHP】mb_send_mailでメール本文が途中から文字化けした原因

PHPでメールフォームを作成した時のこと。

本文のtextareaの文字数を1000文字に制限してテストしていたら、500文字目辺りから謎の文字化けが発生。

最初の方は問題なく表示されているので、そもそもの文字コードをミスっているわけではなさそう。

思い当たるところが無かったので調べてみると、原因が判明しました。

メール本文が一行1000バイトを超えると文字化ける問題 – Qiita

リンクのタイトルにあるように、改行なしで1000バイト以上の文字列を送ると文字化けするようです。

テストだったので「あいうえおかきくけこ…」って感じででたらめな文章入れてたので、この現象が発生したようです。

実際のお問い合わせでは改行なしで半角で約1000文字、全角で約500文字が入力されることはないだろうという前提でそのままでもいいかな。

先ほどのリンクでは解消法も紹介されていたので、厳密にしたい場合は参考にすると良いかもです。