Не удалось подключиться к почтовому серверу через порт "localhost" 25
Я продолжаю получать эту ошибку, когда пытаюсь отправить электронное письмо на PHP:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:wampwwwdressoholicregister.php on line 50
мой php.ini выглядит так:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]
Я использую свой ноутбук в качестве сервера.. Что я делаю не так? Спасибо.
7 ответов:
вам нужно запустить почтовый сервер локально. Если это Unix, включите sendmail Если это Windows, установите простой сервер передачи почты (не уверен, что имя правильное) компонент IIs. Например, для windows 2003 выполните следующие действия:http://msdn.microsoft.com/en-us/library/8b83ac7t.aspx
в windows почти все пакеты AMPP (Apache,MySQL,PHP,PHPmyAdmin) не включают почтовый сервер (но почти все голые linuxes имеют!). Итак, при использовании PHP под windows, вам нужно настроить почтовый сервер!
Имо лучший и самый простой инструмент Ист это:http://smtp4dev.codeplex.com/
SMTP4Dev-это простой инструмент почтового сервера с одним файлом, который собирает отправленные им письма (поэтому он действительно не отправляет почту, а просто сохраняет их для разработки). Идеальный инструмент.
для отправки почты с помощью php используется функция mail. Но функция mail необходим SMTP-сервер для отправки электронной почты. нам нужно упомянуть SMTP-хост и SMTP-порт в php.ini-файл. При успешной настройке SMTP сервера письма будут успешно отправлены через php скрипты.
Если вы запускаете свое приложение только на localhost, и оно еще не живет, я считаю, что очень сложно отправлять почту с помощью этого.
Как только вы разместите свое приложение в Интернете, я считаю, что эта проблема должна быть автоматически решена. Но я думаю, что
ini_set()поможет вам изменить значения вphp.iniво время выполнения.
во-первых, вы не вынуждены использовать SMTP на вашем localhost, если вы измените эту запись localhost в DNS-имя MTA от вашего провайдера ISP (который позволит вам ретранслировать почту), он будет работать сразу, поэтому не возиться с вашей собственной службой электронной почты. Просто попробуйте использовать SMTP-серверы ваших провайдеров, он будет работать сразу.
функция PHP mail может отправлять электронную почту в 2 сценариях:
а. Попробуйте отправить письмо через unix sendmail
php не позволяет или думает, что это очень сложно отправить электронную почту с localhost, но эта проблема будет решена, если вы загрузите проект на сервер. и если вы хотите проверить, если электронная почта отправлена или нет на локальном сервере, то вы должны загрузить smtp4dev и установить и запустить его. Это даст вам сообщение, если ваше сообщение было отправлено успешно или есть проблема с вашим кодом.
Comments