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



on 22 мая 2008 at 14:38 #
Ну сокращенный перевод конечно это хорошо… Но ссылку на оригинал надо указывать!
если используешь mysql, есть смысл хранить все данные там же. сам использую dbmail exim mysql очень быстрое и гибкое решение
мне как роднее постфикс
сам когда-то использовал postfix, но в exim’е подкупила простота и лаконичность конфигов =)
Не пробовал екзим…
может и проще он…
для создание таблиц под пхпадмином
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;
Спасибо!
тема вебмыла не раскрыта
а ведь мы его поставили
заходим по адресу сервера /squirrelmail там мыло
все настраивал как описано. Все работало до того, как я добавил следующее:
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
}postmaster@panjekat.tj
protocol lda {
log_path = /var/vmail/dovecot/auth-master
postmaster_address =
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
Помогите пожалуйста… Уже неделю не могу запустить такую связку…
Куда добавляли строки
dovecot unix – n n – - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d ${recipient} ?
Еще совет, команда postfix check покажет ошибки в конфигах если они есть….
спасибо за совет, ошибка нашлась. Строка
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, создал пустой файл с таким же именем, создал каталог… один фиг ему не нравится. Да и я не смог найти в конфигах, откуда но ссылается на этот файл… ??? =(
погуглить? postfix check еще разок попробовать?
да, гугл помогает:
postalias /etc/mail/aliases
postfix reload
да…. и очередная остановка (почти приехали). Письма отправляются только на ящики локального домена. На все остальные не хочет.
NOQUEUE reject: RCPT from localhost[127.0.0.1]: : Relay access denied ; …….
Мистер гугл много такого повидал (что меня радует), но у меня пока не получается – гуглю все еще… Надеюсь скоро получится и больше остановок не будет. respect
Ну с этим просто
Укажите ваши сети в конфиге и все заработает…
mynetworks = 127.0.0.0/24 10.0.0.0/8 например….
Да, спасибо большое! Все заработало! И отправляет, принимает, прикрепляет, алиасит… Меж прочим это мое начало – первый почтовый сервер, которого я поднял. Статья очень хорошая. Вот написали бы еще маленькую статью о безопасности серверов линукс – настройка iptables, было бы вообще класс. Но и на том спасибо, мануал хороший.
Всегда пожалуйста
Большое спасибо за статью!
И за коменты в частности, я тоже столкнулся с этой проблемой
Ну вот, теперт всё вроде работает))
Но один вопрос так и остался не решённым: как создавать нове ящики для пользователей? У меня белка принимает только логин и пароль которые я использую при входе в систему, а вот от тестового ящика (john) не берёт…
Через почтовый клиент тестовый ящик работает? Создавать новые ящики для юзеров можно в пхпмайадмине, или написать простенький скрипт регистраций….
Извиняюсь, ошибка предыдущего поста была из-за моей невнимательности…
Ещё раз сверился с мануалом, всё подправил и теперь белка нормально принимает пароль, при отправке письма не ругается, в 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/пользователь ? У меня там нету вроде
Почта хранится в /home/vmail/domain.edu/username тоесть в папке с именем домена, в которой папка юзера, а там почта
Папки есть, но писем вроде бы нет… Я там вижу три папки: cur, new, tmp (все три пусты), и четыре файла: dovecot.index, dovecot.index.cache, dovecot.index.log, subscriptions. А ведь должны быть где-то несколько исходящих писем, так как они отправились (наверное… ибо в логах ничего «плохого» не было, а белка не ругалась).
А почему почта может не приходить на ящики? В логах ошибки не пишет, в каком направлении надо искать?
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)
Ничего не могу поделать…
Та же проблема с локальным ящиком, что у «Larodar on 02 Авг 2008 at 17:29″. На внешний ящик отправляет прекрасно. Такое впечатление, что мускул недоприкрутился
Разобрался! В файле /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) и перезапустил постфикс. После чего все заработало.
Добрый день создателю этого ресурса
У меня вроде всё нормально !
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 accountdirwar@ubuntu.bel.ru Почтовый адрес
Администратор:
Некорректный адрес администратора!
Пароль: ******
Пароль (еще раз):
Ну отзовитесь кто нибудь , почему это происходит ??????????
А другие адреса не воспринимает? Ведь этот адрес это логин.
И другие адреса не воспринимаются тоже
Добрый всем вечер , так с одной проблемой вроде разобрался , нужно было в конфиге 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.
Кто что может сказать по этому поводу , а то у меня скоро уже истерика будет
Доброго всем!
Сконфигурировал почтовый сервер как указано выше (на 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. Жду ответов…
Решено.
Пересборка помогла:
# 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. («Рулезно!!» : )
А вот причины проблемы так остались невыяснены. Может есть у кого какие мысли?
2 Belfigor про «…нарочно не придумаешь…»
Escape character is ‘^]’.asdf@mydomain.com
OK Dovecot ready.
user
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).
# 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?
Так люди , всем огромный респект и большое человеческое спасибо !! вчера опять полностью прочитал эту статью , потом долго сидел тут
http://workaround.org/articles/ispmail-etch/
Долго и тщательно , буква в букву , и о .. чудо всё пошло и заработало
telnet localhost pop3
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
OK Dovecot ready.
userbelfigor@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 = *
закоментированно , но пашет без проблем
это что так и долго быть ? или косяк опять какой то ?
То есть так и должно быть ?
2 Stepanoff:
Да. Из первого отрывка лога видно, что постфикс получил ответ от сервера БД. (Запарка состояла в том, что я не взял имя домена в кавычки. Опечатка.) А далее по-логу – то что я попытался взять в теги [b../b] – и вызвало мое неимоверное удивление.
2 Belfigor:
Не совсем ясно, что «так и должно быть» ? И в телнет сессии, и в строке почтового клиента имя пользователя указывается как «имя@домен.etc». А в вашем логе телнет сесии указано только имя:
Connected to localhost.
Escape character is ‘^]’.
OK Dovecot ready.
user asdf
OK
Мои примечания к статье.
Если планируется несколько виртуальных почтовых доменов на одном сервере, добавляем их в
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
на некоторых провайдерах (например eltel) необходимо использовать relay-сервер провайдера для отправки почты на другие сервера (у меня relay-home.eltel.net) для этого в main.cf добавляем строчку
relayhost = адрес_сервера
(relayhost = relay-home.eltel.net)
Спасибо!
Использую 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
=========================================
Есть проблема!
ЧЕРЕЗ 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
Проверить конфиги на соответствие представленным примерам.
Можно так же запустить postfix check, если вывод будет пустым то все ок =)
Проблемку помогите решить советом товарисчи ))
долго заходит по поп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 виновен))ктонибудь стаалкивался?????
помогите пожалуста )))
У вас постфикс установлен без поддержки MYSQL и пытается авторизоваться через PAM.
Здрасьте вам. Спасибо за отличную статью, но вот сделал все «по рецепту» – и начались косяки-с.. Во первых, не могу зайти ни через Белку, ни через почтовый ящик – грит мол аксес денайд, хотя через тот же телнет логинится на ура. Вот что по этому поводу в логах:
В майл.лог:
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
Не могли бы Вы подсказать, куды рыть? Если нужны какие то логи или конфиги – выложу. Заранее спасибо Вам.
Прочитайте еще разок статью, очень внимательно про SSL сертификаты и настройку транспортов.
Ага, Вы правы))) спасибо большое. Только вот одна деталь, я как то недопойму – у меня домен company.ru, имя компа debian, т.е. полный FQDN мне указать как debian.company.ru?
Нет, сервер ведь обслуживает виртуальные домены, можно указать и company.ru
у меня затык вот здесь:
Венитесь в обратно в шелл bash и проверьте правильность настроек виртуального домена командой, не забудьте сменить домен с example.com на свой.
Код:
$>
postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
ПИШЕТ: postmap: fatal: bad string length 0 < 1: setgid_group =
в чём проблема?
А что у вас в файле /etc/postfix/mysql-virtual-mailbox-domains.cf?
И от какого пользователя запускаете команду?
всё разобрался, в файле main.cf надо было закоментировать setgid_group =
вроде всё настроил, но почту не могу получить почтовым клиентом Mozilla Thunderbird
при подключении выдаёт:
Команда PASS не выполнена. Почтовый сервер «имя сервера» ответил: Authentication filed.
Всё и тут разобрался, надо было логин указывать полностью с именем сервера, новот беда другая пытаюсь послать письмо на гуглевский почтовый ящик а он не посылает а возвращает такой ответ:
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:http://mail.google.com/support/bin/answer.py?answer=10336
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)
И что тут делать?
Ваш айпи адрес видимо не имеет обратной зоны, или PTR. Обратитесь к провайдеру с этим вопросом, или же используйте для отправки почты релэй провайдера, если таковой имеется.
ЗЫ: А вообще это детская ошибка, учитесь пользоваться гуглом.
Всем привет. Помогите пожалуйста.
Прочитал статью. Все сделал как написано, но конечно же без ошибок не обошлось. Логи мне помогли, самые крупные ошибки я исправил, но осталось еще 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
В принципе смущает только это, остальное вроде все нормально. Какие может еще логи нужны и конфиги?? скажите я покажу. Помогите пожалуйста с моей проблемой.
postfix/master[17743]: fatal: /etc/postfix/master.cf: line 86: bad transport type: user=vmail:vmail
Помогите, нифига не помогает
А комментарии и погуглить никак??
Если нет, то конфиг master.cf в студию!
уже решил, новая проблема
postfix/trivial-rewrite[32354]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
Пересоздал базу заново, ефект тот же
Все красиво работает, ток вопрос: можно как-нить создать алиас с ссылками на ящики в локальном файле? А-ля :include: в aliases постфикса.. А то прописывать пару десятков ящиков в строчку как-то не удобно..
Все настроил как написано все хорошо. А можно теперь еще что нить прикрутить к этому чтоб почта еще забиралась с удаленного почтового ящика и ложилась в виртуальный?
Привет, отличный мануал, долго искал что то подобное, реализовал на 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
Подскажите пожалуйста, первая моя настройка серьезной почтовой системы.
Конфиг 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
# 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
mailbox_size_limit = 20
message_size_limit = 10
Выходит максимальный размер на сообщение у вас 10 байт, а максимальный размер почтового ящика 20 байт.
аа…ммм…байт? я что то подумал что размер тут Мбайтах. А как насчет другой ошибки ? smtp_sasl_password_maps’ configuration parameter, что нибудь по этому поводу можете подсказать?
Помогите мне пожалуйста! что мне с этим делать? Про размер ящика я все понял.
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
Проверьте еще раз параметры авторизации в конфигах, посмотрите, не говорит ли чего postfix check, ну и гугл наконец спросите
Спасибо за статью! С начало не работало TLS/SSL, но оказалось все оч просто – сволоч Avast блокировал и молчал.
Но вообще то есть вопрос немного не потеме. А имеено как прикрутить RoundCube к пользователям postfix. Ведь если не ошибаюсь он стоит у вас. Гугль не помог, на офф сайте тоже ничего нет, метод научного тыка не сработал. Да и возможно это?
Да, возможно, так как сам по себе круглый куб является почтовым клиентом, тоесть аналог того же TheBat или Thunderbird, только с более скудными возможностями. Настраиваете его на нужный смпт хост, а дальше останется только ввести логин и пароль от существующего ящика.
Спс, вот протупил, ничего сложного то нет. Новый юзер добавляется только при удачной авторизации на почтовом сервере. Похоже я раньше сильно перемудрил с конфигом.
Статья очень хорошая, все по пунктам и заработало. Внутри локалки почта отправляется и принимается. Круто!
Вот запнулся на том, что надо еще чтобы почта оправлялась в инет и принималась из инета.
Что делать?
Спасибо.
Надо прописать MX записи для домена в DNS.
Спасибо за ответ. Но в linux я совсем новичок. Напишите, пожалуйста, конкретнее что делать. Установить BIND9? Ткните носом что куда и как.
Спасибо
А в случае с первым сексом с девушкой тоже просили более опытных людей показать вам и ткнуть носом куда надо?
http://ru.wikipedia.org/wiki/Запись_MX вот по ссылочке почитайте
В гугле вас конечно забанили, а на википедии поиск сломался.
[...] Август 21, 2009 Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальн… [...]
все делал по руководству.
однако, авторизация пользователей почему-то не проходит!
в логах:
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.
ну, я смотрел внимательно, все делал как указано в статье – а ничего не вышло.
подкскажите плз, что я упустил?
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
вместо фигурных скобок – угловые
Авторизация у вас только по первой части емэйла, так работать не будет, надо писать емэйл полностью.
точно… в thunderbird указал полностью имя – заработало… спасибо
Подскажите плз. Ставил на системе дебиан 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
Отправка возможна только после авторизации, в поле логин должен быть почтовый ящик полностью. Так же проверьте что бы было заполнено значение mynetworks
лог из 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
##Отправка возможна только после авторизации, в поле логин должен быть почтовый ящик полностью. Так же проверьте что бы было заполнено значение mynetworks##
Здесь все правильно сделал
Спасибо, хороший howto. Но у меня есть несколько проблем. Через squirrelmail ящик открывается, письма через него отправляются, но:
- Любые письма, отправленные на ящик, на него не приходят;
- Снаружи не могу подключиться к 25ому порту. Даже не телнетится. Изнутри – всё в порядке. Через TLS / SSL тоже не работает.
К слову – MX записи работают нормально. Я делал по другому руководстуву, там всё заработало, но мне нужно было хранить информацию о ящиках в MySQL, а там это не получилось. Но почта приходила и уходила нормально.
netstat показывает что порт 25 открыт (*:smtp)
Без выдержек из логов почтовика никто ничем не поможет. Для шифрования рабочего сертификаты надо генерировать, и прописывать их в настройках. Фаервол проверяйте для коннекта извне, по дефолту почтовик слушает на всех интерфейсах.
Есть еще два вопроса – что делать в случае, если входы нужны снаружи для отправки почты, а ошибка вылетает, как у коли
NOQUEUE reject: RCPT from localhost[127.0.0.1]: : Relay access denied ; …….
Т.е. просто прописать локальные адреса нельзя – почта стоит на vps
Вопрос номер два – сгенеренный сертификат оказывается с просроченным сроком действия?
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
Вопрос по отправке почты почтовой программой с внешнего адреса остался.
Заработало.
smtpd_sasl_auth_enable = yes
обязательно нужно добавлять в main.cf
Иначе не будет отправляться почта с виртуальных доменов.
Этого в мануале нет.
Мануал верный, и с сетрификатами все в порядке. С авторизацией кстати тоже, без ваших советов. Делать надо по мануалу, не отступая и не меняя на «по своему», тогда все заведется отлично. Мой сервер настроен так, и не один, и прекрасно работает. Напишите свой мануал, пусть люди настраивают по нему и радуются жизни.
Спасибо за статью а точнее за перевод !
Сделал не работает, не работает следующее:
Может кто что либо подскажет, делал все в точности как написано:
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:~$
Через вэб морду не пускает.
В логах в принципе не чего нового (
А как создать простой алиас к ящику, чтобы не создавать отдельный ящик?
Вставить запись в таблицу aliases. Работать будет без создания ящика.
Написал скрипт на php для добавление доменов, удаление доменов, добавление ящиков, удаление ящиков.http://narod.ru/disk/17834639000/madmin.zip.html
Пользуйтесь:
Спасибо.
Перезалил скрипт к себе на всякий случай.
http://sudouser.com/madmin.zip
Могу еще добавить алиасы добавить и удалить. У себя уже сделал. Если кому надо пишите.
Выкладывайте, обновлю на своем зеркале, кому-нибудь обязательно пригодится.
Лови:http://narod.ru/disk/17867047000/madmin_1.0.0.2.zip.html
Сори пофиксил коечто.
http://narod.ru/disk/17905849000/madmin-1.0.0.3.zip.html
А именно добавил простую авторизацию по гет, подправил SqL запросы.
Новая версия, если не трудно удали старые посты.
http://narod.ru/disk/17990441000/madmin-1.0.0.4.zip.html
Это финал версия нормальная авторизация по сессии.
Плюс красивый интерфейс.
Битую ссылку дал сориhttp://narod.ru/disk/17990565000/madmin-1.0.0.4.zip.html
Привет всем . Помогите пожайлуста !!! Все поставил как здесь написано . Но через 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
Помогите советом пожайлуста .
Заранее всем спасибо .
К сожалению описался в логах
В логах пишет
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
Какой пароль вводили при создании юзераjohn@example.com , такой и вводите, а в бд лежит его хэш в MD5.
Спасибо большое . Самому стыдно как натупил . Но теперь возникла новая проблема . Вобщем он не находит плагин cmusieve . В логах пишет
deliver(maxim@example.com): Feb 22 18:19:18 Fatal: Plugin cmusieve not found from directory /usr/lib/dovecot/lda
Я так понимаю все дело в плагине . Его просто нет в dovecot . Проверял лично – его там нет . Погуглил но ни какого внятного ответа не нашел . Может я не прав , но насколько я понял cmusieve в новых версия dovecot уже не используется . Заранее благодарю за помощь .
Простите, а зачем он вообще? Не слышал о таком…
Вопрос
в статье предлагается отредактировать файл dovecot.conf вставив следующее
protocol lda {
log_path = /home/vmail/dovecot-deliver.log
…
mail_plugins = cmusieve
…
}
Получается он нужен . Или я не прав
У меня в конфиге так:root@sudouser.com
protocol lda {
log_path = /home/vmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address =
mail_plugins = cmusieve
global_script_path = /home/vmail/globalsieverc
}
Может пути просто не верно указаны у вас?
Все похоже разобрался . Я не знаю как у всех , но у меня cmusieve не входит в стандартную конфигурацию dovecot .
Его нужно ставить отдельно . Более того в новых версиях dovecot cmusieve заменен на sieve .
получается
protocol lda {
…
mail_plugins = sieve
…
}
и не забудем reboot
Всем удачи !!!
Спасибо за инфо, но ребут это по моему перебор, достаточно просто перезапустить почтовые демоны.
Добрый день! Настроил все как написано выше – работает на ура!!! спасибо автору. Вот только третий день не могу прикрутить postfixadmin ко всему, ктонибудь пробовал? в постфиксадмине структура таблиц немного другая.
Возьмите структуру таблиц из постфикс админа, или воспользуйтесь скриптом для администрирования почтовика, он написан специально под этот конфиг. Ссылка на скриптhttp://sudouser.com/madmin-1.0.0.4.zip
Доброго времени суток! Какая-то проблема всё-таки с альясами (или это только у меня?) – в общем, добавили мы в таблицу 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 не происходит… Не подскажите, куда именно копать?
Попробуйте использовать скрипт для создания альясов и заведения ящиков, ссылка в комментарии выше.
Спасибо за статью! Но у меня одна проблема шлюз 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
Попробуйте перенастроить эти два пункта: 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
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
ЗЫ Ещё можно аккуратной таблицей формировать список текущих емейлов, а не выпадающим списком
http://clip2net.com/clip/m23235/1270175939-clip-48kb.png
PSS кстати вот ещё в результате каждый раз выскакивает такое сообщение
решение которого с одной стороны филосовское.
Нет,я не читал код для веб интерфейса, мало того я даже не смотрел что там в архиве, скрипт писал один из посетителей блога, и вы можете найти его комментарии выше. Я знаю достаточно для написания «безопасных» скриптов на пхп. Если Вы такой умник напишите свою статью, свой скрипт для управления, или на худой конец допилите PostfixAdmin, кто мешает? Насчет предупреждения, если бы вы почитали матчасть, то наверное знали бы, что самоподписанные сертификаты не пользуются доверием у софта, а тратить немалые деньги на нормально подписанный сертификат для домашнего сервера нет смысла.
PS тут обсуждается настройка почтового сервера, а не безопасное написание скриптов, ваши советы тут по поводу php никому не нужны, оставьте их при себе.
Stepanoff, может перед тем как что-то выкладывать на публику надо проверять что там в архиве? а то шелл или ещё какая гадость.
PS Маны тоже пишу и не мало
в том числе и по почтарям.
Может и стоило бы, но человек выкладывал не одну версию, не думаю что с шеллами так поступают, да и каждый в принципе сам может проверить что там.
А не подскажите как сделать так, чтоб вся почта валилась в один ящик, на примере данной конфигурации?
А дальшей уже френчмейлом всё забиралось
вторая часть мне ясна, а вот заставить постфикс всё складывать в один ящик так и не могу заставить
Надо собирать всю почту для домена в один ящик, не зависимо от того на какой она была отправлена? Надо в альясы вставить ящик @domain.com и поставить пересылку на нужный ящик.
нашёл что-то похожее
http://www.njl.us/2010/02/making-postfix-accept-all-mail-to-one.html
Для одного домена на почтовом сервере пойдет, а если у меня их там несколько десятков, и не все мои? Для этого то и сделаны алиасы в mysql.
Серьёзный вопрос у меня
переезжаю с сендмейла настроенного лет 7-9 назад.
База пользователей большая.
Там аунтификация шла по логину без @domen.net.
Как мне щас это организовать?
Посмотреть на sql query для авторизации, поменять.
Отвечу на свой вопрос, в файле
/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’);
Тогда авторизация будет идти по логину без домена
Можно проще делать
password_query = select user, password from virtual_users where user=’%u’;
автору большое спасибо за первый пост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» ?
на какой адрес отправлять письмо чтобы оно рассылалось по пользователям ?
прошу помочь
В базу данных вносить изменения через phpmyadmin, если не умеете из консоли. Там есть таблица virtual_aliases с полями id, domain_id, source, destination, id оставить пустым, заполнить id домена, в поле source пишем ящик до символа @, на который будем слать письмо для рассылки, например для рассылкиmaillist@domain.edu вписать maillist, в поле destination вписать ящики полностью, каждый ящик с новой строки.
это если домен один. а если доменов 50-100-200 ?
[...] И так прижало мне сделать для себя почтовый сервер на своём сервере. раньше оно работало из коробки и я горя не знал, но тут оказалось, что надо всё делать ну чтож приступим ubuntu 8.10 UPD: Прошло время, и сервер поднял по более стабильному варианту, всем рекоемндуюhttp://sudouser.com/ustanovka-pochtovogo-servera-postfix-dovecot-mysql-i-virtualnyx-domenov.html [...]
И что от этого меняется? Хоть 100500 доменов, расылки делать так же. Не удобно phpmyadmin – напишите свой скрипт, специально для работы с БД почтового сервера.
Максим, в общем делать через алиасы только так ?
Хорошо. Подскажите пожалуйста тогда еще как ограничить количество исходящих smtp потоков и ограничить количество рецепиентов в одном письме. Спасибо
Почитайтеhttp://www.postfix.ru/ , там много по настройке и оптимизации работы почтового сервера.
уфф
http://freemars.org/howto/mailman.html
нашел
работает
Доброго времени суток, извеняюсь зарание за офтом но вот настравиваю маил сервер и мне в логах пи шется следуюшяя ошибка :
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»
помогите пожалуйста её решить …
Тут решили такую проблему:http://www.howtoforge.com/forums/archive/index.php/t-3203.html
Спасибо большое за помошь, эх вот только я с английским не в ладах (((( эх лан словарь мне руки или переводчик и буду разбираться )))
Здраствуйте максим! У меня такая проблема и гуглю уже а толку нет! Дело в том что я сделал все как у вас (делал раньше по вашим статьям днс фтп и многое другое и все работало) но тут проблемка!
telnet localhost 25 – conecction refused
в этом месте зависает! на 110 порт пожалуста а 25 ни в какую! фаервол открыл для 25 (да и вообще все разрешено) postfix check – дает пустой результат и ошибок нет! Вижу все в базе postmap – показует все правильно – короче все как у вас и нет ошибок только эта одна про 25 порт! Пожалуста помогите – заколебался гуглить! Нече не помогает! Думаю вы не раз уже почту настраивали и можете помочь! Повторю все как у вас в статье! Прошу помочь!
Демон не запущен, ошибка в конфигах. Перезапустить Postfix и Dovecot, посмотреть что пишет.
Статья хорошая, спасибо автору, если в 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.
Автор вопрос, хочу прикрутить веб морду (заведение ящиков, веб маил типа белки) как это работает у вас? Есть ли антивирусы, антиспам?
На сколько знаю 5 php не совместим с 4 , более того конфликтуют, по скольку, еще предполагается запуск сайта на 5 пхп не могу запустить белку.
Поставьте Roundcube.
Здравствуйте, подскажите пожайлуста чайнику, мне бы хотелось чтобы 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
как почта начинает ходить, но отправить может кто угодно из локальной сети и без авторизации.
Заранее благодарен за любые подсказки.
fatal : /etc/postfix/master.cf line 83 : field «max_proc» : bad value «pipe»
в мастер.цф – нет такой 83 строки! при чем еще глюч – /etc/init.d/postfix restart – все ок! А postfix reload – пишет что не запущен постфикс! помогите максим
Itachi1701, если там нет такой строки то там возможно есть include на другие файлы конфигурации.
ivan Как именно отправляется почта? с веб интерфейса или с почтового клиента?
Спасибо Максим! Нужно было просто два пробела добавить в начале строки!
Телнет локалхост 25 работает
Но еще кое что : пытаюсь забрать отправленное письмо самому себе (телнет локалхост 110) ввожу USER потом PASS и выводит POP3(itachi1701) couldn’t open inbox internal error occurred. refer to server log for more information!
и все – такое и в логах! помогите и спс за прошлый совет!
Кстати еще в папке /home/vmail/ ниче нема а в логах на счет нее пишет что permission denied (видимо должно само создавать папки) – мона ли както решить это?
прошу ответить на 1 и 2 вопросик
Пробую отправлять и с почтового клиента и с телнета
ivan что за спам в комментариях, у вас вирусы?
Itachi1701 что в логах по поводу ошибки? права на директорию выставить надо нормально, chown -R vmail:vmail /home/vmail
ivan что за спам в комментариях, у вас вирусы?
Прошу прощенья, виноват, буду разбираться.
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 (как у вас) то его не принимает
короче максим спасибо – сделаю сначала еще раз и все буква к букве как у вас а потом уже если вдруг не выйдет то буду вас мучать – решил ошибку сначала в себе найти! СПС – начну буква в букву как в статье – там посмотрим
Права на директорию поправить надо. В конфиге ошибка. Это логин пароль на базу данных, при чем тут почта? Статью читайте внимательно, а не между строк, там все описано верно, и работает в конце настройки.
кстати не хочу нече плохого сказать но когда мы создаем и заполняем базу
CREATE TABLE `virtual_domains` ( – то на эти ковычки в начале ругается синтакс еррором! удалю ковычки – работает!
У меня в консоле mysql не ругается.
все терь сделал все буква в букву без ошибок вроде! check прошел успешно!
терь через telnet 25 отправил почту сам себе
а вот telnet 110 не могу забрать
пишу
user john
pass summersun
- ERR Authentication Failed
снова
user mailuser
pass mailuser2007
- ERR Authentication Failed
и без пароля пробовал!
как забрать почту которую отправил сам себе? что это за фигня с паролями (все как у вас в статье)
Хватит страдать херней с телнетом, есть почтовые клиенты. Авторизация по почтовому ящику полностью, про это написано в статье.
не слушайте я тут что идиот или что? или не человек? по моему я такой же пользователь сайта как и другие! только всем вы нормально отвечайте! только мне грубите! большое спасибо!
через The Bat не могу забрать почту – сам себе посылаю без проблем а не могу принять!
Если вы почитаете вопросы других комментаторов статьи вы поймете что они по делу, а вот ваши наводят на мысли что вы не видите разницы между паролем от mysql и паролем от почтового ящика. Вы читали как надо авторизоваться через телнет? Мне кажется что нет. Статью внимательно читали? Видимо опять же нет, так как там сказано в каком формате вводится логин для ящиков. Вы настраиваете почтовый сервер или просто копируете примеры конфига из статьи? Видимо второе, что не даст вам желаемого результата. Я не хотел вас обидеть, но ваши вопросы наводят на мысли о низком уровне знаний в области Linux, и если вы не в состоянии самостоятельно настроить сервер не надо задавать глупые вопросы в комментариях к статье по его настройке, это же блог, в не форум с обсуждением и попутным обучением новичков настройкам Linux сервера. Скопируйте ссылку на статью на форум и попросите помощи. Форум выберите сами. Хотите помощи по настройке от меня – пожалуйста, но она не будет безвозмездной.
[...] бы все разжевывалось и объяснялось, примерно как вот тут. В сети можно найти огромное количество copy-paste методов [...]
Привет есть ряд вопросов. Настроил без проблем.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 запускается но не видит и не создаёт доменов. Пока решилис пользовать этот скрипт (UserReghttp://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}
Без mx записей и ptr многие сервера будут отвергать почту.
password_query = select user, password from virtual_users where user=’%u’; но это будет работать только с одним доменом, если будет два домена, и одинаковый юзер и там и там то как сервер отличит к какому домену авторизовать?
Возьмите любой пример настройки https хоста и все.
в Postfix admin query другие, поэтому он не работает, перепишите их под свои если очень надо.
1. mx конечно есть
2. Мне нужно в любом случае такую схему.vasia@domain2.ru или vasia@ domain3.ru, все письма получает пользователь vasia@ domai.ru.
@domain.ru
@domain2.ru (alias)
@domain3.ru (alias)
@domain4.ru (alias)
Т.е. если люди шлют почту на адрес vasia@ domain.ru или
Авторизация по имени (без указания домена) является для меня обязательным условием.
P.S.Да чуть не забыл, спасибо ваши ответы.
хочу уточнить про релэй.
у прова на сайте написано:
Рекомендуется использовать :
Сервер исходящей почты SMTP: relay.mts-nn.ru
Порт для отправки почты должен быть 2525
Обязательно должна быть установлена авторизация при отправке.
в этом случае надо в конфиге писать relayhost=relay.mts-nn.ru:2525 ?
а про последний пункт я немного в непонятках. что, где?
Понастройке relay тут немного написано:http://www.postfix.org/BASIC_CONFIGURATION_README.html
Доброго времени суток!
у меня такая ошибка:
на команду:
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
где копать подскажите плз…???
Кавычки нормально напишите, у вас у одного такая ошибка.
Скажите, каким образом теперь можно забирать почту (например fetchmail’ом) с внешних ящиков и раскидывать по виртуальным почтовым клиентам?
Сейчас я использую связку postfix dovecot fetchmail, где все почтовые клиенты являются реальными unix пользователями. fetchmail забирает почту с нужных адресов и раскидывает по почтовым ящикам определенных пользователей.
Каким образом это можно сделать с виртуальными почтовыми пользователями?