2012-03-29 3 views
1

を通じて送信しません:メールはこれが(私のPHPのコードを)送るべきメールであるフォーム

$message = 
"Hello \n 
Thank you for registering with us. Here are your login details...\n 

User ID: $user_name 
Email: $usr_email \n 
Passwd: $data[pwd] \n 

"; 

mail($usr_email, "Login Details", $message, 
"From: \"Member Registration\" <[email protected]>\r\n" . 
"X-Mailer: PHP/" . phpversion()); 

header("Location: thankyou.php"); 
exit(); 

これは私のphp.iniの詳細です:

; For Win32 only. 
; http://php.net/smtp 
;SMTP = localhost 
; http://php.net/smtp-port 
;smtp_port = 25 

; For Win32 only. 
; http://php.net/sendmail-from 
;sendmail_from = post[email protected] 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
; http://php.net/sendmail-path 
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 

; Force the addition of the specified parameters to be passed as extra parameters 
; to the sendmail binary. These parameters will always replace the value of 
;the 5th parameter to mail(), even in safe mode. 
;mail.force_extra_parameters = 

; Add X-PHP-Originating-Script: that will include uid of the script followed by the 
;filename 
mail.add_x_header = Off 

; Log all mail() calls including the full path of the script, line #, to address and 
;headers 
;mail.log = "C:\xampp\apache\logs\php_mail.log" 

私sendmail.ini
[sendmail] 

smtp_server=smtp.gmail.com 
smtp_port=25 
error_logfile=error.log 
debug_logfile=debug.log 
[email protected] 
auth_password=xxxxxxx 
[email protected] 

私は完全な初心者ですので、これは完全に間違っている可能性があります。 メール機能のあるフォームを送信すると、指定したとおりにthankyou.phpページが表示されます

+0

var_dump()関数を使ってエラーが発生しているのを見てみましたか?あなたのメール機能を 'var_dump(mail(...));に入れようとしない場合は、 – orustam

答えて

0

メールのログを確認して、メッセージの配信に問題があるかどうかを確認してください。多くの場合、あなたのアプリはsendmailに正しく配信することができますが、sendmailはそれを送信できません。

+0

php_mail.logにnothingsが表示されます。私は水銀郵便が走っています。これは、HELO Emzys-PC MAIL FROM:<[email protected]> RCPT TO:<[email protected]> DATA DATA - 31行、627バイト。 QUIT 0秒経過、接続終了Thu Mar 29 19:58:31 2012 – user1257518

+0

あなたはその電子メールメッセージを受け取りましたか?水銀がそれを送ったと思ってもそれを受け取ったことがないなら、下流にチェックしてください。おそらく、ファイアウォールや他のソフトウェアがメッセージがあなたのxxx.ac.ukメールハンドラに届かないようにしました。 –

+0

いいえ、それを受け取っていません。私はちょうど水銀がQUIT 0秒接続が閉じていると言っているのだろうか。これは失敗したのでしょうか? – user1257518

0

私はあなたのphp.iniでこのことに気づい:

。 Unixのみ。引数も指定できます(デフォルト: "sendmail -t -i")。 ; http://php.net/sendmail-path オプションsendmail_path = "\" C:\のXAMPP \ sendmailの\ sendmail.exe \

"-t" 私はここに見えた:

http://digiex.net/guides-reviews/guides-tutorials/application-guides/544-configuring-php-under-windows-use-gmail-external-smtp-server-ssl.html

をし、sendmailのパスはこのように定義されていたことに気づきました。

オプションsendmail_path = "C:\のinetpub \ sendmailの\ sendmail.exe -t"

あなたは本当にそれらの余分の引用符を必要とし、使用しているスラッシュべきではありません私の知る限り。私は上記のフォーマットを試して、あなたのsendmailのログをチェックして何らかのエラーが発生していないかどうか確認します。