неділю, 26 вересня 2010 р.

PHP Как настроить сервер для отправки email

1 Как настроить Linux-сервер

Если вы подошли к чтению этой статьи, это означает, что вы решили производить отправку почты посредством транспортного почтового агента (MTA), установленного на Вашем сервере, и столкнулись с проблемами.

Не стоит забывать, что отправка почты при помощи сокетов не требует установленного MTA, а позволяет использовать любой доступный для вас сервер, готовый принимать почту, к примеру, mxs.mail.ru.

Если у вас на экране появилось ошибка "Fatal error: Call to undefined function: mail()", это значит, что либо PHP собран без поддержки функции mail, либо она запрещена настройками сервера. Первое может возникнуть в том случае, если во время сборки скрипт configure не смог найти sendmail. Убедитесь, что путь к sendmail прописан в переменной окружения PATH, и попробуйте пересобрать PHP. Также посмотрите значение переменной disable_functions в файле php.ini.

В случае, если письма принимаются к отправке, но на этом все заканчивается, убедитесь в том, что у вас запущен Sendmail (либо любой другой MTA). Для этого попробуйте выполнить `telnet localhost 25` и если вы в ответ получаете "telnet: connect to address 127.0.0.1: Connection refused" вместо ожидаемого " Connected to localhost.", это означает, что у вас проблемы с MTA. Установка и настройка постовых транспортных агентов не описывается в данной статье, воспользуйтесь специализированными руководствами.

В случае, если попытка обратиться к 25му порту прошла успешно, попробуйте провести следующий сеанс:

# telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 utel.us ESMTP Sendmail /8.12.7/Linux 0.6; Wed, 22 Oct 2003 16:10:45 +0300
helo localhost
250 72.utel.us Hello localhost [127.0.0.1], pleased to meet you
mail from: nobody@localhost
250 2.1.0 nobody@localhost... Sender ok
rcpt to: nobody@localhost
250 2.1.5 nobody@localhost... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Helo world
.
250 2.0.0 h9MDAj1B009029 Message accepted for delivery
quit
Connection closed by foreign host.

Приведенный пример демонстрирует успешный сеанс отправки письма. В случае возникновения ошибок (например, требуется корректный адрес отправителя в строке "mail from"), sendmail выдаст предупреждение, и попросит повторить введенную строку.

Если с командной строки письма успешно отправляются, а при помощи php нет, попробуйте поэкспериментировать с четвертым параметром функции mail либо с настройкой sendmail_path, находящейся в файле php.ini


2 Как настроить Windows-сервер

Вначале необходимо определится, какой SMTP-сервер вы хотите использовать. Это может быть как ваш персональный PC, так и любой другой. Какой бы способ вы не выбрали, вам необходимо установить переменные SMTP, smtp_port, определяющие настройки сервера, отправляющего почту. Также установите переменную sendmail_from, определяющую обратный адрес отправителя.

Дальнейшее инструкции относятся только к тем, кто решил использовать свой персональный PC как сервер исходящей почты.

Проверьте, отвечает ли кто-либо на 25-м порту. Это можно сделать, выполнив `telnet localhost 25`. Если вы получили "Connection refused", это означает, что у вас не запущен почтовый агент, и, вероятнее всего, не установлен. В таком случае Вам необходимо посетить один из следующих ресурсов:

Выберите программу, отвечающую вашим потребностям, и далее следуйте инструкциям по ее установке и применению.

К примеру, приведем инструкцию по настройке первого из них:

  1. Скачать и проинсталлировать ArGoSoft Mail Server
  2. Запустить приложение и выбрать Tools > Options
  3. Выбрать DNS сервер либо предоставить возможность определять его автоматически
  4. В закладке "IP Homes" вести 127.0.0.1
  5. Стартовать сервис ArGoSoft Mail Server и убедиться, что не было сообщений об ошибках
  6. В файле php.ini указать SMTP = localhost

3 Как сделать WEB-доступ к почте

Посетите один из следующих ресурсов:

На любом из них Вы найдете все необходимые скрипты и детальную инструкцию по инсталляции и настройке.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments