Ошибка PHP Sendmail в Windows xampp

Я пытаюсь отправить почту в Windows через свою учетную запись gmail, я настроил свой php.ini:

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

and sendmail.ini :
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
error_logfile=error.log
[email protected]
auth_password=my-password-confident
[email protected]

вот мой код:

<?php
// The message
$message = "Line 1\r\nLine 2\r\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Send
$send = mail('[email protected]', 'My Subject', $message);
if ($send) {
    echo "send";
}
else {
echo "fail";}
?>

также я изменил свою безопасность Google, стал менее безопасным, я понятия не имею, почему, кто-нибудь мне поможет?


person Jais Anasrulloh Ja'fari    schedule 15.02.2015    source источник
comment
Вы не экранируете обратную косую черту в sendmail_path. Мне это кажется неправильным.   -  person Nathan Tuggy    schedule 16.02.2015
comment
это все еще не удается, я изменил его на sendmail_path=\C:\\xampp\\sendmail\\sendmail.exe\ -t   -  person Jais Anasrulloh Ja'fari    schedule 16.02.2015
comment
Интересно, может ли локальный сервер взаимодействовать с онлайн-сервером. новое для меня   -  person Joe Kdw    schedule 16.02.2015
comment
я не знаю Жана Гкола, но для некоторых людей это похоже на работу " title="как настроить xampp для отправки почты с локального хоста"> stackoverflow.com/questions/15965376/   -  person Jais Anasrulloh Ja'fari    schedule 16.02.2015
comment
В большинстве случаев вы не можете отправить почту с локального сервера, вам нужно загрузить файл на работающий сервер.   -  person Junius L.    schedule 16.02.2015
comment
Попробуйте это -› stackoverflow.com/questions/21337859/sendmail-wamp-php. Какие окна вы используете?   -  person Foxhoundn    schedule 18.02.2015
comment
Возможный дубликат sendmail.exe открывается при отправке почты   -  person Pascal    schedule 14.01.2016


Ответы (2)


Я не уверен, что вы используете Windows 8, но если вы это сделаете, вы должны сделать следующее:

1) В PHP.ini сделайте так, чтобы часть электронной почты выглядела так

; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 465

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = 

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.  
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

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

2) Сделайте так, чтобы smtp-часть sendmail.ini выглядела так

smtp_server=localhost

; smtp port (normally 25)

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

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

[email protected]
auth_password=password

3 ) Загрузите Stunnel https://www.stunnel.org/downloads.html и выполните следующие действия. изменения в stunnel.conf. Stunnel работает в трее, каждый раз, когда вы вносите изменения, щелкните правой кнопкой мыши значок Stunnel и перезагрузите файл конфигурации.

cert = stunnel.pem
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
key = stunnel.pem
[ssmtp]
accept  = 465
connect = 25
[gmail-smtp]
client = yes
accept = 127.0.0.1:25
connect = smtp.gmail.com:465
; To check logs you can enable logging using following lines
debug = 7

4 ) Перейдите в папку Sendmail, щелкните правой кнопкой мыши sendmail.exe -> Свойства -> Совместимость -> Нажмите кнопку Внести изменения для всех пользователей -> Выберите совместимость с Windows XP (Service Pack 3) и установите флажок Запуск от имени администратора.

5) Всегда запускайте XAMPP от имени администратора!!

Это необходимо только в Windows 8+ (например, в Windows 2008 R2 мне нужно было только правильно настроить sendmail на gmail, и все заработало).

person Foxhoundn    schedule 18.02.2015
comment
Выберите Windows XP (Service Pack 3) - правильный ответ на все проблемы с sendmail!! Поздравления - person w3spi; 09.03.2018

в Windows8

после изменения

1-php.ini

2-sendmail.ini

перейдите в C:\xampp\sendmail

  • 1) Щелкните правой кнопкой мыши sendmail.exe и перейдите в свойства.
  • 2) перейдите на вкладку «Совместимость», затем нажмите «Изменить настройки для всех пользователей».
  • 3) установить режим совместимости с Windows XP (Service Pack 3)
  • 4) установите флажок для запуска этой программы от имени администратора

Надеюсь, это поможет кому-то другому.

это работает для меня

person user2698670    schedule 05.10.2015