We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33018
    • 12 Posts

    |
    |
    |
    |
    Subject: =?ISO-2022-JP?B?GyRCJUYlOSVIIzcbKEI=?=
    MIME-Version: 1.0
    ←ココ
    Content-type: text/html; charset=iso-2022-jp
    ←ココ
    Reply-To: yamakatsu@xxxxx.COM
    Sender: yamakatsu@xxxxx.COM
    From: yamakatsu@xxxxx.COM
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-2022-JP
    Content-Transfer-Encoding: 7bit

    Subject:の下のMIME-Version: 1.0の下でまず改行が入ってました。
    うーむ、難しい…。
      • 36592
      • 970 Posts

      |
      Subject: =?ISO-2022-JP?B?GyRCJUYlOSVIIzcbKEI=?=
      MIME-Version: 1.0
      ←ココ
      Content-type: text/html; charset=iso-2022-jp
      ←ココ
      Reply-To: yamakatsu@xxxxx.COM
      Sender: yamakatsu@xxxxx.COM
      From: yamakatsu@xxxxx.COM
      Mime-Version: 1.0
      Content-Type: text/plain; charset=ISO-2022-JP
      Content-Transfer-Encoding: 7bit
      「MIME-Version:」が2つ有ったり、「Content-type:」も変だったりしますね~
      mb_send_mail()関数の仕様や関連関数の仕様を読むと、
      MTAの設定やPHPのバージョンでいろいろ扱いが変わる部分がありそうな...

      とりあえず、「\r\n」となっているのを「\n」にしてみると余分な改行はなくなるかも?
        • 33018
        • 12 Posts
        “「\n」”のみにしてみました。

        余計な改行も無くなった上、アウトルックの方の送信者にメールアドレスが載りました。
        Sender:とReply-To:も追加せずにFrom:のみでオッケーみたいです。

        Gmailは一覧表示の時、送信者の部分がメールアドレスの@マーク以下が表示されない形式ですが
        メールを開くとちゃんとメールアドレスを認識してました。

        とりあえずまとめますと、

        1. Newsletterの172行目の ’[email protected]’ を ’自分のメールアドレス’ に変更

        2. Newsletterの326行目の ’iso-8859-1’ を ’iso-2022-jp’ に変更

        3. 328行目と329行目の「\r\n」となっているのを「\n」に変更

        4. 379行目から394行目を以下のコードに差し替え

        		// Send Out Email
        		mb_language('ja');
        		mb_internal_encoding($modx->config['modx_charset']);
        		// -- Remove duplicate email ($toemail)
        		$toemail = array_flip($toemail);
        		$toemail = array_flip($toemail);
        		// -- Email $toemail ($toemail)
        		for($i = 0; $i < count($toemail); $i++) {
        			mb_send_mail($toemail[$i], $subject, $content, $headers);
        		}
        		// -- Remove duplicate email ($tousers)
        		$touemail = array_flip($touemail);
        		$touemail = array_flip($touemail);
        		// -- Email $touemail ($tousers)
        		for($i = 0; $i < count($touemail); $i++) {
        			mb_send_mail($touemail[$i], $subject, $content, $headers);
        		}
        		// Return flag
        		return true;
        	}


        これでいいですかね?。

        ホント色々ありがとうございました。
        そういえば、今月号の雑誌“Web Designing”でWebデザイナーのためのCMSツール選びという企画でMODxが紹介されてました。
        これによりプログラムが出来ないWEBデザイナー(僕も含む)などへの知名度も上がると思われます。

        それを考えると日本語環境での利用が増えるので、文字化け関連の対策は助かります。
        ども♪ありがとうございました。 grin
          • 36592
          • 970 Posts
          まずは上手く行ったみたいで良かったです。
          Quote from: yamakatsu at Dec 20, 2007, 01:47 AM

          2. Newsletterの326行目の ’iso-8859-1’ を ’iso-2022-jp’ に変更
          ここですが、先ほどのメールでは...
          Content-type: text/html; charset=iso-2022-jp
          Content-Type: text/plain; charset=ISO-2022-JP
          

          と、2つも付いていましたが、直りましたかね?
          恐らく上の方はスニペットが付けていて、下の方はMTAが付けていたのではないかと思いますが。
          それと「MIME-Version:」も2つ付いていましたよね?

          3. 328行目と329行目の「\r\n」となっているのを「\n」に変更
          これは、使っているMTAの設定等で変わります。「\r\n」でないと動かない環境もあると思います。

          日本語の扱いは、こういった環境依存の部分も有るので、
          どんな環境にでも対応できるようにスニペット側を書くのはしんどいんでしょうね~
            • 33018
            • 12 Posts
            はい、両方ともダブルでついてました。

            Content-type: text/html; charset=iso-2022-jp
            Content-Type: text/plain; charset=ISO-2022-JP


            は

            Content-Type: text/plain; charset=ISO-2022-JP


            だけになり、

            MIME-Version: 1.0
            Mime-Version: 1.0
            


            は、相変わらず2つとも載ってます。

            WEBデザイナーとかが、MTやWPなどのブログソフト並に案件利用の選択肢に入れるには日本語環境での対応状況で決まるでしょうね。

            まぁ、とりあえず色々なスニペットを使ってみて文字化け等の不具合を見つけ出すのも大事ですよね。