Хотел сделать для ексченжа пограничный сервер на postfix(е) .
Руководствовался статьёй .
http://eth0.dp.ua/?p=103
Postfix не отдаёт почту ексченжу .
По логам ругается что на может найти рецеприента .
А я хочу чтобы бля моего домена всю почту он сваливал на эксченж 80.104.105.114 .
Вот конфиг .
Подскажите что не так .
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
mydomain = xxx.ru
#mydomain = xxxx.ru# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailnamesmtpd_banner = $myhostname ESMTP $mail_name ()
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 = 4hreadme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
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 = mx.xxx.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mx.xxx.ru, localhost.xxx.ru, xxx.ru, xxxx.ru, , localhost
relayhost =
mynetworks = 127.0.0.0/8, 80.104.105.114mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
transport_maps = hash:/usr/local/postfix/transportФайл transport
xxx.ru smtp:[80.104.105.114]
xxxx.ru smtp:[80.104.105.114]
>Файл transport
>
>xxx.ru smtp:[80.104.105.114]
>xxxx.ru smtp:[80.104.105.114]домены xxx.ru и xxxx.ru должны быть указаны в relay_domains
>>Файл transport
>>
>>xxx.ru smtp:[80.104.105.114]
>>xxxx.ru smtp:[80.104.105.114]
>
>домены xxx.ru и xxxx.ru должны быть указаны в relay_domainsДобавил в main.cf
строку relay_domains = xxx.ru
postfix reloadвсё равно ошибка
550 5.1.1 <sas_d@xxx.ru>: Recipient address rejected: User unknown in local recipient table; from=<sas_d@xxx.ru>
>всё равно ошибка
>550 5.1.1 <sas_d@xxx.ru>: Recipient address rejected: User unknown in local recipient table; from=<sas_d@xxx.ru>прочитай про классы адресов в postfix
http://www.postfix.org/ADDRESS_CLASS_README.html
З.Ы.
Домен xxx.ru не должен быть указан в mydestination
>>всё равно ошибка
>>550 5.1.1 <sas_d@xxx.ru>: Recipient address rejected: User unknown in local recipient table; from=<sas_d@xxx.ru>
>
>прочитай про классы адресов в postfix
>
>http://www.postfix.org/ADDRESS_CLASS_README.html
>
>З.Ы.
>Домен xxx.ru не должен быть указан в mydestinationИсправил .
Почитал . Не понял что не так .
Добавил строчку .
local_recipient_maps =Как было написано .
local_recipient_maps пуст, то почтовый сервер Postfix принимает любой адрес получателя, принадлежащий классу локальных доменов (local domain class).Тыкнити дураку . Что не так ПЛЗ.
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailnamesmtpd_banner = $myhostname ESMTP $mail_name ()
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 = 4hreadme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
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 = mx.xxx.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mx.xxx.ru, xxx.ru, localhost.xxx.ru, , localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, 80.104.105.114
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
transport_maps = hash:/usr/local/etc/postfix/transport
relay_domains = xxx.ru
local_recipient_maps =
>>всё равно ошибка
>>550 5.1.1 <sas_d@xxx.ru>: Recipient address rejected: User unknown in local recipient table; from=<sas_d@xxx.ru>
>
>прочитай про классы адресов в postfix
>
>http://www.postfix.org/ADDRESS_CLASS_README.html
>
>З.Ы.
>Домен xxx.ru не должен быть указан в mydestinationИсправил .
Почитал . Не понял что не так .
Добавил строчку .
local_recipient_maps =
Как было написано .local_recipient_maps пуст, то почтовый сервер Postfix принимает любой адрес получателя, принадлежащий классу локальных доменов (local domain class).
Тыкнити дураку . Что не так ПЛЗ.
Всё равно ошибка
User unknown in local recipient table; from=<sas_d@xxx.ru># See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailnamesmtpd_banner = $myhostname ESMTP $mail_name ()
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 = 4hreadme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
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 = mx.xxx.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mx.xxx.ru, xxx.ru, localhost.xxx.ru, , localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, 80.104.105.114
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
transport_maps = hash:/usr/local/etc/postfix/transport
relay_domains = xxx.ru
local_recipient_maps =
Еще раз, домен xxx.ru не должен быть прописан в mydestination, а только в relay_domains!!!Так как, указывая домен в mydestination ты сразу определяешь для него транспорт, список пользователей и т.д.
>Еще раз, домен xxx.ru не должен быть прописан в mydestination, а только
>в relay_domains!!!
>
>Так как, указывая домен в mydestination ты сразу определяешь для него транспорт,
>список пользователей и т.д.Спасибо огромное !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Меня смутила статья http://eth0.dp.ua/?p=103 .
Там чётко написано что :
Если мы должны считать своими несколько доменов, то их можно перечислить здесь:
mydestination = $myhostname, localhost.$mydomain, $mydomain, domain2.ru, domain3.ru
Ещё раз огромное спасибо .
Если exchange 2k7, то можно настроить на нем, чтобы он на этапе smtp сессии сообщал о существовании пользователя. И тогда использовать что то типаsmtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
...
...
...
reject_unverified_recipientИли если пользователи не часто меняются, то любым скриптом делать выборку из АД и сохранять в виде
/etc/postfix/relay_recipients
user1@domain.com OK
...
...
...
user9@domain.com OKА потом указывать этот файл postfix
relay_recipient_maps = hash:/etc/postfix/relay_recipients
Или средствами самого postfix делать выборку непосредственно в АД
relay_recipient_maps = ldap:/etc/postfix/relay_recipients.ldapВ файле /etc/postfix/relay_recipients.ldap формируешь запрос согласно http://www.postfix.org/ldap_table.5.html
Как говорится, на вкус и цвет :)
А не стоит читать в первую очередь статьи, описывающие конфигурацию для частных случаев. ИМХО, лучше всего начинать с нативной документации: http://www.postfix.org/STANDARD_CONFIGURATION_README.html#fi...
>[оверквотинг удален]
>
>mailbox_size_limit = 0
>recipient_delimiter = +
>inet_interfaces = all
>transport_maps = hash:/usr/local/postfix/transport
>
>Файл transport
>
>xxx.ru smtp:[80.104.105.114]
>xxxx.ru smtp:[80.104.105.114]Вот нелохая статья с реализацей через виртуал.
http://www.samag.ru/cgi-bin/go.pl?q=articles;n=07.2005;a=09Только там реализована работа с лдапом (АД) по типу коннект к постфиксу - зарос в АД, что не есть гуд. Можно скриптом делать выборку в АД и хранить базу локально. Если надо будет могу скинуть скрит.
>[оверквотинг удален]
>>xxxx.ru smtp:[80.104.105.114]
>
> Вот нелохая статья с реализацей через виртуал.
>http://www.samag.ru/cgi-bin/go.pl?q=articles;n=07.2005;a=09
>
> Только там реализована работа с лдапом (АД) по типу коннект к
>постфиксу - зарос в АД, что не есть гуд. Можно скриптом
>делать выборку в АД и хранить базу локально. Если надо будет
>могу скинуть скрит.
>Спс. почитаю .
Если понадобится тоды напишу ок ?
Мужики, спасибо за статью!! Особенно за ответ, где указано что вместо $mydomain не надо ничего указывать, чтобы почта релеилась на внутренний серв!
>[оверквотинг удален]
>> Вот нелохая статья с реализацей через виртуал.
>>http://www.samag.ru/cgi-bin/go.pl?q=articles;n=07.2005;a=09
>>
>> Только там реализована работа с лдапом (АД) по типу коннект к
>>постфиксу - зарос в АД, что не есть гуд. Можно скриптом
>>делать выборку в АД и хранить базу локально. Если надо будет
>>могу скинуть скрит.
>>
> Спс. почитаю .
> Если понадобится тоды напишу ок ?Я тоже описывал настройку шлюза на Postfix. Возможно будет интересно http://plutonit.ru/view_categories.php?categories=7