2012-03-29 78 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 = [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 2012-04-01 22:22:16

回答

0

檢查郵件日誌以查看sendmail是否在傳遞郵件時遇到問題。通常你的應用可以正確地將它發送到sendmail,但是sendmail不能發送它。

+0

nothings出現在php_mail.log中。我確實有水銀郵件運行,這就是說: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 2012-03-29 18:59:40

+0

您是否收到該電子郵件?如果汞認爲它已發送,但您從未收到過,請檢查下游。也許防火牆或其他軟件阻止郵件進入您的xxx.ac.uk郵件處理程序。 – 2012-03-29 19:07:11

+0

沒有收到它。我只是想知道爲什麼汞說QUIT 0秒連接關閉。這是否意味着它失敗了? – user1257518 2012-03-29 19:13:07

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日誌,看它是否出錯。