Не работает функция php xampp mail ()

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

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

в файле php.ini в разделе [mail function] я изменил

 SMTP=smtp.gmail.com smtp_port=25 sendmail_from = mukul.agrawal19@gmail.com 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 auth_username=mukul.agrawal19@gmail.com auth_password=my-gmail-password force_sender=mukul.agrawal19@gmail.com 

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

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

затем перешел на эту страницу моим браузером, получил эхо, поскольку Mail Failed.

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

 14/12/03 18:24:00 ** --- MESSAGE BEGIN --- 14/12/03 18:24:00 ** To: mukulagrawal13@live.com 14/12/03 18:24:00 ** Subject: Test email 14/12/03 18:24:00 ** From:mukul.agrawal19@gmail.com 14/12/03 18:24:00 ** Reply-To:mukul.agrawal19@gmail.com 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 mukul.agrawal19@gmail.com 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. 

Я не понимаю, в чем проблема.

Хорошо, я получил эту работу. К сожалению, не с 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 = 'repicient@example.com'; $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: <repicient@example.com.de><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: repicient@example.com<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.