LinuxForum.Fans
Тема

Не срабатывают алиасы - User unknown in virtual mailbox table

Автор: seryoga_1985 18 сообщений 9295 просмотров
#258355

Доброго времени суток, уважаемые администраторы и пользователи!

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

Значит ситуация следующая. Настроил Postfix+Courier+MySQL+SASLAUTH. Почта без проблем принимается и отправляется на любые существующие локальные ящики и на внешние почтовые ящики. Почтовые ящики создаю через Postfixadmin. Если создаю почтовый ящик к примеру serg@domain.ru, то на него без проблем отправляется то или иное письмо. Однако, если, например попробовать создать алиас для пересылки (перенаправления) письма на другой почтовый ящик (например с serg@domain.ru на ivan@domain.ru) при создании алиса пишется, что данный почтовый ящик уже существует. Тогда я удаляю данный почтовый ящик (serg@domain.ru) и создаю алиас для перенаправления письма другому получателю, т.е. с serg@domain.ru на ivan@domain.ru. Все как бы хорошо, алиас вроде бы создан.

Проблема: При отправке с любого локального почтового ящика, например с olga@domain.ru на serg@domain.ru в идеале должен сработать алиас и письмо должен получить ivan@domain.ru, однако этого не происходит и в почтовом клиенте мне выдает надпись - User unknown in virtual maibox table.

Логи показывают следующее:

text
550 5.1.1 <serg@domain.ru>: Recipient address rejected: User unknown in virtual mailbox table; from=<olga@domain.ru> to=<serg@domain.ru> proto=ESMTP 

Настройки Posfix (main.cf):

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

append_dot_mydomain = no

readme_directory = no

# Папка хранения почты virtual_mailbox_base = /var/spool/postfix/vmail

# Максимальный размер объёма почтового ящика (500МБ) mailbox_size_limit = 512000000

# Максимальный размер письма, что может принять почтовый ящик (50 МБ): message_size_limit = 5120000

# Время, в течении которого письма будут храниться на сервере maximal_queue_lifetime = 10d

# Дополнительные файлы конфигурации additional_config_dir = /etc/postfix

alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases

# Доменное имя myhostname = domain.ru mydomain = domain.ru

# Список доменов, для которых почта будет доставляться локально, а не пересылаться на другой хост mydestination = domain2.ru, localhost.ru, localhost

# Локальные сети: mynetworks = 127.0.0.0/8 192.168.1.0/24

# Содержит имена, обслуживаемых доменов virtual_mailbox_domains = mysql:/etc/postfix/virt_domain.cf # Карта расположения почтовых ящиков virtual_mailbox_maps = mysql:/etc/postfix/virt_mailbox.cf # Карта расположения почтовых алиасов virtual_mailbox_alias = mysql:/etc/postfix/virt_alias.cf # Карта транспорта # transport_maps = mysql:/etc/postfix/virt_transport.cf

# Поддержка старых почтовых клиентов broken_sasl_auth_clients = yes

# Требуем, чтобы удалённый SMTP-клиент представлял себя в начале SMTP-сессии с помощью команды HELO или EHLO smtpd_helo_required = yes

# Проверка адреса отправителя smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_unknown_client, reject_unknown_sender_domain, reject_unknown_hostname, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client dul.dnsbl.sorbs.net, # reject_rbl_client list.dsbl.org, reject_rbl_client dnsbl.njabl.org, reject_rbl_client relays.ordb.org, reject_rbl_client cbl.abuseat.org, # reject_rbl_client opm.blitzed.org, reject_rbl_client dul.ru,

# Указываем правила, какие письма принимать, а какие откидывать (защита от спама). Проверка по IP-адресу отправителя. smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_rbl_client blackholes.easynet.nl, reject_rbl_client cbl.abuseat.org, reject_rbl_client proxies.blackholes.wirehub.net, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl.spamhaus.org, reject_rbl_client dnsbl.njabl.org, reject_rbl_client reject_unauth_destination, reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain

smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client bl.spamcop.net, reject_rbl_client cbl.abuseat.org, reject_rbl_client psbl.surriel.com, reject_rbl_client spamsources.fabel.dk, # reject_rbl_client opm.blitzed.org, reject_rbl_client combined.njabl.org, reject_unknown_client,

