We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 30334
    • 13 Posts
    WebSignupスニペットでユーザー登録画面を作りました。

    ところが、ユーザー登録のお知らせメールのテキストエンコーディングが
    UTF-8のため、受信するメールソフトによっては文字化けしています。

    WebSignupのメールのテキストエンコーディングを変えるには、
    どうしたらよいのでしょうか?
      • 36592
      • 970 Posts
      Quote from: Tomophy at Apr 21, 2009, 08:21 PM

      WebSignupのメールのテキストエンコーディングを変えるには、
      どうしたらよいのでしょうか?
      どこかの設定を変えるとか簡単なやり方では無理だと思います。
      ソースを修正する必要がありますね~
      メール送信の文字化けについては、ここあたりを参考にしてみて下さい。

      ちゃんとソースを追いかけていませんが、ざっと見た感じでは weblogin.common.inc.php の
      function webLoginSendNewPassword($email,$uid,$pwd,$ufn){
          :
      }
      

      あたりでしょうか...?
        • 30334
        • 13 Posts
        アドバイスありがとうございます。

        参考ページのリンクをたどって行ったら、↓ここに行き着きました。
        どうやら↓これが正解かもしれません。

        Quote from: naoya at Jun 06, 2006, 12:52 AM

        Quote from: yama at Jun 04, 2006, 10:21 PM

        ?ISO-2022-JP?B?
        さらによく確認してみました。届いたメールのソースを調べてみると、MODxサーバから
        届いたメールにはエンコード関係のヘッダ(というのかな?)がありませんでした。
        固有のヘッダかなと思えたものは「X-Mailer: Content Manager - PHP/4.4.2」くらい。

        その他、メールのタイトル(subject)の先頭には「?ISO-2022-JP?B?」がそれぞれ付いてました。
        このように対応する必要がありそうに思います。

        お調べ頂いて恐縮です。当方でも確認出来ました。
        ウチもgmailで化けてなかったので、メーラーの問題だと思い、メーラーのエンコードをeucにしたら問題無く見えたのでメーラーの問題と思ってしまいました。
        こちらでも、いろいろいじってみたいと思います。

        追伸:いじった結果、weblogin.common.inc.phpの60行目を
        		if(!mail($email, mb_encode_mimeheader($emailsubject), $message, "From: ".$emailsender."¥r¥n"."Content-Type: text/plain; charset=¥"euc-jp¥"¥r¥n"."X-Mailer: Content Manager - PHP/".phpversion())) {

        にしたら、日本語サブジェクトでも本文でも文字化けしなくなりました(メーラーの自動判定で普通に表示されました)。
          • 36592
          • 970 Posts
          たぶんその頃はmodx自体をEUCで使ってたんだと思います。
          今はUTF-8で使われていますよね?

          ですので、ヘッダに「Content-Type: text/plain; charset="euc-jp"」をつけるだけでは、
          メール本文である「$message」がEUCではなくUTF-8のままなので、
          アンマッチとなり上手く行かないと思います。

          全てを ISO-2022-JP に統一するなり UTF-8 にするなりの方針を決めてから修正されると宜しいのでは?
            • 30334
            • 13 Posts
            おっしゃるとおり、先ほどのものではダメでした sad

            でも、↓ここを見て、解決策がわかりました。
            http://www.lyricrush.com/blog/2008/04/modx-webuser-encoding.php

            weblogin.common.inc.phpの60-61行目を次のように書き直して解決です wink

            ※この問題は、最新版のMODx Evolutionで解決済みです。