При разработке сайтов часто бывает необходимость протестировать отправку почты. Это бывает нужно для реализации различного рода уведомлений пользователей сайтов и подтверждений. Например, уведомление о прочтении личного сообщения, или запрос подтверждения регистрации на сайте.В данной статье будет рассказано как настроить локальный почтовый сервер и посылать письма на тестовый домен.
Пример настройки будет продемонстрирован на примере дистрибутива openSUSE 11. Данный дистрибутив хоть и имеет графический интерфейс для настройки почтового сервера, но использовать мы его не будем, чтобы это могло быть использовано на большем количестве дистрибутивов.
Настройка состоит из двух главных этапов:
- Настройка сервера SMTP
- Настройка сервера POP3
Существуют и другие этапы, но они скорее вспомогательные для данных двух.
Для Настройки почтового сервера SMTP нам потребуется пакет sendmail. Пользователи каждого из дистрибутивов могут установить его своим любимым способом. В openSUSE это можно, например, сделать при помощи Yast2 (графический интерфейс). Так же можно воспользоваться утилитой yum.
yum install sendmail
И наконец просто rpm или тем менеджером пакетов, что есть в вашем дистрибутиве.
Далее нужно настроить тестовый, на который му будем посылать письма. Пусть это будет mydomain.test. Для этого можно просто прописать файле /etc/hosts прописываем после localhost через пробел имя своего домена.
127.0.0.1 localhost mydomain.test
Но если у вас уже создан свой тестовый сайт, то скорее всего этот подэтап был сделан, а так же прописаны необходимые настройки в файле httpd.conf для того чтобы сайт был доступен в браузере именно как сайт.
Теперь настроим установленный sendmail. В файле /etc/sendmail.cf ищем строку “#Dj$w.Foo.COM” и меняем ее на “Djmydomain.test”. Тоесть мы убрали символ решетки, вписали свой адрес без пробела между Dj и доменным именем. Теперь нам потребуется перезапустить службу sendmail.
/etc/init.d/sendmail restart
Если вы настраивали Apache (httpd.conf), то перед этим так же необходимо перезапустить и его.
/etc/init.d/apache2 restart
Далее мы можем проверить работоспособность сервера. В консоли надо ввести следующее
telnet localhost 25
И если мы получили ответ, то мы все сделали правильно. Теперь вы можете посылать письмо пользователям, которые есть в системе. Например если у вас в системе зарегистрирован пользователь с логином izumeroot, то вы можете отправить почту на адрес izumeroot@domain.test. Проще всего это сейчас проверить из почтового клиента. Нужно создать учетную запись с SMTP-сервером smtp.domain.test и выбрать ее при отправке письма.
Отправленное письмо попадет в папку /var/spool/mail/. Вы можете посмотреть его любым текстовым редактором. Итак, первая часть пройдена. Мы настроили почтовый сервер SMTP под Linux.
Сейчас мы приступим ко второй части. Настройка почтового сервера POP3.
В качестве подготовительного этапа вам необходимо запустить службу xinetd и сделать так, чтобы она всегда была запущена. xinetd - это the eXtended InterNET services Daemon. xinetd выполняет те же функции что и inetd: он запускает процессы которые предоставляют различные сервисы интернет. В отличие от сервисов которые стартуют во время инициализации системы и пребывают в бездействии в ожидании запросов, xinetd представляет собой только один процесс слушающий на всех портах сервисов перечисленных в файле конфигурации xinetd.conf. Когда приходит запрос xinetd запускает соответствующий сервер. По причине такой работы xinetd (так же как и inetd) называют еще супер-сервером.
Далее через свой любимый менеджер пакетов устанавливаем сервер qpopper установлен. Может конечно, что он заработает и без настроек, но не стоит на это полностью рассчитывать. Откроем файл /etc/xinetd.conf. Если у вас там есть строка includedir /etc/xinetd.d, то все настройки находятся в этой директории. Поэтому переходим туда и открываем файл kwrite /etc/xinetd.d/qpopper. Он будет иметь примерно следующее содержание:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # # qpopper - pop3 mail daemon # service pop3 { disabled = no port = 110 socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/popper server_args = -s } |
Если значение какой-либо из этих опций у вас не такое, то исправьте на верное. Часто бывает установлено disabled = yes, что приводит к блокированию сервера.
Перезагрузим компьютер. После чего попробуем достучаться к серверу telnet localhost 110. Сервер должен ответить. Теперь можем вписывать в почтовом клиенте сервер входящей почты pop3.mydomain.test и пробовать получить, отправленное на первом этапе, письмо. Используйте имя и пароль, которые заданы для пользователя в системе.
Приятной вам переписки с самим собой!
По мне так лучше Postfix =)
Не пост хороший) полезный)
Мне правда приятнее гонять imap)
Спасибо большое, полдня провозился, пока не нашел вашу статью. Везде очень подробные заумные маны по настройке, а мне всего-то нужно было 1 строчку подправить в sendmail.cf чтобы убедится, что почта отправляется.