Отправить Почту Wamp Php


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

Когда я настраиваю sendmail на использование порта № 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 с пакетом обновления 3. После этого, когда я бегу 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>");
?>
Author: AnFi, 2014-01-24

4 answers

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

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

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

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

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

 65
Author: Rumpelstinsk, 2016-04-03 11:29:23

В качестве дополнения к принятому ответу:

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

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

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

2) ИЛИ щелкните правой кнопкой мыши программа> свойства> совместимость> Отметьте выполнить от имени администратора

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

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

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

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

 8
Author: Yahya Uddin, 2014-09-02 19:36:32

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

  1. Щелкните правой кнопкой мыши на sendmail.exe
  2. Свойства
  3. Совместимость
  4. Измените конфигурацию для всех пользователей
  5. Выполнить как Windows XP с пакетом обновления 3
  6. Выполнить от имени администратора
  7. если вы используете gmail, вам нужно создать новый пароль "Пароли для вашего приложения"
 6
Author: juan.conde, 2014-05-26 05:32:03

Compatibility Troubleshooter

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

  1. Щелкните правой кнопкой мыши на sendmail.exe
  2. Нажмите "Свойства"
  3. Выберите вкладку Совместимость.
  4. Нажмите "Запустить средство устранения неполадок совместимости".
  5. Позвольте Windows исправить это автоматически.
 1
Author: Matt, 2015-09-18 01:58:32