2015-06-08 6 views
0
$message = "Line 1\r\nLine 2\r\nLine 3"; 
$message = wordwrap($message, 70, "\r\n"); 
mail('[email protected]', 'My Subject', $message); 

php.ini =>WAMP Sendmail не удалось отправить электронную почту через smtp.gmail.com:587

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
;SMTP = localhost 
;SMTP = smtp.gmail.com 
; http://php.net/smtp-port 
;smtp_port = 25 
;smtp_port = 587 

; For Win32 only. 
; http://php.net/sendmail-from 
;sendmail_from = [email protected] 
sendmail_from = [email protected] 
; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
; http://php.net/sendmail-path 
;sendmail_path = 
sendmail_path = "C:\wamp\bin\sendmail\sendmail.exe -t" 

sendmail.ini =>

; configuration for fake sendmail 

; if this file doesn't exist, sendmail.exe will look for the settings in 
; the registry, under HKLM\Software\Sendmail 

[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_server=mail.mydomain.com 
;smtp_server=localhost 
; smtp port (normally 25) 

smtp_port=587 
;smtp_port=25 

; SMTPS (SSL) support 
; auto = use SSL for port 465, otherwise try to use TLS 
; ssl = alway use SSL 
; tls = always use TLS 
; none = never try to use SSL 

;smtp_ssl=auto 
smtp_ssl=auto 

; 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=localhost 

; 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 

[email protected] 
auth_password=[mypassword] 

;auth_username= 
;auth_password= 

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines. do not enable unless it is required. 

pop3_server= 
pop3_username= 
pop3_password= 

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

[email protected] 

; force the sender to always be the following email address 
; this will only affect the "RCTP TO" command, it won't modify 
; the "To: " header of the message content 

force_recipient= 

; 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= 

Не отправки электронной почты. Я не хочу использовать внешнюю библиотеку, такую ​​как PHPmailer, swiftmailer, hmailserver и т. Д.

Кто-нибудь отправил электронное письмо по окнам с почтой php? Что мне делать?

Edit: Следующая конфигурация работает: (Sendmail ставится в C :)

php.ini =>

SMTP = smtp.gmail.com 
smtp_port = 587   
sendmail_from = [email protected] 
sendmail_path = "C:\sendmail\sendmail.exe" 

sendmail.ini =>

smtp_server=smtp.gmail.com 
smtp_port=587 
smtp_ssl=auto 

error_logfile=error.log  
[email protected] 
auth_password=[mypassword]  
pop3_server= 
pop3_username= 
pop3_password= 
[email protected] 
force_recipient= 
hostname= 
+0

Вы активировано 'расширение = php_openssl.dll' в' php.ini' файле – RiggsFolly

+0

@RiggsFolly, я проверили php_openssl из wamp-> php-> php-extension – shibly

+0

Какую версию WAMPServer вы используете – RiggsFolly

ответ

1

Первый из все удостоверяются, что эти две строки в php.ini раскоментированы:

;SMTP = smtp.gmail.com 
;smtp_port = 587 (or 465) 

Затем измените smtp_ssl=auto на smtp_ssl=tls (так как RiggsFolly сказал, что включен extension=php_openssl.dll).

Кроме того, если вы используете Windows 8, посмотрите на this или установите this прокси.

Edit: (под редакцией shibly)

следующие работы конфигурации.

php.ini =>

SMTP = smtp.gmail.com 
smtp_port = 587   
sendmail_from = [email protected] 
sendmail_path = "C:\sendmail\sendmail.exe" 

sendmail.ini =>

smtp_server=smtp.gmail.com 
smtp_port=587 
smtp_ssl=auto 

error_logfile=error.log  
[email protected] 
auth_password=[mypassword]  
pop3_server= 
pop3_username= 
pop3_password= 
[email protected] 
force_recipient= 
hostname= 
+1

'smtp_ssl = auto' works – shibly

+1

Это работая после изменения режима совместимости sendmail.exe из свойств. Для Windows 7 или выше вы должны изменить режим совместимости sendmail.exe на «Windows XP Service Pack 3» из свойств. http://stackoverflow.com/questions/21337859/sendmail-wamp-php, см. «Проблемы, выполняющиеся в Windows 8+» здесь, в http://glob.com.au/sendmail/ – shibly