Бывает, появляется надобность поднять небольшую почтовую систему на маленьком сервере.Так,чисто отправить почту от имени сайта,и принять,если что напишет.Разумеется не нужно кучи юзеров,не нужна отправка через этот сервер как через SMTP своей почты и т.д. Потому нет смысла юзать базу данных и прочие прелести и возможности.Поэтому тут я опишу как быстро построить почтовик на базе Postfix.   

UPD: 28.02.2017 - добавлено описание доп.функций и изменено описание некоторых старых

1)Для начала установим сам почтовый агент Postfix и клиент POP3:

apt-get install postfix courier-pop maildrop

все зависимости подтянутся сами. Далее на вопросы установщика Postfix отвечаем как угодно,все равно я выложу полный пример конфига.

2) Далее настраиваем /etc/postfix/main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no

readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = twilightspark.lan
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mail.twilightspark.lan, TwilightSpark.twilightspark.lan, localhost.twilightspark.lan, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
default_transport = virtual
relay_transport = virtual
home_mailbox = Maildir/
inet_protocols = ipv4
queue_directory = /var/spool/postfix
smtpd_helo_required = yes
virtual_mailbox_domains = twilightspark.lan
virtual_mailbox_base = /var/mail
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
local_recipient_maps = $virtual_mailbox_maps

3)Создадим файл с алиасами на адреса:

nano /etc/postfix/aliases

Запишем в него:
postmaster root
И прохешируем:

postmap /etc/postfix/aliases

Создадим место для хранения почты для нашего домена(если еще нет,что врят ли):
mkdir /var/mail/

Создадим группу virtual и пользователя virtual для работы с почтовыми ящиками:
groupadd -g 5000 virtual
useradd -g virtual -u 5000 virtual

chown virtual:virtual /var/mail/
chmod 770 /var/mail/

Теперь создадим пользователя и почтовый ящик к нему(берем для примера след.данные):
Логин user
Адрес user@server.com

Создадим необходимые файлы в Postfix:
touch /etc/postfix/vmailbox
touch /etc/postfix/virtual
 

Пропишем в Postfix данные о новом почтовом ящике. Для этого в файл /etc/postfix/vmailbox допишем строку:
user@server.com user/

Создадим для примера алиас на этот почтовый ящик. Для этого в файл /etc/postfix/virtual допишем строку:
webmaster@server.com user@server.com

Прохешируем эти два файла:
postmap /etc/postfix/virtual
postmap /etc/postfix/vmailbox

Теперь нужно перезапустить Postfix:
/etc/init.d/postfix restart

 

Далее настроим courier-authdaemon что б он использовал свою базу,а не РАМ:

В /etc/courier/authdaemonrc меняем строчку на:

authmodulelist="authuserdb"

Создаем первого пользователя:

userdb user set uid=vmail gid=vmail home=/home/user mail=/var/mail/user

Задаем ему пароль:

userdbpw -md5 | userdb fred set systempw

Далее обязательно захешируем нашу базу,иначе не будет работать:

makeuserdb

Перезагружаем courier-authdaemon и пробуем подключаться.

8 комментариев

  1. avatar михаил:

    А че такое /etc/courier/authdaemonrc у меня нету.... тогда и смысла по гайду настраивать нет




    0



    0
  2. Подскажите новичку, что такое прохешируем эти два файла, захешируем? Нужно поставить символ # или // ? Но где и как не понятно?




    0



    0
    • Прохешируем эти два файла:
      postmap /etc/postfix/virtual
      postmap /etc/postfix/vmailbox

      Тут имеется ввиду не использование символов хеша #, а запуск специальной программы postmap которая по своему алгоритму прохеширует файлы vmailbox & virtual. В данном случае можно сказать что хеширование - это просто перевод текстового файла в двоичный по определенному алгоритму,понятному программе.
      Само собой никаких символов нигде ставить не надо.Просто запустить программу postmap и задать ей имя файла в качестве параметра.




      1



      0
  3. avatar Иван:

    Добрый день, пишите

    Теперь создадим пользователя и почтовый ящик к нему(берем для примера след.данные):
    Логин user
    Адрес user@server.com

    а самого создания пользователя нет, только о почтовом ящике




    0



    0
    • Все верно.Слово "берем" тут используется в смысле что берем для примера создания нового пользователя такое-то имя.
      А дальше как раз описано как мы его создаем.




      0



      0
  4. avatar Святослав:

    Добрый день, подскажите, стоит centOS 6 при создании пользователя пишет нет такой команды "userdb user set uid=vmail gid=vmail home=/home/user mail=/var/mail/user".
    Нужно добавить что-то ?




    0



    0

Добавить комментарий

%d такие блоггеры, как: