І так притиснуло мені зробити для себе поштовий сервер на своєму сервері. раніше воно працювало з коробки і я горя не знав, але тут виявилося, що треба все робити ну чтож приступимо
По-перше, задайте собі питання а наскільки він потрібен вам?
якщо у вас до 50ти ящиків то дуже рекомендую скористатися поштою від гугла на своєму домені. я вже писав про цей спосіб.
Економія часу і нервів вам забезпечена !.
Якщо ж ви наполегливі, то є 2 способи, обидва проробляв я на своїх серверах, обидва працюють і не лаються.
Дуже рекомендую перший, у другому періодично випадали глюки і доводилося пере запускати демони.
поїхали
Інтерпрітатора буде два, звичайна командний рядок (bash) і mysql
mysql: mysql gt;
Також всі команди будуть від root (зазвичай я запускаю sudo mc і тисну ctrl + o і так виходить консоль від root)
Встановлюємо необхідні пакети, також ставимо phpmyadmin для більш зручного управління базою + веб інтерфейс пошти
aptitude install postfix-mysql mysql-server dovecot-pop3d dovecot-imapd openssl phpmyadmin squirrelmail
Створюємо БД + таблиці можна як і з консолі, так і з phpmyadmin
Мені зручніше з phpmyadmin просто вводячи запити
mysql gt;
create database mailserver;
mysql gt;
grant all on mailserver. * To mailuser @ localhost identified by 'mailuserpasswd';
exit
Потім створіть таблиці в базі даних
Створюємо файли конфігурації для Postfix'a з інформацією про базу даних.
touch / etc / postfix / mysql-virtual-mailbox-domains.cf
user = mailuser
password = mailuserpasswd
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name = '% s'
Цей запит вибирає віртуальні домени (так так наш поштовий сервер буде працювати на кілька доменів як реальних так і віртуальних)
Застосуємо конфігурацію postfix
postconf -e virtual_mailbox_domains = mysql: / etc / postfix / mysql-virtual-mailbox-domains.cf
Додамо в БД запис про перший віртуальному сервері example.com (не забуваємо поставити свій)
$ gt;
mysql - p mailserver
mysql gt;
INSERT INTO virtual_domains # 40; id. name # 41; VALUES # 40; 1. 'example.com' # 41; ;
exit
Перевіримо чи все вірно ми зробили
postmap -q example.com mysql: / etc / postfix / mysql-virtual-mailbox-domains.cf
З'явиться цифра 1 - значить все зроблено правильно.
Тепер створюємо користувачів, за них відповідатиме окрема група. створюємо її
$ gt;
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / home / vmail -m
$ gt;
postconf -e virtual_uid_maps = static: 5000
$ gt;
postconf -e virtual_gid_maps = static: 5000
Створимо тестовий поштову скриньку, наприклад [email protected] з паролем johnpasswd
0. OK "Success.
У поштового сервера postfix є одна особливість - після запуску він працює в chroot оточенні, яке знаходиться в папці / var / spool / postfix /
Робиться це редагуванням файлу / etc / fstab.
/ Var / run / saslauthd / var / spool / postfix / var / run / saslauthd none rw, bind 0 0
Не забудьте поставити [Enter] після останнього рядка.
Створюємо каталог і монтуємо.
mkdir -p / var / spool / postfix / var / run / saslauthd
mount / var / run / saslauthd
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_authenticated_header = yes
smtpd_sasl_application_name = smtpd
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
/ Etc / init.d / postfix restart
tail / var / log / mail.err
tail / var / log / mail.info
tail / var / log / mail.warn
tail / var / log / mail.log
Якщо все чисто, сухо і гладко - звернемося до утиліти telnet, для того, щоб підключитися до нашого сервера.
root @ proxy: / var / log # telnet localhost 25
Trying 127.0.0.1.
Connected to localhost.
Escape character is '^]'.
220 krasfun ESMTP Postfix # 40; Ubuntu # 41;
EHLO www.ru
250 -krasfun
250 -PIPELINING
250 -SIZE 10240000
250 -VRFY
250 -ETRN
250 -STARTTLS
250 -AUTH PLAIN LOGIN
250 -AUTH = PLAIN LOGIN
250 -ENHANCEDSTATUSCODES
250 -8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
root @ proxy: / var / log #
Якщо у вас щось схоже - продовжуємо
Для того, щоб «подружити» saslauthd і postfix необхідно виконати наступне:
adduser postfix sasl
Cyrus - це потужний набір POP3 / NNTP / IMAP і деяких інших демонів для створення повноцінних сервісів роботи з електронною поштою.
Відредагуємо файл /etc/imapd.conf
admins: cyrus
allowplaintext: yes
sasl_mech_list: PLAIN
sasl_pwcheck_method: saslauthd auxprop
sasl_auxprop_plugin: sasldb
Зверніть увагу, що cyrus так само, як і saslauthd, доведеться взаємодіяти з postfix, тому їх потрібно зробити доступними один одному. Скористаємося вже відомим механізмом:
/ Etc / fstab:
/ Var / run / cyrus / var / spool / postfix / var / run / cyrus none rw, bind 0 0
створюємо каталоги для cyrus.
mkdir -p / var / spool / postfix / var / run / saslauthd
mkdir -p / var / spool / postfix / var / run / cyrus
mount / var / spool / postfix / var / run / saslauthd
mount / var / spool / postfix / var / run / cyrus
mount / var / run / cyrus
надамо можливість cyrus забирати пошту у postfix і отпалять пошту на куди завгодно. Відредагуємо файл /etc/postfix/main.cf:
mailbox_transport = lmtp: unix: / var / run / cyrus / socket / lmtp
local_recipient_maps =
Додамо групу і додамо в неї постфікси
addgroup lmtp
adduser postfix lmtp
Далі 2 команди
dpkg-statoverride --remove / var / run / cyrus / socket
dpkg-statoverride --force --update --add cyrus lmtp 750 / var / run / cyrus / socket
Додамо користувача cyrus в нашу базу облікових записів:
saslpasswd2 -c cyrus
Введіть пароль, коли вас про це попросять, і перезапустити наші демони:
/ Etc / init.d / postfix start
/ Etc / init.d / cyrus2.2 restart
/ Etc / init.d / saslauthd restart
Додамо поштового користувача наприклад saber і створимо йому каталоги
saslpasswd2 -c saber
cyradm localhost -user cyrus
localhost> cm user.saber
localhost> cm user.saber.INBOX
localhost> cm user.saber.Sent
localhost> cm user.saber.Draft
localhost> cm user.saber.Trash
cyradm
login cyrus
localhost gt; cm user.saber
localhost gt; cm user.saber.INBOX
localhost gt; cm user.saber.Sent
localhost gt; cm user.saber.Draft
localhost gt; cm user.saber.Trash
Ось як-то так я добаляют користувачів недавно
На цьому все, можна користуватися, рекомендую ще налаштувати шифрування, але мені воно не потрібно було 😉
Налаштування клієнта
Буду на основі Аутглюк експрес.
Додаємо поштовий акаунт, в загальному все як завжди КРІМ
не ставимо галочку
«Використовувати безпечну бла бла SPA»
і ставимо галочку нижче Сервер вихідної пошти «перевірка справжності користувача»
І все можна користуватися 🙂