osCommerceを利用しているお客様のPHPを5.3.8にしたので、
開発環境のWindows7 64bit上のxamppもそれにあわせてバージョンアップした。
xamppディレクトリをxampp2などの名前に変えて、
普通にインストールしてlocalhostやphpMyAdminの画面が表示されたら、
xampp2にあるhtdocsの内容やmysqlのdataを移動した。

メール送信にはMercury/32(Mercury Mail Transport System)を利用することにしていたので、
前回どおり設定したが、なぜか送信できない。
そのエラー対策部分を追加して設定方法の最新版を掲載します。

1. phpの設定
PHPからMercuryに接続するための設定をphp.iniのメール関連の設定箇所で下記のように記述して、apacheを再起動します。

[php]

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25;

; For Win32 only.
sendmail_from = あなたのメールアドレス

[/php]

2. Mercury管理画面の表示
次に、Mercury管理画面で、MercuryがPHPから受け取ったメールを中継するための設定を行います。
xamppのコントロールパネルを起動してMercuryの横の[Start]をクリックします。
「Running」と表示されたら、[Admin]をクリックして管理画面を表示します。

3. Mercuryの設定
上部メニューバーから[Configuration]→[Protocol Modules]を選択します。
ここで「MercuryS SMTP server」と「MercuryC SMTP  relaying client」をチェックして残りの項目はすべてチェックを外します。
ここでMercuryを再起動します。

4. メール中継用の設定
上部メニューバーから[Configuration]を選択します。
メニュー内から「MercuryS SMTP Server」と「MercuryC SMTP client」という項目を探してください。見つからない場合は再起動すれば表示されます。
「MercuryS SMTP Server」についてはデフォルトのまま使用します。
「MercuryC SMTP client」には利用しているインターネット接続業者が指定する内容を設定します。
[MercuryC SMTP client]を選択します。
設定画面では、以下の項目を入力します。

[php]

SMTP “Smart” Host details
Smart host name:あなたのSMTPサーバ
Connect to TCP/IP port:587

Credentials for SMTP Authentication, if required
Username:メール送信用のID
Password:パスワード

[/php]

これで、PHPからメールを送信できます。

5. メール送信時に「SMTP server response: 553 We do not relay non-local mail, sorry.」のように表示されたら、先ほど設定した「MercuryS SMTP Server」を再度表示して、[Connection Control]タブを表示して画面下部の[Do not Permit SMTP relaying to non-local mail]のチェックを外してください。

%d人のブロガーが「いいね」をつけました。