Итак, проблема заключается в том, что сайт не отправляет письма функцией mail(). Когда запускаю следущий скрипт
PHP:
скопировать код в буфер обмена
<?
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=windows-1251\r\n";
$headers .= "From: Проверка почтового сервера \r\n";
if (mail("admin@localhost", "Тестовое сообщение", "Текст", $headers)) echo "Почтовый сервер работает правильно";
else echo "Почтовый сервер не работает";
?>
в ответ пишет "Почтовый сервер работает правильно"
Установлено: Apache 2.2.11; PHP 5.2.8; Courier Mail Server; sendmail.
Courier Mail Server отправляет письма нормально через SMTP.
В php.ini прописал
Цитата:[mail function]
; For Win32 only.
SMTP =
smtp_port = 25
; For Win32 only.
sendmail_from =
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path ="C:\WEB\sendmail\sendmail.exe -t"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
как было написано в этой статье:
http://www[dot]simplecoding[dot]org/php-[dot][dot][dot]pod-windows[dot]html
а тут конфигурация sendmail.ini
Цитата:
; configuration for fake sendmail
; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail
[sendmail]
; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.
smtp_server=localhost
; smtp port (normally 25)
smtp_port=25
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=auto
; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify
default_domain=localhost
; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging
error_logfile=error.log
; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
debug_logfile=debug.log
; if your smtp server requires authentication, modify the following two lines
auth_username=admin@localhost
auth_password=admin
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines. do not enable unless it is required.
pop3_server=
pop3_username=
pop3_password=
; to force the sender to always be the following email address, uncomment and
; populate with a valid email address. this will only affect the "MAIL FROM"
; command, it won't modify the "From: " header of the message content
force_sender=
; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting. you can manually set the ehlo/helo name if required
hostname=
Посоветуйте пожалуйста что нужно сделать, что бы это все работало как надо.
ЗЫ система Win XP SP3
Спасибо! Кстати только что смог отправить самому себе почту через сервер yandex.ru ))))) Уже прогресс..... Буду мучаться чтобы отправлял через мой сервер на localhost. А за мануал огромное спасибо! Сейчас буду осваивать)
(Добавление)
Кстати... Возник еще вопрос: Интернет провайдер Стрим. А он блокирует порт 25. Если я поменяю порт на 30 то у меня вообще не ходит почта. Что нужно делать если изменил порт? Как отправлять почту со своего сервера например на тот же яндекс?
на твой севрвер не будут приходить письма из-вне... а локально просто обращаться на сообтветсвующий порт... если все правильно на сервере настроено, то все получиться.. но из-вне почта не будет работать.