Sendmail Wamp Php

Я всю ночь искал это в интернете, пытаясь найти решение об этом. Я установил wamp-сервер в Windows 8.1, и я пытаюсь отправить некоторые письма с помощью sendmail (http://glob.com.au/sendmail/) и моей учетной записи gmail

Когда я настраиваю sendmail для использования порта nº 465, я всегда получаю эту ошибку: Ошибка сокета # 10060Соединение отключено

Если я пытаюсь использовать порт № 587, я получаю эту строку в журнале ошибок: соединение закрыто. Изящно. Но письмо не отправляется.

Это мой файл sendmail.ini

[sendmail]
smtp_server=smtp.gmail.com
;I tried both: 587, 465
smtp_port=587
; I tried: "blank, auto ssl, tls, none"
smtp_ssl=
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=mypass
hostname=localhost

И это файл php.ini

[mail function]
smtp_port = 465
sendmail_path="C:\wamp\sendmail\sendmail.exe -t"
mail.add_x_header = On

ssl_module активен в apache, а php использует php_open_ssl и расширение php_socket.

Также я пытался использовать stunnel без каких-либо успехов

РЕДАКТИРОВАТЬ 27/01/2014

Я установил smtp_port = 465 и smtp_ssl = ssl на sendmail.ini. Кроме того, я установил, что sendmail.exe должен запускаться как Windows XP SP3. После этого, когда я запускаю sendmail.exe на консоли Windows, он отправляет письмо правильно. Однако, когда wamp пытается отправить почту, я получаю эту ошибку в журналах ошибок sendmail.: Ошибка сокета # 10060Соединение отключено.

Это код, который я использую для проверки sendmail:

<?php
$email = "[email protected]";
$to = "[email protected]";
$subject = "Hi!";
$body = "Hi,How are you?";
$headers = 'From: ' .$email . "\r\n".'Reply-To: ' . $email. "\r\n".'X-Mailer: PHP/' . phpversion();
if (mail($to, $subject, $body, $headers)) echo("<p>Email successfully sent</p>");
else echo("<p>Email delivery failed</p>");
?>

Ответы

Ответ 1

Наконец, я нашел ответ.

Проблема заключается в том, что sendmail должен запускаться как администратор. Это решение, помогающее любому в моей ситуации.

  • Щелкните правой кнопкой мыши по адресу sendmail.exe
  • Свойства
  • Совместимость
  • Измените конфигурацию для всех пользователей
  • Выполнение как Windows XP SP 3
  • Выполнять как администратор

И сохранить: D

2 дня, потерянные в этой ерунде: (

Ответ 2

Как расширение принятого ответа:

Если вы используете функцию отправки почты в PHP, может возникнуть диалог, чтобы попросить вас запустить приложение "отправить почту" в качестве администратора. После нажатия "Да" появится диалоговое окно командной строки, и ничего не произойдет, и ваша страница будет зависать до тех пор, пока командная строка не будет закрыта. Функция почты даже вернет "True", но на самом деле сообщение не было отправлено.

Чтобы решить эту проблему, выполните инструкции так же, как и принятый ответ, и ТАКЖЕ запустите сервер (или IDE) в качестве администратора, либо:

1) Щелкните правой кнопкой мыши программу (например, сервер, ide, приглашение командной строки) и нажмите "Запуск от имени администратора"

2) ИЛИ Программа правого кликa > свойствa > совместимость > Отметьте выполнение как admin

Например, если вы используете PHP на встроенном сервере, запустите командную строку как администратор и запустите сервер как обычно, используя

C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder

Конечно, измените пути файлов в соответствии с вашими потребностями.

Надеюсь, это поможет кому-то!!! Проводили это время!

Ответ 3

Проблема заключается в том, что sendmail должен запускаться как администратор. Это решение, помогающее любому в моей ситуации.

  • Щелкните правой кнопкой мыши по адресу sendmail.exe
  • Свойства
  • Совместимость
  • Измените конфигурацию для всех пользователей
  • Выполнение как Windows XP SP 3
  • Выполнять как администратор
  • Если вы используете gmail, вам нужно создать новый пароль "Ваши пароли, специфичные для вашего приложения"

Ответ 4

Устранение неполадок совместимости

В Windows 10 я обнаружил, что единственным методом, который работал, был запуск средства устранения неполадок совместимости.

  • Щелкните правой кнопкой мыши по адресу sendmail.exe
  • Нажмите "Свойства"
  • Выберите вкладку Совместимость.
  • Нажмите "Запустить средство устранения неполадок совместимости".
  • Пусть окна исправят его автоматически.