dounokouno / TransmitMail

Copyright表示不要のPHP製汎用メールフォームシステム
http://etc.dounokouno.com/TransmitMail/
MIT License
142 stars 48 forks source link

異字体漢字の送信時の文字化けについて #48

Open eexxppoo opened 5 years ago

eexxppoo commented 5 years ago

いつも利用させていただき助かっております。

デフォルト設定で、異字体漢字(髙 㤅)を含んだ内容を送信時、送信メールの異字体漢字箇所が(?)になってしましますが、TransmitMailの設定等で解決できるのでしょうか?

お忙しいところ恐れ入りますが、アドバンス等を頂けると幸いです。

■環境 ・PHPバージョン: 5.5.38 ・TransmitMailバージョン: 2.1.0  (githubからDLしたサンプルファイルをデフォルト設定のままテスト) ・お名前.com共用サーバー

■試したこと ・configでlanguage:uniに設定。 ・configでcharset:ISO-2022-JPに設定。 ・複数のメーラーで受信確認。

dounokouno commented 5 years ago

@hloco 様

TransmitMailで利用しているQdmailライブラリの関係のような気がします。Qdmailが対応していなければ、対応は簡単ではないかもしれません...。(Qdmail自体は結構前に開発が止まっているので...。)

少し詳しく調べてみますね。

eexxppoo commented 5 years ago

@dounokouno 様 早速のお返事ありがとうございます! テスト時にQdmailのソースも確認していたのですが、よく分からなかったので質問させていただきました。。

お手数をおかけしますがよろしくお願い致します。

dounokouno commented 5 years ago

@eexxppoo 様

ご報告いただいた症状が再現することを確認しました。

やはり Qdmail の問題のようで、 Qdmail の配布元サイトに対応方法が紹介されていました。

http://hal456.net/qdmail/charset2

lib/TransmitMail.php を修正される場合は、 1062 行目を下記のように修正いただければと思います。

$this->mail = new Qdmail('UTF-8', 'base64');

https://github.com/dounokouno/TransmitMail/blob/master/lib/TransmitMail.php#L1062

http://hal456.net/qdmail/charset2 を読むと、「SMTPサーバー対応」は「すべて大丈夫」とのことですので、 TransmitMail の master にこの修正を取り込んで良い気もしていますが、 メーラー側の対応状況のことを考えると、ちょっと判断に迷っています...。(「auの古い携帯では未対応らしい」とのことなので、最近のメーラーはまず問題ない気がしますが、影響範囲が見えないので、ちょっと躊躇しています...。)

参考: http://hal456.net/qdmail/irregular_char

eexxppoo commented 5 years ago

@dounokouno 様

ご検証ありがとうございます! 頂きました内容で、文字化けが解消しました! メーラーの対応状況に関しましては、別途検証したいと思います。

異字体とは何かというところから調べて、TransmitMailのソース等を検証していたのですが、 私だけでは確実に行き詰まっておりました。。

お忙しいところ、ご丁寧に対応していただきありがとうございました!

dounokouno commented 5 years ago

参考情報

softbankのキャリアメール( @softbank.ne.jp )の場合、この issue でご紹介した方法ではもしかすると文字化けするかもしれません。

件名は ISO-2022-JP を、本文は Base64 を指定する場合は文字化けしないようです。

https://qiita.com/sei_0419/items/981cce652bccbbae2a57

eexxppoo commented 5 years ago

@dounokouno

参考情報ありがとうございます! 問題発生時はこちらも合わせて検証させていただきたいと思います。