среда, 25 февраля 2009 г.

Mail server в Ubuntu

Я постараюсь подробно описать, как я настраивал mail server, чтобы обеспечить поддержку нескольких доменов, доступ по IMAP и POP3, защищеное соединение, веб-доступ к почте и многое другое. Это будет полезно новичкам в этом деле, да и мне самому, если потребуется повторить процесс...


1. Имя хоста и RDNS


Перед тем, как настраивать почтовый сервер, вам стоит убедиться, что на вашем хостинге правильно настроены названия хоста и RDNS. RDNS позволяет идентифицировать легитимность сервера, и уменьшает шанс того, что ваши письма будут классифицированы, как спам существующими спам-фильтрами.

Для примера, я буду использовать названия доменов domen1.com и domen2.ru. Оба этих домена должны быть зарегистрированы и иметь соответствующие ДНС записи (в частности MX записи, необходимые для корректного функционирования почтового сервера)

Проверим имя хоста:

 hostname -f  

Если оно отличается от доменного имени вашего будущего сервера - требуется его поменять.

Для этого отредактируем два файла:
 sudo nano /etc/hostname  

Замените существующее имя на mail.domen1.com.

И второй файл:

 sudo nano /etc/hosts  

Так же убедитесь, что старое название хоста изменено на новое.

После изменения названия хоста - перегрузите вашу систему.

Теперь снова проверим имя хоста:

 hostname -f  

На экран выводится:
 mail.domen1.com  

Замечательно. Первый шаг выполнен.

Теперь нужно проверить RDNS (reverse DNS). У разных провайдеров это настраивается по разному, в зависимости от особенностей реализации панели управления.

Вы должны прописать соответствие вашего внешнего IP-адреса имени почтового сервера, например mail.domen1.com - 231.123.134.12

Проверить настройки RDNS просто. Установите пакет dnsutils.

 sudo aptitude install dnsutils  

После установки, выполните проверку:

 dig -x 231.123.134.12  



Если вывод имеет такие строки,

 dig -x 231.123.134.12  
 ...  
 ...  
 ;; QUESTION SECTION:  
 ;231.123.134.12.in-addr.arpa. IN PTR  
 ;; ANSWER SECTION:  
 231.123.134.12.in-addr.arpa. 3477 IN PTR mail.domen1.com.  
 
то все нормально. Можем продолжать.

2. Настройка места физического расположения почты на сервере


Самый простой способ настроить место для хранения почты - создать пользователя vmail с соответствующей группой и назначить ему специфичный userID.

Конечно, в будущем мы настроим MySQL для обеспечения работы сервера с многочисленными пользователями и доменами, но почта не будет храниться в базе данных. База будет использоваться только для поиска соответствующих пользователей и определения деталей доставки почты.

Пользователь vmail создается как обычно, но с некоторым отличием: мы указываем, что пользователь не может логиниться в систему.

Для начала создадим группу vmail:
 sudo groupadd -g 5000 vmail  



Это команда создает группу vmail и присваивает ее GID (group ID) 5000.

Затем создаем пользователя vmail:

 sudo useradd -s /usr/sbin/nologin -g vmail -u 5000 vmail -d /home/vmail -m  



Эта команда создает пользователя vmail, чтобы он не мог логиниться в систему, присваивает его группе vmail, а так же создает ему домашнюю директорию /home/vmail

3. Установка сервера Postfix и MySQL


Выполните команду:

 sudo aptitude install postfix postfix-mysql mysql-server postfix-tls libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet mailx  



Эта команда дополнительно к Postfix и MySQL установит пакеты mailx и telnet, которые будут очень удобны в процессе тестирования настроек.

В процессе установки MySQL сервера потребуется установить (и подтвердить) пароль для администратора (пользователь root).

В процессе установки Postfix сервера вначале система выведет на экран окно с информацией, после чего потребуется выбрать пункт 'Internet Site'.



На следующем окне



введите имя вашего почтового домена mail.domen1.com.

Можно протестировать установку почтового сервера. Для этого отправим себе с него постовое сообщение.

Выполните команду:

 mail address@example.com  



address@example.com должен быть реальным действующим адресом, который вы можете проверить на предмет новой почты.

После нажатия на клавишу ввода потребуется ввести тему сообщения. После следующего нажатия - текст письма. Тест письма любой, можно сколько угодно пользоваться клавишей ввода. Признаком окончания тела письма является символ точки с начала новой строки, с последующим нажатием на клавишу ввод.

