Главная > Программное обеспечение BSD\Linux > Настраиваем почтовый сервер на базе CentOS+Postfix

Настраиваем почтовый сервер на базе CentOS+Postfix

Postfix+Dovecot+PostfixAdmin+RoundcubemailДрузья, опять статья крутится вокруг переезда ресурсов на новую площадку. Скажу сразу, сегодня речь пойдет о том, чего я не любил, не люблю, и не буду, наверное, любить всю жизнь, а именно о настройке почтового сервера.

Да, изначально не сложилось у меня с ними, каждый раз когда дело доходит до дела, начинается секс, пляски с бубном и прочие камлания, да и внятных мануалов тоже немного в сети. Сколько не искал, в основном вся документация идет под FreeBSD да под Ubuntu\Debian Linux, что вобщем-то и понятно дистрибутывы-то распространены. А вот под CentOS и иже с ним документации мало, хотя, вполне и вероятно что я плохо искал, но не суть… Мануал под CentOS был найден, вот ссылка, bezha.od.ua, но мануал в целом оказался очень кривым, и если делать все по нему, не заработает ничего в принципе. Проверено! Но данный мануал все-таки стал отправной точкой в написании этой статьи, и отталкиваясь от него, со своими дополнениями, сегодня мы все-таки настроим собственный почтовый сервер с виртуальными доменами, виртуальными пользователями, postfixadmin-ом и веб-мордой roundcubemail.

Итак, перейдем к от слов к делу. Изначально разработаем ТЗ, ну или не ТЗ, а просто определим круг задач и функционал сервера. Также определимся с компонентами компонентами нашего сервера. Но, начнем по порядку!

Круг задач и функционал

Изначально почта для вcех моих доменов крутилась на pdd.yandex.ru, и вобщем-то все меня устраивало, но я привык держать сервер под контролем сам, не передавая ни каму своей лично переписки, тем более на бесплатных началах, поэтому, решено было переносить почту на свой сервер. По функционалу потребовались

  • Виртуальные домены
  • Виртуальные пользователи
  • Веб интерфейс администрирования
  • Веб интерфейс для конечного пользователя
  • Хранение информации о пользователях и доменах в базе данных
  • Полная бесплатность, GPL

Следовательно мною стал подбираться софт, отвечающий данным требованиям.

Компоненты почтового сервера

Изначально, серверной системой была выбрана CentOS в силу своей гибкости, удобства настройки и конфигурирования. Поэтому на ней и будет разворачиваться почтовик. Ну и пробежимся по компонентам:

  • Система — CentOS Linux 5.5 x86
  • SMTP — Postfix
  • POP3\IMAP — Dovecot
  • База данных — MySQL
  • Администрирование — PostfixAdmin
  • Пользовательский интерфейс — Roundcube Mail

Все программное обеспечение — OpenSource. что подразумевает отсутствие проблем с законностью и лицензионностью.

Как работает электронная почта?

На данном рисунке наглядно показано, как все же работает электронная почта, или к чему нам необходимо стремиться настраивая собственный почтовый сервер.

Современные почтовые системы

Вместо предисловия

В моем случае почтовый сервер ставится уже на настроенный CentOS, но, если вы ставите на чистую систему, то советую вам до начала установки прочитать следующие статьи:

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

Подготовка

Для начала удалим sendmail из системы:

1
service sendmail stop && yum -y remove sendmail

Подключим репозитории EPEL и CentALT:

1
2
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

Далее пересобираем кеш репозиториев, обновляем систему до последних обновлений:

1
yum makecache && yum -y update

После данных манипуляций приступаем к самой установке и настройке.

Установка MySQL сервера

Если у вас чистая система, и не стоит MySQL сервер, то ставим его и настраиваем его по соответствующей статье:

1
2
yum -y install mysql mysql-server php-mysql
chkconfig mysqld on && service mysqld start

Далее пойдет первоначальная настройка сервера скриптом безопасной установки:

1
2
3
4
5
6
7
8
9
/usr/bin/mysql_secure_installation
Change the root password? [Y/n]
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!

С помощью данного скрипта мы сделали следующее:

  • Задали пароль для супер пользователя root, т.к. по умолчанию у него пароль отсутсвует
  • Удалили анонимного пользователя
  • Запретили root подключаться к базе данных удаленно, ограничив его localhost-ом
  • Удалили тестовую базу test и доступ к ней

Создаем базу данных postfix и пользователя postfix:

1
2
3
4
5
mysql -p
mysql; CREATE DATABASE postfix;
mysql; CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'password';
mysql; GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'localhost';
mysql; quit;

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

Установка Postfix

Ставим Postfix:

1
yum -y install postfix

Проверяем, есть ли поддержка mysql:

1
2
postconf -m | grep mysql
mysql

Добавляем postfix в автозагрузку, стартуем его:

1
chkconfig postfix on && service postfix start

Редактируем /etc/postfix/main.cf:

1
2
3
4
5
6
7
8
9
10
soft_bounce = no
default_privs = nobody
myhostname = mail.domain.ru
mydomain = mail.domain.ru
myorigin = $mydomain
inet_interfaces = all
local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
mynetworks = 127.0.0.0/8
mail_spool_directory = /var/spool/mail
debug_peer_list = 127.0.0.1

И получаем промежуточный вариант /etc/postfix/main.cf:

1
grep -v -E "#|^$" main.cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
soft_bounce = no
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
default_privs = nobody
myhostname = mail.domain.ru
mydomain = mail.domain.ru
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
mail_spool_directory = /var/spool/mail
debug_peer_level = 2
debug_peer_list = 127.0.0.1
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.7.2/samples
readme_directory = /usr/share/doc/postfix-2.7.2/README_FILES
config_directory = /etc/postfix

Далее настраиваем postfix для работы с виртуальными доменами и виртуальными пользователями:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
virtual_mailbox_domains = mysql:$config_directory/sql/vdomains.cf
virtual_mailbox_base = /var/vmail
virtual_mailbox_maps = mysql:$config_directory/sql/vmailbox.cf
virtual_alias_maps = mysql:$config_directory/sql/valias.cf
virtual_minimum_uid = 1000
virtual_uid_maps = static:1000
virtual_gid_maps = static:12
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Описываем SMTP авторизацию:

1
2
3
4
5
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_non_fqdn_recipient,
reject_unverified_recipient

Далее создаем sql директорию и необходимые конфиги:

1
mkdir /etc/postfix/sql

Создаем конфиг виртуальных доменов /etc/postfix/sql/vdomains.cf :

1
2
3
4
5
6
7
8
9
user = postfix
password = password
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
#!!! ВНИМАНИЕ !!! ниже приведенная строка записывается в одну строчку!!!
additional_conditions = and backupmx = '0' and active = '1' query = SELECT domain FROM domain WHERE domain='%s' AND backupmx='0' AND active='1'

Создаем конфиг виртуальных почтовых ящиков /etc/postfix/sql/vmailbox.cf :

1
2
3
4
5
6
7
8
9
10
user = postfix
password = password
hosts = localhost
dbname = postfix
table = mailbox
select_field = CONCAT(domain,'/',maildir)
where_field = username
#!!! ВНИМАНИЕ !!! ниже приведенная строка записывается в одну строчку!!!
additional_conditions = and active = '1'
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'

Создаем конфиг виртуальных алиасов /etc/postfix/sql/valias.cf :

1
2
3
4
5
6
7
8
9
user = postfix
password = password
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
additional_conditions = and active = '1'
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Основная настройка завершена. Далее на очереди master.cf конфиг. Для начала выбросим из него всякий закомментированный шлак:

1
grep -v -E "#|^$" master.cf

Определим Dovecot локальным транспортом, добавим в самый конец master.cf следующую строку:

1
2
dovecot unix - n n - - pipe
flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d $(recipient)

!!! ВНИМАНИЕ !!! Postfix очень чувствителен к пробелам и всякой прочей лаже, поэтому после добавления вышеуказанных строк расставьте все символы в соответсвии с конфигом, строку flags необходимо отступить от края на 2 пробела, проверено, работать не будет, если вы этого не сделаете, будет ругаться на отсутствие пользователя vmail.

Далее создаем пользователя vmail с группой mail, с UID 1000 и домиком /var/vmail

На всякий пожарный ручками добавляем права на директорию /var/vmail, т.к. не всегда postfix из-за этого корректно отрабатывает:

1
2
chown -R vmail:mail /var/vmail
chmod -R 777 /var/vmail

Установка Dovecot

Ставим Dovecot и добавляем его в автозагрузку:

1
2
yum -y install dovecot
chkconfig dovecot on

Открываем /etc/dovecot.conf и приводим его к следующему виду:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
base_dir = /var/run/dovecot/
protocols = imap pop3
protocol imap {
listen = *:143
}
protocol pop3 {
listen = *:110
}
log_timestamp = "%Y-%m-%d %H:%M:%"
syslog_facility = mail
mail_location = maildir:/var/vmail/%d/%u
first_valid_uid = 1000
last_valid_uid = 1000
maildir_copy_with_hardlinks = yes
protocol imap {
login_executable = /usr/libexec/dovecot/imap-login
mail_executable = /usr/libexec/dovecot/imap
imap_max_line_length = 65536
}
protocol pop3 {
login_executable = /usr/libexec/dovecot/pop3-login
mail_executable = /usr/libexec/dovecot/pop3
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
postmaster_address = postmaster@mail.domain.ru
sendmail_path = /usr/lib/sendmail
auth_socket_path = /var/run/dovecot/auth-master
}
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain
passdb sql {
args = /etc/dovecot-sql.conf
}
userdb static {
args = uid=1000 gid=12 home=/var/vmail/%d/%u
}
user = nobody
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = vmail
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postdrop
}
}
}
dict {
}
plugin {
}
Создаем файл взаимодействия с MySQL базой /etc/dovecot-sql.conf:
1
2
3
4
5
6
7
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=password
default_pass_scheme = MD5
# Нижеприведенная строка записывается в одну строчку!!!
user_query = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, 1000 AS uid, 12 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
# Нижеприведенная строка записывается в одну строчку!!!
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 1000 as userdb_uid, 12 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
На этом установка и настройка Dovecot завершена.

Запускаем Postfix и Dovecot:

1
service postfix start && service dovecot start

Установка Postfixadmin

Тут все просто, ставится не сложнее любой CMS-ки:

  • Создаем папку postfixadmin в директории виртуального хоста web сервера:
1
mkdir /var/www/vhosts/mail.domain.ru/postfixadmin
  • Качаем отсюда ( я качал исходники )сам PosfixAdmin и распаковываем его в созданную директорию.
  • После делаем изменения в файле /var/www/vhosts/mail.domain.ru/postfixadmin/config.inc.php
1
2
3
4
5
$CONF['configured'] = true;
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'password';
$CONF['database_name'] = 'postfix';
  • После этого заходим по адресу mail.domain.ru/postfixadmin/setup.php и создаем суперпользователя.
  • Удаляем setup.php
  • Заходим по адресу http://mail.domain.ru/postfixadmin/login.php , логинимся, заводим новый домен, заводим тестовый почтовый ящик test@domain.ru
  • Проверяем работоспособность почтового сервера, настроив почтовый клиент на test@domain.ru

Если почта ходит туда и обратно — отлично, если нет, отписываемся в комментариях, будем с вами разбираться.

Ставим Roundcubemail

Roundcubemail клиентский интерфейс почтового ящика, ставится тоже не сложно. Поехали:

  • Качаем отсюда Roundcubemail
  • Распаковываем его в папку виртуального хоста /var/www/vhosts/mail.domain.ru/
  • Подготавливаем необходимые конфиги:
1
2
cp config/db.inc.php.dist config/db.inc.php
cp config/main.inc.php.dist config/main.inc.php
  • Создаем базу данных Roundcubemail:
1
2
3
4
mysql -p
CREATE DATABASE roundcubemail;
CREATE USER 'roundcubemail'@'localhost' IDENTIFIED BY 'password';
\q;
  • Правим main.inc.php
1
2
3
4
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['smtp_server'] = '';
$rcmail_config['enable_installer'] = false;
$rcmail_config['enable_installer'] = true; (после установки изменить на false)
  • Правим db.inc.php
1
$rcmail_config['db_dsnw'] = 'mysql://roundcubemail:password@localhost/roundcubemail';
  • Ставим необходимые расширения php:
1
yum -y install php-dom php-intl
  • Запускаем установщик http://mail.domain.ru/installer/
  • Выставляем необходимые права на директории:
1
chmod -R 777 temp logs
  • Инициализируем базу данных нажатием кнопки «Initialize Databese»
  • Проверяем отправку и авторизацию стандартными средствами Roundcubemail
  • Запрещаем повторную переустановку приложения в main.inc.php:
1
$rcmail_config['enable_installer'] = false;
  • Удаляем или переименовываем установщик.
  • Заходим по адресу mail.domain.ru и наслаждаемся web интерфейсом.

В качестве заключения

Вот собственно и вся настройка почтового сервера. Все задуманное реализовано! Если у вас что-то не получилось, не взлетело, или работает не так. прошу отписываться в комментариях, обязательно помогу разобраться.

Popularity: 100% [?]




Похожие записи:

coded by nessus
  • Pingback: Боремся с почтовым спамом. Установка и настройка PostGrey. | Technical Laboratory

  • Igor

    Opera 10.62 Windows XP

    Сделал по мануалу, все нормально, кроме приёма почты. В логах:

    dovecot: deliver(admin@domain.ru): chdir(/vmail/domain.ru/admin@domain.ru) failed: Permission denied
    dovecot: deliver(admin@domain.ru): stat(/vmail/domain.ru/admin@domain.ru) failed: Permission denied
    dovecot: deliver(admin@domain.ru): stat(/vmail/domain.ru/admin@domain.ru/tmp) failed: Permission denied (euid=1000(vmail) egid=12(mail) stat() failed: No such file or directory)

    Права на папку принадлежат vmail:mail
    Пробовал: chmod 0777 — не помогло
    Все знакомые пишут что трабла с правами, но с правами как раз все нормально

  • admin

    Chrome 10.0.648.204 Windows 7

    Можно увидеть ваш конфиг dovecot.conf, dovecot-sql.conf, и самое главное узнать, какие UID и GID у пользователя vmail ???

  • Igor

    Opera 10.62 Windows XP

    $ cat /etc/passwd | grep vmail
    vmail:x:1000:12:VirtualMail:/var/vmail:/bin/bash

    $ ls -l /var | grep vmail
    drwxrwxrwx 3 vmail mail 4096 Apr 7 00:31 vmail

    $ ls -al /var/vmail
    total 56
    drwxrwxrwx 3 vmail mail 4096 Apr 7 00:31 .
    drwxrwxrwx 21 root root 4096 Apr 6 23:28 ..
    -rw——- 1 vmail mail 73 Apr 7 00:31 .bash_history
    -rwxrwxrwx 1 vmail mail 33 Apr 6 23:28 .bash_logout
    -rwxrwxrwx 1 vmail mail 176 Apr 6 23:28 .bash_profile
    -rwxrwxrwx 1 vmail mail 124 Apr 6 23:28 .bashrc
    drwxrwxrwx 4 vmail mail 4096 Apr 6 23:44 domain.ru

    /root$ grep -v -E «#|^$» /etc/postfix/main.cf
    soft_bounce = no
    queue_directory = /var/spool/postfix
    command_directory = /usr/sbin
    daemon_directory = /usr/libexec/postfix
    data_directory = /var/lib/postfix
    mail_owner = postfix
    default_privs = nobody
    myhostname = mail.domain.ru
    mydomain = domain.ru
    myorigin = $mydomain
    inet_interfaces = all
    inet_protocols = all
    mydestination = $myhostname, localhost.$mydomain, localhost
    local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
    unknown_local_recipient_reject_code = 550
    mynetworks = 127.0.0.0/8
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    mail_spool_directory = /var/spool/mail
    debug_peer_level = 2
    debug_peer_list = 127.0.0.1
    debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    ddd $daemon_directory/$process_name $process_id & sleep 5
    sendmail_path = /usr/sbin/sendmail.postfix
    newaliases_path = /usr/bin/newaliases.postfix
    mailq_path = /usr/bin/mailq.postfix
    setgid_group = postdrop
    html_directory = no
    manpage_directory = /usr/share/man
    sample_directory = /usr/share/doc/postfix-2.8.2/samples
    readme_directory = /usr/share/doc/postfix-2.8.2/README_FILES
    config_directory = /etc/postfix
    virtual_mailbox_domains = mysql:$config_directory/sql/vdomains.cf
    virtual_mailbox_base = /var/vmail
    virtual_mailbox_maps = mysql:$config_directory/sql/vmailbox.cf
    virtual_alias_maps = mysql:$config_directory/sql/valias.cf
    virtual_minimum_uid = 1000
    virtual_uid_maps = static:1000
    virtual_gid_maps = static:12
    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_exceptions_networks = $mynetworks
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_recipient_restrictions = permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_non_fqdn_recipient,
    reject_unverified_recipient

    $ grep -v -E «#|^$» /etc/postfix/master.cf
    smtp inet n — n — — smtpd
    pickup fifo n — n 60 1 pickup
    cleanup unix n — n — 0 cleanup
    qmgr fifo n — n 300 1 qmgr
    tlsmgr unix — — n 1000? 1 tlsmgr
    rewrite unix — — n — — trivial-rewrite
    bounce unix — — n — 0 bounce
    defer unix — — n — 0 bounce
    trace unix — — n — 0 bounce
    verify unix — — n — 1 verify
    flush unix n — n 1000? 0 flush
    proxymap unix — — n — — proxymap
    proxywrite unix — — n — 1 proxymap
    smtp unix — — n — — smtp
    relay unix — — n — — smtp
    -o smtp_fallback_relay=
    showq unix n — n — — showq
    error unix — — n — — error
    retry unix — — n — — error
    discard unix — — n — — discard
    local unix — n n — — local
    virtual unix — n n — — virtual
    lmtp unix — — n — — lmtp
    anvil unix — — n — 1 anvil
    scache unix — — n — 1 scache
    dovecot unix — n n — - pipe
    flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d $(recipient)

    $ grep -v -E «#|^$» /etc/dovecot.conf
    base_dir = /var/run/dovecot/
    protocols = imap pop3
    protocol imap {
    listen = *:143
    }
    protocol pop3 {
    listen = *:110
    }
    log_timestamp = «%Y-%m-%d %H:%M:%»
    syslog_facility = mail
    mail_location = maildir:/var/vmail/%d/%u
    first_valid_uid = 1000
    last_valid_uid = 1000
    maildir_copy_with_hardlinks = yes
    protocol imap {
    login_executable = /usr/libexec/dovecot/imap-login
    mail_executable = /usr/libexec/dovecot/imap
    imap_max_line_length = 65536
    }
    protocol pop3 {
    login_executable = /usr/libexec/dovecot/pop3-login
    mail_executable = /usr/libexec/dovecot/pop3
    pop3_uidl_format = %08Xu%08Xv
    }
    protocol lda {
    postmaster_address = admin@domain.ru
    sendmail_path = /usr/lib/sendmail.postfix
    auth_socket_path = /var/run/dovecot/auth-master
    }
    auth_verbose = yes
    auth_debug = yes
    auth_debug_passwords = yes
    auth default {
    mechanisms = plain
    passdb sql {
    args = /etc/dovecot-sql.conf
    }
    userdb static {
    args = uid=1000 gid=12 home=/var/vmail/%d/%u
    }
    user = nobody
    socket listen {
    master {
    path = /var/run/dovecot/auth-master
    mode = 0660
    user = vmail
    group = mail
    }
    client {
    path = /var/spool/postfix/private/auth
    mode = 0660
    user = postfix
    group = postfix
    }
    }
    }
    dict {
    }
    plugin {
    }

    $ grep -v -E «#|^$» /etc/dovecot-sql.conf
    driver = mysql
    connect = host=localhost dbname=postfix user=postfix password=password
    default_pass_scheme = MD5
    user_query = SELECT ‘/var/vmail/%d/%n’ as home, ‘maildir:/var/vmail/%d/%n’ as mail, 1000 AS uid, 12 AS gid, concat(‘dirsize:storage=’, quota) AS quota FROM mailbox WHERE username = ‘%u’ AND active = ’1′
    password_query = SELECT username as user, password, ‘/var/vmail/%d/%n’ as userdb_home, ‘maildir:/var/vmail/%d/%n’ as userdb_mail, 1000 as userdb_uid, 12 as userdb_gid FROM mailbox WHERE username = ‘%u’ AND active = ’1′

    Сейчас в логах:
    dovecot: deliver(dragon.ig@domain.ru): open(/var/vmail/domain.ru/dragon.ig@domain.ru/dovecot.index.log) failed: Permission denied (euid=1000(vmail) egid=12(mail) missing +r perm: /var/vmail/domain.ru/dragon.ig@domain.ru/dovecot.index.log)
    dovecot: deliver(dragon.ig@domain.ru): open(/var/vmail/domain.ru/dragon.ig@domain.ru/tmp/1302133698.M982227P4112.domain.ru) failed: Permission denied

    при перезагрузке сервера (именно в момент перезагрузки) все письма падают в папку new без проблем.

  • admin

    Chrome 10.0.648.204 Windows 7

    Вобщем-то да, в конфиге все ровно… Попробуйте сделать chmod +x на директорию с почтой, должно помочь…

    Для сравнения, вот какие права у меня на мой почтовый каталог:
    [root@srv1-web /]# ls -l /home | grep vmail
    drwxr-xr-x 4 vmail vmail 4096 Mar 15 12:52 vmail
    [root@srv1-web /]#

    [root@srv1-web /]# ls -al /home/vmail/
    total 28
    drwxr-xr-x 4 vmail vmail 4096 Mar 15 12:52 .
    drwxr-xr-x 4 root root 4096 Mar 14 21:16 ..
    -rw-r—r— 1 vmail vmail 33 Mar 14 21:16 .bash_logout
    -rw-r—r— 1 vmail vmail 176 Mar 14 21:16 .bash_profile
    -rw-r—r— 1 vmail vmail 124 Mar 14 21:16 .bashrc
    drwx—— 4 vmail mail 4096 Mar 19 16:59 ul-tech.ru
    drwx—— 3 vmail mail 4096 Mar 15 12:52 vpscommerce.com
    [root@srv1-web /]#

    [root@srv1-web /]# cat /etc/passwd | grep vmail
    vmail:x:501:501:Virtual mail user:/home/vmail:/sbin/nologin
    [root@srv1-web /]#

  • Igor

    Opera 10.62 Windows XP

    Переписал конфигурацию под папку /home/vmail c правами 755 для пользователя vmail и все заработало.
    Спасибо за помощь.

  • http://polytechnic93.ru GrafIn

    Firefox 4.0.1 Windows XP

    Доброго времени суток.
    Спасибо за статью. Сделал по написанному, не сразу, но взлетело. Одна проблема. При отправке письма отправляет, но ругается, что не может переместить писмо в папку «Отправленное». На диске папка есть, правда называется как набор аглицких букв. При этом в клиенте папка «отправленное» присутствует и позволяет в нее зайти. Понимаю, что проблема в кодировке, но как решать — ума не приложу. Буду благодарен любой помощи.

  • http://polytechnic93.ru GrafIn

    Firefox 4.0.1 Windows XP

    @GrafIn

    Чудеса! После серии манипуляций с папками в клиенте и на сервере (удаление, перенос писем в папку «Отправленные», удаление всех папок на сервере) вдруг все стало нормально. Создалась папка .Send на сервере и ошибок больше небыло. Клиент Thunderbird. Буду пытаться найти закономерность.

  • admin

    Chrome 11.0.696.71 Windows 7

    Эх, поздно увидел комменты:) Да, бывает такое:) Грохаешь все папки с сервера, создаешь их и потом все нормально! Бывает и такое что не пускает в почту, пока не отправишь тестовое письмо на аккаунт.

  • http://www.dfgsdgdsfgdf.com proadm

    Firefox 4.0.1 Windows XP

    Остановился на становке Postfixadmin. На страничке setup.php выдает:
    Warning: Depends on: IMAP functions — NOT FOUND
    To install IMAP support, install php5-imap
    Without IMAP support, you won’t be able to create subfolders when creating mailboxes.

    Не могу найти php5-imap. Репозитарий не знает, поиск не помогает. Подскажите, pls.

    Мои данные:
    CentOS 5.5-i386
    PHP version 5.2.17
    Apache/2.2.19 (CentOS)

  • admin

    Chromium 12.0.742.91 Linux

    @proadm
    Лично я использую репозитории Remi, там все есть, и самые последние сборки, включая и PHP со всеми зависимостями. PHP-IMAP там так же присутсвует. Как их подключить и использовать — читайте вот тут http://blog.famillecollet.com/pages/Config-en

  • http://www.dfgsdgdsfgdf.com proadm

    Firefox 4.0.1 Windows XP

    Скачал и подключил репозиторий Remi.
    yum update
    Loaded plugins: fastestmirror, priorities
    Loading mirror speeds from cached hostfile
    * base: centos.hostace.ru
    * epel: mirror.xfes.ru
    * extras: centos.hostace.ru
    * remi: remi-mirror.dedipower.com
    * remi-test: remi-mirror.dedipower.com
    * updates: centos.hostace.ru
    1118 packages excluded due to repository priority protections
    Setting up Update Process
    и т.д. Установилось 2 пакета, обновилось 14.
    Удаляю на всякий случай таблицы из базы postfix. Запускаю setup.php. База строится. Ошибка таже:
    Warning: Depends on: IMAP functions — NOT FOUND
    To install IMAP support, install php5-imap
    Without IMAP support, you won’t be able to create subfolders when creating mailboxes.
    Делаю:
    yum install php5-imap
    Loaded plugins: fastestmirror, priorities
    Loading mirror speeds from cached hostfile
    * base: centos.hostace.ru
    * epel: http://ftp.rhd.ru
    * extras: centos.hostace.ru
    * remi: remi-mirror.dedipower.com
    * remi-test: remi-mirror.dedipower.com
    * updates: centos.hostace.ru
    1118 packages excluded due to repository priority protections
    Setting up Install Process
    No package php5-imap available.
    Nothing to do

    Посоветуйте еще что-нибудь. Спасибо.

  • admin

    Chromium 12.0.742.91 Linux

    @proadm
    [root@srv1-web /]# yum search php-imap
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * addons: centos.hostace.ru
    * base: centos.hostace.ru
    * epel: mirror.xfes.ru
    * extras: centos.hostace.ru
    * remi: iut-info.univ-reims.fr
    * rpmforge: ftp-stud.fht-esslingen.de
    * updates: centos.hostace.ru
    CentALT | 951 B 00:00
    addons | 951 B 00:00
    base | 1.1 kB 00:00
    epel | 3.7 kB 00:00
    extras | 2.1 kB 00:00
    remi | 2.5 kB 00:00
    rpmforge | 975 B 00:00
    updates | 1.9 kB 00:00
    vz-base | 951 B 00:00
    vz-updates | 951 B 00:00
    Excluding Packages from CentOS-5 — Base
    Finished
    ============================== Matched: php-imap ===============================
    horde-enhanced.noarch : Adds extra functionality to the horde framework
    php-imap.i386 : A module for PHP applications that use IMAP.
    php53-imap.i386 : A module for PHP applications that use IMAP
    [root@srv1-web /]#

    Как видно, пакет php-imap.i386 доступен для установки. После установки необходимо перезапустить Apache и PHP, если оно в режиме Fast-CGI.

  • den

    Unknown Unknown

    Привет, спасибо за реальный help по настройке.
    Решил всё это собрать, как в статье (система аналогичная) на новую систему.
    За исключением того, что собирал из репозиториев remi, remi-test. А еще, когда в setup PostFix Admin вылезло сообщение об отсутствии php-imap — пришлось доустановить и только потом завершать установку суперадмина и т. п.

    Дошел до шага, где надо проверить ящик test@domain:disqus .ru, но не хочет подключаться к SMTP :-(
    В Outlook первое соединение проходит а второе не может (говорит, что невозможно подключится к smtp и т. п.).
    Смотрю в логах (maillog), туда сваливается куча сообщений типа таких:
    —————
    postfix/cleanup[3820]: fatal: unsupported dictionary type: mysql
    postfix/master[2489]: warning: process /usr/libexec/postfix/cleanup pid 3820 exit status 1
    postfix/master[2489]: warning: /usr/libexec/postfix/cleanup: bad command startup — throttling
    postfix/smtpd[3821]: fatal: unsupported dictionary type: mysql
    postfix/master[2489]: warning: process /usr/libexec/postfix/smtpd pid 3821 exit status 1
    postfix/master[2489]: warning: /usr/libexec/postfix/smtpd: bad command startup — throttling
    —————
    и др.

    PostFix Admin 2.3.3
    MySQL 5.5.13
    PHP 5.3.7
    Apache 2.2.3

    Postfix и Dovecot стартуются нормально.
    Гуглил, но толком решения не нашел. Вроде как по ошибке получается, что Postfix собран без MySQL или типа того. Не знаю чо делать… Все конфиг-файлы сделал как надо и домен соответсвующий прописан везде.

    # postconf -m
    btree
    cidr
    environ
    hash
    ldap
    nis
    pcre
    proxy
    regexp
    static
    unix

    • http://www.ul-tech.ru Dmitry Malkov

      Unknown Unknown

      Ну судя по вашему postconf -m у вас действительно постфикс без поддержки mysql… Вывод postconf -m | grep mysql в студию! 

      • den

        Unknown Unknown

        По такой комбинации (postconf -m | grep mysql), ничего не выводится.

        • Alm15

          Unknown Unknown

          А SELINUX и встроенная цепочка iptables была отключена?

          • Atof

            Unknown Unknown

            den: все выводит, как надо. по телнету вроде как подключиться удается и вроде как протокол правильный идет. Но почта не приходит. На почтовые ящики отправителей спустя пару суток приходит ответ, что письмо не доставлено.
            Alm15: да, все отключено.
            то, что я сначала принял за работу postfix (обмен в файле /var/mail/root), оказалась работа sendmail. Разумеется после остановки sendmail и очистки файла там ничего не добавлялось.
            Попробовал и другие комбинации настройки (хоть в основе своей — одни и теже), причем с нуля, и причем реально работающие файлы копировал  скриптов с рабочих конфигураций от тех тех , у кого заработало — результат такой же.

            Отличие только одно: у них отдельный сервер на CentOS, у меня виртуальная машина на  Xen. Может быть в этом какая то загвоздка?
            Как можно проверить работу сокетов? может быть в этом проблема?

          • Alm15

            Unknown Unknown

            В вообще тупые пинги идут от сервера и к серверу?
            С виртуальными серверами XEN не сталкивался,  по моему надо задать ваш вопрос не специализированном форуме Linux

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            Сдается мне что неправильно настроена маршрутизация между хост-машиной и машиной XEN… Выкладывай логи ошибок, попробуй с телнета отправить письмо.

      • den

        Unknown Unknown

        Косательно этой ошибки — да, как оказалось все дело в некорректной установке postfix (без поддержки mysql). Решил поставить все заново, но из CentALT репозитория и на одну ошибку теперь меньше.

        Вывод —
        # postconf -m
        btree
        cidr
        environ
        hash
        internal
        ldap
        mysql
        nis
        pcre
        pgsql
        proxy
        regexp
        static
        tcp
        texthash
        unix

        Вывод —
        # postconf -m | grep mysql
        mysql

        Но test@zobaned:disqus  ящик снова не пашет. В логах теперь вот это:
        ——————
        postfix/trivial-rewrite[2759]: warning: mysql query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘query = SELECT domain FROM domain WHERE domain=’ya.ru’ AND backupmx=’0′ AND acti’ at line 1
        postfix/trivial-rewrite[2759]: fatal: mysql:/etc/postfix/sql/vdomains.cf(0,lock|fold_fix): table lookup problem
        postfix/qmgr[2695]: warning: problem talking to service rewrite: Connection timed out
        postfix/master[2512]: warning: process /usr/libexec/postfix/trivial-rewrite pid 2759 exit status 1
        postfix/master[2512]: warning: /usr/libexec/postfix/trivial-rewrite: bad command startup — throttling
        ——————
        И еще вот это:
        postfix/qmgr[2818]: warning: problem talking to service rewrite: Connection timed out
        postfix/cleanup[2866]: warning: problem talking to service rewrite: Connection reset by peer
        ——————

        Про ya.ru — в лог сваливается — это походу старая попытка отправить на письмо на адрес яндекса.

        В настройках Outlook поставил в настройках авторизацию как POP3, пароль стоит и туда и обратно, и сервера исх. и вх. стоят вида — mail.site.com. Outlook все также говорит, что не может подключиться к серверу исходящей почты SMTP

        • http://www.ul-tech.ru Dmitry Malkov

          Unknown Unknown

          Проеверяйте доступность базы данных, проверяйте может ли пользователь БД, от которого идет соединение, подключиться к базе. И будь те добры листинги из папки /etc/postfix/sql/ (спрячьте логинпароль)

          • den

            Unknown Unknown

            Пароль к пользователю postfix везде прописан. Соединение с БД вроде как работать должно нормально. Когда производил установку (setup) PostFix Admin, там везде напротив пунктов баз статус был OK. Значит должно по идее быть норм.
            Насчет конфиг-файлов в директории /etc/postfix/sql/ — там все, как описано (пароли заменены, названия домена прописаны). Или лучше сюда содержимое всех конфиг-файлов показать?

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            Выкладывайте. будем смотреть, разбираться!

          • den

            Unknown Unknown

            /etc/postfix/sql/valias.cf
            —————
            user = postfix
            password = пароль
            hosts = localhost
            dbname = postfix
            table = alias
            select_field = goto
            where_field = address
            additional_conditions = and active = ’1′
            query = SELECT goto FROM alias WHERE address=’%s’ AND active = ’1′
            —————

            /etc/postfix/sql/vdomains.cf
            —————
            user = postfix
            password = пароль
            hosts = localhost
            dbname = postfix
            table = domain
            select_field = domain
            where_field = domain
            additional_conditions = and backupmx = ’0′ and active = ’1′ query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′
            —————

            /etc/postfix/sql/vmailbox.cf

            —————
            user = postfix
            password = пароль
            hosts = localhost
            dbname = postfix
            table = mailbox
            select_field = CONCAT(domain,’/',maildir)
            where_field = username
            additional_conditions = and active = ’1′
            query = SELECT CONCAT(domain,’/',maildir) FROM mailbox WHERE username=’%s’ AND active = ’1′

            —————

            В /etc/postfix/sql/vmailbox.cf — сделал ниже приведенные строки в одну строку (как описано) — вот так — additional_conditions = and active = ’1′ query = SELECT CONCAT(domain,’/',maildir) FROM mailbox WHERE username=’%s’ AND active = ’1′

            Но тоже самое после перезапуска (outlook не может подключиться к SMTP).

          • den

            Unknown Unknown

            Пробовал в конфиг-файлах (valias.cf, vdomains.cf и vmailbox.cf) вместо localhost поставить ip-адрес — 127.0.0.1, не помогло. Хотя у некоторых проблема была в этом.

            Может попробовать еще где поставить вместо localhost — ip 127.0.0.1 ?
            RoundCube — пока что пробовать ставить не хочется (хотя может он то будет нормально с почтой работать). Хочется для начала проверить работы на outllok-е…

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            А ваш main.cf можно увидить?

          • den

            Unknown Unknown

            main.cf —
            http://narod.ru/disk/19003894001/main.cf.html (домен в оригинале соотв-щий),
            Пробовал и без комментариев сделать конфиг и в. т. ч. копию последовательностей опций с этого хэлпа, тоже самое.

            master.cf —
            http://narod.ru/disk/19003881001/master.cf.html

          • den

            Unknown Unknown

            Очистил очередь сообщений в postfix и в maillog сообщений ошибок больше не пишет (пишет только сообщения об успешных подключениях postfix и dovecot). Но на работу тест-ящика это не повлияло. Все также не пашет.
            А когда делаешь попытки, то откуда-то подцепляется старое письмо (несмотря на то что очередь я уже очистил под выключенным postfix) и в очереди сообщений вновь то старое письмо (а так как я это письмо в самом начале по дурости отправлял из панели postfix admin на почту яндекса, то отправитель получился вида apache@mail.site.ru, это письмо застряло в системе и об этом собственно в логах все это время и  пишется). Как полностью очитить очередь всех застрявших сообщений не знаю. Но это не главное, ведь тест-ящик все-равно не пашет.

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            Странное дело у вас какое-то происходит… Не поленился, на виртуалке поднял всю вышеописанную связку, завелось сразу же, без проблем… Даже вот и не знаю теперь в какую сторону вам с вами копать…

            Так. а вы убили sendmail и прочее???

          • den

            Unknown Unknown

            Sendmail отсутствовал, поэтому удалять не пришлось. А что еще кроме Sendmail надо удалить?
            По логике, значит дело либо в mysql либо что-то еще…

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            Так, а телнет на 25 порт проходит??? Пробовали отправить письмо с консоли? При попытке отправки что происходит в /var/log/maillog ???

          • den

            Unknown Unknown

            Какими командами можно это всё проверить? Я просто еще сам не очень хорошо знаком с этим всем делом…

          • den

            Unknown Unknown

            Проверил 25 порт (командой вида — telnet mail.site.ru 25). В ответ говорит — Connection refused .

            iptables еще не настраивал (буду настраивать, как все сконфигурирую),
            поэтому по идее 25 порт никем не должен блокироваться.

          • den

            Unknown Unknown

            netstat -tulpn | grep :25
            tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LIST             EN      12040/master
            tcp        0      0 ::1:25                      :::*                        LIST             EN      12040/master
             

          • den

            Unknown Unknown

            Странно. Попробовал сделать telnet 127.0.0.1 25 — проходит (и если вместо ip поставить localhost тоже проходит).
            А запрос вида — telnet mail.site.ru 25 — не пашет (Connection refused).

          • den

            Unknown Unknown

            Может попробовать в привилегиях mysql-пользователя postfix попробовать заменить localhost на 127.0.0.1 и тоже самое заменить в sql-конфиг-файлах (я вчера ставил ip в конфигах а в привилегиях-то mysql-пользователя стояло localhost, вот и не подействовало может)? Я слышал проблемы с коннектом к mysql в postfix связаны с тем, что вроде как localhost некорректно понимается, может поэтому и не пашет.

  • St

    Unknown Unknown

    а куда прописывать «Описываем SMTP авторизацию:» в main.cf?

    • http://www.ul-tech.ru Dmitry Malkov

      Unknown Unknown

      Да, именно в main.cf

      • St

        Unknown Unknown

        почем-то при добавлении SMTP авторизации, postfix не запускается.. в логе написано

        Jul 12 09:07:36 ns1 postfix[10971]: fatal: /etc/postfix/main.cf, line 672: missing ‘=’ after attribute name: «permit_sasl_authenticated,»

        Подскажите пожалуйста, в чем может быть проблема =(

        • http://www.ul-tech.ru Dmitry Malkov

          Unknown Unknown

          Он  вам пишет, что ему не хватает знака равно после атрибута permit_sasl_authentificated… Сравните свою авторизацию с нижеприведенной….

          smtpd_recipient_restrictions = permit_mynetworks,
          permit_sasl_authenticated,
          reject_unauth_destination,
          reject_non_fqdn_recipient,
          reject_unverified_recipient

          • St

            Unknown Unknown

            да, всё абсолютно так же… если выставить их в одну строчку всё запускается, но отправки почты всё равно не происходит.. уже даже не знаю в чем проблема может быть… =(

          • den

            Unknown Unknown

            У меня была с этим проблема тоже. Лечится путем прописывания этих параметров в одну строку (между запятыми вроде как пробелов не должно быть)

          • den

            Unknown Unknown

            Но пока test-ящик не пашет тоже :-(
             

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            Какие ошибки в /var/log/maillog ???
            проходит ли телнет до 25 порта сервера? Открыты ли порты в файрволле???

          • St

            Unknown Unknown

            телнет проходит, файерволл пока отключил.. странно как-то, установил Roundcube, он проверил и IMAP и SMTP написал что всё нормально, пробовал через веб интерфейс отправить, отправляет нормально, ошибок не пишет, но письма не приходят, логи пустые.. если подключаться к аутлуку то пишет что SMTP не отвечает… запутался уже совсем.. ну попробую с утра разобраться… спасибо за помощь, классный сайт)

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            Так, у вас стоит в аутлуке галка входить на сервер исходящей почты аналагично серверу входящей??? Дело в том что у нас настроен мультидоменный сервер и при авторизации на POPIMAPSMPTP необходимо указывать полностью имя почтового ящика вида username@domain.ru 

          • St

            Unknown Unknown

            поставил галочку, теперь пишет
            «Отправка тестового электронного сообщения: Способы проверки подлинности, используемые программой-клиентом, не поддерживаются сервером IMAP.»
            Через веб интерфейс так же не отправляется. =(

          • St

            Unknown Unknown

            может скинете готовые конфиги

  • Alexander NoAvailable

    Unknown Unknown

    Еще как вариант установка postfix c поддержкой MySql
    1. меняем файл /etc/yum.repos.d/CentOS-Base.repo

    [base]
    exclude=postfix
    [update]
    exclude=postfix
    [centosplus]
    enabled=1
    includepkgs=postfix

    2. Удаляем преведущую версию, если была установлена.
    yum remove postfix

    3. Устанавливаем новую
    yum install postfix

    4. Проверяем
    postconf -m
    или
    postconf -m | grep mysql

  • Alexander NoAvailable

    Unknown Unknown

     У кого ошибка такого плана
     … warning: mysql query failed: You have an error in your SQL syntax …

    В файле vdomains.cf строку

    additional_conditions = and backupmx = ’0′ and active = ’1′ query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′

    надо разбить на 2additional_conditions = and backupmx = ’0′ and active = ’1′query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′

    • den

      Unknown Unknown

      Т. е. в vdomains.cf надо так?
      ————————-
      additional_conditions = and backupmx = ’0′ and active = ’1′ query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′
      additional_conditions = and backupmx = ’0′ and active = ’1′ query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′
      ————————-

      А в остальных (vmailbox.cf и valias.cf) тоже также дуюлировать по два раза?
      (у них аналогичная строка)

      • den

        Unknown Unknown

        Извинияюсь, догнал.
        Сделал по такому принципу разделения на две строки (во всех трех файлах):
        ——————
        additional_conditions = and backupmx = ’0′ and active = ’1′
        query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′
        ——————
        Строки в трех файлах конечно отличаются, но везде строку (начинающуюся с query = …) перенес на новую строку.
        И о чудо! Почта таки начала сваливаться в Outlook (в т. ч. старая из очереди).

        Но! Отправление из Outlook по прежнему не пашет (Невозможно подключится к удаленному SMTP-серверу бла бла…) :-(
        Что-то явно надо поправить в конфиг-файлах Postfix. И есть подозрение, что postfix не хочет отправлять почту с не локального места. Т. е. в Rouncube наверняка все будет работать, а вот outlook не будет до тех пор, пока не будет поправлен конфиг postfix в нужном месте.

        • Alexander NoAvailable

          Unknown Unknown

          Вот именно. У меня та же проблема локально принимает и отсылает. Outlook только на прием.

          Relay access denied;

          Ошибка связана как раз с тем, что postfix не настроен на работу как open relay.

      • Alexander NoAvailable

        Unknown Unknown

        Нет, вы не поняли. К сожалению блог глючит и нельзя редактировать свои сообщения.
        Дублировать ниче не надо. Должно быть вместо 1 длинной строки 2

        additional_conditions = and backupmx = ’0′ and active = ’1′
        query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′

    • den

      Unknown Unknown

      Т. е. в vdomains.cf надо так?
      ————————-
      additional_conditions = and backupmx = ’0′ and active = ’1′ query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′
      additional_conditions = and backupmx = ’0′ and active = ’1′ query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′
      ————————-

      А в остальных (vmailbox.cf и valias.cf) тоже также дуюлировать по два раза?
      (у них аналогичная строка)

  • Alexander NoAvailable

    Unknown Unknown

    smtpd_recipient_restrictions = permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_non_fqdn_recipient,
    reject_unverified_recipient

    Тут вторую и последущие строки надо писать с отступом иначе будет ошибка.

  • Alexander NoAvailable

    Unknown Unknown

    Я настроил по вашей статье. Все работает, кроме отправки почты из Outlook. Как его настроить. Почта принимается, но при отправке выдается сообщение в логах

    Relay access denied;

    Я так понял надо в postfix еще что то настроить что бы он мог работать в качестве релея?

  • den

    Unknown Unknown

    Поставил RounCube, но на шаге /install/ (где тестируются подключения к базам и т. п.) — вылезла такая ошибка :-(
    ————————-
    DSN (write):  NOT OK(MDB2 Error: connect failed)

    Make sure that the configured database exists and that the user has write privileges
    DSN: mysql://roundcube:pass@localhost/roundcubemail
    ————————-

    Кто-то советует поставить php-MDB2-Driver (называется как-то так… точно не помню).
    Установил, перезагрузил все, но не помогло. Ошибка также отображается.
    Как это решить?

    • den

      Unknown Unknown

      В конфиг-файле Rouncube имя базы, логин и пароль прописаны.

      • den

        Unknown Unknown

        После нескольких манипуляций (в т. ч. установил — php-pear-MDB2-Driver-mysql) ошибка с MDB2 исчезла. Интерфейс RounCube протестировал, вроде ошибок нет.

  • den

    Unknown Unknown

    На данном этапе конфигурации у меня вот какая ситуация получается:
    - не могу отправлять письма из Outlook во внешний мир (на почту яндекса и др.) (ошибка с невозможностью подключиться к удаленному smtp серверу) 
    - могу получать письма в Outlook (от яндекс почты и др. )
    - не приходят письма в webmail RounCube из внешнего мира (от яндекса и др.)
    - могу отправлять письма из webmail RounCube во внешний мир (на яндекс и др.)
    - могу отправлять письма функцией mail() к себе (на test@) и во внейшний мир (на яндекс и др.)

    Что можно еще настроить, чтобы работало?

    • den

      Unknown Unknown

      Уфф, решил проблему с получением писем в RounCube из внешнего мира (от яндекс почты и т. п.). Надо было в main.inc.php — вот эти опции сделать так:
      $rcmail_config['smtp_server'] = ‘localhost’;
      $rcmail_config['smtp_auth_type'] = ‘PLAIN’;
      $rcmail_config['smtp_helo_host'] = ‘mail.site.ru’;
      Походу пока явно эти опции не укажешь, получение работать не будет.

      Теперь осталось решить проблему с отправкой (ошибкой подключения к smtp) из outlook.

  • den

    Unknown Unknown

    На данном этапе конфигурации у меня вот какая ситуация получается:
    - не могу отправлять письма из Outlook во внешний мир (на почту яндекса и др.) (ошибка с невозможностью подключиться к удаленному smtp серверу) 
    - могу получать письма в Outlook (от яндекс почты и др. )
    - не приходят письма в webmail RounCube из внешнего мира (от яндекса и др.)
    - могу отправлять письма из webmail RounCube во внешний мир (на яндекс и др.)
    - могу отправлять письма функцией mail() к себе (на test@) и во внейшний мир (на яндекс и др.)

    Что можно еще настроить, чтобы работало?

  • Mikeles

    Unknown Unknown

    Здравствуйте!Хотелось бы узнать такую вещь. Мой почтовый сервер внутри сети — 10.100.100.98. Как мне весь почтовый трафик со внешней сети направлять на этот сервер

    • http://www.ul-tech.ru Dmitry Malkov

      Unknown Unknown

      Маловато исходных данных… Есть ли внешний IP на РоутереFirewallNAT??? Если есть, то самое простое — МX записи в DNS на внешний IP, на РоутереFirewallNAT проброс портов с внешнего IP до серого IP сервера. Или же .если есть возможность повесить внешний IP на сервер и прописать MX записи в DNS. Вот как-то так, если я вас понял правильно…

  • Bosus_5

    Unknown Unknown

    Подскажите, пожалуйста, папки (где складываеются письма) создаваемые dovecot имеют права 0700. После удаления ящика, мне нужно удалить и эти папки с письмами. Как мне сделать, чтоб dovecot создавал папки с правами 0775? Это вообще возможно?

  • Atof

    Unknown Unknown

    Не удается настроить всю связку postfix+mysql+postfixadmin+dovecot.
    По telnet postfix все отправляет, и если отключить параметры в /etc/postfix/main.cf
    #virtual_mailbox_domains = mysql:$config_directory/sql/vdomains.cf
    #virtual_mailbox_maps = mysql:$config_directory/sql/vmailbox.cf
    #virtual_alias_maps = mysql:$config_directory/sql/valias.cf

    то принятая почта нриходит и  складывается в /var/spool/mail/root.

    база проверена, все записи существуют, отличия только в  скриптах в каталоге /etc/postfix/sql/*, где установлен другой  пароль пользователя postfix.

    dovеcot тоже прекрасно взаимодействует с telnet, и с клиентом. И по логам тоже. Только почта клиентам в каталог не попадает почему то. Если ручками в каталоге клиента создать файлик с почтой, то клиент получает его прекрасно.

    Не можете совет дать, где именно «пальцы перегнул»?

  • Igor

    Unknown Unknown

    здравствуйте dovecot и postfix вроде настроил а как DNS зоны настроить vps от ihc.ru?

    при   подключении Connecting to samgtu-files.ru:143…
    IMAP connect:  NOT OK(Login failed for admin@samgtu-files.ru from 178.45.76.179. AUTHENTICATE PLAIN: Authentication failed.)

    • http://www.ul-tech.ru Dmitry Malkov

      Unknown Unknown

      По ДНС, вот пример одной из моих зон, смотрит на гугл:
      $TTL 86400@   IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (    2012031700   ; serial    14400        ; refresh    1800         ; retry    604800       ; expire    86400 )      ; minimum @                        IN NS      robotns3.second-ns.com.@                        IN NS      robotns2.second-ns.de.@                        IN NS      ns1.first-ns.de. @                        IN A       188.40.121.43localhost                IN A       127.0.0.1mail                     IN A       188.40.121.43www                      IN A       188.40.121.43ftp                      IN CNAME   wwwimap                     IN CNAME   wwwloopback                 IN CNAME   localhostpop                      IN CNAME   wwwrelay                    IN CNAME   wwwsmtp                     IN CNAME   www@                        IN MX 1    ASPMX.L.GOOGLE.COM.@                        IN MX 5    ALT2.ASPMX.L.GOOGLE.COM.@                        IN MX 5    ALT1.ASPMX.L.GOOGLE.COM.@                        IN MX 10   ASPMX2.GOOGLEMAIL.COM.@                        IN MX 10   ASPMX3.GOOGLEMAIL.COM.@                        IN TXT     v=spf1, include:_spf.google.com ~all

      По ошибке: Покажите логи dovecot auth.

      • Igor

        Unknown Unknown

        2012-04-01 20:32:%auth(default): Info: client in: AUTH  1       PLAIN   service=imap    secured lip=46.254.16.8 rip=46.254.16.8 lport=143       rport=37014     resp=YWRtaW5Ac2FtZ3R1LWZpbGVzLnJ1AGFkbWluQHNhbWd0dS1maWxlcy5ydQAyNjA4MTk3MA==
        2012-04-01 20:32:%auth-worker(default): Info: pam(admin@samgtu-files.ru,46.254.16.8): lookup service=dovecot
        2012-04-01 20:32:%auth-worker(default): Info: pam(admin@samgtu-files.ru,46.254.16.8): #1/1 style=1 msg=Password:
        2012-04-01 20:32:%auth(default): Info: new auth connection: pid=4060
        2012-04-01 20:32:%auth-worker(default): Info: pam(admin@samgtu-files.ru,46.254.16.8): pam_authenticate() failed: Authentication failure (password mismatch?) (given password: 26081970)
        2012-04-01 20:32:%auth-worker(default): Info: sql(admin@samgtu-files.ru,46.254.16.8): query: SELECT username as user, password, ‘/var/vmail/samgtu-files.ru/admin’ as userdb_home, ‘maildir:/var/vmail/samgtu-files.ru/admin’ as userdb_mail, 1000 as userdb_uid, 12 as userdb_gid FROM mailbox WHERE username = ‘admin@samgtu-files.ru’ AND active = ’1′
        2012-04-01 20:32:%auth(default): Info: client out: OK   1       user=admin@samgtu-files.ru
        2012-04-01 20:32:%auth(default): Info: master in: REQUEST       1       1998    1
        2012-04-01 20:32:%auth(default): Info: passwd(admin@samgtu-files.ru,46.254.16.8): lookup
        2012-04-01 20:32:%auth(default): Info: passwd(admin@samgtu-files.ru,46.254.16.8): unknown user
        2012-04-01 20:32:%auth(default): Info: master out: USER 1       admin@samgtu-files.ru   uid=1000        gid=12  home=/var/vmail/samgtu-files.ru/admin@samgtu-files.ru
        2012-04-01 20:32:%dovecot: Error: User admin@samgtu-files.ru not allowed to log in using too high UNIX UID 1000 (see last_valid_uid in config file)
        2012-04-01 20:32:%imap-login: Info: Internal login failure (auth failed, 1 attempts): user=, method=PLAIN, rip=46.254.16.8, lip=46.254.16.8, secured

        • Igor

          Unknown Unknown

          и можно с вами связаться по e-mail или skype?

          • http://www.ul-tech.ru Dmitry Malkov

            Unknown Unknown

            Конечно можно! e-mail: malkov {at} ul-tech.ru. Но я смогу вам ответить только вечером. после 18.00

  • Ss

    Unknown Unknown

    Пожалуйста кто знает это помогите мне настроять.. Мой скайп bo8064 Зарание спасибо.

  • Ss

    Unknown Unknown

    Я SS мой email shift196@yandex.ru . Помогите у меня CentOS

  • MakPol

    Unknown Unknown

    Настроил то настроил по инструкции, но не могу никак побороть ошибку:
    2012-04-25 11:39:%imap-login: Info: Aborted login (no auth attempts): rip=127.0.0.1, lip=127.0.0.1, secured

Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins