いい加減、ローカルでもメールの送信テストが出来るようにと、xamppをあれこれいじってみる。
まずはphp.iniから。
バージョンによって場所が違うかもしれないので、パスは書かない。
[mail function]という項目があるはず。
とりあえずは以下の項目を編集
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = "インストールディレクトリ\sendmail\sendmail.exe -t"
SMTPとsmtp_portには、使用したいメールサーバの設定を記述する。
sendmail_fromはそのままにしておきました。どーせphpで送信する場合にはfromを設定するから。
でもって、sendmail_pathもコメントを外して、パスの確認。
[mail function]
; For Win32 only.
SMTP = smtp.xxxxx.co.jp
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "インストールディレクトリ\sendmail\sendmail.exe -t"
続いてはsendmailの設定をしたいので、xamppをインストールしたディレクトリ直下にあるsendmailディレクトリのsendmail.iniを開く。
ここでも同じようにsmtp_serverとsmtp_portの設定を行う。php.iniの記述と合わせるのは当然のこと。
hostnameはとりあえずlocalhostのまま。
force_senderは変更してみた。意味があるかどうかは判らないけど。
デバッグログやエラーログが取りたい場合は、debug_logfile、error_logfileの項目のコメントを外して、有効にする。ファイル名だけだから、sendmailディレクトリに出来るんだろう。フルパスや相対パスを書くと変更できるのかな?
念の為、xamppでapacheの再起動(停止→起動)しておく。
で、いよいよテスト。
送信!
…届かない。
小一時間ほどあれこれ試してみましたが、よく判らない。
デバッグログを眺めていると…
10/01/27 10:16:54 ** Cc:
10/01/27 10:16:54 ** Bcc:Content-Type: text/plain; charset=ISO-2022-JP
あ!
改行コードが抜けとるがや!
phpのソースに
."\r\n".を追加して再度実行してみると、無事に送信できました。
Content-typeの記述を追加した際に、改行コードを付け忘れたってだけか。
ううむ…
そんなヘッダでも送信できてたサーバのsendmailが大雑把なのか、xampp付属のsendmail.exeがシビアなのかどうか…
そもそも記述を間違える僕がいけないっつー話なんだけど。
0 コメント:
::コメントを投稿する::