Настройки /etc/postfix/virt_mailbox.cf:

text
user = user 
password = password 
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = maildir
where_field = username

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

Заранее всем благодарен!

#258592

Неужели ни у кого нет никаких мыслей?

#258611

Даже читать сообщение оформленное в таком виде не буду, а увижу еще подобное - приму меры. Пользуйся тэгами BBCode

#258616

Логи показывают следующее:

text

550 5.1.1 <serg@domain.ru>: Recipient address rejected: User unknown in virtual mailbox table; from=<olga@domain.ru> to=<serg@domain.ru> proto=ESMTP
#258623

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

#258627

Спасибо, что открыли обратно тему. Теперь знаю, как пользоваться BB-кодами и постараюсь руководствоваться в дальнейшем при оформлении тем.

#258632

Что-то похожее тут

That's your problem ;-) - your configuration does not include alias domains, therefore they obviously can't work.

Не?

#258638

Неа, здесь походу 2 разных домена, а у меня домен один, а вот просто проблема с алиасами, что нельзя создать алиас для переадрисации почты с serg@domain.ru на ivan@domain.ru, т.к. якобы такой почтовый ящик существует. А вот когда через postfixadmin удаляю тот же ящик serg@domain.ru, то алиас для переадрисации почты с serg@domain.ru на ivan@domain.ru создается без проблем. Однако, когда отправляю письмо с почтового ящика olga@domain.ru на serg@domain.ru, то в идеале я его уже должен был бы получить на почтовый ящик ivan@domain.ru, но письмо даже не уходит, т.к. выскакивает соответствующее сообщение:

text
550 5.1.1 <serg@domain.ru>: Recipient address rejected: User unknown in virtual mailbox table; from=<olga@domain.ru> to=<serg@domain.ru> proto=ESMTP 
#258645

С Postfix знаком мало.

А если добавить вот такой параметр?

text
mydestination = domain2.ru, localhost.ru, localhost
local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps, $transport_maps
#258647
Ka3aH6ac написал:
С Postfix знаком мало.

А если добавить вот такой параметр?
text
mydestination = domain2.ru, localhost.ru, localhost
local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps, $transport_maps

Увы, положительных вариантов не принесло. Пробовал и ранее такой конфиг.

#258648

А что у тебя в файле /etc/aliases ?

#259195
Ka3aH6ac написал:
А что у тебя в файле /etc/aliases ?

Вот такие вот данные:

text
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: serg
serg: serg@domain.ru
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: serg

Что, реально, больше ни у кого нет никаких мыслей по этому поводу?

#264544

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

#264667

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

text
# mysql
mysql> use postfix
mysql> SHOW COLUMNS FROM mailbox;
mysql> SELECT * FROM mailbox;

Посмотри, есть ли учетная запись.

Далее запросы переделай на такие, попробуй:

text
# vi /etc/postfix/sql/vdomains.cf
text
user = postfix
password = password
hosts = localhost
dbname = mail
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx='0' AND active='1'
text
# vi /etc/postfix/sql/vmailbox.cf
text
user = postfix
password = password
hosts = localhost
dbname = mail
table = mailbox
select_field = CONCAT(domain,'/',maildir)
where_field = username
additional_conditions = and active = '1'
#query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s'AND active = '1'
text
# vi /etc/postfix/sql/valias.cf
text
user = postfix
password = password
hosts = localhost
dbname     = mail
table = alias
select_field = goto
where_field = address
additional_conditions = and active = '1'
#query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#264668

У тебя же структура базы от PostfixAdmin ?
На твоем месте, я бы пока вообще отключил всякие запреты.

#264691

В том то и дело, что в MySQL в таблице mailbox отсутствует почтовый ящик serg@domain.ru, но есть алиас в таблице alias: serg@domain.ru -> ivan@domain.ru. Соответственно, если я пытаюсь добавить почтовый ящик serg@domain.ru в mailbox через postfixadmin, то получаю ответ "Это имя уже существует, пожалуйста, выберите другое!", понятное дело из-за того, что это имя присутствует в таблице alias. Вот такая вот беда.

#264717

А как ты добавляешь учетную запись?

#265691

Через web-интерфейс Postfixadmin-а!

Войдите или зарегистрируйтесь, чтобы ответить.