Как реализовать, чтобы при получении письма для пользователя домена постфикс проверял существует ли такой пользователь, если нет, то отбрасывал соединение!Вместо того, чтобы всосать письмо, а потом отправить ответку от MAILER-DAEMON'а, что получатель то неизвестен!
По умолчанию postfix так и настроен не принимать почту для несуществующих пользователей. Покажите postconf -n
>По умолчанию postfix так и настроен не принимать почту для несуществующих пользователей.
>Покажите postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10
local_recipient_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/local_recipient.conf
mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, post.$mydomain
mydomain = ellada.com.ua
myhostname = mail.ellada.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
sample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf, permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client bl.spamcop.net
smtpd_reject_unlisted_recipient = yes
smtpd_restriction_classes = local, other, all
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
transport_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/transport.conf
unknown_local_recipient_reject_code = 554
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysqlLookupMaps/domain.conf
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984
root@bsd# clear
root@bsd# postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10
local_recipient_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/local_recipient.conf
mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, post.$mydomain
mydomain = ellada.com.ua
myhostname = mail.ellada.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
sample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf, permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client bl.spamcop.net
smtpd_reject_unlisted_recipient = yes
smtpd_restriction_classes = local, other, all
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
transport_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/transport.conf
unknown_local_recipient_reject_code = 554
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysqlLookupMaps/domain.conf
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984
ошибся, два раза подряд вывел :)
вот так правильноalias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10
local_recipient_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/local_recipient.conf
mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, post.$mydomain
mydomain = ellada.com.ua
myhostname = mail.ellada.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
sample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf, permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client bl.spamcop.net
smtpd_reject_unlisted_recipient = yes
smtpd_restriction_classes = local, other, all
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
transport_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/transport.conf
unknown_local_recipient_reject_code = 554
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysqlLookupMaps/domain.conf
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984
Эээээ....
При хранении пользователей в мускуле они локальными не числятся - все они виртуальные. Режектить надо по relay_recipient_maps
Здесь недавно это обсуждалось - http://www.opennet.me/openforum/vsluhforumID1/64967.html
>Эээээ....
>При хранении пользователей в мускуле они локальными не числятся - все они
>виртуальные. Режектить надо по relay_recipient_maps
>Здесь недавно это обсуждалось - http://www.opennet.me/openforum/vsluhforumID1/64967.html
Поясните, о чем Вы?
>>Эээээ....
>>При хранении пользователей в мускуле они локальными не числятся - все они
>>виртуальные. Режектить надо по relay_recipient_maps
>>Здесь недавно это обсуждалось - http://www.opennet.me/openforum/vsluhforumID1/64967.html
>Поясните, о чем Вы?Виноват, дал не ту ссылку - http://www.opennet.me/openforum/vsluhforumID1/64825.html
вот правильная.
При использовании sql-баз не используется транспорт local - все определяется через virtual, что видно по конфигу. А relay_recipient_maps действует на все, что не local.
В той дискуссии (вторая ссылка - правильная) подействовал именно этот метод.
>Виноват, дал не ту ссылку - http://www.opennet.me/openforum/vsluhforumID1/64825.html
>вот правильная.
>При использовании sql-баз не используется транспорт local - все определяется через virtual,
Да, в данном случае придется определить еще и mailbox_transport.
>что видно по конфигу. А relay_recipient_maps действует на все, что не
>local.
Почему? Будет действовать только на то, что указано в $relay_domains.relay_recipient_maps (default: empty)
Optional lookup tables with all valid addresses in the domains that match $relay_domains.
В свое время св. unk приводил порядок просмотра таблиц...
Достаточно определить virtual_alias_maps через список пользователей
>В свое время св. unk приводил порядок просмотра таблиц...
>Достаточно определить virtual_alias_maps через список пользователей
Достаточно для чего?
Для каких доменов не проверяется получатели?
какова должна быть стурктура relay_recipient_maps ?
какой sql запрос мне надо составить? просто вернуть список имеющихся адресов?
Если речь о виртуальных пользователях, то
postmap -q "string" mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
>Если речь о виртуальных пользователях, то
>postmap -q "string" mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
сделал так:
relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_mapsоднако
220 mail.domain
ehlo mario
250-mail.domain
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250 8BITMIME
mail from: mario@domain
250 Ok
rcpt to: nonexistent.user@domain
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
message text
.
250 Ok: queued as 427B325
quit
221 Bye
Connection closed by foreign host.
>какова должна быть стурктура relay_recipient_maps ?
>какой sql запрос мне надо составить? просто вернуть список имеющихся адресов?Ссылочку (вторую) посмотри... там все
во, получилось! извините, что парил вам головызначит что требовалось сделать:
установить relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
и сбросить (закомментировать) transport_mapsпри этом постфикс стал почему то заглядывать в /etc/local/postfix/aliases
(они у меня не там лежали)не могли бы вы пояснить как они вместе с transport_maps относятся к relay_recipient_maps ?
Еще раз. Для адресов какого класса Вы настраиваете проверку?
http://www.postfix.org/ADDRESS_CLASS_README.html
>Еще раз. Для адресов какого класса Вы настраиваете проверку?
>http://www.postfix.org/ADDRESS_CLASS_README.html
вообще-то для virtual mailbox domain class
а теперь получилось, что для local
:)
так не пойдет...
1. Если почта хранится локально, то закомментируйте transport_maps.
2. Все, что Вам нужно для начала - правильно настроить следующие параметры
virtual_alias_maps
virtual_mailbox_domains
virtual_mailbox_maps
>1. Если почта хранится локально, то закомментируйте transport_maps.
>2. Все, что Вам нужно для начала - правильно настроить следующие параметры
>
>virtual_alias_maps
>virtual_mailbox_domains
>virtual_mailbox_maps
что-то я совсем запутался, документация уже просветления не приносит
вроде настроил, получился такой вот конфигalias_database = hash:/etc/local/postfix/aliases
alias_maps = hash:/etc/local/postfix/aliasesbroken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/manmydestination = localhost
mydomain = domain.com.ua
myhostname = mail.domain.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomainnewaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = noreceive_override_options = no_address_mappings
relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_mapssample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildropsmtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yessmtpd_recipient_restrictions =
check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf,
permit_sasl_authenticated,
permit_mynetworks,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
reject_rbl_client bl.spamcop.netsmtpd_restriction_classes = local, other, all
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymoussmtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yesvirtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = domain.com.ua
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984при несуществующем пользователе получаю
550 Recipient address rejected: User unknown in virtual mailbox tableкласс адресов - virtual mailboxes
еще меня смущает $mydestinationда и вообще как на ваш взгляд такая конфигурация?
>при несуществующем пользователе получаю
>550 Recipient address rejected: User unknown in virtual mailbox table
Т.е. все работает?
>класс адресов - virtual mailboxes
>еще меня смущает $mydestination
Оставьте default (закомментируйте его).
>да и вообще как на ваш взгляд такая конфигурация?
Не понятно зачем
relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
Это лучше указывать для smtpd в master.cf
receive_override_options = no_address_mappings
>>при несуществующем пользователе получаю
>>550 Recipient address rejected: User unknown in virtual mailbox table
>Т.е. все работает?
>>класс адресов - virtual mailboxes
>>еще меня смущает $mydestination
>Оставьте default (закомментируйте его).
>>да и вообще как на ваш взгляд такая конфигурация?
>Не понятно зачем
>relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
>Это лучше указывать для smtpd в master.cf
>receive_override_options = no_address_mappings
да действительно не понятно :) убрал
receive_override_options перенес в master.cfспасибо огромное, очень сильно помогли
раздобыл "The Book Of Postfix" Ralf Hildebrandt & Patrick Koetter (2005) буду читать до просветления!
>спасибо огромное, очень сильно помогли
>раздобыл "The Book Of Postfix" Ralf Hildebrandt & Patrick Koetter (2005) буду
>читать до просветления!
Я бы тоже с удовольствием почитал :)
>>спасибо огромное, очень сильно помогли
>>раздобыл "The Book Of Postfix" Ralf Hildebrandt & Patrick Koetter (2005) буду
>>читать до просветления!
>Я бы тоже с удовольствием почитал :)
нет проблем, напишите мне на CombatPenguin@gmail.com ;)
или icq: 169615561