[PHP-users 27915] Re: PHP-users まとめ読み, 34 巻, 17 号

安井 evelinae @ mac.com
2005年 12月 23日 (金) 17:20:56 JST


どうも、安井と申します。

まず先に。
> 症状は同じようですが、サイトにある対策
> $subject  = mb_convert_encoding( $subject, "iso-2022-jp", "auto" );
> $subject  = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
> を施しても、解決しませんでした。
"iso-2022-jp"ではなく、"ISO-2022-JP"なのではないでしょうか?
# これって、大文字小文字関係あるのかなぁ...

そして本題。
せっかくの機会なので、WindowsXPのマシンにApache2.0.55とPHP5.1.1を入れてみて、
伊藤さんの状況を再現しようと思いました。
結果的には、エラーが起こらずに期待通りにメールは送信できちゃいました。(^^;

参考になるかどうかわかりませんが、ApacheとPHPの設定ファイルの変更点、
mb_send_mailを簡単に試した結果を報告。


Apacheは「C:\Program Files\Apache Group\Apache2」に
インストールしました。phpは、「C:\PHP」にインストールしました。

Apacheの「C:\Program Files\Apache Group\Apache2\conf\httpd.conf」は
2箇所変更しました。
 1, 173行目に「C:\PHP\php5apache2.dll」を追加しました。
 2, 962行目に「PHPIniDir "C:/PHP"」を追加しました。

php.iniの設定は、6つ変更しました。
 1, 505行目の次の行に、「include_path = ".;c:\php\includes"」
    を追加しました。

 2, 519行目の「extension = "./"」を
    「extension_dir = "c:\php\ext"」に変更しました。

 3, 627行目の「;extension=php_mbstring.dll」を
    「extension=php_mbstring.dll」に変更しました。

 4, 678行目の「SMTP = localhost」を
    「SMTP = example.com」に変更しました。
    # ここでは、example.com と書いていますが、実際には、私が持っている
    # ドメイン名を指定しています。サーバは、FreeBSDが動いており、
    # MTA(メールサーバ)はPostfixが動いてます。

 5, 682行目に「sendmail_from = xxxxx @ example.com」を追加しました。
    # xxxxx @ example.com には、私のメールアドレスを入れました。

 6, 1149行目の「;mbstring.language = Japanese」を
    「mbstring.language = Japanese」に変更しました。

以上の設定をして、Apacheを起動しました。


「C:\Program Files\Apache Group\Apache2\htdocs\index.php」を作成し、
内容を図1のようにしました。

+----------------------------------------------------+
|<?php                                               |
|	$str = "PHP Version:" . phpversion();        |
|	echo mb_send_mail('xxxxx @ example.com',       |
|			"何時がok?",                 |
|			$str);                       |
|?>                                                  |
+----------------------------------------------------+
図1 index.phpの内容

index.phpをEUC-JPで保存後、ブラウザでアクセスしました。
1と表示され、メールはちゃんと送信され、メールのタイトルおよび本文
両方とも文字化けなどは見られませんでした。

同じように、index.phpをSJISで保存後、ブラウザでアクセスしました。
1と表示され、メールはちゃんと送信され、タイトルだけ文字化けしました。

同じように、index.phpをISO-2022-JISで保存後、ブラウザでアクセスしました。
SJISと同様に、タイトルだけ文字化けしました。

長くなってしまいました。すみません。

ちなみに、MUA(メールクライアント)は、Wanderlustを使用しています。
以上です。

At Tue, 20 Dec 2005 21:31:49 +0900,
ikuradon3 @ yahoo.co.jp wrote:
> 
> 初心者の伊藤と申します。
> 
> 安井様、ご回答ありがとうございます。
> 
> 症状は同じようですが、サイトにある対策
> $subject  = mb_convert_encoding( $subject, "iso-2022-jp", "auto" );
> $subject  = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
> を施しても、解決しませんでした。
> 
> > Message: 5
> > Date: Sat, 17 Dec 2005 01:19:52 +0900
> > From: 安井 <evelinae @ mac.com>
> > Subject: [PHP-users 27858] Re:
> > はじめまして、mb_send_mail についてです。
> > To: PHP-users ML <php-users @ php.gr.jp>
> > Message-ID: <86vexpj9p3.wl%yasui @ a-yasui.info>
> > Content-Type: text/plain; charset=ISO-2022-JP
> >
> > 初めまして、安井と申します。
> >
> > Googleで調べたら、似たようなのが出てきましたので一報。
> > http://ns1.php.gr.jp/pipermail/php-users/2004-April/021965.html
> >
> >
> >
> > At Thu, 15 Dec 2005 07:54:56 +0900,
> > ikuradon3 @ yahoo.co.jp wrote:
> >>
> >> 初心者の伊藤と言います。
> >> 環境:WinXP+Apache2+PHP5
> >>
> >> mb_send_mail("xxxxx @ xxxx.co.jp","何時がok?","test")
> >>
> >> を実行すると、
> >> (subject に 倍角×3&半角×2&倍角×2 を指定した場合に発生)
> >>
> >> Warning: mb_send_mail() [function.mb-send-mail]: SMTP server response: 
> >> 451
> >> See http://pobox.com/~djb/docs/smtplf.html. in C:\Program Files\Apache
> >> Group\Apache2\htdocs\mail.php on line 15
> >> エラー:送信に失敗しました
> >>
> >> となります。
> >> http://pobox.com/~djb/docs/smtplf.html
> >> にアクセスすると
> >> http://cr.yp.to/docs/smtplf.html
> >> へ飛びますが、その中の
> >> It is an ASCII linefeed (LF) character not preceded by an ASCII
> >> carriage-return (CR) character.
> >> の一文が気になるのですが、対策が判りません。
> >> ちなみに、自分のPCのメーラーはOutlookExpress と MicrosoftOfficeOutlook だけです。
> >>
> >> よろしくお願いします。
> >>



PHP-users メーリングリストの案内