Далее система спросит адрес для копий письма, последний ввод, - и письмо отправлено.

 mail adress@example.com  
 Subject: test email from domen1.com  
 Это, собственно  
 письмо  
 с уважением,  
 Я  
 .  
 Cc:  
 


Удобная штучка для отсылки писем в терминале, да? Рекомендую! Это пакет mailx, который мы установили чуть ранее.

Проверяйте ящик adress@example.com. Пришло письмо? Замечательно! Можем двигаться дальше.

4. Настройка базы данных MySQL


Далее будет много текстового ввода в терминале - не пугаемся. Всегда можно воспользоваться копированием через буфер обмена ;)

Для начала создадим базу данных с оригинальным названием - mail.
 mysqladmin -u root -p create mail  
 

В процессе выполнения команды система вас попросит ввести пароль администратора MySQL (вы его ввели при инсталляции MySQL).

Далее залогинимся в MySQL и создадим несколько таблиц.
 mysql -u root -p  
 
Для начала создадим пользователя БД, для наших целей...
 CREATE USER 'mailadmin'@'localhost' IDENTIFIED BY 'MyPasswordHere';  
 
Замените MyPasswordHere на свой собственный пароль.

Далее, дадим этому пользователю необходимые привелегии: SELECT, INSERT, UPDATE, DELETE.

 FLUSH PRIVILEGES; 
 GRANT SELECT, INSERT, UPDATE, DELETE ON `mail` . * TO 'mailadmin'@'localhost';  
 FLUSH PRIVILEGES;  
 
Теперь мы можем выбрать нашу БД mail и создать необходимые таблицы.

 USE mail;  
 

Необходимо создать три таблицы для хранения почтовых доменов, пользователей и деталей доставки сообщений (форвардинг сообщений).

Таблица доменов. В Mysql введите следующие команды:

 CREATE TABLE domains ( 
 domain varchar(50) NOT NULL, 
 PRIMARY KEY (domain) 
 )
 TYPE=MyISAM;  
 

Не забываем вводить точку с запятой (;) в конце команды SQL, иначе она не будет выполнена.

Таблица пользователей. Как раньше, введите в MySQL:

 CREATE TABLE users (  
 email varchar(80) NOT NULL,  
 password varchar(20) NOT NULL,  
 PRIMARY KEY (email)  
 )  
 TYPE=MyISAM;  
 

Таблица форвардинга:

 CREATE TABLE forwards (  
 source varchar(80) NOT NULL,  
 destination TEXT NOT NULL,  
 PRIMARY KEY (source)  
 )  
 TYPE=MyISAM;[/sourcecode]  
quit;  
 

Вы вернулись обратно в командную строку терминала.

Не волнуйтесь, что при создании таблицы пользователей поле пароля определено как текстовое. При создании пароля, мы его зашифруем перед записью в таблицу.

5. Настройка Postfix для использования базы данных MySQL


Для того, чтобы Postfix мог использовать таблицы MySQL, необходимо создать несколько настроечных файлов.

Каждый из этих файлов достаточно прост: он содержит название БД, имя, пароль, SQL-запрос и название хоста. Эти файлы подсказывают Postfix-у, как выбирать данные из созданных нами ранее таблиц.

Домены.


Создадим текстовый файл:
 sudo nano /etc/postfix/mysql-domains.cf  
 

Введем следующие строки:

 user = mailadmin  
 password = MyPasswordHere  
 dbname = mail  
 query = SELECT domain AS virtual FROM domains WHERE domain='%s'  
 hosts = 127.0.0.1  
 

Помним: MyPasswordHere надо заменить на введенный при создании пользователя БД mailadmin пароль.

Форвардинг.


Создаем файл:

 sudo nano /etc/postfix/mysql-forwards.cf  
 

Заполняем его:

 user = mailadmin  
 password = MyPasswordHere  
 dbname = mail  
 query = SELECT destination FROM forwards WHERE source='%s'  
 hosts = 127.0.0.1  
 

Почтовые ящики.


Каждый домен имеет множество различных почтовых ящиков. Этот скрипт получает правильные характеристики почтового ящика.

 sudo nano /etc/postfix/mysql-mailboxes.cf  
 

Содержимое:

user = mailadmin password = MyPasswordHere dbname = mail query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s' hosts = 127.0.0.1

E-Mail адреса.


И наконец создадим файл адресов.

 sudo nano /etc/postfix/mysql-email.cf  
 

Содержимое:

user = mailadmin password = MyPasswordHere dbname = mail query = SELECT email FROM users WHERE email='%s' hosts = 127.0.0.1
с файлами все.

Эти четыре файла позволят Postfix-у получить доступ к информации в базе данных mail и присвоить корректные данные каждому письму.

Полномочия на файлы


Да, чуть не забыл. Необходимо еще установить правильный доступ к этим файлам:

 sudo chmod o= /etc/postfix/mysql-*  
 
(другие группы не имеют доступа к файлам.

И сменим владельца:
 sudo chgrp postfix /etc/postfix/mysql-*  
 

Postfix должен иметь к ним доступ.

Настройки Postfix


Отредактируем файл настроек Postfix:
 sudo nano /etc/postfix/main.cf  
 

Обычно нижняя часть файла выглядит так:
 myhostname = mail.domen1.com  
 alias_maps = hash:/etc/aliases  
 alias_database = hash:/etc/aliases  
 myorigin = /etc/mailname  
 mydestination =  
 relayhost =  
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128  
 mailbox_size_limit = 0  
 recipient_delimiter = +  
 inet_interfaces = all  
 
Убедитесь, что mydestination не сделано присвоение.

Добавим ссылки на созданные файлы настроек, чтобы Postfix использовал их в процессе работы. В конец файла добавьте строки:
 virtual_alias_domains =  
 virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-forwards.cf, mysql:/etc/postfix/mysql-email.cf  
 virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-domains.cf  
 virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-mailboxes.cf  
 virtual_mailbox_base = /home/vmail  
 virtual_uid_maps = static:5000  
 virtual_gid_maps = static:5000  
 proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps  
 

6. Безопасное соединение - настраиваем Saslauthd


Saslauthd требуется для того, чтобы устанавливать безопасные соединения с вашим почтовым сервером.

Saslauthd


Посмотрим основной файл настроек программы:
 sudo nano /etc/default/saslauthd  
 

Первым делом надо установить автоматический запуск демона (поменяйте значение на 'yes'. По умолчанию стоит 'no'):
 # Should saslauthd run automatically on startup? (default: no)  
 START=yes  
 

Далее нужно изменить некоторые опции в конце файла. По умолчанию они выглядят так:
 #  
 # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"  
 OPTIONS="-c -m /var/run/saslauthd"  
 

Изменим их следующим образом (мы же запускаем Postfix):
 #  
 # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"  
 OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"  
 

Кстати...Мы только что указали каталог, который не существует в природе. Непорядок. Устраним это:
 sudo mkdir -p /var/spool/postfix/var/run/saslauthd  
 

MySQL


Мы же используем MySQL для хранения наших идентификационных данных. Точнее не наших, а пользователей сервера. Значит процесс авторизации должен знать, где брать данные.
Создадим два файла, чтобы процесс мог получить доступ к базе данных и добыть необходимую ему информацию:

 sudo nano /etc/pam.d/smtp[/sourcecode]  
 Добавим в этот файл следующий текст:  
 [sourcecode language='bash']auth    required   pam_mysql.so user=mailadmin passwd=MyPasswordHere host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1  
 account sufficient pam_mysql.so user=mailadmin passwd=MyPasswordHere host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1  
 

Это позволит процессу авторизации иметь доступ к БД для проверки пароля и e-mail-а.

И второй файл:
 sudo nano /etc/postfix/sasl/smtpd.conf  
 
Его содержимое следующее:
 pwcheck_method: saslauthd  
 mech_list: plain login  
 allow_plaintext: true  
 auxprop_plugin: mysql  
 sql_hostnames: 127.0.0.1  
 sql_user: mailadmin  
 sql_passwd: MyPasswordHere  
 sql_database: mail  
 sql_select: select password from users where email = '%u'  
 

По моему, тут ничего особо не надо пояснять, текст говорит сам за себя.

Для того, чтобы Postfix мог получить доступ к процессу Saslauthd, добавим пользователя Postfix в группу Saslauthd (Это же Лииинукс!!!) ;)).
 sudo adduser postfix sasl  
 

Поменяли кучу настроек. Время перезапустить демоны:
 sudo /etc/init.d/postfix restart  
 sudo /etc/init.d/saslauthd restart  
 

Создаем SSL-сертификат


Создадим сертификат безопасности. По умолчанию он будет создан в каталоге /etc/ssl/certs.
 sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/certs/mailcert.pem  
 

В процессе создания, вам зададут несколько вопросов. Ответить можно, например так:
 Country Name - RU  
 State or Province -  
 Locality name - Moscow  
 Organisation Name - MyGreat Company  
 Organisational Unit Name - Mail  
 Hostname - mail.domen1.com  
 Email address - admin@domen1.com  
 

Важно, чтобы Hostname совпадал с именем mail server-а -- hostname. В нашем случае, это mail.domen1.com.
Мы создали самоподписанный сертификат здесь:
 /etc/ssl/certs/mailcert.pem  
 

Настраиваем Postfix


Теперь требуется отредактировать главный файл настроек Postfix:
 sudo nano /etc/postfix/main.cf  
 

Найдите секцию TLS parameters. Настройки по умолчанию в ней выглядят так:
 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_sasl_auth_enable = yes  
 broken_sasl_auth_clients = yes  
 smtpd_sasl_authenticated_header = yes  
 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination  
 smtpd_use_tls = yes  
 smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem  
 smtpd_tls_key_file = $smtpd_tls_cert_file  
 

Тем самым мы активировали безопасные соединения, перечислили, какие соединения будем принимать, и, наконец, указали путь к сертификату.

7. Устанавливаем Courier


Courier позволит нам получить POP3 и IMAP доступ к нашей почте.

Установка Courier


Установка достаточна проста, с использованием aptitude:
 sudo aptitude install courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl  
 

Во время установки вам будет задан вопрос, нужно ли создать директории. Правильный ответ - НЕТ (это ответ по умолчанию, так что можете просто нажать клавишу ввода)!

Настройка Courier


Для начала отредактируем файл:
 sudo nano /etc/courier/authdaemonrc  
 
Поменяйте строку
 authmodulelist="authpam"  
 
на
 authmodulelist="authmysql"  
 
Понятно для чего, да? Мы же используем MySQL!

Далее редактируем файл с деталями БД:
 sudo nano /etc/courier/authmysqlrc  
 

Чтобы не заморачиваться - удалите в нем все содержимое, и вставьте следующее:
 MYSQL_SERVER localhost  
 MYSQL_USERNAME mailadmin  
 MYSQL_PASSWORD MyPasswordHere  
 MYSQL_PORT 0  
 MYSQL_DATABASE mail  
 MYSQL_USER_TABLE users  
 MYSQL_CRYPT_PWFIELD password  
 MYSQL_UID_FIELD 5000  
 MYSQL_GID_FIELD 5000  
 MYSQL_LOGIN_FIELD email  
 MYSQL_HOME_FIELD "/home/vmail"  
 MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')  
 

Сохраните файл.
После изменения файлов настроек, требуется рестартовать демоны:
 sudo /etc/init.d/courier-authdaemon restart  
 sudo /etc/init.d/courier-imap restart  
 sudo /etc/init.d/courier-imap-ssl restart  
 sudo /etc/init.d/courier-pop restart  
 sudo /etc/init.d/courier-pop-ssl restart  
 

8. Настраиваем firewall


Не буду здесь описывать настройки файрволла. Они у всех разные... Я например, использую Shorewall, кто-то IPTables... Дело вкуса.
Нужно дать доступ по портам: 25 (SMTP), 110, 995 (POP, POPS), 143, 993 (IMAP, IMAPS).

9. Добавляем домены и пользователей в таблицы БД


Нужно заполнить таблички в MySQL, чтобы все то, что мы настроили ранее заработало.

Логинимся в MySQL:
 mysql -u root -p  
 
Выбираем базу данных:
 USE mail;  
 

Заполняем таблицу доменов:
 INSERT INTO `domains` (`domain`) VALUES ('domen1.com');  
 

Чтобы ввести любой другой домен, выполните аналогичную команду:
 INSERT INTO `domains` (`domain`) VALUES ('domen2.ru');  
 

Заполняем таблицу пользователей:
 INSERT INTO `users` (`email`, `password`) VALUES ('admin@domen1.com', ENCRYPT('secretpassword'));  
 

