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

Данное руководство описывает установку почтового сервера 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
Удачной настройки =)
Популярность: 100%
110 Комментариев »
| Дай же, не жадничай! |
110 Responses to “Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальных доменов”
Leave a Reply
You must be logged in to post a comment.

(6 голосов, средний: 4.83 из 5)
on 22 мая 2008 at 14:38 #
Ну сокращенный перевод конечно это хорошо… Но ссылку на оригинал надо указывать!
on 02 Июн 2008 at 12:52 #
если используешь mysql, есть смысл хранить все данные там же. сам использую dbmail exim mysql очень быстрое и гибкое решение
on 03 Июн 2008 at 09:07 #
мне как роднее постфикс
on 06 Июн 2008 at 12:14 #
сам когда-то использовал postfix, но в exim’е подкупила простота и лаконичность конфигов =)
on 06 Июн 2008 at 15:55 #
Не пробовал екзим…
может и проще он…
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;
on 14 Июн 2008 at 21:46 #
Спасибо!
on 26 Июн 2008 at 00:57 #
тема вебмыла не раскрыта
а ведь мы его поставили
on 26 Июн 2008 at 08:41 #
заходим по адресу сервера /squirrelmail там мыло
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
Помогите пожалуйста… Уже неделю не могу запустить такую связку…
on 13 Июл 2008 at 21:04 #
Куда добавляли строки
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d ${recipient} ?
on 13 Июл 2008 at 21:05 #
Еще совет, команда postfix check покажет ошибки в конфигах если они есть….
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, создал пустой файл с таким же именем, создал каталог… один фиг ему не нравится. Да и я не смог найти в конфигах, откуда но ссылается на этот файл… ??? =(
on 14 Июл 2008 at 13:27 #
погуглить? postfix check еще разок попробовать?
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
on 15 Июл 2008 at 19:32 #
Ну с этим просто
Укажите ваши сети в конфиге и все заработает…
mynetworks = 127.0.0.0/24 10.0.0.0/8 например….
on 17 Июл 2008 at 05:03 #
Да, спасибо большое! Все заработало! И отправляет, принимает, прикрепляет, алиасит… Меж прочим это мое начало - первый почтовый сервер, которого я поднял. Статья очень хорошая. Вот написали бы еще маленькую статью о безопасности серверов линукс - настройка iptables, было бы вообще класс. Но и на том спасибо, мануал хороший.
on 17 Июл 2008 at 12:11 #
Всегда пожалуйста
on 27 Июл 2008 at 18:14 #
Большое спасибо за статью!
Ну вот, теперт всё вроде работает))
И за коменты в частности, я тоже столкнулся с этой проблемой
Но один вопрос так и остался не решённым: как создавать нове ящики для пользователей? У меня белка принимает только логин и пароль которые я использую при входе в систему, а вот от тестового ящика (john) не берёт…
on 28 Июл 2008 at 18:26 #
Через почтовый клиент тестовый ящик работает? Создавать новые ящики для юзеров можно в пхпмайадмине, или написать простенький скрипт регистраций….
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/пользователь ? У меня там нету вроде
on 31 Июл 2008 at 21:47 #
Почта хранится в /home/vmail/domain.edu/username тоесть в папке с именем домена, в которой папка юзера, а там почта
on 01 Авг 2008 at 20:14 #
Папки есть, но писем вроде бы нет… Я там вижу три папки: cur, new, tmp (все три пусты), и четыре файла: dovecot.index, dovecot.index.cache, dovecot.index.log, subscriptions. А ведь должны быть где-то несколько исходящих писем, так как они отправились (наверное… ибо в логах ничего “плохого” не было, а белка не ругалась).
А почему почта может не приходить на ящики? В логах ошибки не пишет, в каком направлении надо искать?
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)
Ничего не могу поделать…
on 19 Авг 2008 at 15:34 #
Та же проблема с локальным ящиком, что у “Larodar on 02 Авг 2008 at 17:29″. На внешний ящик отправляет прекрасно. Такое впечатление, что мускул недоприкрутился
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) и перезапустил постфикс. После чего все заработало.
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 Почтовый адрес
Некорректный адрес администратора!
Пароль: ******
Пароль (еще раз):
on 27 Сен 2008 at 22:11 #
Ну отзовитесь кто нибудь , почему это происходит ??????????
on 28 Сен 2008 at 12:12 #
А другие адреса не воспринимает? Ведь этот адрес это логин.
on 29 Сен 2008 at 05:14 #
И другие адреса не воспринимаются тоже
on 02 Окт 2008 at 17:40 #
Добрый всем вечер , так с одной проблемой вроде разобрался , нужно было в конфиге posfixadmin в строке которая отвечает за домены поставить “NO” и всё пошло нормально !:)
Но теперь другая проблема
, нарочно не придумаешь , отправляются письма без проблем , тем юзерам которых я зарегинел в 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.
Кто что может сказать по этому поводу , а то у меня скоро уже истерика будет
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. Жду ответов…
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. (”Рулезно!!” : )
А вот причины проблемы так остались невыяснены. Может есть у кого какие мысли?
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).
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?
on 03 Окт 2008 at 20:28 #
Так люди , всем огромный респект и большое человеческое спасибо !! вчера опять полностью прочитал эту статью , потом долго сидел тут
Долго и тщательно , буква в букву , и о .. чудо всё пошло и заработало
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
_________________________________________________
ну вроде всё теперь нормально , но меня терзают смутные сомнения почему у меня всё пашет нормально ? НО у меня в dovecot.conf
# protocol imap {
# listen = *:10143
# ssl_listen = *:10943
# ..
# }
# protocol pop3 {
# listen = *:10100
# ..
# }
#listen = *
закоментированно , но пашет без проблем
это что так и долго быть ? или косяк опять какой то ?
on 03 Окт 2008 at 20:29 #
То есть так и должно быть ?
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
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
on 09 Ноя 2008 at 14:02 #
на некоторых провайдерах (например eltel) необходимо использовать relay-сервер провайдера для отправки почты на другие сервера (у меня relay-home.eltel.net) для этого в main.cf добавляем строчку
relayhost = адрес_сервера
(relayhost = relay-home.eltel.net)
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
=========================================
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
on 12 Ноя 2008 at 18:35 #
Проверить конфиги на соответствие представленным примерам.
Можно так же запустить postfix check, если вывод будет пустым то все ок =)
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 виновен))ктонибудь стаалкивался?????
on 27 Ноя 2008 at 16:20 #
помогите пожалуста )))
on 27 Ноя 2008 at 16:25 #
У вас постфикс установлен без поддержки MYSQL и пытается авторизоваться через PAM.
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
Не могли бы Вы подсказать, куды рыть? Если нужны какие то логи или конфиги - выложу. Заранее спасибо Вам.
on 26 Фев 2009 at 17:55 #
Прочитайте еще разок статью, очень внимательно про SSL сертификаты и настройку транспортов.
on 27 Фев 2009 at 13:25 #
Ага, Вы правы))) спасибо большое. Только вот одна деталь, я как то недопойму - у меня домен company.ru, имя компа debian, т.е. полный FQDN мне указать как debian.company.ru?
on 27 Фев 2009 at 18:20 #
Нет, сервер ведь обслуживает виртуальные домены, можно указать и company.ru
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 =
в чём проблема?
on 01 Мар 2009 at 05:54 #
А что у вас в файле /etc/postfix/mysql-virtual-mailbox-domains.cf?
И от какого пользователя запускаете команду?
on 01 Мар 2009 at 14:29 #
всё разобрался, в файле main.cf надо было закоментировать setgid_group =
вроде всё настроил, но почту не могу получить почтовым клиентом Mozilla Thunderbird
при подключении выдаёт:
Команда PASS не выполнена. Почтовый сервер “имя сервера” ответил: Authentication filed.
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
i6si11828608gve.30 (in reply to end of DATA command)
И что тут делать?
on 02 Мар 2009 at 11:04 #
Ваш айпи адрес видимо не имеет обратной зоны, или PTR. Обратитесь к провайдеру с этим вопросом, или же используйте для отправки почты релэй провайдера, если таковой имеется.
on 02 Мар 2009 at 11:05 #
ЗЫ: А вообще это детская ошибка, учитесь пользоваться гуглом.
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
В принципе смущает только это, остальное вроде все нормально. Какие может еще логи нужны и конфиги?? скажите я покажу. Помогите пожалуйста с моей проблемой.
on 03 Мар 2009 at 23:40 #
postfix/master[17743]: fatal: /etc/postfix/master.cf: line 86: bad transport type: user=vmail:vmail
Помогите, нифига не помогает
on 04 Мар 2009 at 04:46 #
А комментарии и погуглить никак??
Если нет, то конфиг master.cf в студию!
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
Пересоздал базу заново, ефект тот же
on 17 Мар 2009 at 13:24 #
Все красиво работает, ток вопрос: можно как-нить создать алиас с ссылками на ящики в локальном файле? А-ля :include: в aliases постфикса.. А то прописывать пару десятков ящиков в строчку как-то не удобно..
on 07 Апр 2009 at 08:14 #
Все настроил как написано все хорошо. А можно теперь еще что нить прикрутить к этому чтоб почта еще забиралась с удаленного почтового ящика и ложилась в виртуальный?
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
Подскажите пожалуйста, первая моя настройка серьезной почтовой системы.
on 20 Апр 2009 at 06:40 #
Конфиг main.cf в студию!
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
on 20 Апр 2009 at 07:48 #
mailbox_size_limit = 20
message_size_limit = 10
Выходит максимальный размер на сообщение у вас 10 байт, а максимальный размер почтового ящика 20 байт.
on 20 Апр 2009 at 08:05 #
аа…ммм…байт? я что то подумал что размер тут Мбайтах. А как насчет другой ошибки ? smtp_sasl_password_maps’ configuration parameter, что нибудь по этому поводу можете подсказать?
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
on 20 Апр 2009 at 09:45 #
Проверьте еще раз параметры авторизации в конфигах, посмотрите, не говорит ли чего postfix check, ну и гугл наконец спросите
on 01 Июн 2009 at 12:46 #
Спасибо за статью! С начало не работало TLS/SSL, но оказалось все оч просто - сволоч Avast блокировал и молчал.
Но вообще то есть вопрос немного не потеме. А имеено как прикрутить RoundCube к пользователям postfix. Ведь если не ошибаюсь он стоит у вас. Гугль не помог, на офф сайте тоже ничего нет, метод научного тыка не сработал. Да и возможно это?
on 01 Июн 2009 at 18:03 #
Да, возможно, так как сам по себе круглый куб является почтовым клиентом, тоесть аналог того же TheBat или Thunderbird, только с более скудными возможностями. Настраиваете его на нужный смпт хост, а дальше останется только ввести логин и пароль от существующего ящика.
on 04 Июн 2009 at 09:22 #
Спс, вот протупил, ничего сложного то нет. Новый юзер добавляется только при удачной авторизации на почтовом сервере. Похоже я раньше сильно перемудрил с конфигом.
on 07 Июн 2009 at 07:32 #
Статья очень хорошая, все по пунктам и заработало. Внутри локалки почта отправляется и принимается. Круто!
Вот запнулся на том, что надо еще чтобы почта оправлялась в инет и принималась из инета.
Что делать?
Спасибо.
on 07 Июн 2009 at 12:49 #
Надо прописать MX записи для домена в DNS.
on 07 Июн 2009 at 13:01 #
Спасибо за ответ. Но в linux я совсем новичок. Напишите, пожалуйста, конкретнее что делать. Установить BIND9? Ткните носом что куда и как.
Спасибо
on 07 Июн 2009 at 13:05 #
А в случае с первым сексом с девушкой тоже просили более опытных людей показать вам и ткнуть носом куда надо?
В гугле вас конечно забанили, а на википедии поиск сломался.
Запись_MX вот по ссылочке почитайте
on 21 Авг 2009 at 10:37 #
[…] Август 21, 2009 Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальн… […]
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.
ну, я смотрел внимательно, все делал как указано в статье - а ничего не вышло.
подкскажите плз, что я упустил?
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
вместо фигурных скобок - угловые
on 24 Авг 2009 at 14:01 #
Авторизация у вас только по первой части емэйла, так работать не будет, надо писать емэйл полностью.
on 24 Авг 2009 at 15:45 #
точно… в thunderbird указал полностью имя - заработало… спасибо
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, Код ошибки: 0×800CCC79
и без
Не удается отправить сообщение, поскольку сервер отказался принять адрес одного из получателей. В письме был указан адрес: ‘хххх@gmail.com’. Тема ‘Re: fsf’, Учетная запись: ‘mail.ххххх.ru’, Сервер: ‘mail.ххххх.ru’, Протокол: SMTP, Ответ сервера: ‘554 5.7.1 : Relay access denied’, Порт: 25, Защита (SSL): Нет, Ошибка сервера: 554, Код ошибки: 0×800CCC79
on 28 Окт 2009 at 22:13 #
Отправка возможна только после авторизации, в поле логин должен быть почтовый ящик полностью. Так же проверьте что бы было заполнено значение mynetworks
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
on 28 Окт 2009 at 22:44 #
##Отправка возможна только после авторизации, в поле логин должен быть почтовый ящик полностью. Так же проверьте что бы было заполнено значение mynetworks##
Здесь все правильно сделал
on 16 Ноя 2009 at 15:48 #
Спасибо, хороший howto. Но у меня есть несколько проблем. Через squirrelmail ящик открывается, письма через него отправляются, но:
- Любые письма, отправленные на ящик, на него не приходят;
- Снаружи не могу подключиться к 25ому порту. Даже не телнетится. Изнутри - всё в порядке. Через TLS / SSL тоже не работает.
К слову - MX записи работают нормально. Я делал по другому руководстуву, там всё заработало, но мне нужно было хранить информацию о ящиках в MySQL, а там это не получилось. Но почта приходила и уходила нормально.
netstat показывает что порт 25 открыт (*:smtp)
on 16 Ноя 2009 at 15:56 #
Без выдержек из логов почтовика никто ничем не поможет. Для шифрования рабочего сертификаты надо генерировать, и прописывать их в настройках. Фаервол проверяйте для коннекта извне, по дефолту почтовик слушает на всех интерфейсах.
on 25 Ноя 2009 at 19:49 #
Есть еще два вопроса - что делать в случае, если входы нужны снаружи для отправки почты, а ошибка вылетает, как у коли
NOQUEUE reject: RCPT from localhost[127.0.0.1]: : Relay access denied ; …….
Т.е. просто прописать локальные адреса нельзя - почта стоит на vps
Вопрос номер два - сгенеренный сертификат оказывается с просроченным сроком действия?
on 25 Ноя 2009 at 22:23 #
C сертификатами разобрался - все подробно описано в документе
Почтовики нормально сжирают сертификат
В статье в настройке dovecot.conf нужно исправить:
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
Вопрос по отправке почты почтовой программой с внешнего адреса остался.
on 26 Ноя 2009 at 00:35 #
Заработало.
smtpd_sasl_auth_enable = yes
обязательно нужно добавлять в main.cf
Иначе не будет отправляться почта с виртуальных доменов.
Этого в мануале нет.
on 26 Ноя 2009 at 10:10 #
Мануал верный, и с сетрификатами все в порядке. С авторизацией кстати тоже, без ваших советов. Делать надо по мануалу, не отступая и не меняя на “по своему”, тогда все заведется отлично. Мой сервер настроен так, и не один, и прекрасно работает. Напишите свой мануал, пусть люди настраивают по нему и радуются жизни.
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:~$
Через вэб морду не пускает.
В логах в принципе не чего нового (
on 20 Янв 2010 at 12:35 #
А как создать простой алиас к ящику, чтобы не создавать отдельный ящик?
on 20 Янв 2010 at 13:01 #
Вставить запись в таблицу aliases. Работать будет без создания ящика.
on 12 Фев 2010 at 11:23 #
Написал скрипт на php для добавление доменов, удаление доменов, добавление ящиков, удаление ящиков.
Пользуйтесь:
on 12 Фев 2010 at 11:30 #
Спасибо.
on 12 Фев 2010 at 12:07 #
Перезалил скрипт к себе на всякий случай.
http://sudouser.com/madmin.zip
on 13 Фев 2010 at 00:33 #
Могу еще добавить алиасы добавить и удалить. У себя уже сделал. Если кому надо пишите.
on 13 Фев 2010 at 12:06 #
Выкладывайте, обновлю на своем зеркале, кому-нибудь обязательно пригодится.
on 13 Фев 2010 at 12:14 #
Лови:
on 14 Фев 2010 at 19:57 #
Сори пофиксил коечто.
А именно добавил простую авторизацию по гет, подправил SqL запросы.
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
Помогите советом пожайлуста .
Заранее всем спасибо .
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
on 21 Фев 2010 at 13:16 #
Какой пароль вводили при создании юзера john@example.com, такой и вводите, а в бд лежит его хэш в MD5.
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 уже не используется . Заранее благодарю за помощь .
on 22 Фев 2010 at 20:31 #
Простите, а зачем он вообще? Не слышал о таком…
on 22 Фев 2010 at 22:01 #
Вопрос
в статье предлагается отредактировать файл dovecot.conf вставив следующее
protocol lda {
log_path = /home/vmail/dovecot-deliver.log
…
mail_plugins = cmusieve
…
}
Получается он нужен . Или я не прав
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
}
Может пути просто не верно указаны у вас?
on 26 Фев 2010 at 20:27 #
Все похоже разобрался . Я не знаю как у всех , но у меня cmusieve не входит в стандартную конфигурацию dovecot .
Его нужно ставить отдельно . Более того в новых версиях dovecot cmusieve заменен на sieve .
получается
protocol lda {
…
mail_plugins = sieve
…
}
и не забудем reboot
Всем удачи !!!
on 26 Фев 2010 at 22:16 #
Спасибо за инфо, но ребут это по моему перебор, достаточно просто перезапустить почтовые демоны.