Я продолжаю получать эту ошибку, когда пытаюсь отправить электронное письмо в 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
Я использую свой ноутбук в качестве сервера. Что я делаю неправильно? Благодарю.
Вы должны запускать почтовый сервер локально. Если это Unix, включите sendmail. Если это Windows, установите Simple Mail Transfer Server (не уверен, правильно ли это имя) компонент II. Например, для Windows 2003 выполните следующие действия: http://msdn.microsoft.com/en-us/library/8b83ac7t.aspx
В окнах почти все пакеты AMPP (Apache, MySQL, PHP, PHPmyAdmin) не включают почтовый сервер (но у почти всех обнаженных linux есть!). Итак, при использовании PHP под окнами вам нужно настроить почтовый сервер!
Imo лучший и самый простой инструмент ist this: http://smtp4dev.codeplex.com/
SMTP4Dev – это простой инструмент для работы с почтовым сервером, который собирает отправленные письма (поэтому он не отправляет почту, а просто сохраняет их для разработки). Идеальный инструмент.
Для отправки почты используется функция php mail. Но для функции электронной почты требуется SMTP-сервер для отправки сообщений электронной почты. мы должны упомянуть SMTP-хост и SMTP-порт в файле php.ini. После успешной настройки SMTP-сервера письма будут отправлены успешно отправленными через php-скрипты.
Если вы запускаете свое приложение только на локальном хосте, и оно еще не вживлено, я считаю, что отправлять эту почту очень сложно.
После того, как вы разместите свое приложение онлайн, я считаю, что эта проблема должна быть автоматически решена. Bbut Я думаю, что ini_set()
помогает вам изменять значения в php.ini
во время выполнения.
Прежде всего, вы не будете вынуждены использовать SMTP на своем локальном хосте, если вы измените эту запись localhost на DNS-имя MTA у вашего провайдера интернет-провайдера (который позволит вам пересылать почту), он будет работать сразу, поэтому нет возиться с вашим собственным почтовым сервисом. Просто попробуйте использовать SMTP-серверы ваших поставщиков, он будет работать сразу.
Функция почты PHP может отправлять электронную почту в двух сценариях:
а. Попробуйте отправить электронную почту через unix sendmail. В linux будет исполняться программа «sendmail», поместить все параметры в sendmail и все.
ИЛИ
б. Подключитесь к почтовому серверу (используя протокол smtp и host / port / username / pass from php.ini) и попробуйте отправить электронное письмо.
Если php не сможет подключиться к серверу электронной почты, он даст предупреждение (и вы увидите такую работу в ваших журналах). Чтобы решить эту проблему, установите smtp-сервер на локальный компьютер или используйте любой доступный сервер. Как настроить / настроить smtp, вы можете найти на php.net
php позволяет отправлять электронную почту с localhost, но эта проблема будет решена, если вы поместите проект на сервер. или если вы хотите проверить, отправлено ли мое электронное письмо или нет, вам необходимо загрузить smtp4dev и установить его. Это даст вам сообщение, если ваша электронная почта будет успешно отправлена или в вашем коде будет проблема.