Остальные пользователи вводятся аналогично:
 INSERT INTO `users` (`email`, `password`) VALUES ('kot@domen2.ru', ENCRYPT('secretpassword'));  
 

Когда все таблицы заполнены - выходим из ведения БД:
 quit;  
 

Перегружаем postfix:
 sudo postfix reload  
 

Проверим, работает или нет?
Давайте отправим почтовое сообщение по одному из введенных адресов: admin@domen1.com
 mail admin@domen1.com  
 
Введите тело и тему письма и отправьте его адресату. Через какое-то время проверьте папку /home/vmail:
 ls /home/vmail  
 

Увидите новый каталог:
 /home/vmail/domen1.com  
 
А для каждого пользователя домена domen1.com в папке /home/vmail/domen1.com будет создан собственный каталог с письмами.

Почта уже работает. Остались небольшие дополнения, но о них в следующей статье. Так же в конце мы убедимся, что наш сервер не используется спамерами для несанкционированных рассылок - об этом еще одна статья
Спасибо за внимание.

При подготовке статьи использовались материалы сайта slicehost.com

57 комментариев:

  1. Большое спасибо!
    Очень надо, если допишете, то сегодня проверю на своей шкуре

    ОтветитьУдалить
  2. @KrasniyRus, постараюсь как можно скорее... Времени мало, к сожалению.
    Этот способ я опробовал в выходные.
    Заметите ошибки - пишите, буду исправлять ;)

    ОтветитьУдалить
  3. А для каждого пользователя домена domen1.com в папке /home/vmail/domen1.com будет создан собственный каталог с письмами.

    Письма приходят но там не чего не создается. в логах не чего подозрительного нет

    ОтветитьУдалить
  4. @SWest, только один почтовый домен пробовали? На других тоже не работает?

    ОтветитьУдалить
  5. Мда... Таких статей полно :) А суть-то никто не объясняет. Напр., по какому принципу объединяются в одну систему (эл. почты, напр.) три независимых продукта: postfix, courier и sasl

    ОтветитьУдалить
  6. @vlakas, такие статьи призваны помочь что-то сделать быстро. А вот если вы хотите еще и понять, тогда маны вам в помощь. Согласитесь, свою голову тоже надо использовать, чтобы думать, а не только есть разжеванный материал.

    ОтветитьУдалить
  7. @SWest, трудно сказать в чем дело, сами понимаете... Может каких-нибудь полномочий не хватает на создание папок... Попробуйте создать их вручную...

    ОтветитьУдалить
  8. добрый день
    поставил mail сервер по этому мануалу, все завелось, но нельзя войти в свой ящик не принемает имя пользователя и пароль, в какую сторону копать?

    ОтветитьУдалить
  9. пасиба за статью очинь памагла

    долго мучилса (чиса два) с авторизацыей пользователя и наканетста дарубил как правельно это делать

    в поле логина на маил-кликнте нада писать
    имя-юзера@хост.ком

    а не просто имя-юзера !!!
    и тада усе пашэт )

    ОтветитьУдалить
  10. все классно но пароли пользователей в базе хранятся зашфрованными очень слабыми алгоритмами, так что они ломаются на раз, если базу угонят! нужно пароли переводить в md5 хеш и будет вам счастье, даже если взломают, то придется повозиться со взломом....

    ОтветитьУдалить
  11. заработало, только при отправке почты с почтового клиента пишет:
    !13.07.2009, 15:47:28: SEND - Письмо не отправлено. Сервер сообщает: 5.7.1 : Relay access denied
    кто нить подскажет?

    ОтветитьУдалить
  12. Да, получить доступ к почтовому ящику на новоиспечённом сервере не представляется возможности.
    Jul 15 16:48:10 mail pop3d: Connection, ip=[::ffff:192.168.1.20]
    Jul 15 16:48:10 mail authdaemond: failed to connect to mysql server (server=localhost, userid=mailadmin): Access denied for user 'mailadmin'@'localhost' (using password: YES)
    Jul 15 16:48:10 mail pop3d: LOGIN FAILED, user=fan, ip=[::ffff:192.168.1.20]
    Jul 15 16:48:10 mail pop3d: authentication error: Input/output error

    И всё. Ничего не понимаю.....

    ОтветитьУдалить
  13. Jul 15 16:48:10 mail authdaemond: failed to connect to mysql server (server=localhost, userid=mailadmin): Access denied for user 'mailadmin'@'localhost' (using password: YES) Вaс просто MySQL динамит. Может что то напутали с логином-паролем?

    ОтветитьУдалить
  14. Хотел настроить на ГМейл, ан нет. Не видит моего сервака mail.domian.com А в локалке и отправляет и получает во внешку...
    Какие соображения?

    ОтветитьУдалить
  15. Все работает, только от пользователей во внешние адреса электронку не отправляет (оутлук экспесс), пишет Relay access denied. Как сделать? Я в линухе новичок.

    ОтветитьУдалить
  16. Relay access denied при отправке от клиента, в чем дело помогите срочно!

    ОтветитьУдалить
  17. А как настроил в клиенте смтп? Поставил защищенный порт, логин пароль и пр?

    ОтветитьУдалить
  18. вопщем сделал так:
    в файле конфигра постфикса поменял
    mynetworks = 192.168.*.*
    все работает спасибо.
    только вот с какого то компа спам идет походу, незнаю как определить.

    ОтветитьУдалить
  19. Большое спасибо! Все отлично работает.

    ОтветитьУдалить
  20. Запустил на Debian Lenny.

    ОтветитьУдалить
  21. Настроил по вашей статье постфикс, все работает и в мир и из мира письма ходят. Проблемка в том, что в папке vmail не создается каталог mydonem.com и его содержимое, вместо этого в папках пользователей создается файл mbox со всеми письмами. Как это можно исправить?

    ОтветитьУдалить
  22. А не могли бы вы подсказать как сделать пересылку писем с почтовых ящиков.
    Думаю где-то в этой таблице forwards смысл заложен

    ОтветитьУдалить
  23. Вы должны прописать соответствие вашего внешнего IP-адреса имени почтового сервера, например mail.domen1.com — 231.123.134.12
    Не могли бы объяснить, в каком файле прописывать.

    ОтветитьУдалить
  24. "У разных провайдеров это настраивается по разному, в зависимости от особенностей реализации панели управления." Это прописывается не в вашем конфиге, а в настройках хоста. Посмотрите хелп вашего хостинг провайдера.

    ОтветитьУдалить
  25. Непонимаю зачем автор пишет "проверим..." и после этого пишет только то что должно получиться в идеале и идём дальше. Ну вот если у меня что-то не получилось настроить, не то выдал мне комп, что мне тогда делать?

    ОтветитьУдалить
  26. Гугл в помощь. Автор все же не нянька, чтобы все описывать, разжевывать и в рот складывать ;)

    ОтветитьУдалить
  27. Блин, вот спасибо за статью )))
    правда я малость по другому сделал, но всё равно очень сильно помогло!

    ОтветитьУдалить
  28. Пожалуйста. Всегда приятно слышать такие отзывы

    ОтветитьУдалить
  29. Здравствуйте! Я в линуксе новичек поэтому вопросы возможно покажутся глупыми, заранее извините. Я ставил сервер по даному мануалу и у меня возникли несколько вопросов.
    mail pop3d: authentication error: Input/output error - больше ничего в логах нет по ССЛ тоже самое. В какую сторону копать. И ещё в каком режиме должен работать модем (АДСЛ) моста или роутера (у меня сервер ещё через сквид роздает интернет в локаль)

    ОтветитьУдалить
  30. Здравствуйте! Я заглох здесь
    mysql> INSERT INTO `domains` (`domain`) VALUES ('ysaa.ru');

    пишет

    ERROR 1146 (42S02): Table 'mail.domains' doesn't exist

    ОтветитьУдалить
  31. А в бд mail существует таблица domains?

    ОтветитьУдалить
  32. Приветствую автора.
    Чот притомился я с настройкой ip адреса у провайдера. Сам в данном вопросе слабак, так что не обессудь :)
    В общем, сервер подключил к локальной сети, в которую тырнет дает отдельный комп-шлюз. На начальном этапе вбил в панели управления своим доменом ip из примера :) - пробное сообщение отправилось, и доставилось (на gmail)
    Добрался до конца - отправляю сообщение на новый ящик - и нету ни папок, ни сообщения.
    Проверку RDNS не выдерживает, ругается. Где бы что почитать?

    ОтветитьУдалить
  33. Приветствую ;) Знаешь, это для меня пройденный этап. Наигрался я с виртуальным сервером за глаза.... Как только сервисы определенные типа своего джаббер-сервера перестали быть необходимостью - расстался. Теперь обычным хостингом пользуюсь. Зато никакой мороки.

    ОтветитьУдалить
  34. Как удалить эл. ящик? А то на один адрес куча спама приходит.
    Спасибо.

    ОтветитьУдалить
  35. Через какое-то время проверьте папку /home/vmail:

    ничего не приходит, где поискать в первую очередь, я вроде уже все перерыл

    ОтветитьУдалить
  36. Я думаю нужно просто соответствующую запись в SQL удалить в таблице users

    ОтветитьУдалить
  37. так же не получается присоединиться к своему ящику снаружи, пишет lofig failed

    ОтветитьУдалить
  38. Вроде все настроил, работает
    входящая почта требует аутентификации а исходящая нет, как исправить?

    ОтветитьУдалить
  39. Спасибо за статью, все заработало с пол пинка.
    Единственное, что вылазила ошибка Relay access denied при отправке от клиента пока не поправил mynetworks вот так:
    mynetworks = 192.168.0.0/24

    ОтветитьУдалить
  40. Классная статья!
    Как сделать алиасы к ящикам?

    ОтветитьУдалить
  41. Есть одна проблема при тестирования отправки письма с коммандной строки - оно не приходит вообще на реальный E-mail. Не могу понять почему.

    Может кто-то подскажет?

    ОтветитьУдалить
  42. Установил по мануали (возможно где-то набочил) пользователь шлет мыло, но не принимает.
    При попытке забрать почту через gmail возвращется ошибка "chdir site.com/master/ failed"

    ОтветитьУдалить
  43. Огромное спасибо! Статья очень помогла!

    ОтветитьУдалить
  44. Теме уже почти три года, но все еще пользуется популярностью ;) Приятно

    ОтветитьУдалить
  45. Решил начать изучать UBUNTU, после Windows систем - необычные ощущения, и это мягко сказано. Гуглил не первую неделю как настроить почтовый сервер эффект 0!
    Наткнулся, сделал пошагово и сразу +
    Трудно начинать что-то новое и иногда вот такой вот мануал оказывается полезней тонны мукалатуры. Теперь буду разбирать пошагово и вдумчиво, для обратного превращения из обезьянки которая скопировала - в думающего примата.

    Огромное Спасибо!

    ОтветитьУдалить
  46. [...] Как всегда бескрайние просторы интернета преподносят дары. Вот совсем недавно нашел статейку о поднятии своего почтового сервера (практически с нуля). Много мануалов данной тематики можно найти на бескрайних просторах сети, однако этот меня порадовал своей подробностью и доходчивостью. Спешу им с Вами поделиться. За сочинение монументального труда спасибо latev. [...]

    ОтветитьУдалить
  47. Супер пост!!! только если не отправить вначале емейл самому себе то получим ошибку

    ERROR: Connection dropped by IMAP server.

    автору респект !!!
    наверное самый толковый мануал по установке мейл сервера.

    ОтветитьУдалить
  48. Спасибо большое! долго мучался, пока не наткнулся на вашу статью! Спасибо!

    ОтветитьУдалить
  49. у меня таже фигня. Ошибка при соединении с сервером IMAP: tls://localhost.
    111 : В соединении отказано

    ОтветитьУдалить
  50. отключил в настройках squirrelmail tls для imap — пустило. но это не виход

    ОтветитьУдалить
  51. Спасибо за статью!
    Только есть 2 дополнительных вопросиков которые даже по коментам непонял, буду признателен еси кто ответит!
    1 сервер у меня локальный на компе все пользователе общаются внури локальной сети! как сделать так чтоб они все отпровляли почту во внешний мир с почтового ящика mymail@mail.ru &
    2 при добовлении пользователя какие процедуры проделовать? судя по статье в sql добавить в тб users и всё, однако пока сам несоздаш папку с доменом и логином фиг два у юзерка почта заработает :(

    заранее благодарен!

    ОтветитьУдалить
  52. Ещё вопросик, "Вы должны прописать соответствие вашего внешнего IP-адреса имени почтового сервера, например mail.domen1.com — 231.123.134.12", неподскажите где и как это сделать? у хостера чтоли или в локальном днс?

    ОтветитьУдалить
  53. [...] http://blog.laptev.info/2009/ubuntu-mail-server-1.html Posted on 24 Февраль [...]

    ОтветитьУдалить