Не удалось подключиться к почтовому серверу через порт localhost - PullRequest
62 голосов
/ 26 декабря 2010

Я получаю эту ошибку, когда пытаюсь отправить письмо на 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:\wamp\www\dressoholic\register.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 = you@yoursite.com

Я используюмой ноутбук как сервер .. Что я делаю не так?Спасибо.

Ответы [ 7 ]

29 голосов
/ 26 декабря 2010

Вам необходимо запустить почтовый сервер локально.Если это Unix, включите sendmail. Если это Windows, установите компонент Simple Mail Transfer Server (не уверен, что имя правильное) компонента IIs.Например, для Windows 2003 следуйте этому: http://msdn.microsoft.com/en-us/library/8b83ac7t.aspx

20 голосов
/ 16 сентября 2012

Для отправки писем с использованием функции php mail используется. Но для работы почты требуется SMTP-сервер для отправки писем. нам нужно упомянуть SMTP-хост и SMTP-порт в файле php.ini. При успешной настройке SMTP-сервера письма будут успешно отправляться через php-скрипты.

19 голосов
/ 14 мая 2013

В Windows почти все пакеты AMPP (Apache, MySQL, PHP, PHPmyAdmin) не включают в себя почтовый сервер (но почти во всех голых linux есть!).Таким образом, при использовании PHP под Windows вам нужно настроить почтовый сервер!

Imo лучший и самый простой инструмент: http://smtp4dev.codeplex.com/

SMTP4Dev - простой почтовый сервер с одним файломинструмент, который собирает отправленные им письма (поэтому он на самом деле не отправляет почту, он просто сохраняет их для разработки).Идеальный инструмент.

9 голосов
/ 17 сентября 2012

Если вы запускаете свое приложение только на локальном хосте, а оно еще не запущено, я считаю, что отправлять почту с помощью этого очень сложно.

Как только вы разместите свое приложение в сети, я считаю, что эта проблема должнабыть автоматически решена.Но я думаю, ini_set() поможет вам изменить значения в php.ini во время выполнения.

8 голосов
/ 21 сентября 2012

Прежде всего, вы не обязаны использовать SMTP на своем локальном хосте, если вы измените эту запись локального хоста на DNS-имя MTA от вашего провайдера интернет-провайдера (который позволит вам пересылать почту), он будет работать сразу же. так что не стоит возиться с собственным почтовым сервисом. Просто попробуйте использовать SMTP-серверы вашего провайдера, он сразу заработает.

3 голосов
/ 19 сентября 2012

Функция PHP mail может отправлять электронную почту в 2 сценариях:

а. Попробуйте отправить письмо через программу unix sendmail В Linux он будет запускать программу «sendmail», помещать все параметры в sendmail и все.

OR

б. Подключитесь к почтовому серверу (используя протокол SMTP и host / port / username / pass из php.ini) и попытайтесь отправить электронное письмо.

Если php не сможет подключиться к серверу электронной почты, он выдаст предупреждение (и вы видите такую ​​работу в своих журналах) Чтобы решить эту проблему, установите SMTP-сервер на вашем локальном компьютере или используйте любой доступный сервер. Как настроить / настроить smtp вы можете найти на php.net

0 голосов
/ 28 сентября 2017

php не разрешает или считает, что отправка электронной почты с локального хоста очень сложна, но эта проблема будет решена, если вы загрузите проект на сервер.и если вы хотите проверить, отправлено ли электронное письмо на локальный сервер или нет, вам нужно скачать smtp4dev, установить и запустить его.Это даст вам сообщение, если ваше электронное письмо было успешно отправлено или возникла проблема с вашим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...