2012-01-24 96 views
1

我試圖從我的本地主機發送電子郵件,使用我的gmail帳戶,我已經研究了很多解決此問題的方法,將我的php.ini和sendmail.ini文件更改爲沒有運氣,這裏是文件的一部分。 php.ini中使用xampp和gmail掙扎發送郵件

For Win32 only. 
; http://php.net/smtp 
SMTP = smtp.gmail.com 
; http://php.net/smtp-port 
smtp_port = 587 

[mail function] 


; 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"` 

和sendmail.ini

[sendmail] 

; you must change mail.mydomain.com to your smtp server, 
; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup) 
; emails delivered via IIS's pickup directory cause sendmail to 
; run quicker, but you won't get error messages back to the calling 
; application. 

smtp_server=smtp.gmail.com 

; smtp port (normally 25) 

smtp_port=25 

; the default domain for this server will be read from the registry 
; this will be appended to email addresses when one isn't provided 
; if you want to override the value in the registry, uncomment and modify 

;default_domain=local 

; log smtp errors to error.log (defaults to same directory as sendmail.exe) 
; uncomment to enable logging 

;error_logfile=error.log 

; create debug log as debug.log (defaults to same directory as sendmail.exe) 
; uncomment to enable debugging 

;debug_logfile=debug.log 

; if your smtp server requires authentication, modify the following two lines 

auth_username=*************@gmail.com 
auth_password=****** 

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines 

;pop3_server= 
;pop3_username= 
;pop3_password= 

; to force the sender to always be the following email address, uncomment and 
; populate with a valid email address. this will only affect the "MAIL FROM" 
; command, it won't modify the "From: " header of the message content 

;[email protected] 

; sendmail will use your hostname and your default_domain in the ehlo/helo 
; smtp greeting. you can manually set the ehlo/helo name if required 

;hostname=localhost` 

有什麼不對?我無法弄清楚。

在此先感謝。

回答

0

端口是錯誤的sendmail.ini對於初學者 - 可能還有其他的問題但是有很好的指導意義在這裏這個確切情況:http://digiex.net/guides-reviews/guides-tutorials/application-guides/544-configuring-php-under-windows-use-gmail-external-smtp-server-ssl.html

+0

感謝您的回覆,但沒有運氣。出現此錯誤:必須首先發出STARTTLS命令。 bu13sm57250448wib.6 Andre

+0

http://byitcurious.blogspot.com/2009/04/solving-must-issue-starttls-command.html – Macros

+0

感謝宏,明白了;) – Andre

0

這將工作,方便快捷!

php.ini中,使這條線,

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 

在sendmail.ini,

smtp_server=smtp.gmail.com 
smtp_port=465 
smtp_ssl=ssl 
[email protected] 
auth_password=******* 
[email protected] 

重新啓動Apache,

<?php 
$to = "[email protected]"; 
$subject = "Test mail"; 
$message = "Hello! This is a simple email message."; 
mail($to,$subject,$message); 
echo "Mail Sent."; 
?> 

但請記住,不要」 t在php.ini的[mail function]塊中啓用任何其他選項。只有在使用Mercury郵件服務器時才能啓用這些功能 - 並且在配置水銀郵件服務器時涉及很多步驟。你最好用sendmail來測試php腳本!