мая 18 2008 02:03 пп

Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальных доменов

email

Данное руководство описывает установку почтового сервера Postfix в связке с dovecot и базой данных mysql для хранения данных. По окончанию настройки мы получим почтовый сервер с поддержкой SMTP, POP3, IMAP, поддержку SSL, TLS, работу с виртуальными доменами. Так же данное руководство не является исчерпывающим, и может быть трудным для понимания новичкам, так как описано конкретно как настроить сервисы, но не описано как оно работает и так далее. Конфигурация была проверена и отлично работает на серверах с установленным Linux Ubuntu версий 6.10-8.04 и Debian GNU Linux, но я думаю она подойдет и для других дистрибутивов. Описание установки приведено на примере Ubuntu, все пакеты взяты из стандартных репозиториев.

При настройке нашего нового сервиса я буду использовать примеры команд, оратите внимание на интерпритатор, их будет использоваться два, обычная командная строка (bash) и mysql, выглядит это так:

bash: $>

mysql: mysql>

Так же все действия производятся от имени пользователя root. На этом вступительную часть можно закончить и давайте приступим к установке и настройке нашего почтовика.

Установим все необходимые пакеты

Код:


aptitude install postfix-mysql mysql-server dovecot-pop3d dovecot-imapd openssl

Так же в дальнейшем вам может понадобится phpmyadmin и простой веб интерфейс для работы с почтовым ящиком, установить все это можно командой

Код:


aptitude install phpmyadmin squirrelmail

Создадим базу данных для почтового сервера

Код:


mysql>
create database mailserver;
mysql>
grant all on mailserver.* to mailuser@localhost identified by 'mailuser2007';
exit

Затем создайте таблицы в базе данных

Код:


mysql>
CREATE TABLE `virtual_domains` (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
) ENGINE = InnoDB;
mysql>
CREATE TABLE `virtual_users` (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11) NOT NULL,
user VARCHAR(40) NOT NULL,
password VARCHAR(32) NOT NULL,
CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE = InnoDB;
mysql>
CREATE TABLE `virtual_aliases` (
id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11) NOT NULL,
source VARCHAR(40) NOT NULL,
destination VARCHAR(80) NOT NULL,
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE = InnoDB;

Дальше необходимо создать файлы конфигурации для Postfix’a с информацией о базе данных.
Создадим файл /etc/postfix/mysql-virtual-mailbox-domains.cf и впишем в него следующее содержание

Код:


user = mailuser
password = mailuser2007
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

Код:


$>
mysql -p mailserver
mysql>
INSERT INTO virtual_domains (id, name) VALUES (1, 'example.com');
exit

Венитесь в обратно в шелл bash и проверьте правильность настроек виртуального домена командой, не забудьте сменить домен с example.com на свой.

Код:


$>
postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

Вы должны увидеть цифру 1 если все правильно настроено.

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

Код:


$>
groupadd -g 5000 vmail
$>
useradd -g vmail -u 5000 vmail -d /home/vmail -m

Внесем изменения в конфигурацию Postfix’a

Код:


$>
postconf -e virtual_uid_maps=static:5000
$>
postconf -e virtual_gid_maps=static:5000

Создадим первый тестовый почтовый ящик, например john@example.com с паролем summersun

Код:


mysql>
INSERT INTO virtual_users (id, domain_id, user, password)
VALUES (1, 1, 'john', MD5('summersun'));

Потом нам необходимо создать view в базе данных для нормальной работы сервера Postfix

Код:


mysql>
CREATE VIEW view_users AS
SELECT CONCAT(virtual_users.user, '@', virtual_domains.name) AS email,
virtual_users.password
FROM virtual_users
LEFT JOIN virtual_domains ON virtual_users.domain_id=virtual_domains.id;

Проверим результат командой

Код:


mysql>
SELECT * FROM view_users;

Вы должны увидеть это:

+------------------+----------------------------------+
| email | password |
+------------------+----------------------------------+
| john@example.com | 14cbfb845af1f030e372b1cb9275e6dd |
+------------------+----------------------------------+

Создадим еще один файл конфигурации для Postfix’a в котором укажем даные для работы с почтовыми ящиками нащих юзеров, создайте файл /etc/postfix/mysql-virtual-mailbox-maps.cf и впишите в него это

Код:


user = mailuser
password = mailuser2007
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM view_users WHERE email='%s'

Внесем измения в главный файл конфига Postfix

Код:


$>
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

Проверьте результат командой

Код:


$>
postmap -q john@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

Вы должны увидеть цифру 1 если все правильно настроено.

Настроим альясы (для пересылки почты с одного ящика на другой, или с нескольких на один)

Добавим в базу данных тестовый альяс для нашего польователя john@example.com, вся почта пришедшая на его ящик будет дополнительно пересылаться на ящик jmiller@gmail.com

Код:


mysql>
INSERT INTO virtual_aliases (id, domain_id, source, destination)
VALUES (1, 1, 'john', 'john@example.com'),
(2, 1, 'john', 'jmiller@gmail.com');

Создадим view для альясов по аналогии с view для пользователей

Код:


mysql>
CREATE VIEW view_aliases AS
SELECT CONCAT(virtual_aliases.source, '@', virtual_domains.name) AS email,
destination
FROM virtual_aliases
LEFT JOIN virtual_domains ON virtual_aliases.domain_id=virtual_domains.id;

Проверим результат

Код:


mysql>
SELECT * FROM view_aliases;

Вы должны увидеть это

+------------------+-------------------+
| email | destination |
+------------------+-------------------+
| john@example.com | john@example.com |
| john@example.com | jmiller@gmail.com |
+------------------+-------------------+

Дополним конфигурацию Postfix, создайте файл /etc/postfix/mysql-virtual-alias-maps.cf и впишите в него

Код:


user = mailuser
password = mailuser2007
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM view_aliases WHERE email='%s'

Проверим правильность настроек

Код:


$>
postmap -q john@example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Вы увидите это
john@example.com,jmiller@gmail.com

Создадим следующий файл, /etc/postfix/mysql-email2email.cf впишем в него

Код:


user = mailuser
password = mailuser2007
hosts = 127.0.0.1
dbname = mailserver
query = SELECT email FROM view_users WHERE email='%s'

Запишем настройки в главный файл конфига Postfix

Код:


$>
postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf

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

Код:


$>
chgrp postfix /etc/postfix/mysql-*.cf
$>
chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf

Далее настроим dovecot в качестве локального агента доставки писем, для этого отредактируйте файл /etc/postfix/master.cf добавив в конец это

Код:


dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Перезагрузите Postfix командой postfix reload, и добавьте информацию о виртуальном транспорте в главный конфиг Postfix

Код:


$>
postconf -e virtual_transport=dovecot
$>
postconf -e dovecot_destination_recipient_limit=1

Перейдем к настройкам dovecot, все файлы его конфигурации хранятся в папке /etc/dovecot, начнем настройку с файла /etc/dovecot/dovecot.conf

Найдите строку protocols и смените на

Код:


protocols = imap imaps pop3 pop3s

Так же найдите и измените строку disable_plaintext_auth до состояния disable_plaintext_auth = no

Далее измените параметр mail_location

Код:


mail_location = maildir:/home/vmail/%d/%n

Найдите строку namespace private и измените до

Код:


namespace private {
separator = .
prefix = INBOX.
inbox = yes
}

Перейдите к секции «auth default» и отредактируйте разрешенные механизмы аутентификации

Код:


mechanisms = plain login

В этой же секции измените

Код:


passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}

Измените так же параметр userdb static

Код:


userdb static {
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}

Перейдите к секции socket listen сдесь мы укажем файлы сокета для аутентификации dovecot

Код:


socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}

Перейдите к секции protocol lda, не забудьте сменить адрес постмастера на реальный

Код:


protocol lda {
log_path = /home/vmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = postmaster@example.com
mail_plugins = cmusieve
global_script_path = /home/vmail/globalsieverc
}

На этом файл можно сохранить.
Отредактируйте файл /etc/dovecot/dovecot-sql.conf, измените настройки на приведенные ниже

Код:


driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=mailuser2007
default_pass_scheme = PLAIN-MD5
password_query = SELECT email as user, password FROM view_users WHERE email='%u';

Перезапустите dovecot командой /etc/init.d/dovecot restart и загляните в лог файл /var/log/mail.log, там вы должны увидеть

Код:


dovecot: Dovecot v1.0.rc15 starting up
dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mymailserver)

Теперь выставим права доступа к файлам конфигурации dovecot

Код:


$>
chgrp vmail /etc/dovecot/dovecot.conf
$>
chmod g+r /etc/dovecot/dovecot.conf

Настроим TLS/SSL

Код:


$>
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem \
-keyout /etc/ssl/private/dovecot.pem

Ответьте на несколько вопросов и сертификат будет создан, не забудьте указать правльно все параметры вместо примеров привеленных ниже

Код:


Generating a 1024 bit RSA private key
.........++++++
............................++++++
writing new private key to '/etc/ssl/certs/dovecot.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Russia
Locality Name (eg, city) []:Russia
Organization Name (eg, company) [Internet Widgits Pty Ltd]:example.com
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:mail.example.com
Email Address []:postmaster@example.com

Выставим права доступа на файл

Код:


$>
chmod o= /etc/ssl/private/dovecot.pem

Создадим еще один сертификат по аналогии с предыдущим

Код:


$>
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem \
-keyout /etc/ssl/private/postfix.pem

Сменим права доступа

Код:


chmod o= /etc/ssl/private/postfix.pem

Внесите изменения в конфиг Postfix’a

Код:


$>
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
$>
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
$>
postconf -e smtpd_use_tls=yes

Теперь настроим аутентификацию SMTP, внесите следующие изменения в конфиг Postfix’a, не забудьте сменить примеры на реальные адреса сетей! В примере используется сеть 192.168.50.0/24 ей разрешено отправлятиь почту без SMTP авторизации.

Код:


$>
postconf -e mynetworks=192.168.50.0/24
$>
postconf -e smtpd_sasl_type=dovecot
$>
postconf -e smtpd_sasl_path=private/auth
$>
postconf -e smtpd_sasl_auth_enable=yes
$>
postconf -e smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

Отредактируйте файл /etc/postfix/main.cf ищменив параметр размера почтового ящика например на 10 мегабайт

Код:


mailbox_size_limit = 102400

На этом настройка нашего почтового сервера закончена, перезапустите сервисы postfix и dovecot, выполните команду postfix check для проверки правильности настроек и прав доступа на файлы, команда должна отдать пустой результат.

Все ошибки и прочие события из жизни вашего почтовика вы можете найти в логах
/var/log/mail.log
/var/log/mail.err
/var/log/mail.warn
/var/log/mail.info

Удачной настройки =)


Popularity: 3%

173 Комментариев »

Обсудить на форуме

Дай же, не жадничай!
ЯндексЯндекс. ДеньгиХочу такую же кнопку

173 Responses to “Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальных доменов”

  1. Temik on 22 мая 2008 at 14:38 #

    Ну сокращенный перевод конечно это хорошо… Но ссылку на оригинал надо указывать!
    http://workaround.org/articles/ispmail-etch/

  2. Kir on 02 Июн 2008 at 12:52 #

    если используешь mysql, есть смысл хранить все данные там же. сам использую dbmail exim mysql очень быстрое и гибкое решение

  3. Stepanoff on 03 Июн 2008 at 09:07 #

    мне как роднее постфикс :)

  4. Kir on 06 Июн 2008 at 12:14 #

    сам когда-то использовал postfix, но в exim’е подкупила простота и лаконичность конфигов =)

  5. Stepanoff on 06 Июн 2008 at 15:55 #

    Не пробовал екзим… :) может и проще он…

  6. Black SiriuS on 14 Июн 2008 at 01:43 #

    для создание таблиц под пхпадмином
    CREATE TABLE `virtual_users` (
    `id` INTEGER(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `domain_id` INTEGER(11) NOT NULL,
    `user` VARCHAR(40) NOT NULL,
    `password` VARCHAR(32) NOT NULL,
    CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
    FOREIGN KEY (domain_id) REFERENCES virtual_users(id) ON DELETE CASCADE)ENGINE=InnoDB;

    CREATE TABLE `virtual_aliases` (
    `id` INTEGER(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `domain_id` INTEGER(11) NOT NULL,
    `source` VARCHAR(40) NOT NULL,
    `destination` VARCHAR(80) NOT NULL,
    FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE)ENGINE=InnoDB;

  7. Stepanoff on 14 Июн 2008 at 21:46 #

    Спасибо! :)

  8. evgen on 26 Июн 2008 at 00:57 #

    тема вебмыла не раскрыта
    а ведь мы его поставили ;)

  9. Stepanoff on 26 Июн 2008 at 08:41 #

    заходим по адресу сервера /squirrelmail там мыло :)

  10. kolya on 13 Июл 2008 at 09:14 #

    все настраивал как описано. Все работало до того, как я добавил следующее:
    dovecot unix – n n – - pipe
    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d ${recipient}

    virtual_transport=dovecot
    dovecot_destination_recipient_limit=1

    Теперь у меня постфикс запускается и не останавливается.
    Starting postfix …. [ok]
    Starting postfix …. [!!]

    А белка при отправке письма пишет
    Message not sent. Server replied:
    Connection refused
    111 Can’t open SMTP stream
    Где может быть трабл между постфиксом и довекот?

    конфиг довекот.конф:
    protocols = imap imaps pop3 pop3s
    disable_plaintext_auth = no
    log_path = /var/log/dovecot.err
    ssl_cert_file = /etc/ssl/dovecot/server.pem
    ssl_key_file = /etc/ssl/dovecot/server.key
    mail_location = maildir:/home/vmail/%d/%n
    namespace private {
    separator = .

    prefix = INBOX.

    inbox = yes
    }
    protocol imap {

    }

    protocol pop3 {
    pop3_uidl_format = XuXv

    }
    protocol lda {
    log_path = /var/vmail/dovecot/auth-master
    postmaster_address = postmaster@panjekat.tj
    mail_plugins = cmusieve
    global_script_path = /home/vmail/globalsieverc
    }

    auth default {
    mechanisms = plain login

    passdb sql {
    # Path for SQL configuration file, see doc/dovecot-sql-example.conf
    args = /etc/dovecot/dovecot-sql.conf
    }

    userdb passwd {
    }

    userdb static {
    }

    user = root

    socket listen {
    master {
    path = /var/run/dovecot/auth-master
    mode = 0600
    user = vmail
    }
    client {
    path = /var/spool/postfix/private/auth
    mode = 0660
    user = postfix
    group = postfix
    }
    }
    }
    dict {
    }
    plugin {
    }

    конфиг майн.сф:
    queue_directory = /var/spool/postfix
    command_directory = /usr/sbin

    daemon_directory = /usr/lib/postfix

    mail_owner = postfix

    myhostname = mail.domen.zo

    mydomain = domen.zo

    myorigin = $myhostname
    #myorigin = $mydomain
    inet_interfaces = all
    unknown_local_recipient_reject_code = 550
    debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    xxgdb $daemon_directory/$process_name $process_id & sleep 5

    sendmail_path = /usr/sbin/sendmail

    newaliases_path = /usr/bin/newaliases

    mailq_path = /usr/bin/mailq

    setgid_group = postdrop

    html_directory = /usr/share/doc/postfix-2.4.6-r2/html

    manpage_directory = /usr/share/man
    sample_directory = /etc/postfix

    mailbox_size_limit = 102400

    home_mailbox = .maildir/
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    smtpd_tls_cert_file = /etc/ssl/private/postfix.pem
    mynetworks = 0.0.0.0/0.0.0.0
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
    readme_directory = no
    data_directory = /var/lib/postfix

    Помогите пожалуйста… Уже неделю не могу запустить такую связку…

  11. Stepanoff on 13 Июл 2008 at 21:04 #

    Куда добавляли строки
    dovecot unix – n n – - pipe
    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d ${recipient} ?

  12. Stepanoff on 13 Июл 2008 at 21:05 #

    Еще совет, команда postfix check покажет ошибки в конфигах если они есть….

  13. kolya on 14 Июл 2008 at 05:59 #

    спасибо за совет, ошибка нашлась. Строка
    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d ${recipient}
    должна начинаться с двух пробелов, иначе он будет нечитаемым для постфикс. А у меня был один (идиотская ошибка)
    Теперь он начал запускаться, причем без ошибок. Но при попытке отправить письмо он выдает следующее в логе:

    mail postfix/smtpd[7360]: fatal: open database /etc/mail/aliases.db: No such file or directory
    mail postfix/smtpd[7360]: warning: process usr/lib/postfix/smtpd pid 8357 exit status 1
    mail postfix/smtpd[7360]: warning: process usr/lib/postfix/smtpd: bad command startup — throttling

    Я переименовал /etc/mail/aliases на /etc/mail/aliases.db, создал пустой файл с таким же именем, создал каталог… один фиг ему не нравится. Да и я не смог найти в конфигах, откуда но ссылается на этот файл… ??? =(

  14. Stepanoff on 14 Июл 2008 at 13:27 #

    погуглить? postfix check еще разок попробовать?

  15. kolya on 14 Июл 2008 at 18:41 #

    да, гугл помогает:
    postalias /etc/mail/aliases
    postfix reload

    да…. и очередная остановка (почти приехали). Письма отправляются только на ящики локального домена. На все остальные не хочет.
    NOQUEUE reject: RCPT from localhost[127.0.0.1]: : Relay access denied ; …….
    Мистер гугл много такого повидал (что меня радует), но у меня пока не получается – гуглю все еще… Надеюсь скоро получится и больше остановок не будет. respect

  16. Stepanoff on 15 Июл 2008 at 19:32 #

    Ну с этим просто :) Укажите ваши сети в конфиге и все заработает…
    mynetworks = 127.0.0.0/24 10.0.0.0/8 например….

  17. kolya on 17 Июл 2008 at 05:03 #

    Да, спасибо большое! Все заработало! И отправляет, принимает, прикрепляет, алиасит… Меж прочим это мое начало – первый почтовый сервер, которого я поднял. Статья очень хорошая. Вот написали бы еще маленькую статью о безопасности серверов линукс – настройка iptables, было бы вообще класс. Но и на том спасибо, мануал хороший.

  18. Stepanoff on 17 Июл 2008 at 12:11 #

    Всегда пожалуйста :)

  19. Larodar on 27 Июл 2008 at 18:14 #

    Большое спасибо за статью!
    И за коменты в частности, я тоже столкнулся с этой проблемой :)
    Ну вот, теперт всё вроде работает))
    Но один вопрос так и остался не решённым: как создавать нове ящики для пользователей? У меня белка принимает только логин и пароль которые я использую при входе в систему, а вот от тестового ящика (john) не берёт…

  20. Stepanoff on 28 Июл 2008 at 18:26 #

    Через почтовый клиент тестовый ящик работает? Создавать новые ящики для юзеров можно в пхпмайадмине, или написать простенький скрипт регистраций….

  21. Larodar on 31 Июл 2008 at 21:19 #

    Извиняюсь, ошибка предыдущего поста была из-за моей невнимательности…
    Ещё раз сверился с мануалом, всё подправил и теперь белка нормально принимает пароль, при отправке письма не ругается, в mail.err ничего не пишется, а вот в mail.log при попытке отправить письмо пишет следующее:

    Login: user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured

    to=, relay=none, delay=3122, delays=3102/0.01/20/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)

    НО на деле почта не приходит ни на локальные ящики ни на внешние…

    Подскажите пожалуйста, в чём проблема?

    P.S. А где хранится вся почта? В home/vmail/пользователь ? У меня там нету вроде :)

  22. Stepanoff on 31 Июл 2008 at 21:47 #

    Почта хранится в /home/vmail/domain.edu/username тоесть в папке с именем домена, в которой папка юзера, а там почта :)

  23. Larodar on 01 Авг 2008 at 20:14 #

    Папки есть, но писем вроде бы нет… Я там вижу три папки: cur, new, tmp (все три пусты), и четыре файла: dovecot.index, dovecot.index.cache, dovecot.index.log, subscriptions. А ведь должны быть где-то несколько исходящих писем, так как они отправились (наверное… ибо в логах ничего «плохого» не было, а белка не ругалась).
    А почему почта может не приходить на ящики? В логах ошибки не пишет, в каком направлении надо искать?

  24. Larodar on 02 Авг 2008 at 17:29 #

    UPD:
    При отправке на локальный ящик:
    to=, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=5.1.1, status=bounced (unknown user: «john»)
    при отправке на внешний ящик:
    to=, orig_to=, relay=none, delay=2380, delays=2360/0.01/20/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)

    Ничего не могу поделать… :(

  25. bigrain on 19 Авг 2008 at 15:34 #

    Та же проблема с локальным ящиком, что у «Larodar on 02 Авг 2008 at 17:29″. На внешний ящик отправляет прекрасно. Такое впечатление, что мускул недоприкрутился :(

  26. bigrain on 20 Авг 2008 at 11:42 #

    Разобрался! В файле /var/log/mail.warn есть предупреждение вида «Aug 20 09:44:02 mail postfix/trivial-rewrite[4423]: warning: do not list domain example.com in BOTH mydestination and virtual_mailbox_domains» . Чтобы этого избежать, в /etc/postfix/main.cf , в строке «mydestination =» убрал имя домена example.com (оставить только localhost и localhost.com) и перезапустил постфикс. После чего все заработало.

  27. Belfigor on 24 Сен 2008 at 07:44 #

    Добрый день создателю этого ресурса :) У меня вроде всё нормально !

    telnet localhost 25
    Trying 127.0.0.1…
    Connected to localhost.
    Escape character is ‘^]’.
    220 ubuntu.bel.ru ESMTP Postfix (Ubuntu)
    ehlo ubuntu.bel.ru
    250-ubuntu.bel.ru
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH PLAIN LOGIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    quit
    221 2.0.0 Bye
    __________________________________________

    telnet localhost 110
    Trying 127.0.0.1…
    Connected to localhost.
    Escape character is ‘^]’.
    OK Dovecot ready.
    quit
    OK Logging out
    Connection closed by foreign host
    ____________________________________

    Но теперь блин другая пробема , НЕ МОГУ СОЗДАТЬ АДМИНА в posfixadmin

    вроде так всё нормально

    Checking for dependencies:

    * Magic Quotes: Disabled – OK
    * Depends on: presence config.inc.php – OK
    * Checking $CONF['configured'] – OK
    * Depends on: MySQL 3.23, 4.0 – OK
    * Depends on: MySQL 4.1 – OK
    * Testing database connection – OK – mysqli://postfix:xxxxx@localhost/postfix
    * Depends on: session – OK
    * Depends on: pcre – OK
    * Depends on: multibyte string – OK

    Everything seems fine… attempting to create/update database structure
    Database is up to date

    НО !!!

    Create superadmin account
    Администратор: dirwar@ubuntu.bel.ru Почтовый адрес
    Некорректный адрес администратора!
    Пароль: ******
    Пароль (еще раз):

  28. Belfigor on 27 Сен 2008 at 22:11 #

    Ну отзовитесь кто нибудь , почему это происходит ??????????

  29. Stepanoff on 28 Сен 2008 at 12:12 #

    А другие адреса не воспринимает? Ведь этот адрес это логин.

  30. Belfigor on 29 Сен 2008 at 05:14 #

    И другие адреса не воспринимаются тоже :(

  31. Belfigor on 02 Окт 2008 at 17:40 #

    Добрый всем вечер , так с одной проблемой вроде разобрался , нужно было в конфиге posfixadmin в строке которая отвечает за домены поставить «NO» и всё пошло нормально !:)

    Но теперь другая проблема :lol: , нарочно не придумаешь , отправляются письма без проблем , тем юзерам которых я зарегинел в mysql это jonh@***.ru и asdf@***.ru , но при получение почты , сервак не пускает :( (((((((( ERR Authentication failed , в логах смотрел ничего нет , данный мануал проглядел и перелопатил ещё много раз ,

    Connected to localhost.
    Escape character is ‘^]’.
    OK Dovecot ready.
    user asdf
    OK
    pass asdf
    -ERR Temporary authentication failure.

    Кто что может сказать по этому поводу , а то у меня скоро уже истерика будет :)

  32. _VX on 03 Окт 2008 at 09:55 #

    Доброго всем!
    Сконфигурировал почтовый сервер как указано выше (на OpenSuSE 11.0, MySQL 5.0.18, Postfix 2.5.5, Dovecot 1.0.13).

    mail.log:

    Oct 2 03:08:19 mail postfix/postmap[12744]: 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 ‘=bimash.com’ at line 1

    (Это результат операции «$>
    postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    Вы должны увидеть цифру 1 если все правильно настроено.») Баг исправил. Далее:

    Oct 2 04:51:24 mail postfix/master[14539]: fatal: /etc/postfix/master.cf: line 110: bad transport type: user=vmail:vmail

    (Это результат следующего: «dovecot unix – n n – - pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
    Перезагрузите Postfix командой postfix reload, и добавьте информацию о виртуальном транспорте в главный конфиг Postfix»). Настроил Dovecot до конца и получил следующее:

    Oct 2 06:18:22 mail postfix/master[3918]: warning: process /usr/lib/postfix/smtpd pid 4004 exit status 1 (<- попытка заустить smtpd??)
    Oct 2 06:18:22 mail postfix/master[3918]: warning: /usr/lib/postfix/smtpd: bad command startup — throttling (<- которому не нравится эта команда??)
    Oct 2 06:19:22 mail postfix/smtpd[4008]: fatal: dict_open: unsupported dictionary type: mysql: [b]Is the postfix-mysql package installed?[/b]

    Postfix установлен с указанием заголовочных файлов и бинарников MySQL. Команда telnet localhost 25 выдает только
    Escape character is ‘^]’.
    и консоль на этом виснет. Думаю, тут smtpd и падает. Из-за проблемы Postfix MysSQL??? Хотя он падает регулярно уже с полсуток, чем зафлудил весь лог. Тогда почему мастер его запускает, ведь соединения на 25 порт не приходят?
    Аутентификация в Dovecot проходит успешно, он даже честно говорит, что новых писем нет. : )
    # postfix check возвращает пустую строку.
    # postconf -m возвращает:
    btree cidr environ hash ldap nis pcre proxy regexp sdbm static tcp unix
    А где mysql??

    Как «внушить» этому МТА, что он «умел», а теперь просто «забыл»? Где smtpd получает «startup command — throttling»
    Прошу помощи. Голова со вчера квадратная. Пока пересоберу Postfix. Жду ответов…

  33. _VX on 03 Окт 2008 at 10:30 #

    Решено.
    Пересборка помогла:
    # postfix stop
    # cd /distr/postfix
    # make -f Makefile.init makefiles \
    ‘CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql’ \
    ‘AUXLIBS=-L/usr/local/mysql/lib/mmysql -lmysqlclient -lz -lm’
    # make upgrade
    # postfix start

    Отправил себе и прочитал письмо ч/з telnet. («Рулезно!!» : )
    А вот причины проблемы так остались невыяснены. Может есть у кого какие мысли?

  34. _VX on 03 Окт 2008 at 11:28 #

    2 Belfigor про «…нарочно не придумаешь…»

    Escape character is ‘^]’.
    OK Dovecot ready.
    user asdf@mydomain.com
    OK
    pass asdf

    ХЗ почему оно сразу не говорит, что логин не верен;

    про логи:
    более подробное журналирование для
    dovecot (dovecot.conf):
    auth_verbose = yes
    auth_debug = yes
    auth_debug_passwords = yes
    postfix:
    postfix stop
    postfix – v – v start
    либо в master.cf добавить к
    smtp unix – n – smtp
    столько -v, сколько окажется достаточным
    (smtp unix – n – smtp -v -v).

  35. Stepanoff on 03 Окт 2008 at 19:55 #

    Пересборка помогла:
    # postfix stop
    # cd /distr/postfix
    # make -f Makefile.init makefiles \
    ‘CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql’ \
    ‘AUXLIBS=-L/usr/local/mysql/lib/mmysql -lmysqlclient -lz -lm’

    А до этого тоже собирал с поддержкой mysql?

  36. Belfigor on 03 Окт 2008 at 20:28 #

    Так люди , всем огромный респект и большое человеческое спасибо !! вчера опять полностью прочитал эту статью , потом долго сидел тут :) http://workaround.org/articles/ispmail-etch/

    Долго и тщательно , буква в букву , и о .. чудо всё пошло и заработало

    telnet localhost pop3

    Trying 127.0.0.1…
    Connected to localhost.
    Escape character is ‘^]’.
    OK Dovecot ready.

    user belfigor@belfigor.ru

    OK
    pass belfigor

    OK Logged in.

    теперь по поводу Postfixadmin в топку его , имхо я на том же сайте нашёл замечательный скрипт для регистрации юзеров и доменов , пашет на ура , он правда на немецком но там всего несколько строк , думаю не проблема ;) UserReg http://slil.ru/26203842
    _________________________________________________

    ну вроде всё теперь нормально , но меня терзают смутные сомнения почему у меня всё пашет нормально ? НО у меня в dovecot.conf

    # protocol imap {
    # listen = *:10143
    # ssl_listen = *:10943
    # ..
    # }
    # protocol pop3 {
    # listen = *:10100
    # ..
    # }
    #listen = *

    закоментированно , но пашет без проблем :)
    это что так и долго быть ? или косяк опять какой то ?

  37. Belfigor on 03 Окт 2008 at 20:29 #

    То есть так и должно быть ?

  38. _VX on 05 Окт 2008 at 10:42 #

    2 Stepanoff:
    Да. Из первого отрывка лога видно, что постфикс получил ответ от сервера БД. (Запарка состояла в том, что я не взял имя домена в кавычки. Опечатка.) А далее по-логу – то что я попытался взять в теги [b../b] – и вызвало мое неимоверное удивление.

    2 Belfigor:
    Не совсем ясно, что «так и должно быть» ? И в телнет сессии, и в строке почтового клиента имя пользователя указывается как «имя@домен.etc». А в вашем логе телнет сесии указано только имя:
    Connected to localhost.
    Escape character is ‘^]’.
    OK Dovecot ready.
    user asdf
    OK

  39. _VX on 05 Окт 2008 at 11:15 #

    Мои примечания к статье.
    Если планируется несколько виртуальных почтовых доменов на одном сервере, добавляем их в
    mysql>
    INSERT INTO virtual_domains (id, name) VALUES (2, ‘example2.com’)
    INSERT INTO virtual_domains (id, name) VALUES (3, ‘example3.ru’);
    и т.д.;

    mysql>
    INSERT INTO virtual_users (id, domain_id, user, password) VALUES (2, 2, ‘user’, MD5(‘password’));
    и т.д.;

    В /etc/postfix/mysql-virtual-mailbox-maps.cf правим:

    query = SELECT email FROM view_users WHERE email=’%s’

    $>
    postfix reload

  40. finomen on 09 Ноя 2008 at 14:02 #

    на некоторых провайдерах (например eltel) необходимо использовать relay-сервер провайдера для отправки почты на другие сервера (у меня relay-home.eltel.net) для этого в main.cf добавляем строчку
    relayhost = адрес_сервера

    (relayhost = relay-home.eltel.net)

  41. wbtrap on 12 Ноя 2008 at 17:01 #

    Спасибо!

    Использую Ubuntu Server 8.10

    ВОТ ВСЕ ДЛЯ БД
    =================================
    grant all on mailserver.* to mailuser@localhost identified by ‘mailuser2007′;

    CREATE TABLE `virtual_domains` (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL
    ) ENGINE = InnoDB;

    CREATE TABLE `virtual_users` (
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    domain_id INT(11) NOT NULL,
    user VARCHAR(40) NOT NULL,
    password VARCHAR(32) NOT NULL,
    CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
    FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE = InnoDB;

    CREATE TABLE `virtual_aliases` (
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    domain_id INT(11) NOT NULL,
    source VARCHAR(40) NOT NULL,
    destination VARCHAR(80) NOT NULL,
    FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
    ) ENGINE = InnoDB;

    INSERT INTO virtual_domains (id, name) VALUES (1, ‘example.com’);

    INSERT INTO virtual_users (id, domain_id, user, password)
    VALUES (1, 1, ‘john’, MD5(‘summersun’));

    CREATE VIEW view_users AS
    SELECT CONCAT(virtual_users.user, ‘@’, virtual_domains.name) AS email,
    virtual_users.password
    FROM virtual_users
    LEFT JOIN virtual_domains ON virtual_users.domain_id=virtual_domains.id;

    INSERT INTO virtual_aliases (id, domain_id, source, destination)
    VALUES (1, 1, ‘john’, ‘john@example.com’),
    (2, 1, ‘john’, ‘jmiller@gmail.com’);

    CREATE VIEW view_aliases AS
    SELECT CONCAT(virtual_aliases.source, ‘@’, virtual_domains.name) AS email,
    destination
    FROM virtual_aliases
    LEFT JOIN virtual_domains ON virtual_aliases.domain_id=virtual_domains.id;
    =========================================

    для того чтоб suirrelmail подцепить необходимо только создать ссылку на конфиг и перезапустить apache:
    =========================================
    #ln -s /etc/squirrelmail/apache.conf /etc/papche2/conf.d/squirrelmail.conf

    #/etc/init.d/apache2 restart
    =========================================

  42. wbtrap on 12 Ноя 2008 at 17:37 #

    Есть проблема!

    ЧЕРЕЗ squirrelmail на мыло захожу нормально, а воn через thunderbird никак. В логах пишет
    ==========================================
    pam_authenticate() failed: Authentication failure
    ==========================================

    При попытке отправить письмо с thunderbird в логах появляется
    ==========================================
    postfix/smtpd[5139]: fatal: open database /etc/aliases.db: No such file or directory
    ==========================================

    В чем трабл?
    Использую Ubuntu Server 8.10

  43. Stepanoff on 12 Ноя 2008 at 18:35 #

    Проверить конфиги на соответствие представленным примерам.
    Можно так же запустить postfix check, если вывод будет пустым то все ок =)

  44. Fiber on 20 Ноя 2008 at 08:44 #

    Проблемку помогите решить советом товарисчи ))
    долго заходит по поп3..не с первого раза..

    mail.err забит строчками вида :
    ————————–
    Nov 20 07:31:36 server dovecot: auth-worker(default): pam(alex@***.ru,192.168.1.69): pam_authenticate() failed: Authentication failure
    ————————–

    postfix check говорит что всё нормуль…

    конфиг
    postconf -n
    alias_database = hash:/etc/aliases
    alias_maps = hash:/etc/aliases
    append_dot_mydomain = no
    biff = no
    config_directory = /etc/postfix
    inet_interfaces = all
    mailbox_command = procmail -a «$EXTENSION»
    mailbox_size_limit = 0
    message_size_limit = 0
    mydestination = server.***.ru, ***, server, localhost
    myhostname = kiwi-art.ru
    mynetworks = 127.0.0.0/8 192.168.1.0/24
    myorigin = /etc/mailname
    readme_directory = no
    recipient_delimiter =
    relayhost =
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_path = private/auth
    smtpd_sasl_type = dovecot
    smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtpd_use_tls = yes
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
    virtual_gid_maps = static:5000
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_transport = dovecot
    virtual_uid_maps = static:5000

    подскажите пожалуйста куда копать…я то он ели конектится (( куда копать?? у кого какие мысли?
    моя попа говорит что PAM виновен))ктонибудь стаалкивался?????

  45. Fiber on 27 Ноя 2008 at 16:20 #

    помогите пожалуста )))

  46. Stepanoff on 27 Ноя 2008 at 16:25 #

    У вас постфикс установлен без поддержки MYSQL и пытается авторизоваться через PAM.

  47. kadavr on 26 Фев 2009 at 14:50 #

    Здрасьте вам. Спасибо за отличную статью, но вот сделал все «по рецепту» – и начались косяки-с.. Во первых, не могу зайти ни через Белку, ни через почтовый ящик – грит мол аксес денайд, хотя через тот же телнет логинится на ура. Вот что по этому поводу в логах:
    В майл.лог:

    Feb 26 20:49:58 debian postfix/master[2885]: daemon started — version 2.5.5, configuration /etc/postfix
    Feb 26 20:50:04 debian postfix/postfix-script[2891]: the Postfix mail system is running: PID: 2885
    Feb 26 20:50:13 debian postfix/smtpd[2892]: warning: cannot get private key from file /etc/ssl/private/postfix.pem
    Feb 26 20:50:13 debian postfix/smtpd[2892]: warning: TLS library problem: 2892:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:399:
    Feb 26 20:50:13 debian postfix/smtpd[2892]: cannot load RSA certificate and key data
    Feb 26 20:50:13 debian postfix/smtpd[2892]: warning: 10.0.0.204: address not listed for hostname nadezhin.office.local
    Feb 26 20:50:13 debian postfix/smtpd[2892]: connect from unknown[10.0.0.204]
    Feb 26 20:50:20 debian postfix/smtpd[2892]: disconnect from unknown[10.0.0.204]
    Feb 26 21:09:54 debian dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mailserver)
    Feb 26 21:09:55 debian dovecot: imap-login: Aborted login (1 authentication attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Feb 26 21:10:07 debian dovecot: imap-login: Aborted login (1 authentication attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Feb 26 21:10:43 debian dovecot: imap-login: Aborted login (1 authentication attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Feb 26 21:11:09 debian dovecot: imap-login: Aborted login (1 authentication attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Feb 26 21:13:09 debian dovecot: imap-login: Aborted login (1 authentication attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Feb 26 21:13:19 debian dovecot: imap-login: Aborted login (1 authentication attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Feb 26 21:29:21 debian dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mailserver)
    Feb 26 21:29:23 debian dovecot: pop3-login: Disconnected: user=, method=PLAIN, rip=10.0.0.204, lip=10.0.0.135
    Feb 26 21:29:53 debian dovecot: pop3-login: Disconnected: user=, method=PLAIN, rip=10.0.0.204, lip=10.0.0.135
    Feb 26 21:33:25 debian dovecot: pop3-login: Disconnected: user=, method=PLAIN, rip=10.0.0.204, lip=10.0.0.135
    Feb 26 21:40:02 debian dovecot: pop3-login: Login: user=, method=PLAIN, rip=10.0.0.204, lip=10.0.0.135
    Feb 26 21:41:55 debian dovecot: imap-login: Aborted login (1 authentication attempts): user=, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured

    В майл.ерр:

    Feb 26 20:44:40 debian postfix/master[13464]: fatal: /etc/postfix/master.cf: line 83: bad transport type: user=vmail:vmail
    Feb 26 20:46:24 debian postfix/master[2511]: fatal: /etc/postfix/master.cf: line 83: bad transport type: user=vmail:vmail
    Feb 26 20:48:05 debian postfix/master[2740]: fatal: /etc/postfix/master.cf: line 83: bad transport type: user=vmail:vmail
    Не могли бы Вы подсказать, куды рыть? Если нужны какие то логи или конфиги – выложу. Заранее спасибо Вам.

  48. Stepanoff on 26 Фев 2009 at 17:55 #

    Прочитайте еще разок статью, очень внимательно про SSL сертификаты и настройку транспортов.

  49. kadavr on 27 Фев 2009 at 13:25 #

    Ага, Вы правы))) спасибо большое. Только вот одна деталь, я как то недопойму – у меня домен company.ru, имя компа debian, т.е. полный FQDN мне указать как debian.company.ru?

  50. Stepanoff on 27 Фев 2009 at 18:20 #

    Нет, сервер ведь обслуживает виртуальные домены, можно указать и company.ru

  51. grigor on 28 Фев 2009 at 21:31 #

    у меня затык вот здесь:

    Венитесь в обратно в шелл bash и проверьте правильность настроек виртуального домена командой, не забудьте сменить домен с example.com на свой.

    Код:
    $>
    postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

    ПИШЕТ: postmap: fatal: bad string length 0 < 1: setgid_group =
    в чём проблема?

  52. Stepanoff on 01 Мар 2009 at 05:54 #

    А что у вас в файле /etc/postfix/mysql-virtual-mailbox-domains.cf?
    И от какого пользователя запускаете команду?

  53. grigor on 01 Мар 2009 at 14:29 #

    всё разобрался, в файле main.cf надо было закоментировать setgid_group =

    вроде всё настроил, но почту не могу получить почтовым клиентом Mozilla Thunderbird
    при подключении выдаёт:
    Команда PASS не выполнена. Почтовый сервер «имя сервера» ответил: Authentication filed.

  54. grigor on 01 Мар 2009 at 15:40 #

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

    This is the mail system at host моё.доменное.имя.

    I’m sorry to have to inform you that your message could not
    be delivered to one or more recipients. It’s attached below.

    For further assistance, please send mail to postmaster.

    If you do so, please include this problem report. You can
    delete your own text from the attached returned message.

    The mail system

    host gmail-smtp-in.l.google.com[216.239.59.27] said:
    550-5.7.1 [78.36.25.107] The IP you’re using to send mail is not authorized
    550-5.7.1 to send email directly to our servers. Please use the SMTP
    550-5.7.1 relay at your service provider instead. Learn more at 550
    5.7.1 http://mail.google.com/support/bin/answer.py?answer=10336
    i6si11828608gve.30 (in reply to end of DATA command)

    И что тут делать?

  55. Stepanoff on 02 Мар 2009 at 11:04 #

    Ваш айпи адрес видимо не имеет обратной зоны, или PTR. Обратитесь к провайдеру с этим вопросом, или же используйте для отправки почты релэй провайдера, если таковой имеется.

  56. Stepanoff on 02 Мар 2009 at 11:05 #

    ЗЫ: А вообще это детская ошибка, учитесь пользоваться гуглом.

  57. maximka_l on 03 Мар 2009 at 12:29 #

    Всем привет. Помогите пожалуйста.
    Прочитал статью. Все сделал как написано, но конечно же без ошибок не обошлось. Логи мне помогли, самые крупные ошибки я исправил, но осталось еще 2 ошибки, в которые я просто въехать не могу.

    Почта у меня спокойно отсылается на любые адреса в интернете, но почему то, если я с интернета пишу письмо, оно не доходит.
    В mail.warn пишет:
    Mar 3 16:15:02 www postfix/smtp[3498]: warning: numeric domain name in resource data of MX record for ew.ru: 148.240.4.32
    Mar 3 16:15:02 www postfix/smtp[3498]: warning: numeric domain name in resource data of MX record for ew.ru: 148.240.4.32
    Mar 3 16:15:26 www postfix/smtp[2784]: warning: numeric domain name in resource data of MX record for bazhenov.ru: 148.240.4.32
    Mar 3 16:15:26 www postfix/smtp[2784]: warning: numeric domain name in resource data of MX record for bazhenov.ru: 148.240.4.32
    Mar 3 16:15:57 www postfix/smtp[2754]: warning: numeric domain name in resource data of MX record for ew.ru: 148.240.4.32
    Mar 3 16:15:57 www postfix/smtp[2754]: warning: numeric domain name in resource data of MX record for ew.ru: 148.240.4.32
    Mar 3 16:21:07 www postfix/smtp[2930]: warning: numeric domain name in resource data of MX record for lx.ru: 148.240.4.32
    Mar 3 16:21:07 www postfix/smtp[2930]: warning: numeric domain name in resource data of MX record for lx.ru: 148.240.4.32
    Mar 3 16:22:41 www postfix/smtp[2790]: warning: numeric domain name in resource data of MX record for lx.ru: 148.240.4.32

    В принципе смущает только это, остальное вроде все нормально. Какие может еще логи нужны и конфиги?? скажите я покажу. Помогите пожалуйста с моей проблемой.

  58. Drum41k on 03 Мар 2009 at 23:40 #

    postfix/master[17743]: fatal: /etc/postfix/master.cf: line 86: bad transport type: user=vmail:vmail
    Помогите, нифига не помогает :(

  59. maximka_l on 04 Мар 2009 at 04:46 #

    А комментарии и погуглить никак??
    Если нет, то конфиг master.cf в студию!

  60. Drum41k on 04 Мар 2009 at 14:26 #

    уже решил, новая проблема
    postfix/trivial-rewrite[32354]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
    Пересоздал базу заново, ефект тот же

  61. YuriyCh on 17 Мар 2009 at 13:24 #

    Все красиво работает, ток вопрос: можно как-нить создать алиас с ссылками на ящики в локальном файле? А-ля :include: в aliases постфикса.. А то прописывать пару десятков ящиков в строчку как-то не удобно..

  62. search on 07 Апр 2009 at 08:14 #

    Все настроил как написано все хорошо. А можно теперь еще что нить прикрутить к этому чтоб почта еще забиралась с удаленного почтового ящика и ложилась в виртуальный?

  63. iron_head on 19 Апр 2009 at 21:26 #

    Привет, отличный мануал, долго искал что то подобное, реализовал на Debian Etch. но проблем избежать не удалось и тут, возможно виноват в этом postfix который я пытался установить из sources с офф сайта, оставил, после чего установил из репозитория родной (в сборке) для дебиан вариант. некоторые выдержки из tail -f /var/log/mail.log которые меня мягко говоря смущают:
    Apr 20 00:11:51 main postfix/smtp[14000]: fatal: specify a password table via the `smtp_sasl_password_maps’ configuration parameter
    Странно такой параметр вообще не фигурирует в конфигах и в этом мануале, подскажит пожалуйста где я мог ошибиться?? Ведь если я пропишу этот параметр хэшем и там уже укажу в текстовике пароли и аккаунты, то тогда теряется смысл в MySQL.

    И вот ещё одно, единестенное письмо было мною отправлено на gmail.com (вернее сказать была попытка отправить письмо) аккаунт содержало 3 слова, что то тиипа тест, мэйл лимит стоит 10 на письмо, и 30 мб. на ящик, как тут может быть эксид??
    Apr 20 00:11:51 main postfix/cleanup[14004]: warning: 197731ED5AF: queue file size limit exceeded
    Подскажите пожалуйста, первая моя настройка серьезной почтовой системы.

  64. Stepanoff on 20 Апр 2009 at 06:40 #

    Конфиг main.cf в студию! :)

  65. iron_head on 20 Апр 2009 at 07:45 #

    Привет, вот весь конфиг:

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

    # appending .domain is the MUA’s job.
    append_dot_mydomain = no

    # Uncomment the next line to generate «delayed mail» warnings
    #delay_warning_time = 4h

    # TLS parameters
    smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.

    myhostname = main.pressa.loc
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    ###mydestination = pressa39.ru, main.pressa.loc, localhost.pressa.loc, localhost
    mydestination = main.pressa.loc, localhost.pressa.loc, localhost
    #relayhost =
    mynetworks = 192.168.1.0/24
    mailbox_size_limit = 20
    message_size_limit = 10
    recipient_delimiter =
    inet_interfaces = all
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    smtp_sasl_type = dovecot
    #smtp_sasl_password_maps = cdb:/etc/sasldb
    smtp_sasl_path = private/auth
    smtp_sasl_auth_enable = yes
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

  66. Stepanoff on 20 Апр 2009 at 07:48 #

    mailbox_size_limit = 20
    message_size_limit = 10

    Выходит максимальный размер на сообщение у вас 10 байт, а максимальный размер почтового ящика 20 байт.

  67. iron_head on 20 Апр 2009 at 08:05 #

    аа…ммм…байт? я что то подумал что размер тут Мбайтах. А как насчет другой ошибки ? smtp_sasl_password_maps’ configuration parameter, что нибудь по этому поводу можете подсказать?

  68. iron_head on 20 Апр 2009 at 09:20 #

    Помогите мне пожалуйста! что мне с этим делать? Про размер ящика я все понял.
    Apr 20 12:19:39 main postfix/smtp[15562]: fatal: specify a password table via the `smtp_sasl_password_maps’ configuration parameter
    Apr 20 12:19:40 main postfix/master[15539]: warning: process /usr/lib/postfix/smtp pid 15562 exit status 1
    Apr 20 12:19:40 main postfix/master[15539]: warning: /usr/lib/postfix/smtp: bad command startup — throttling

  69. Stepanoff on 20 Апр 2009 at 09:45 #

    Проверьте еще раз параметры авторизации в конфигах, посмотрите, не говорит ли чего postfix check, ну и гугл наконец спросите :)

  70. BlackWhite on 01 Июн 2009 at 12:46 #

    Спасибо за статью! С начало не работало TLS/SSL, но оказалось все оч просто – сволоч Avast блокировал и молчал.
    Но вообще то есть вопрос немного не потеме. А имеено как прикрутить RoundCube к пользователям postfix. Ведь если не ошибаюсь он стоит у вас. Гугль не помог, на офф сайте тоже ничего нет, метод научного тыка не сработал. Да и возможно это?

  71. Stepanoff on 01 Июн 2009 at 18:03 #

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

  72. BlackWhite on 04 Июн 2009 at 09:22 #

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

  73. Micha on 07 Июн 2009 at 07:32 #

    Статья очень хорошая, все по пунктам и заработало. Внутри локалки почта отправляется и принимается. Круто!
    Вот запнулся на том, что надо еще чтобы почта оправлялась в инет и принималась из инета.
    Что делать?
    Спасибо.

  74. Stepanoff on 07 Июн 2009 at 12:49 #

    Надо прописать MX записи для домена в DNS.

  75. Micha on 07 Июн 2009 at 13:01 #

    Спасибо за ответ. Но в linux я совсем новичок. Напишите, пожалуйста, конкретнее что делать. Установить BIND9? Ткните носом что куда и как.
    Спасибо

  76. Stepanoff on 07 Июн 2009 at 13:05 #

    А в случае с первым сексом с девушкой тоже просили более опытных людей показать вам и ткнуть носом куда надо? :)
    В гугле вас конечно забанили, а на википедии поиск сломался.
    http://ru.wikipedia.org/wiki/Запись_MX вот по ссылочке почитайте

  77. postfix. заметки « Урановые рудники on 21 Авг 2009 at 10:37 #

    [...] Август 21, 2009 Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальн… [...]

  78. zavetrom on 24 Авг 2009 at 11:20 #

    все делал по руководству.
    однако, авторизация пользователей почему-то не проходит!
    в логах:

    Aug 24 16:11:20 post2 postfix/postfix-script: stopping the Postfix mail system
    Aug 24 16:11:20 post2 postfix/master[4220]: terminating on signal 15
    Aug 24 16:11:22 post2 postfix/postfix-script: starting the Postfix mail system
    Aug 24 16:11:22 post2 postfix/master[4394]: daemon started — version 2.3.3, configuration /etc/postfix
    Aug 24 16:11:32 post2 dovecot: Killed with signal 15
    Aug 24 16:11:32 post2 dovecot: Dovecot v1.0.7 starting up
    Aug 24 16:11:32 post2 dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mailserver)
    Aug 24 16:13:03 post2 dovecot: imap-login: Aborted login: user=, method=PLAIN, rip=::ffff:10.1.3
    .76, lip=::ffff:10.1.3.22, TLS

    делал два раза – второй раз на только что установленной системе (думал мало ли что пропустил) – результат одинаковый.

    вверху в принципе была такая проблема, и там советовали поподробнее смотреть на настройки ssl.
    ну, я смотрел внимательно, все делал как указано в статье – а ничего не вышло.
    подкскажите плз, что я упустил?

  79. zavetrom on 24 Авг 2009 at 11:22 #

    PS угловые скобки порезались. там в последней строчке лога конечно так:

    Aug 24 16:13:03 post2 dovecot: imap-login: Aborted login: user={sysadm}, method=PLAIN, rip=::ffff:10.1.
    3.76, lip=::ffff:10.1.3.22, TLS

    вместо фигурных скобок – угловые

  80. Stepanoff on 24 Авг 2009 at 14:01 #

    Авторизация у вас только по первой части емэйла, так работать не будет, надо писать емэйл полностью.

  81. zavetrom on 24 Авг 2009 at 15:45 #

    точно… в thunderbird указал полностью имя – заработало… спасибо :)

  82. yury on 28 Окт 2009 at 22:09 #

    Подскажите плз. Ставил на системе дебиан 5.0.
    Проверял аутлуком входящие принимает а исходящие крит

    с ssl
    Не удается отправить сообщение, поскольку сервер отказался принять адрес одного из получателей. В письме был указан адрес: ‘хххх@gmail.com’. Тема ‘Re: fsf’, Учетная запись: ‘mail.ххххх.ru’, Сервер: ‘mail.ххххх.ru’, Протокол: SMTP, Ответ сервера: ’554 5.7.1 : Relay access denied’, Порт: 25, Защита (SSL): Да, Ошибка сервера: 554, Код ошибки: 0x800CCC79

    и без

    Не удается отправить сообщение, поскольку сервер отказался принять адрес одного из получателей. В письме был указан адрес: ‘хххх@gmail.com’. Тема ‘Re: fsf’, Учетная запись: ‘mail.ххххх.ru’, Сервер: ‘mail.ххххх.ru’, Протокол: SMTP, Ответ сервера: ’554 5.7.1 : Relay access denied’, Порт: 25, Защита (SSL): Нет, Ошибка сервера: 554, Код ошибки: 0x800CCC79

  83. Stepanoff on 28 Окт 2009 at 22:13 #

    Отправка возможна только после авторизации, в поле логин должен быть почтовый ящик полностью. Так же проверьте что бы было заполнено значение mynetworks

  84. yury on 28 Окт 2009 at 22:31 #

    лог из mail.err

    Oct 28 22:26:04
    debiansrv postfix/smtp[3878]: fatal: specify a password table via the
    `smtp_sasl_password_maps’ configuration parameter

    лог из mail.info

    Oct 28 22:23:01 debiansrv postfix/smtp[3869]: fatal: specify a password table
    via the `smtp_sasl_password_maps’ configuration parameter Oct 28 22:23:02
    debiansrv postfix/master[2770]: warning: process /usr/lib/postfix/smtp
    pid 3869 exit status 1 Oct 28 22:23:02 debiannssrv postfix/master[2770]:
    warning: /usr/lib/postfix/smtp: bad command startup — throttling

    лог из mail.log
    Oct 28 22:18:56 debiansrv postfix/smtp[3857]: fatal: specify a password table vible via the `smtp_sasl_password_maps’ configuration parameter

    Oct 28 22:18:57 debiansrv postfix/master[2770]: warning: process /usr/lib/postfix smtp pid 3857 exit status 1

    Oct 28 22:18:57 debiansrv postfix/master[2770]: warning: /usr/lib/postfix/smtp: bad command startup — throttling

    лог из mail.log

    Oct 28 22:14:53
    debiansrv postfix/master[2770]: warning: process /usr/lib/postfix/smtp
    pid 3840 exit status 1 Oct 28 22:14:53 debiannssrv postfix/master[2770]:
    warning: /usr/lib/postfix/smtp: bad command startup — throttling Oct 28
    22:15:53 debiansrv postfix/smtp[3842]: fatal: specify a password table
    via the `smtp_sasl_password_maps’ configuration parameter Oct 28 22:15:54
    debiannssrv postfix/master[2770]: warning: process /usr/lib/postfix/smtp
    pid 3842 exit status 1 Oct 28 22:15:54 debiannssrv postfix/master[2770]:
    warning: /usr/lib/postfix/smtp: bad command startup — throttling

  85. yury on 28 Окт 2009 at 22:44 #

    ##Отправка возможна только после авторизации, в поле логин должен быть почтовый ящик полностью. Так же проверьте что бы было заполнено значение mynetworks##

    Здесь все правильно сделал

  86. k0ldbl00d on 16 Ноя 2009 at 15:48 #

    Спасибо, хороший howto. Но у меня есть несколько проблем. Через squirrelmail ящик открывается, письма через него отправляются, но:

    - Любые письма, отправленные на ящик, на него не приходят;
    - Снаружи не могу подключиться к 25ому порту. Даже не телнетится. Изнутри – всё в порядке. Через TLS / SSL тоже не работает.

    К слову – MX записи работают нормально. Я делал по другому руководстуву, там всё заработало, но мне нужно было хранить информацию о ящиках в MySQL, а там это не получилось. Но почта приходила и уходила нормально.

    netstat показывает что порт 25 открыт (*:smtp)

  87. Stepanoff on 16 Ноя 2009 at 15:56 #

    Без выдержек из логов почтовика никто ничем не поможет. Для шифрования рабочего сертификаты надо генерировать, и прописывать их в настройках. Фаервол проверяйте для коннекта извне, по дефолту почтовик слушает на всех интерфейсах.

  88. postoronnim_v on 25 Ноя 2009 at 19:49 #

    Есть еще два вопроса – что делать в случае, если входы нужны снаружи для отправки почты, а ошибка вылетает, как у коли
    NOQUEUE reject: RCPT from localhost[127.0.0.1]: : Relay access denied ; …….
    Т.е. просто прописать локальные адреса нельзя – почта стоит на vps
    Вопрос номер два – сгенеренный сертификат оказывается с просроченным сроком действия?

  89. postoronnim_v on 25 Ноя 2009 at 22:23 #

    C сертификатами разобрался – все подробно описано в документе http://wiki.dovecot.com/SSL/CertificateCreation
    Почтовики нормально сжирают сертификат
    В статье в настройке dovecot.conf нужно исправить:
    ssl_cert_file = /etc/ssl/certs/dovecot.pem
    ssl_key_file = /etc/ssl/private/dovecot.pem

    Вопрос по отправке почты почтовой программой с внешнего адреса остался.

  90. postoronnim_v on 26 Ноя 2009 at 00:35 #

    Заработало.

    smtpd_sasl_auth_enable = yes

    обязательно нужно добавлять в main.cf
    Иначе не будет отправляться почта с виртуальных доменов.
    Этого в мануале нет.

  91. Stepanoff on 26 Ноя 2009 at 10:10 #

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

  92. ra9cae on 11 Дек 2009 at 13:13 #

    Спасибо за статью а точнее за перевод !
    Сделал не работает, не работает следующее:
    Может кто что либо подскажет, делал все в точности как написано:
    dima@office:~$ telnet localhost pop3
    Trying 127.0.0.1…
    Connected to localhost.
    Escape character is ‘^]’.
    OK Dovecot ready.
    user ra9cae
    OK
    pass q1w2e3r4t5
    -ERR Authentication failed.
    quit
    OK Logging out
    Connection closed by foreign host.
    dima@office:~$
    Через вэб морду не пускает.
    В логах в принципе не чего нового (

  93. anonymous on 20 Янв 2010 at 12:35 #

    А как создать простой алиас к ящику, чтобы не создавать отдельный ящик?

  94. Stepanoff on 20 Янв 2010 at 13:01 #

    Вставить запись в таблицу aliases. Работать будет без создания ящика.

  95. D@Ni1986 on 12 Фев 2010 at 11:23 #

    Написал скрипт на php для добавление доменов, удаление доменов, добавление ящиков, удаление ящиков.
    Пользуйтесь: http://narod.ru/disk/17834639000/madmin.zip.html

  96. Stepanoff on 12 Фев 2010 at 11:30 #

    Спасибо.

  97. Stepanoff on 12 Фев 2010 at 12:07 #

    Перезалил скрипт к себе на всякий случай.
    http://sudouser.com/madmin.zip

  98. D@Ni1986 on 13 Фев 2010 at 00:33 #

    Могу еще добавить алиасы добавить и удалить. У себя уже сделал. Если кому надо пишите.

  99. Stepanoff on 13 Фев 2010 at 12:06 #

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

  100. D@Ni1986 on 13 Фев 2010 at 12:14 #

    Лови: http://narod.ru/disk/17867047000/madmin_1.0.0.2.zip.html

  101. D@Ni1986 on 14 Фев 2010 at 19:57 #

    Сори пофиксил коечто.
    http://narod.ru/disk/17905849000/madmin-1.0.0.3.zip.html

    А именно добавил простую авторизацию по гет, подправил SqL запросы.

  102. D@Ni1986 on 17 Фев 2010 at 03:45 #

    Новая версия, если не трудно удали старые посты.
    Это финал версия нормальная авторизация по сессии.
    http://narod.ru/disk/17990441000/madmin-1.0.0.4.zip.html
    Плюс красивый интерфейс.

  103. D@Ni1986 on 17 Фев 2010 at 04:03 #

    Битую ссылку дал сори http://narod.ru/disk/17990565000/madmin-1.0.0.4.zip.html

  104. maximka on 20 Фев 2010 at 22:35 #

    Привет всем . Помогите пожайлуста !!! Все поставил как здесь написано . Но через Squirrelmail не заходит . Пишет Unknown user or password incorrect. . LOgin и password ввожу сдедующие – john@example.com 14cbfb845af1f030e372b1cb9275e6dd . Проверял , в базе все забито правильно .
    В логах пишет
    Feb 20 22:31:55 localhost dovecot: imap-login: Aborted login: user=, method=PLAIN, rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, secured

    Помогите советом пожайлуста .
    Заранее всем спасибо .

  105. maximka on 21 Фев 2010 at 00:07 #

    К сожалению описался в логах
    В логах пишет
    Feb 20 22:31:55 localhost dovecot: imap-login: Aborted login: user=, method=PLAIN, rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, secured

  106. Stepanoff on 21 Фев 2010 at 13:16 #

    Какой пароль вводили при создании юзера john@example.com, такой и вводите, а в бд лежит его хэш в MD5.

  107. maximka on 22 Фев 2010 at 18:52 #

    Спасибо большое . Самому стыдно как натупил . Но теперь возникла новая проблема . Вобщем он не находит плагин cmusieve . В логах пишет

    deliver(maxim@example.com): Feb 22 18:19:18 Fatal: Plugin cmusieve not found from directory /usr/lib/dovecot/lda

    Я так понимаю все дело в плагине . Его просто нет в dovecot . Проверял лично – его там нет . Погуглил но ни какого внятного ответа не нашел . Может я не прав , но насколько я понял cmusieve в новых версия dovecot уже не используется . Заранее благодарю за помощь .

  108. Stepanoff on 22 Фев 2010 at 20:31 #

    Простите, а зачем он вообще? Не слышал о таком…

  109. maximka on 22 Фев 2010 at 22:01 #

    Вопрос
    в статье предлагается отредактировать файл dovecot.conf вставив следующее
    protocol lda {
    log_path = /home/vmail/dovecot-deliver.log

    mail_plugins = cmusieve

    }

    Получается он нужен . Или я не прав

  110. Stepanoff on 22 Фев 2010 at 23:54 #

    У меня в конфиге так:
    protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = root@sudouser.com
    mail_plugins = cmusieve
    global_script_path = /home/vmail/globalsieverc
    }
    Может пути просто не верно указаны у вас?

  111. maximka on 26 Фев 2010 at 20:27 #

    Все похоже разобрался . Я не знаю как у всех , но у меня cmusieve не входит в стандартную конфигурацию dovecot .
    Его нужно ставить отдельно . Более того в новых версиях dovecot cmusieve заменен на sieve .
    получается
    protocol lda {

    mail_plugins = sieve

    }
    и не забудем reboot
    Всем удачи !!!

  112. Stepanoff on 26 Фев 2010 at 22:16 #

    Спасибо за инфо, но ребут это по моему перебор, достаточно просто перезапустить почтовые демоны.

  113. fevil on 24 Мар 2010 at 15:29 #

    Добрый день! Настроил все как написано выше – работает на ура!!! спасибо автору. Вот только третий день не могу прикрутить postfixadmin ко всему, ктонибудь пробовал? в постфиксадмине структура таблиц немного другая.

  114. Stepanoff on 24 Мар 2010 at 15:43 #

    Возьмите структуру таблиц из постфикс админа, или воспользуйтесь скриптом для администрирования почтовика, он написан специально под этот конфиг. Ссылка на скрипт http://sudouser.com/madmin-1.0.0.4.zip

  115. mayoroff on 28 Мар 2010 at 01:09 #

    Доброго времени суток! Какая-то проблема всё-таки с альясами (или это только у меня?) – в общем, добавили мы в таблицу virtual_aliases например domain_id=1, source=’info’, destination=’someone@mail.ru’ – все ок. Пишем письмо на info@domain_name_with_id_1 – отлично, письмо ложится в ящик info@domain_name_with_id_1 но форвардится на someone@mail.ru не желает, хотя postmap -q info@domain mysql:/etc/postfix/mysql-virtual-alias-maps.cf нам выдает:
    someone@mail.ru,info@domain
    В логах все красиво:
    Mar 28 00:06:12 domain postfix/qmgr[6855]: 185EAB1C: from=, size=1322, nrcpt=1 (queue active)
    Mar 28 00:06:12 domain postfix/smtpd[6991]: disconnect from localhost[127.0.0.1]
    Mar 28 00:06:12 domain amavis[5323]: (05323-06) Passed CLEAN, [192.168.1.2] -> , Message-ID: , mail_id: GgauDTDe2JT3, Hits: -, size: 933, queued_as: 185EAB1C, 268 ms
    Mar 28 00:06:12 domain postfix/smtp[6989]: C9EB9B48: to=, relay=127.0.0.1[127.0.0.1]:10024, delay=0.35, delays=0.02/0.03/0.01/0.28, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=05323-06, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 185EAB1C)
    Mar 28 00:06:12 proofhosting postfix/qmgr[6855]: C9EB9B48: removed
    Mar 28 00:06:12 proofhosting postfix/pipe[6992]: 185EAB1C: to=, relay=dovecot, delay=0.13, delays=0.02/0.06/0/0.04, dsn=2.0.0, status=sent (delivered via dovecot service)
    Mar 28 00:06:12 proofhosting postfix/qmgr[6855]: 185EAB1C: removed

    т.е. письмо легло и никаких forwards не происходит… Не подскажите, куда именно копать?

  116. Stepanoff on 28 Мар 2010 at 01:23 #

    Попробуйте использовать скрипт для создания альясов и заведения ящиков, ссылка в комментарии выше.

  117. NorDick on 01 Апр 2010 at 03:22 #

    Спасибо за статью! Но у меня одна проблема шлюз SMTP не просит авторизации а отправляет почту безо всяких вопросов
    Привожу пример cat /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/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    myhostname = mail.domen.ru
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = mail.domen.ru, localhost.domen.ru, , localhost
    relayhost =
    mailbox_size_limit = 102400
    recipient_delimiter = +
    inet_interfaces = all
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination
    mail:/var/log# clear
    mail:/var/log# cat /etc/postfix/main.cf
    append_dot_mydomain = no
    readme_directory = no
    smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    myhostname = mail.domen.ru
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = mail.domen.ru, localhost.domen.ru, , localhost
    relayhost =
    mailbox_size_limit = 102400
    recipient_delimiter = +
    inet_interfaces = all
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination

  118. Stepanoff on 01 Апр 2010 at 08:33 #

    Попробуйте перенастроить эти два пункта: smtpd_recipient_restrictions и smtpd_recipient_restrictions
    Вот мои:
    smtpd_recipient_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination
    reject_unauth_pipelining
    reject_invalid_hostname
    reject_non_fqdn_hostname
    reject_non_fqdn_recipient
    reject_unknown_recipient_domain
    reject_unlisted_recipient
    reject_rbl_client dnsbl.sorbs.net
    smtpd_sender_restrictions =
    permit_sasl_authenticated
    permit_mynetworks
    reject_non_fqdn_sender
    reject_unknown_sender_domain

  119. odmin4eg on 02 Апр 2010 at 11:32 #

    Stepanoff, вы читали код, что писали для вэб интерфейса? Удалите ПХП, и срочно изучайте Basic для спектрума…

    Не знаете основ ни языка ни безопасности.
    Вы прямо в скул запрос вставляете данные из ПОСТ !!!! вы сами это писали или подсказал кто?

    INSERT INTO $bdname.virtual_aliases (domain_id, source, destination) VALUES (‘$_POST[add_aliases]‘, ‘$_POST[user_to]‘, ‘$_POST[add_aliases_to]‘);»);

    Если не понимаете о чём я?

    что собсвенно заставило меня заглянуть в код?
    Да вот как раз добавление алиасов и не работали, $bdname. в вашем запросе не хватало.

    Ну и ещё раз, позор вставлять данные из гет (пост) запросов на прямую…. почитайте про sql inject

    ЗЫ Ещё можно аккуратной таблицей формировать список текущих емейлов, а не выпадающим списком ;)
    PSS кстати вот ещё в результате каждый раз выскакивает такое сообщение
    http://clip2net.com/clip/m23235/1270175939-clip-48kb.png
    решение которого с одной стороны филосовское.

  120. Stepanoff on 02 Апр 2010 at 15:07 #

    Нет,я не читал код для веб интерфейса, мало того я даже не смотрел что там в архиве, скрипт писал один из посетителей блога, и вы можете найти его комментарии выше. Я знаю достаточно для написания «безопасных» скриптов на пхп. Если Вы такой умник напишите свою статью, свой скрипт для управления, или на худой конец допилите PostfixAdmin, кто мешает? Насчет предупреждения, если бы вы почитали матчасть, то наверное знали бы, что самоподписанные сертификаты не пользуются доверием у софта, а тратить немалые деньги на нормально подписанный сертификат для домашнего сервера нет смысла.
    PS тут обсуждается настройка почтового сервера, а не безопасное написание скриптов, ваши советы тут по поводу php никому не нужны, оставьте их при себе.

  121. odmin4eg on 05 Апр 2010 at 04:38 #

    Stepanoff, может перед тем как что-то выкладывать на публику надо проверять что там в архиве? а то шелл или ещё какая гадость.

    PS Маны тоже пишу и не мало ;) в том числе и по почтарям.

  122. Stepanoff on 05 Апр 2010 at 08:30 #

    Может и стоило бы, но человек выкладывал не одну версию, не думаю что с шеллами так поступают, да и каждый в принципе сам может проверить что там.

  123. odmin4eg on 05 Апр 2010 at 11:42 #

    А не подскажите как сделать так, чтоб вся почта валилась в один ящик, на примере данной конфигурации?
    А дальшей уже френчмейлом всё забиралось
    вторая часть мне ясна, а вот заставить постфикс всё складывать в один ящик так и не могу заставить

  124. Stepanoff on 05 Апр 2010 at 11:52 #

    Надо собирать всю почту для домена в один ящик, не зависимо от того на какой она была отправлена? Надо в альясы вставить ящик @domain.com и поставить пересылку на нужный ящик.

  125. odmin4eg on 06 Апр 2010 at 09:14 #

    нашёл что-то похожее
    http://www.njl.us/2010/02/making-postfix-accept-all-mail-to-one.html

  126. Stepanoff on 06 Апр 2010 at 09:24 #

    Для одного домена на почтовом сервере пойдет, а если у меня их там несколько десятков, и не все мои? Для этого то и сделаны алиасы в mysql.

  127. odmin4eg on 14 Апр 2010 at 13:28 #

    Серьёзный вопрос у меня :(

    переезжаю с сендмейла настроенного лет 7-9 назад.

    База пользователей большая.

    Там аунтификация шла по логину без @domen.net.
    Как мне щас это организовать?

  128. Максим Степанов on 14 Апр 2010 at 13:43 #

    Посмотреть на sql query для авторизации, поменять.

  129. odmin4eg on 14 Апр 2010 at 15:54 #

    Отвечу на свой вопрос, в файле
    /etc/dovecot/dovecot-sql.conf

    Нужно изменить запрос.
    password_query = SELECT email as user, password FROM view_users WHERE email=’%u’;

    На
    password_query = SELECT email as user, password FROM view_users WHERE email=CONCAT(‘%u’,'@my-domain.ru’);

    Тогда авторизация будет идти по логину без домена

  130. Максим Степанов on 14 Апр 2010 at 16:13 #

    Можно проще делать
    password_query = select user, password from virtual_users where user=’%u’;

  131. rinerator on 20 Апр 2010 at 22:02 #

    автору большое спасибо за первый пост
    нашел копию статьи http://stopxaker.ru/showthread.php?p=80 в ней ссылка на оригинальный пост http://workaround.org/articles/ispmail-etch/ [EN].
    в оригинальном посте :
    Mailing lists with mailman
    ……..
    Using transport maps with a database mapping

    If you want to maintain your mailing list addresses in a MySQL table then use this /etc/postfix/mysql-transport-mailman.cf configuration file:

    user = mailuser
    password = mailuser2007
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT ‘mailman:’ FROM transports WHERE email LIKE ‘%s’

    The transport table would consist at least of a column email that contains mailing list addresses. Use ‘%’ in the address as a placeholder.

    Use this config file by setting:

    $> postconf -e transport_maps=mysql:/etc/postfix/mysql-transport-mailman.cf
    ———————————————————————————————————————-
    создал таблицу transport на этом тупик.
    что делать дальше ? как сделать этот «column email that contains mailing list addresses» ?
    на какой адрес отправлять письмо чтобы оно рассылалось по пользователям ?
    прошу помочь

  132. Максим Степанов on 20 Апр 2010 at 22:41 #

    В базу данных вносить изменения через phpmyadmin, если не умеете из консоли. Там есть таблица virtual_aliases с полями id, domain_id, source, destination, id оставить пустым, заполнить id домена, в поле source пишем ящик до символа @, на который будем слать письмо для рассылки, например для рассылки maillist@domain.edu вписать maillist, в поле destination вписать ящики полностью, каждый ящик с новой строки.

  133. rinerator on 21 Апр 2010 at 00:26 #

    это если домен один. а если доменов 50-100-200 ?

  134. Записки сумасшедшего админа » ubuntu почтовый сервер ( ubuntu mail server ) on 21 Апр 2010 at 07:43 #

    [...] И так прижало мне сделать для себя почтовый сервер на своём сервере. раньше оно работало из коробки и я горя не знал, но тут оказалось, что надо всё делать ну чтож приступим ubuntu 8.10 UPD: Прошло время, и сервер поднял по более стабильному варианту, всем рекоемндую http://sudouser.com/ustanovka-pochtovogo-servera-postfix-dovecot-mysql-i-virtualnyx-domenov.html [...]

  135. Максим Степанов on 21 Апр 2010 at 08:43 #

    И что от этого меняется? Хоть 100500 доменов, расылки делать так же. Не удобно phpmyadmin – напишите свой скрипт, специально для работы с БД почтового сервера.

  136. rinerator on 21 Апр 2010 at 09:47 #

    Максим, в общем делать через алиасы только так ?
    Хорошо. Подскажите пожалуйста тогда еще как ограничить количество исходящих smtp потоков и ограничить количество рецепиентов в одном письме. Спасибо

  137. Максим Степанов on 21 Апр 2010 at 22:16 #

    Почитайте http://www.postfix.ru/, там много по настройке и оптимизации работы почтового сервера.

  138. rinerator on 25 Апр 2010 at 14:04 #

    уфф
    нашел
    работает
    http://freemars.org/howto/mailman.html

  139. gosha on 26 Апр 2010 at 21:39 #

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

    Apr 26 21:38:30 server postfix/trivial-rewrite[6514]: fatal: proxymap service is not configured for table «mysql:/etc/postfix/mysql-virtual_transports.cf»

    помогите пожалуйста её решить …

  140. Максим Степанов on 26 Апр 2010 at 22:07 #

    Тут решили такую проблему: http://www.howtoforge.com/forums/archive/index.php/t-3203.html

  141. gosha on 26 Апр 2010 at 22:49 #

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

  142. Itachi1701 on 27 Апр 2010 at 11:08 #

    Здраствуйте максим! У меня такая проблема и гуглю уже а толку нет! Дело в том что я сделал все как у вас (делал раньше по вашим статьям днс фтп и многое другое и все работало) но тут проблемка!

    telnet localhost 25 – conecction refused

    в этом месте зависает! на 110 порт пожалуста а 25 ни в какую! фаервол открыл для 25 (да и вообще все разрешено) postfix check – дает пустой результат и ошибок нет! Вижу все в базе postmap – показует все правильно – короче все как у вас и нет ошибок только эта одна про 25 порт! Пожалуста помогите – заколебался гуглить! Нече не помогает! Думаю вы не раз уже почту настраивали и можете помочь! Повторю все как у вас в статье! Прошу помочь!

  143. Максим Степанов on 27 Апр 2010 at 20:49 #

    Демон не запущен, ошибка в конфигах. Перезапустить Postfix и Dovecot, посмотреть что пишет.

  144. DiJey on 27 Апр 2010 at 21:20 #

    Статья хорошая, спасибо автору, если в dovecot работает sasl авторизация , всё сделано как написано в этой статье, но вот облом он у меня категорически отказался принимать AUTH. Два дня бился пока не нашёл комент к английской статье. Дистрибутив вот такой: ubuntu-9.10-server-i386.iso , всё поставлено с помощью aptitude. Суть проблемы:

    Dovecot authentication
    by Anonymous – 01/25/2010 – 01:43

    Dovecot authentication doesn’t seem to work on Karmic (Ubuntu 9.10). I’d really appreciate any help on how to resolve this :-)
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_path = private/auth
    smtpd_sasl_type = dovecot

    root@myhost:~# telnet localhost smtp
    Trying ::1…
    Trying 127.0.0.1…
    Connected to localhost.
    Escape character is ‘^]’.
    220 myhost ESMTP Postfix
    ehlo example.ort
    250-myhost
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    auth
    503 5.5.1 Error: authentication not enabled

    Решение:

    Если по пунктам делаем всё как в статье в первом посте (/etc/dovecot ; /etc/postfix взяты такие какие были после инсталяции убунты), дальше делаем как написано ниже

    Доинсталируем:
    #aptitude install libsasl2 sasl2-bin libsasl2-modules dovecot-postfix

    если не инсталить dovecot-postfix довкат у меня живёт собственной жизнью, не реагировал на команды /etc/init.d/dovecot ;
    sasl2-bin ставим для авторизации, собственно его и будем использовать нам нужен saslauthd,

    не забываем убить что бы dovecot не запускался с этим конфигом
    #rm /etc/dovecot/dovecot-postfix.conf

    показываем постфиксу где у нас оно
    #/etc/init.d/saslauthd stop
    #rm -r /var/run/saslauthd/
    #mkdir -p /var/spool/postfix/var/run/saslauthd
    #ln -s /var/spool/postfix/var/run/saslauthd /var/run
    #chgrp sasl /var/spool/postfix/var/run/saslauthd
    #adduser postfix sasl

    Забиваем на то что у нас main.cf и в dovecot.conf прописана сасл вторизация, по скольку у меня она и так не работает, а dovecot используется для проверки при приёме почты.

    дальше делаем всё 1 в 1 по источнику
    Источник http://workaround.org/ispmail/lenny/authenticated-smtp
    привожу для полноты копию с источника:

    For everyone Who has had problems with smtp authentication
    by Anonymous – 12/03/2009 – 13:38

    Ok guys,

    First of all I’d have to thank the poster of this tutorial and the people who have left their comments here to help others.

    As many of you have discovered, with newer versions of debian / ubuntu, such as karmic, this gets to major road block. That is the smtp auth plain command won’t work, and you cannot use smtp on your local mail clients either. Here’s why:t

    saslauth is called to use a pam authentication and it doesn’t know where to look and you’ll be failed.

    After extensive searching (over 48 hours of straight searching) and trying to debug, I found this link on howtoforge: http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-sq...

    With some modifications of the page 2, we can finally get the smtp to work:

    [1] edit /etc/default/saslauth and modify the respective fields:

    START=yes

    OPTIONS=»-c -m /var/spool/postfix/var/run/saslauthd -r»

    [2] create a file: /etc/pam.d/smtp and add these two lines:

    auth required pam_mysql.so user=mailuser passwd=mailuser2009 host=127.0.0.1 db=mailserver table=virtual_users usercolumn=email passwdcolumn=password crypt=0
    account sufficient pam_mysql.so user=mailuser passwd=mailuser2009 host=127.0.0.1 db=mailserver table=virtual_users usercolumn=email passwdcolumn=password crypt=0

    [3] create a file: /etc/postfix/sasl/smtpd.conf and add these lines:

    pwcheck_method: saslauthd
    mech_list: plain login
    allow_plaintext: true
    auxprop_plugin: mysql
    sql_hostnames: 127.0.0.1
    sql_user: mailuser
    sql_passwd: mailuser2009
    sql_database: mailserver
    sql_select: select password from virtual_users where email = ‘%u’

    [4] then execute this shell command:

    adduser postfix sasl

    [5] modify /etc/postfix/main.cf and set

    smtpd_tls_auth_only=no

    [6] Then restart postfix and saslauthd

    /etc/init.d/postfix restart
    /etc/init.d/saslauthd restart

    —————————————————————

    There you go. Now smtp is working.

    Good luck to everyone.

  145. DiJey on 27 Апр 2010 at 21:46 #

    Автор вопрос, хочу прикрутить веб морду (заведение ящиков, веб маил типа белки) как это работает у вас? Есть ли антивирусы, антиспам?
    На сколько знаю 5 php не совместим с 4 , более того конфликтуют, по скольку, еще предполагается запуск сайта на 5 пхп не могу запустить белку.

  146. Максим Степанов on 28 Апр 2010 at 08:29 #

    Поставьте Roundcube.

  147. ivan on 28 Апр 2010 at 10:10 #

    Здравствуйте, подскажите пожайлуста чайнику, мне бы хотелось чтобы smpt авторизация была у пользователей в локальной сети,в связи с этим сделал вот так:

    mydestination = $myhostname, localhost.$mydomain, localhost
    mydomain = example.ru
    myhostname = discover.example.ru
    mynetworks = 127.0.0.0/8
    mynetworks_style = host
    myorigin = $mydomain
    newaliases_path = /usr/local/bin/newaliases
    queue_directory = /var/spool/postfix
    setgid_group = maildrop
    smtpd_sasl_path = private/auth
    smtpd_sasl_type = dovecot
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem
    smtpd_use_tls = yes
    virtual_mailbox_base = /home/email/
    virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql/mysql_virtual_alias_maps.cf
    virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql/mysql_virtual_domains_maps.cf
    virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf
    virtual_gid_maps = static:5000
    virtual_uid_maps = static:5000
    virtual_transport = dovecot

    В таком виде без авторизации отправить не дает, но и с авторизацией не отправляет пишет в логах:

    relay=none, delay=0.07, delays=0.05/0.02/0/0, dsn=5.4.6, status=bounced (mail for example.ru loops back to myself)

    Стоит мне добавить в mydestination мой домен:

    mydestination = $myhostname, localhost.$mydomain, localhost, example.ru

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

  148. Itachi1701 on 28 Апр 2010 at 13:50 #

    fatal : /etc/postfix/master.cf line 83 : field «max_proc» : bad value «pipe»

    в мастер.цф – нет такой 83 строки! при чем еще глюч – /etc/init.d/postfix restart – все ок! А postfix reload – пишет что не запущен постфикс! помогите максим

  149. Максим Степанов on 28 Апр 2010 at 17:03 #

    Itachi1701, если там нет такой строки то там возможно есть include на другие файлы конфигурации.

    ivan Как именно отправляется почта? с веб интерфейса или с почтового клиента?

  150. Itachi1701 on 28 Апр 2010 at 18:04 #

    Спасибо Максим! Нужно было просто два пробела добавить в начале строки!
    Телнет локалхост 25 работает

    Но еще кое что : пытаюсь забрать отправленное письмо самому себе (телнет локалхост 110) ввожу USER потом PASS и выводит POP3(itachi1701) couldn’t open inbox internal error occurred. refer to server log for more information!
    и все – такое и в логах! помогите и спс за прошлый совет!

  151. Itachi1701 on 28 Апр 2010 at 18:39 #

    Кстати еще в папке /home/vmail/ ниче нема а в логах на счет нее пишет что permission denied (видимо должно само создавать папки) – мона ли както решить это?

    прошу ответить на 1 и 2 вопросик

  152. ivan on 28 Апр 2010 at 19:48 #

    Пробую отправлять и с почтового клиента и с телнета

    cms porn

  153. Максим Степанов on 28 Апр 2010 at 22:06 #

    ivan что за спам в комментариях, у вас вирусы?
    Itachi1701 что в логах по поводу ошибки? права на директорию выставить надо нормально, chown -R vmail:vmail /home/vmail

  154. ivan on 29 Апр 2010 at 08:50 #

    ivan что за спам в комментариях, у вас вирусы?

    Прошу прощенья, виноват, буду разбираться.

  155. Itachi1701 on 29 Апр 2010 at 11:20 #

    ubuntuserver postfix/virtual[11710]: fatal: bad string length 0 < 1: virtual_mailbox_base =

    ubuntuserver dovecot: POP3 : file_dotlock_open() failed with file /home/vmail/itachi1701/dovecot.index.log : Rermission denied

    и еще – почту отпавляю – алиас работает – но даже самому себе не доходит! отправлено но не дошло! когда ввожу mailuser с паролем mailuser2007 (как у вас) то его не принимает

  156. Itachi1701 on 29 Апр 2010 at 11:25 #

    короче максим спасибо – сделаю сначала еще раз и все буква к букве как у вас а потом уже если вдруг не выйдет то буду вас мучать – решил ошибку сначала в себе найти! СПС – начну буква в букву как в статье – там посмотрим

  157. Максим Степанов on 29 Апр 2010 at 11:27 #

    Права на директорию поправить надо. В конфиге ошибка. Это логин пароль на базу данных, при чем тут почта? Статью читайте внимательно, а не между строк, там все описано верно, и работает в конце настройки.

  158. Itachi1701 on 30 Апр 2010 at 11:25 #

    кстати не хочу нече плохого сказать но когда мы создаем и заполняем базу
    CREATE TABLE `virtual_domains` ( – то на эти ковычки в начале ругается синтакс еррором! удалю ковычки – работает!

  159. Максим Степанов on 30 Апр 2010 at 12:11 #

    У меня в консоле mysql не ругается.

  160. Itachi1701 on 04 мая 2010 at 00:08 #

    все терь сделал все буква в букву без ошибок вроде! check прошел успешно!

    терь через telnet 25 отправил почту сам себе

    а вот telnet 110 не могу забрать

    пишу
    user john
    pass summersun
    - ERR Authentication Failed

    снова

    user mailuser
    pass mailuser2007
    - ERR Authentication Failed

    и без пароля пробовал!

    как забрать почту которую отправил сам себе? что это за фигня с паролями (все как у вас в статье)

  161. Максим Степанов on 04 мая 2010 at 08:19 #

    Хватит страдать херней с телнетом, есть почтовые клиенты. Авторизация по почтовому ящику полностью, про это написано в статье.

  162. Itachi1701 on 04 мая 2010 at 12:35 #

    не слушайте я тут что идиот или что? или не человек? по моему я такой же пользователь сайта как и другие! только всем вы нормально отвечайте! только мне грубите! большое спасибо!

  163. Itachi1701 on 04 мая 2010 at 12:42 #

    через The Bat не могу забрать почту – сам себе посылаю без проблем а не могу принять!

  164. Максим Степанов on 04 мая 2010 at 12:44 #

    Если вы почитаете вопросы других комментаторов статьи вы поймете что они по делу, а вот ваши наводят на мысли что вы не видите разницы между паролем от mysql и паролем от почтового ящика. Вы читали как надо авторизоваться через телнет? Мне кажется что нет. Статью внимательно читали? Видимо опять же нет, так как там сказано в каком формате вводится логин для ящиков. Вы настраиваете почтовый сервер или просто копируете примеры конфига из статьи? Видимо второе, что не даст вам желаемого результата. Я не хотел вас обидеть, но ваши вопросы наводят на мысли о низком уровне знаний в области Linux, и если вы не в состоянии самостоятельно настроить сервер не надо задавать глупые вопросы в комментариях к статье по его настройке, это же блог, в не форум с обсуждением и попутным обучением новичков настройкам Linux сервера. Скопируйте ссылку на статью на форум и попросите помощи. Форум выберите сами. Хотите помощи по настройке от меня – пожалуйста, но она не будет безвозмездной.

  165. RTFM « Timpson's blog on 16 мая 2010 at 16:07 #

    [...] бы все разжевывалось и объяснялось, примерно как вот тут. В сети можно найти огромное количество copy-paste методов [...]

  166. Kolian on 19 мая 2010 at 11:36 #

    Привет есть ряд вопросов. Настроил без проблем.
    Читал http://workaround.org/ispmail/etch
    Вопросы 1 и 2 наиболее мне важны.

    1.Не работает пересылка почты с наружи, на внешние домены пишет relay закрыт.
    5.7.1 Relay accessdenied
    May 19 11:12:26 smtp postfix/smtpd[5544]: connect from unknown[XXX.XXX.XXX.XX]
    May 19 11:12:26 smtp postfix/smtpd[5544]: NOQUEUE: reject: RCPT from unknown[XXX.XXX.XXX.XX]: 554 5.7.1 : Relay access denied; from=testuser@mydomain.ru to= proto=SMTP helo=
    May 19 11:12:26 smtp postfix/smtpd[5544]: disconnect from unknown[XXX.XXX.XXX.XX]

    Добавлю что в обратной зоне для моего сервера, нет записи.

    2.Нужно авторизовывать пользователей по имени, без указания домена. Делал так как написано выше , у меня не работает.
    изменить запрос.
    password_query = SELECT email as user, password FROM view_users WHERE email=’%u’;
    На
    password_query = SELECT email as user, password FROM view_users WHERE email=CONCAT(‘%u’,’@mydomain.ru’);
    не помогло.

    May 19 11:32:10 smtp dovecot: auth-worker(default): sql(test,XXX.XXX.XXX.XX): Password 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 ‘��test’,’@mydomain.ru’)’ at line 1

    3.Прикрутил роунд куб. Нужен доступ с наружи для webпочты.
    Помогите настроить его через https или дайте линк на ман. И вообще по подробней расскажите , если кто знает, про правильную настройку, чтоб всё было безопасно. На данный момент просто по 80 порту всё работает, вызывает вопросы , нужно или нет делать виртуальный хост, пока тупо в www положил.

    4. PostfixAdmin запускается но не видит и не создаёт доменов. Пока решилис пользовать этот скрипт (UserReg http://narod.ru/disk/17990441000/madmin-1.0.0.4.zip.html). Но PostfixAdmin выглядит приятней и солидней.

    Main.cf
    smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
    biff = no
    # appending .domain is the MUA’s job.
    append_dot_mydomain = no
    # Uncomment the next line to generate «delayed mail» warnings
    #delay_warning_time = 4h
    readme_directory = no
    # TLS parameters
    smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.
    myhostname = smtp. mydomain.ru
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = smtp.mydomain.ru, localhost. mydomain.ru, , localhost
    relayhost =
    mynetworks = 192.168.XX.0/24
    mailbox_size_limit = 0
    recipient_delimiter =
    inet_interfaces = all
    virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
    virtual_transport = dovecot
    dovecot_destination_recipient_limit = 1
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
    smtpd_tls_auth_only = yes
    content_filter = smtp-amavis:[127.0.0.1]:10024
    receive_override_options = no_address_mappings

    master.cf
    #
    # Postfix master process configuration file. For details on the format
    # of the file, see the master(5) manual page (command: «man 5 master»).
    #
    # Do not forget to execute «postfix reload» after editing this file.
    #
    # ==========================================================================
    # service type private unpriv chroot wakeup maxproc command args
    # (yes) (yes) (yes) (never) (100)
    # ==========================================================================
    smtp inet n – – – – smtpd
    #AMaViS:
    smtp-amavis unix – – n – 2 smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=20

    127.0.0.1:10025 inet n – – – – smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_delay_reject=no
    -o smtpd_client_restrictions=permit_mynetworks,reject
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o smtpd_data_restrictions=reject_unauth_pipelining
    -o smtpd_end_of_data_restrictions=
    -o mynetworks=127.0.0.0/8
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0
    -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
    -o local_header_rewrite_clients=
    #submission inet n – – – – smtpd
    # -o smtpd_tls_security_level=encrypt
    # -o smtpd_sasl_auth_enable=yes
    # -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    # -o milter_macro_daemon_name=ORIGINATING
    #smtps inet n – – – – smtpd
    # -o smtpd_tls_wrappermode=yes
    # -o smtpd_sasl_auth_enable=yes
    # -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    # -o milter_macro_daemon_name=ORIGINATING
    #628 inet n – – – – qmqpd
    pickup fifo n – – 60 1 pickup
    cleanup unix n – – – 0 cleanup
    qmgr fifo n – n 300 1 qmgr
    #qmgr fifo n – – 300 1 oqmgr
    tlsmgr unix – – – 1000? 1 tlsmgr
    rewrite unix – – – – – trivial-rewrite
    bounce unix – – – – 0 bounce
    defer unix – – – – 0 bounce
    trace unix – – – – 0 bounce
    verify unix – – – – 1 verify
    flush unix n – – 1000? 0 flush
    proxymap unix – – n – – proxymap
    proxywrite unix – – n – 1 proxymap
    smtp unix – – – – – smtp
    # When relaying mail as backup MX, disable fallback_relay to avoid MX loops
    relay unix – – – – – smtp
    -o smtp_fallback_relay=
    # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
    showq unix n – – – – showq
    error unix – – – – – error
    retry unix – – – – – error
    discard unix – – – – – discard
    local unix – n n – – local
    virtual unix – n n – – virtual
    lmtp unix – – – – – lmtp
    anvil unix – – – – 1 anvil
    scache unix – – – – 1 scache
    #
    maildrop unix – n n – – pipe
    flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
    #
    uucp unix – n n – – pipe
    flags=Fqhu user=uucp argv=uux -r -n -z -a$sender – $nexthop!rmail ($recipient)
    #
    ifmail unix – n n – – pipe
    flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
    bsmtp unix – n n – – pipe
    flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
    scalemail-backend unix – n n – 2 pipe
    flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
    mailman unix – n n – – pipe
    flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
    #Dovecot
    dovecot unix – n n – – pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

  167. Максим Степанов on 19 мая 2010 at 12:17 #

    Без mx записей и ptr многие сервера будут отвергать почту.

    password_query = select user, password from virtual_users where user=’%u’; но это будет работать только с одним доменом, если будет два домена, и одинаковый юзер и там и там то как сервер отличит к какому домену авторизовать?

    Возьмите любой пример настройки https хоста и все.

    в Postfix admin query другие, поэтому он не работает, перепишите их под свои если очень надо.

  168. Kolian on 20 мая 2010 at 16:54 #

    1. mx конечно есть

    2. Мне нужно в любом случае такую схему.
    @domain.ru
    @domain2.ru (alias)
    @domain3.ru (alias)
    @domain4.ru (alias)
    Т.е. если люди шлют почту на адрес vasia@ domain.ru или vasia@domain2.ru или vasia@ domain3.ru, все письма получает пользователь vasia@ domai.ru.
    Авторизация по имени (без указания домена) является для меня обязательным условием.

    P.S.Да чуть не забыл, спасибо ваши ответы.

  169. Mogidin on 02 Июн 2010 at 16:45 #

    хочу уточнить про релэй.
    у прова на сайте написано:

    Рекомендуется использовать :
    Сервер исходящей почты SMTP: relay.mts-nn.ru
    Порт для отправки почты должен быть 2525
    Обязательно должна быть установлена авторизация при отправке.

    в этом случае надо в конфиге писать relayhost=relay.mts-nn.ru:2525 ?
    а про последний пункт я немного в непонятках. что, где?

  170. Максим Степанов on 02 Июн 2010 at 16:54 #

    Понастройке relay тут немного написано: http://www.postfix.org/BASIC_CONFIGURATION_README.html

  171. lexmakh on 03 Июн 2010 at 16:23 #

    Доброго времени суток!
    у меня такая ошибка:
    на команду:
    postmap -q ‘example.com’ mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    получаю ошибку:
    postmap: 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 ‘??example.com???’ at line 1

    где копать подскажите плз…???

  172. Максим Степанов on 03 Июн 2010 at 16:32 #

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

  173. k0n0n3nk0 on 22 Июн 2010 at 10:01 #

    Скажите, каким образом теперь можно забирать почту (например fetchmail’ом) с внешних ящиков и раскидывать по виртуальным почтовым клиентам?

    Сейчас я использую связку postfix dovecot fetchmail, где все почтовые клиенты являются реальными unix пользователями. fetchmail забирает почту с нужных адресов и раскидывает по почтовым ящикам определенных пользователей.

    Каким образом это можно сделать с виртуальными почтовыми пользователями?

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


Самые популярные статьи

  • Поиск при помощи утилиты find
  • Настройка Dynamic DNS на базе Bind9 и nsupdate
  • Вышел релиз Ubuntu Lucid Lynx 10.04 LTS
  • Объединение сетевых интерфейсов при помощи bonding
  • Мобильная версия сайта
  • Установка Zend Optimizer на Ubuntu 10.04 LTS
  • Основы программирования под Mac OS X
  • Вышла вторая бета версия Ubuntu 10.04
  • Настройка SNMPD на Mac OS X
  • Началось тестирования первой альфа-версии Ubuntu 10.10
  • Ограничение количества сессий с одного ip адреса
  • Вышел новый номер компьютерного журнала UserAndLINUX.
  • Отключение ipv6 для JavaVM
  • Настройка NAT по принципу сеть в сеть при помощи iptables NETMAP
  • Открытие форума
  • Настройка беспроводного интернета Yota WIMAX
  • Установка и настройка VSFTPD + MYSQL (Ubuntu & Debian)
  • Настройка Kernel NAT на FreeBSD
  • Создание игрового сервера World of Warcraft на базе Debian или Ubuntu
  • Установка и настройка Pure-FTPD в связке с MYSQL на FreeBSD
  • Вышла бета версия Ubuntu 10.10 Maverick Meerkat
  • C Новым Годом!
  • Подробное руководство по настройке wifi соединения с шифрованием разных типов
  • Вышел релиз почтового клиента Thunderbird 3.0
  • Ubuntu Server Pack
  • Просмотр IPTV из сети за сервером NAT
  • Настройка Cron
  • Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
  • Установка Ubuntu Linux на MacBook Pro
  • Игры в Linux

  • « | »

    Рейтинг блогов Rambler's Top100
    службы мониторинга серверов