2014-12-03 3 views
1

Я пытаюсь отправить электронные письма из своей учетной записи gmail с помощью php (xampp). Я просматриваю stackoverflow, и когда я получил то, что изменил файлы xampp sendmail.ini и php.ini as,php xampp mail() не работает

В C: \ xampp \ php \ php.ini Я удалил точку с запятой от начала строки extension=php_openssl.dll, чтобы заставить SSL работать для gmail для localhost.

в файле php.ini в разделе [почта функции] Я изменил

SMTP=smtp.gmail.com 
smtp_port=25 
sendmail_from = [email protected] 
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 

Тогда в C: \ XAMPP \ Sendmail \ sendmail.ini. Я заменил весь существующий код в sendmail.ini с следующим кодом

[sendmail] 

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

тогда я написал простую функцию почты

<?php 
$to = '[email protected]'; 
$subject = 'Test email'; 
$message = "Hello World!\n\nThis is my first mail."; 
$headers = "From: [email protected]\r\nReply-To: [email protected]"; 
$mail_sent = @mail($to, $subject, $message, $headers); 
echo $mail_sent ? "Mail sent" : "Mail failed"; 
?> 

затем пошла на этой странице с помощью моего браузера, получил эхо, как почта Failed ,

Я видел мой файл отладки, и я получил

14/12/03 18:24:00 ** --- MESSAGE BEGIN --- 
14/12/03 18:24:00 ** To: [email protected] 
14/12/03 18:24:00 ** Subject: Test email 
14/12/03 18:24:00 ** From:[email protected] 
14/12/03 18:24:00 ** Reply-To:[email protected] 
14/12/03 18:24:00 ** 
14/12/03 18:24:00 ** Hello World! 
14/12/03 18:24:00 ** 
14/12/03 18:24:00 ** This is my first mail. 
14/12/03 18:24:00 ** --- MESSAGE END --- 
14/12/03 18:24:01 ** Connecting to smtp.gmail.com:25 
14/12/03 18:24:08 ** Connected. 
14/12/03 18:24:08 << 220 mx.google.com ESMTP o17sm23150442pdn.33 - gsmtp<EOL> 
14/12/03 18:24:08 >> EHLO Mukul-PC<EOL> 
14/12/03 18:24:10 << 250-mx.google.com at your service, [223.186.182.29]<EOL>250-SIZE 35882577<EOL>250-8BITMIME<EOL>250-STARTTLS<EOL>250-ENHANCEDSTATUSCODES<EOL>250-PIPELINING<EOL>250-CHUNKING<EOL>250 SMTPUTF8<EOL> 
14/12/03 18:24:10 ** Authenticating as [email protected] 
14/12/03 18:24:10 >> STARTTLS<EOL> 
14/12/03 18:24:12 << 220 2.0.0 Ready to start TLS<EOL> 
14/12/03 18:24:14 >> QUIT<EOL> 

lots of codes in unknown language. 

14/12/03 18:21:47 ** Disconnected. 
14/12/03 18:21:47 ** Disconnecting from smtp.gmail.com:25 
14/12/03 18:21:47 ** Disconnected. 
14/12/03 18:21:47 ** Disconnected. 
14/12/03 18:21:47 ** Connection Closed Gracefully. 

Я не получаю Что проблему.

+0

ли перезапустить все службы? –

+1

Вы настраиваете порт 587, но он подключается к порту 25. Затем вы пытаетесь выполнить TLS через порт 25, который не работает. –

+0

Я написал 587 в этом коде по ошибке при размещении вопроса. Извините .. Lemme update it..1 sec .. – MukulAgr

ответ

3

Хорошо, я получил эту работу. К сожалению, не с TLS, потому что порт 587 заблокирован в нашей сети, поэтому мне пришлось использовать порт 465. Но я ожидаю, что TLS также будет работать.

Я использовал XAMPP 5.6.3.

Sendmail конфигурации:

[sendmail] 
smtp_server=smtp.gmail.com 
smtp_port=465 
smtp_ssl=auto 
error_logfile=error.log 
debug_logfile=debug.log 
auth_username==*****@gmail.com 
auth_password=********* 
force_sender=*****@gmail.com 

PHP конфигурации:

[mail function] 
SMTP=smtp.gmail.com 
smtp_port=465 
sendmail_from = *****@gmail.com 
sendmail_path = "\"c:\xampp\sendmail\sendmail.exe\" -t" 

Код:

<?php 
$to = '[email protected]'; 
$subject = 'Test email'; 
$message = "Hello World!\n\nThis is my first mail."; 
$headers = "From: *****@gmail.com\r\nReply-To: *****@gmail.com"; 
$mail_sent = @mail($to, $subject, $message, $headers); 
echo $mail_sent ? "Mail sent" : "Mail failed"; 
?> 

Важно:

Вам необходимо включить доступ SMTP в GMAIL, также вам нужно разрешить незащищенную клиенты:

https://www.google.com/settings/security/lesssecureapps https://support.google.com/mail/answer/75726

Имейте в виду, что порт SMTP вы хотите использовать открыт в брандмауэре! Я предлагаю попробовать проверку соединения с вашей машиной dev с помощью thunderbird. Тогда вы знаете, может ли клиент подключиться.

Это мой результат:

14/12/03 12:19:32 ** --- MESSAGE BEGIN --- 
14/12/03 12:19:32 ** To: *****@example.com 
14/12/03 12:19:32 ** Subject: Test email 
14/12/03 12:19:32 ** From: ******@gmail.com 
14/12/03 12:19:32 ** Reply-To: ******@gmail.com 
14/12/03 12:19:32 ** 
14/12/03 12:19:32 ** Hello World! 
14/12/03 12:19:32 ** 
14/12/03 12:19:32 ** This is my first mail. 
14/12/03 12:19:32 ** --- MESSAGE END --- 
14/12/03 12:19:34 ** Connecting to smtp.gmail.com:465 
14/12/03 12:19:34 ** Connected. 
14/12/03 12:19:34 << 220 mx.google.com ESMTP pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:34 >> EHLO vm-test-03.devnet.local<EOL> 
14/12/03 12:19:35 << 250-mx.google.com at your service, [xxx.xxx.xxx.xxx]<EOL>250-SIZE 35882577<EOL>250-8BITMIME<EOL>250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER<EOL>250-ENHANCEDSTATUSCODES<EOL>250-PIPELINING<EOL>250-CHUNKING<EOL>250 SMTPUTF8<EOL> 
14/12/03 12:19:35 ** Authenticating as ****@gmail.com 
14/12/03 12:19:35 >> AUTH LOGIN<EOL> 
14/12/03 12:19:35 << 235 2.7.0 Accepted<EOL> 
14/12/03 12:19:35 >> MAIL FROM: <*****@gmail.com><EOL> 
14/12/03 12:19:35 << 250 2.1.0 OK pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:35 >> RCPT TO: <[email protected]><EOL> 
14/12/03 12:19:35 << 250 2.1.5 OK pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:35 >> DATA<EOL> 
14/12/03 12:19:35 << 354 Go ahead pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:35 >> Date: Wed, 3 Dec 2014 12:19:35 -0800<EOL> 
14/12/03 12:19:35 >> To: [email protected]<EOL> 
14/12/03 12:19:35 >> Subject: Test email<EOL> 
14/12/03 12:19:35 >> From: *****@gmail.com<EOL> 
14/12/03 12:19:35 >> Reply-To: *****@gmail.com<EOL> 
14/12/03 12:19:35 >> <EOL> 
14/12/03 12:19:35 >> Hello World!<EOL> 
14/12/03 12:19:35 >> <EOL> 
14/12/03 12:19:35 >> This is my first mail.<EOL> 
14/12/03 12:19:35 >> .<EOL> 
14/12/03 12:19:36 << 250 2.0.0 OK 1417637977 pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:36 >> QUIT<EOL> 
14/12/03 12:19:36 << 221 2.0.0 closing connection pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:36 ** Disconnecting from smtp.gmail.com:465 
14/12/03 12:19:36 ** Disconnected. 
14/12/03 12:19:36 ** Disconnected. 
+0

Я использую v3.2.1 – MukulAgr

+1

И ваш конфиг. не работает :( – MukulAgr

+0

Я обновил свой ответ. Я тестировал это в тестовой среде с XAMPP самостоятельно ... и просто FYI V3.2.1 - это версия консоли XAMPP, а не сама XAMPP :) – LucasF