5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

QdmailでCakePHPのViewで送ると文字化けする話し


現在、CakePHPのサイトを作成していますが、メールを送信する処理があります。今まですとmb_send_mail()を使ったクラスを用意していましたが、せっかくCakePHPを使っているということで、Qdmailというコンポーネントを使ってみました。

PCに送るには問題なし。しかし、携帯電話宛のメールは文字化けします。

調べてみると、cakeText()メソッドでViewを使うとUTF8で送信しているようです。Viewを使わず直接text()メソッドを使ってテキストで送ると、正常にiso-2022-jpで送ってくれます。

Qdmailのサイトで調べて、charsetBody()メソッドでiso-2022-jpを指定してもだめ。テンプレートファイルをJISにしたら携帯電話で読めるようになるが、パラメータをアサインすると文字化け。1時間ほど悩む。

Googleで「Qdmail cakephp 文字化け」で検索してみるとありました。ここのサイトでヒントが見つかりました。

cakeText()メソッドの第5パラメータで iso-2022-jp を指定すればOK。Qdmailのマニュアルには見つかりませんでした。

Qdmailのサイトには、非常に詳しくマニュアルが載っています。今回はこれを信じたのがいけなかった。ソースコードが読めるのなら、ソースコードを読まなければいけません。しかしQdmailのソースコードは、コメントが少ないので読みづらい。コメントの中にコードが埋まっている私とは大違い。

著:山田祥寛
¥3,366 (2024/11/21 16:43時点 | Amazon調べ)
著:松浦 健一郎, 著:司 ゆき
¥2,574 (2024/11/21 16:43時点 | Amazon調べ)
著:谷藤賢一, 著:徳丸浩
¥2,750 (2024/11/21 16:43時点 | Amazon調べ)

“QdmailでCakePHPのViewで送ると文字化けする話し” への3件のフィードバック

  1. 2008-10-01

    CakePHPでのcakeText,cakeHTMLの文字化けの修正Qdmaiのダウンロードページはこちら 2008-10-01 1.1.6b CakePHPでのcakeText,cakeHTMLの文字化けの修正CakeRenderメソッドで、tar…

  2. spokのアバター

    Qdmail作者です。
    Qdmailへの言及、ありがとうございました。
    バグですいませんでした。
    現行バージョンは修正してありますので、ご利用くださいませ。
    またご意見などあればぜひぜひ。

  3. andoのアバター
    ando

    spokさん

    情報ありがとうとざいます。既に対応されていたのですね。

    早速新しいバージョンにアップしたところ、cakeText()メソッドの第5パラメータにiso-2022-jpを指定しなくても、iso-2022-jpで送信できました。これで携帯電話での受信も文字化けしないでOKです。