URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 56523
[ Назад ]

Исходное сообщение
"Postfix auto reply"

Отправлено Евгений , 17-Май-05 13:52 
Я делаю так, чтобы при прибытии письма на определенный адрес, отправителю приходило уведомление о доставке. Например это адрес reg@domain.ru.
Для этого я делаю еще редирект с reg@domain.ru -> reply@autoreply.domain.ru.
В таблице transport у меня для всех доменов прописано virtual:, для домена autoreply.domain.ru я прописал autoreply:.
В master.cf у меня строчка:
autoreply unix  -   n   n   -   -    pipe
    flags=  user=nobody argv=/home/evgeny/reply_reg/autoreply.pl ${sender}

Проблема в том, что у меня работает почта для всех доменов только тогда, когда закоментированно
#transport_maps = mysql:/etc/postfix/transport.cf
Если раскоментировать, тогда для всех доменов начинает ходить почта, но при отправке на адрес reply@autoreply.domain.ru он ищет такого пользователя и пытается впиндюрить письмо ему в почтовый ящик.
По-моему у меня неразбериха в main.cf. Кто подскажет?


Содержание

Сообщения в этом обсуждении
"Postfix auto reply"
Отправлено unk , 17-Май-05 13:56 
>По-моему у меня неразбериха в main.cf. Кто подскажет?
Покажите postconf -n

"Postfix auto reply"
Отправлено Евгений , 17-Май-05 14:01 
>>По-моему у меня неразбериха в main.cf. Кто подскажет?
>Покажите postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
default_privs = nobody
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailbox_transport = lmtp:unix:/var/cyrus/socket/lmtp
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
maximal_queue_lifetime = 2d
message_size_limit = 50240000
mydestination = mysql:/etc/postfix/transport.cf
mydomain = my.domain.ru
myhostname = my.domain.ru
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /home/postfix/spool
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtp_sasl_auth_enable = no
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_security_options = noplaintext
smtp_tls_note_starttls_offer = yes
smtpd_banner = Hello from $myhostname.
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/FOO-cert.pem
smtpd_tls_key_file = /etc/postfix/FOO-key.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
soft_bounce = no
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 450
virtual_alias_maps = mysql:/etc/postfix/aliases.cf


"Postfix auto reply"
Отправлено unk , 17-Май-05 14:06 
>mydestination = mysql:/etc/postfix/transport.cf
покажите этот файл.

>smtpd_banner = Hello from $myhostname.
К делу не относится, но исправьте.


"Postfix auto reply"
Отправлено Евгений , 17-Май-05 14:12 
>>mydestination = mysql:/etc/postfix/transport.cf
>покажите этот файл.

user = mail
password = *********
dbname = maildb
table = transport
select_field = transport
where_field = domain
hosts = localhost

ее содержимое:
domain             | transport
-------------------+------------
domain.ru          | virtual:
-------------------+------------
domain2.ru         | virtual:
-------------------+------------
domain3.ru         | virtual:
-------------------+------------
autoreply.domain.ru| autoreply:

>>smtpd_banner = Hello from $myhostname.
>К делу не относится, но исправьте.
На что исправить?



"Postfix auto reply"
Отправлено unk , 17-Май-05 14:25 
>>>mydestination = mysql:/etc/postfix/transport.cf
>>покажите этот файл.
mydestination = localhost.$mydomain, localhost
virtual_alias_domains = ваши домены (лучше без sql)
/etc/postfix/transport.cf в таком виде не нужен вообще.

>>>smtpd_banner = Hello from $myhostname.
>>К делу не относится, но исправьте.
>На что исправить?
$myhostname ESMTP bla-bla


"Postfix auto reply"
Отправлено Евгений , 17-Май-05 14:34 
>>>>mydestination = mysql:/etc/postfix/transport.cf
>>>покажите этот файл.
>mydestination = localhost.$mydomain, localhost
>virtual_alias_domains = ваши домены (лучше без sql)
>/etc/postfix/transport.cf в таком виде не нужен вообще.

Без SQL не хотелось бы. Не хочется каждый раз при добавлении домена конфиги править.
А что делать с transport_maps?
Я попробовал как написали - почта не приходит. Даже с локального на локальный. Пишет status: sent в логах, а к Цирусу в ящик не кладется. До него не доходит походу дела куда ее класть и она висит в очереди.


"Postfix auto reply"
Отправлено unk , 17-Май-05 14:49 
>Я попробовал как написали - почта не приходит. Даже с локального на
>локальный. Пишет status: sent в логах, а к Цирусу в ящик
>не кладется. До него не доходит походу дела куда ее класть
>и она висит в очереди.
Перепишите в master.cf транспорт virtual что-бы вместо virtual(8) запускался доставщик cyrus.

"Postfix auto reply"
Отправлено Евгений , 17-Май-05 14:50 
>Перепишите в master.cf транспорт virtual что-бы вместо virtual(8) запускался доставщик cyrus.

Это тоже самое что если бы в таблице транспорт вместо virtual: прописать cyrus:
Тоже не работает.



"Postfix auto reply"
Отправлено unk , 17-Май-05 14:51 
>>Перепишите в master.cf транспорт virtual что-бы вместо virtual(8) запускался доставщик cyrus.
>
>Это тоже самое что если бы в таблице транспорт вместо virtual: прописать
>cyrus:
>Тоже не работает.
Что в логе?


"Postfix auto reply"
Отправлено Евгений , 17-Май-05 14:55 
>>>Перепишите в master.cf транспорт virtual что-бы вместо virtual(8) запускался доставщик cyrus.
>>
>>Это тоже самое что если бы в таблице транспорт вместо virtual: прописать
>>cyrus:
>>Тоже не работает.
>Что в логе?


May 17 14:55:49 domain CYRUS/deliver[76436]: connect(/home/cyrus/imap/socket/lmtp) failed: Connection refused
May 17 14:55:49 domain /kernel: May 17 14:55:49 domain CYRUS/deliver[76436]: connect(/home/cyrus/imap/socket/lmtp) failed: Connection refused
May 17 14:55:49 domain postfix/pipe[76435]: 8437C197031: to=<evgeny@domain.ru>, relay=cyrus, delay=0, status=deferred (temporary failure. Command output: couldn't connect to lmtpd: Connection refused_ 421 4.3.0 deliver: couldn't connect to lmtpd_ )


"Postfix auto reply"
Отправлено unk , 17-Май-05 14:58 
права, на сокет есть?



"Postfix auto reply"
Отправлено jonatan , 17-Май-05 15:36 
ИМХО в данном случае для mydestination можно создать свой файл:

/etc/postfix/main.cf:
mydestination = mysql:/etc/postfix/mydestination.cf

/etc/postfix/mydestination.cf:
user = mail
password = *********
dbname = maildb
table = transport
select_field = domain
where_field = domain
hosts = localhost


"Postfix auto reply"
Отправлено Евгений , 17-Май-05 22:53 
>ИМХО в данном случае для mydestination можно создать свой файл:

действительно это помогло. Спасибо. Надо было с самого начала разграничить виртуальные домены и внешние программы.