Я установил smtp4dev, чтобы проверить получение почты на моем локальном сервере (xampp) для формы регистрации здесь: https://github.com/panique/php-login
примечание: локальный сервер находится на порту: 8080
мой файл php.ini для раздела SMTP выглядит следующим образом, и smtp активирован, как показано в статусе xampp:
[mail function]
SMTP = localhost
smtp_port = 25
sendmail_from = postmaster@localhost
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
;mail.log = "C:\xampp\php\logs\php_mail.log"
, но я не получил никакого электронного письма, поэтому я проверил smtp, если он работал через telnet:
telnet localhost 25
, и я получаю это после выполнения команды telnet:
220 localhost smtp4dev ready
Connection to host lost.
как я могу решить эту проблему?
Как ранее обсуждалось в комментариях, я пишу этот ответ для тех, кто может столкнуться с этой проблемой.
Добавление правила брандмауэра Windows для открытия порта 25 устранит эту проблему, поскольку соединение отклоняло соединение, что не позволяло установить telnet.
Это разумное поведение вашего почтового сервера. Вы не дали ему никаких команд, поэтому он закрыл соединение.
Если вы хотите поговорить с сервером по telnet, попробуйте сообщить ему следующее после подключения:
EHLO user
где пользователь
- ваше имя пользователя, и посмотрите, получите ли вы набор кода состояния 250 ответов . В этом руководстве есть другие примеры того, как разговаривать с SMTP-сервером по telnet.