We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 19033
    • 892 Posts
    管理画面へのログイン画面で、パスワード忘れたリンクがありますが、
    そこから送信されるメールのヘッダが文字化けしていたりしたので、直してみました。

    それと、content-type がtext/html だったので text/plain にしました。
    (text/htmlのままにしました 2008.2.7)。

    うちはメーラーがOEなのですが、これで文字化けせずに上手い具合に送信されてきます。
    でも、他のメーラーの場合は、もしかしてうまくいかないのかな。。
    いちお、携帯でも受信確認しました。

    修正するのは、Forgot Manager Login プラグインです。

    でも、これってインストーラが自動でインストールするんですよね。
    もし、対応してもらう場合は、インストーラーに組み込んでもらわないと
    いけないですね。

    あと、これのFromをサイト名にしたい場合は、どうしたらいいのでしょうか。。

    ---*---*---*---*---*---
    エラーが出ていたので、修正しました。2008.2.7
    ZeRoさんが修正版を作って下さいましたので、そちらをご利用下さい。2008.2.9
     http://modxcms.com/forums/index.php/topic,20954.msg139373.html#msg139373
      • 19033
      • 892 Posts
      管理画面へのログイン画面で、パスワード忘れたリンクから送信されるメールが
      文字化けする件ですが、ZeRoさんが作って下さったので、そちらをアップいたします。
      (私が作ったのは、微妙にアヤシイです...)。

      尚、こちらのプラグインは、オリジナルが「Content-type: text/html」になっています。
      修正後のContentTypeもtext/html のままとなっています。ので、「text/plain」が良い場合は、
      適時、コードを修正してください。

      またその際は、以下の部分から
      $body = <<<EOD
      <p>{$_lang[’forgot_password_email_intro’]} <a href="{$modx->config[’site_url’]}manager/processors/login.processor.php?username={$user[’username’]}&hash={$user[’hash’]}">{$_lang[’forgot_password_email_link’]}</a></p>

      <p>{$_lang[’forgot_password_email_instructions’]}</p>

      <p><small>{$_lang[’forgot_password_email_fine_print’]}</small></p>
      EOD;
      htmlタグを削除しないと、メーラーによっては、読み取りに問題が出るかも知れません。

        • 33003
        • 26 Posts
        なんだか、質問が微妙なんですが。

        ThunderbirdでeFormからのメールを受信した時に、メール一覧ペイン、メールプレビューペイン、メッセージウィンドウの3つの場合で、メールプレビューの時だけメールの件名が文字化けしてしまいます。

        メール一覧では問題なく読めているので、普段はあまり気にしないのですが。。
        クライアントに納品するには、ここの部分は不具合だと思うので、なんとか解決したいと思っています。

        メールのソースを見た時に、

        Subject: =?ISO-2022-JP?B?PT9p***************************RPz0xQiRC?=
        =?ISO-2022-JP?B?IVo9MUIoQk1FR*************MnElYSE8JWshWjBlTHRJ?=
        =?ISO-2022-JP?B?SiFbP*******KEI/PQ==?=

        といった風に、Subjectのところが複数行になっているので、これが原因なのかなと思っています。
        しかしながら、解決する方法が。。
          • 33488
          • 429 Posts
          そのeFormはISO-2022-JP版でしょうか?

          サブジェクトが長い場合は、74文字ぐらいで折り返して複数行になるんですが、phpMailerのロジックの部分で
          それが悪さしているのか・・・それか、TBの問題か・・・ちょっと判別は付かないんですが、Subjectをもうちょい短くして上の3行が2行になった場合はどうなりますでしょうか?
            • 33003
            • 26 Posts
            ISO-2022-JP版を使っています。

            74文字くらいで折り返し。
            2バイト文字で、37文字くらいで折り返すという事ですよね。

            例えば「その他のお問い合わせ」という10文字の件名でもメールソースのSubjectでは、2行に渡って送信されています。

            あと気がついたのですが、eFormから送ったメールのSubjectの1行目がいずれも同じ文字列になっているんです。


            Subject: =?ISO-2022-JP?B?PT9pc28tMjAyMi1qcD9RPz0xQiRC?=


            設置したeFormでは、コンボボックスで件名を選んで、送信するようにしているのですが。
            いずれの件名を選んでも上記のSubjectの1行目が入り、2行目から本当の件名が始まっている感じなんですね。
            この1行目の文字列は、意味の無い文字列なんでしょうか。
              • 33488
              • 429 Posts
              「その他お問い合わせ」ぐらいの長さだと2行になることはないはずなので、何かが混入しちゃってるような気がします。
              試しに、コンボボックスから普通のテキスト入力に変えてみてテストしてみてください。
              これでOKだとsるうと、SELECTされたものが正しく取得できないってことかも知れませんねぇ。
              となるとeForm本体の部分になっちゃうんだけど huh
                • 33003
                • 26 Posts
                提案いただいたように、コンボボックスをテキスト入力にしてみました。

                結果、変わらず。
                同じ文字化けの症状です。

                メールソフトの仕様なんでしょうか?
                GMailで受信した場合は、文字化けはないみたいです。

                かといって、ユーザーがどのメールソフトを使うかわかりませんし。
                「当サイトからのメールはGMailに最適化されています」とか注意書きするのも変な話ですね。

                どこか設定に’抜け’があるのかもしれません、一からソースを読み直してみます。
                  • 33488
                  • 429 Posts
                  メールソフトではないと思います。
                  明らかに、Subjectが2行になっているのがおかしいですねぇ。
                  どこかでSubjectの部分が付け加えられてるような・・・。
                  試しに、現状のフォームでのSubjectの変数を変えてもらって、eFormの呼び出しパラメタにSubjectを固定でつけてみてやってみてください。
                  これでも2行で出てくるとするとeFormのスニペットかIncludeしているどこかでSubjectの文字列に対して何かやってるような気がします。
                  逆にパラメタで出ない場合は、eFormで使っているフォームのチャンクの中身?かも。

                  ちなみに、お問い合わせ をSubjectにしてやってみたんですが
                  Subject: =?iso-2022-jp?Q?=1B$B$*Ld$$9g$o$;=1B(B?=

                  こんな感じです。
                    • 36592
                    • 970 Posts
                    私もZeRoさんのISO-2022-JP版で試してみました。
                    eFormのフォームに
                    <input name="subject" type="hidden" value="その他お問い合わせ" />

                    として送信しましたが、Thunderbird(2.0.0.14)で受信したメールのサブジェクトは正しく「その他お問い合わせ」と表示されました。
                    ちなみに、エンコードされた文字列は
                    Subject: =?iso-2022-jp?Q?=1B$B$=3D$NB>$*Ld$$9g$o$;=1B(B?=

                    となっていました。

                    yajimaさんが書かれた
                    Subject: =?ISO-2022-JP?B?PT9pc28tMjAyMi1qcD9RPz0xQiRC?=

                    ですが、デコードしてみると
                    =?iso-2022-jp?Q?=1B$B

                    となっていて、上記の正しいエンコード文字列の先頭の部分と同じになっています。
                    何かヒントになるでしょうか?
                      • 33003
                      • 26 Posts
                      tkfmさんのが、ヒントかもしれませんね。

                      yajimaさんが書かれた
                      Code:

                      Subject: =?ISO-2022-JP?B?PT9pc28tMjAyMi1qcD9RPz0xQiRC?=

                      ですが、デコードしてみると
                      Code:

                      =?iso-2022-jp?Q?=1B$B

                      となっていて、上記の正しいエンコード文字列の先頭の部分と同じになっています。
                      何かヒントになるでしょうか?

                      これって、エンコード済みのテキストに対して、’もう一度’エンコードをしているって事ですよね。(きっと)
                      たぶんどこかで、エンコードをループしているのかも知れませんね。

                      さっき、正しく送信できているMODxサイトのeForm関連ファイルを上書きしてみたんですが、現象変わらずだったので、作成したドキュメント、チャンク、スニペットのどこかで間違っているんでしょうね。


                      なんだか、解決方法が見えてきたみたいなので、実験と結果報告にまた来ますね。