В этой статье я хочу рассказать об отправке…
В этой статье я хочу рассказать об отправке почты из php скриптов под Windows. С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail(). И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере. Обычно эти ошибки имеют примерно такое описание: 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 E:\www\simplemail\mailer. php on line…… Дело в том, что функция mail сама по себе почту не отправляет, она просто вызывает программу sendmail, которая в дистрибутив web сервера и php интерпретатора не входит (и не должна). Sendmail, в свою очередь, для отправки почты использует SMTP сервер. Таким образом, чтобы php скрипт мог отправлять почту нужно установить и настроить sendmail и SMTP сервер. Версию sendmail для Windows можно скачать здесь. Установка и настройка выполняется в три этапа. 1) Распаковываем архив на тот же диск, где установлен php. Например, я создал папку C:\wamp\sendmail. 2) Вносим изменения в файл php. ini: [mail function] SMTP = sendmail_from = sendmail_path = “C:\wamp\sendmail\sendmail. exe – t” Как видите, нужно только указать путь к sendmail чтобы php мог ее найти. 3) Настраиваем sendmail. Все настройки находятся в файле sendmail. ini (расположен в папке с sendmail). Но перед тем как приступать к настройке пару слов об SMTP сервере. Вам совсем не обязательно устанавливать сервер на вашем компьютере.
Многие почтовые сервисы предоставляют бесплатный доступ к своим серверам. Ниже я покажу пример настройки sendmail для работы с SMTP сервером mail. ru, но, естественно, вы выбрать любой другой. Итак, открываем sendmail. ini и устанавливаем следующие параметры: smtp_server=smtp. mail. ru ; адрес SMTP сервера smtp_port=25 ; порт SMTP сервера default_domain=mail. ru ; домен по-умолчанию error_logfile=error. log ; файл в который будет записываться лог ошибок debug_logfile=debug. log ; очень полезная на этапе отладки опция. Протоколируются все операции, которые выполняет sendmail auth_username=account_name@mail. ru ; имя вашего аккаунта auth_password=account_password ; ваш пароль ; следующие три опции используются если перед авторизацией на SMTP сервере требуется авторизация на POP3 сервере pop3_server=pop. mail. ru pop3_username=account_name@mail. ru pop3_password=account_password ; параметр для команды MAIL FROM force_sender=account_name@mail. ru hostname=mail. ru Теперь не забудьте перезапустить web сервер, чтобы изменения вступили в силу. Чтобы протестировать работу почты напишем простенький скрипт: