При разработке сайтов часто бывает необходимость протестировать отправку почты. Это бывает нужно для реализации различного рода уведомлений пользователей сайтов и подтверждений. Например, уведомление о прочтении личного сообщения, или запрос подтверждения регистрации на сайте.В данной статье будет рассказано как настроить локальный почтовый сервер и посылать письма на тестовый домен.
Пример настройки будет продемонстрирован на примере дистрибутива 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 и пробовать получить, отправленное на первом этапе, письмо. Используйте имя и пароль, которые заданы для пользователя в системе.
Приятной вам переписки с самим собой!

Tags: , ,

3 Responses to “Настройка почтового сервера Linux”

  1.  Evgen Says:

    По мне так лучше Postfix =)

  2.  4ery Says:

    Не пост хороший) полезный)
    Мне правда приятнее гонять imap)

  3.  Андрей Пожарко Says:

    Спасибо большое, полдня провозился, пока не нашел вашу статью. Везде очень подробные заумные маны по настройке, а мне всего-то нужно было 1 строчку подправить в sendmail.cf чтобы убедится, что почта отправляется.