Страница 1 из 1
Как сделать перенаправление письма?
Добавлено: 2009-02-18 16:14:57
bobot
задача в следуещем заключается(система dovecot+Exim)
Есть у меня почтовые сервер1 и сервер 2:
мне надо сделать чтоб почта приходила на сервер1(это без проблем и так ходит
).
вот у меня например есть на сервере1 юзера
bobot@mydomain, yura@mydomain, а на сервере2 есть юзер vova.
Т.е. мне надо чтоб при приёме письма сервер1 перенаправлял на сервер2 соответствующим юзерам.
Когда письмо приходит на сервер1 оно проверяет есть ли там юзер или нету! если нету, то должно осуществлятся перенаправление на сервер 2 этому юзеру(у меня если на первом юзера такого нету то на втором точно есть).
Вот как это перенаправление сделать ??? (мне кто-то сказал что надо сделать виртуальных юзеров, а как это фиг его знает)
я например заню как перенаправлять почту с одного на другой ящик. Просто надо алиасес подправить и написать например:
тут видно почта будет приходить на yura_slyusarenko и переадресована на ящик bobot@mydomain ! как говориться тут всё просто, а как сделать в первом случае?
Re: Как сделать перенаправление письма?
Добавлено: 2009-02-18 21:12:41
estade
конфиг exim'a в студию
задача решаемая на раз два три
Re: Как сделать перенаправление письма?
Добавлено: 2009-02-19 11:02:31
dikens3
роутер напиши:
http://www.lissyara.su/?id=1220#20.8
Код: Выделить всё
server2_users:
driver = "manualroute"
domains = domain2_server2.ru
local_parts = vova <- Это список твоих пользователей на сервере 2
transport = remote_smtp
route_list = * name_server2
Не пробовал, попробуй.
Re: Как сделать перенаправление письма?
Добавлено: 2009-02-19 11:45:27
bobot
estade писал(а):конфиг exim'a в студию
задача решаемая на раз два три
Вот конфиг
Код: Выделить всё
######################################################################
# Runtime configuration file for Exim #
######################################################################
#######################################################################
# MAIN CONFIGURATION SETTINGS #
######################################################################
primary_hostname = newmail.univ.kiev.ua
domainlist local_domains = ${lookup mysql{SELECT domain FROM domains WHERE domain='${domain}' AND (type='LOCAL' OR type='VIRT
domainlist relay_to_domains = ${lookup mysql{SELECT domain FROM domains WHERE domain='${domain}' AND type='RELAY'}}
hostlist relay_from_hosts = 127.0.0.1
auth_advertise_hosts = *
daemon_smtp_ports = 25 : 465
tls_on_connect_ports = 465
tls_advertise_hosts = *
tls_certificate = /etc/ssl/certs/dovecot.pem
tls_privatekey = /etc/ssl/private/dovecot.pem
log_selector = +all_parents +lost_incoming_connection +received_sender +received_recipients +smtp_confirmation +smtp_syntax_e
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
qualify_domain = newmail.univ.kiev.ua
allow_domain_literals = false
never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 3d
freeze_tell = postmaster
message_size_limit = 10M
smtp_accept_max = 100
smtp_accept_max_per_connection = 5
smtp_accept_max_per_host = 2
split_spool_directory = true
remote_max_parallel = 15
smtp_banner = "Welcome on our mail server!\n\
This system does not accept Unsolicited \
Commercial Email\nand will blacklist \
offenders via our spam processor.\nHave a \
nice day!\n\n${primary_hostname} ESMTP"
#hide mysql_servers = localhost/exim/trata/trata это рабочит мой
hide mysql_servers = localhost/webmail/trata/tratat
######################################################################
# ACL CONFIGURATION #
# Specifies access control lists for incoming SMTP mail #
######################################################################
begin acl
acl_check_rcpt:
accept hosts = :
deny domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
domains = +local_domains
# require verify = sender
# deny message = HELO/EHLO required by SMTP RFC
# condition = ${if eq{$sender_helo_name}{}{yes}{no}}
#
# deny message = Go Away! You are spammer.
# condition = ${if match{$sender_host_name} \
# {bezeqint\\.net|net\\.il|dialup|dsl|pool|peer|dhcp} \
# {yes}{no}}
#
# deny message = rejected because \
# $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
# log_message = found in $dnslist_domain
# dnslists = relays.ordb.org
# deny message = message from \
# $sender_host_address rejected - see http://njabl.org/
# log_message = found in $dnslist_domain
# dnslists = dnsbl.njabl.org
# deny message = rejected because \
# $sender_host_address for bad WHOIS info, see http://www.rfc-ignorant.org/
# log_message = found in $dnslist_domain
# dnslists = ipwhois.rfc-ignorant.org
# deny message = rejected because $sender_host_address \
# is in a black list at $dnslist_domain\n$dnslist_text
# log_message = found in $dnslist_domain
# dnslists = dialups.mail-abuse.org
# deny message = rejected because $sender_host_address \
# is in a black list at $dnslist_domain\n$dnslist_text
# log_message = found in $dnslist_domain
# dnslists = list.dsbl.org
# deny message = Spam blocked see: \
# http://www.spamcop.net/w3m?action=checkblock&ip=$sender_host_address
# log_message = found in $dnslist_domain
# dnslists = bl.spamcop.net
# deny message = rejected, $sender_host_address \
# Open Proxy, see: $dnslist_domain\n$dnslist_text
# log_message = found in $dnslist_domain
# dnslists = dnsbl.void.ru
accept domains = +local_domains
endpass
message = unknown user
verify = recipient
accept domains = +relay_to_domains
endpass
message = unrouteable address
verify = recipient
accept hosts = +relay_from_hosts
accept authenticated = *
deny message = relay not permitted
acl_check_mime:
warn decode = default
deny message = Blacklisted file extension detected ($mime_filename)
condition = ${if match \
{${lc:$mime_filename}} \
{\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com|\.vbs|\.cpl)$\N} \
{1}{0}}
deny message = Sorry, noone speaks chinese here
condition = ${if eq{$mime_charset}{gb2312}{1}{0}}
accept
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################
# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
# An address is passed to each router in turn until it is accepted. #
######################################################################
begin routers
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
#system_aliases:
# driver = redirect
# allow_fail
# allow_defer
# data = ${lookup mysql{SELECT recipients FROM aliases \
# WHERE local_part='${local_part}' AND domain='${domain}'}}
#userforward:
# driver = redirect
# allow_fail
# allow_defer
# data = ${lookup mysql{SELECT recipients FROM userforward \
# WHERE local_part='${local_part}' AND domain='${domain}'}}
virtual_localuser:
driver = accept
domains = ${lookup mysql{SELECT domain from domains WHERE domain='${domain}'}}
local_parts = ${lookup mysql{SELECT login from users WHERE login='${local_part}' AND domain='${domain}'}}
transport = local_delivery
#dovecot_user:
# driver = accept
# condition = ${lookup mysql{SELECT `goto` FROM `alias` WHERE `address`='${quote_mysql:$local_part@$domain}' OR `address`='$
# transport = dovecot_delivery
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################
begin transports
remote_smtp:
driver = smtp
#dovecot_delivery:
# driver = pipe
# command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
# message_prefix =
# message_suffix =
# delivery_date_add
# envelope_to_add
# return_path_add
# log_output
# user = mailnull
local_delivery:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
#directory = /var/mail/$domain/$local_part это рабочий мой
directory = /var/mail/$local_part
directory_mode = 770
envelope_to_add
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0660
quota = ${lookup mysql{SELECT quota FROM users WHERE login='${local_part}' AND domain='${domain}'}{${value}M}}
quota_size_regex = S=(\d+)$
quota_warn_threshold = 75%
return_path_add
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_reply:
driver = autoreply
######################################################################
# RETRY CONFIGURATION #
######################################################################
begin retry
* quota
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
######################################################################
# REWRITE CONFIGURATION #
######################################################################
begin rewrite
######################################################################
# AUTHENTICATION CONFIGURATION #
######################################################################
begin authenticators
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT login FROM users \
WHERE login = '${quote_mysql:${local_part:$2}}' \
AND domain = '${quote_mysql:${domain:$2}}' \
AND decrypt = '${quote_mysql:$3}' \
AND status = '1'}{yes}{no}}
server_prompts = :
server_set_id = $2
auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT login FROM users \
WHERE login = '${quote_mysql:${local_part:$1}}' \
AND domain = '${quote_mysql:${domain:$1}}' \
AND decrypt = '${quote_mysql:$2}' \
AND status = '1'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1
auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT decrypt FROM users \
WHERE login = '${quote_mysql:${local_part:$1}}' \
AND domain = '${quote_mysql:${domain:$1}}' \
AND status = '1'}{$value}fail}
server_set_id = $1
# End of Exim configuration file
Re: Как сделать перенаправление письма?
Добавлено: 2009-02-19 11:47:26
bobot
dikens3 писал(а):роутер напиши:
http://www.lissyara.su/?id=1220#20.8
Код: Выделить всё
server2_users:
driver = "manualroute"
domains = domain2_server2.ru
local_parts = vova <- Это список твоих пользователей на сервере 2
transport = remote_smtp
route_list = * name_server2
Не пробовал, попробуй.
Я не понял так что тут мне всех пользователей перечислять?
Код: Выделить всё
local_parts = vova <- Это список твоих пользователей на сервере 2
так их около 1000
Re: Как сделать перенаправление письма?
Добавлено: 2009-02-19 12:47:20
dikens3
Ну можешь не перечислять.. Создай запрос на сервер 2 и спроси, есть там такой пользователь или нет. Этот вариант самый правильный.
2-й вариант пересылать всё на 2-й сервер. Просто убери проверку пользователей. С рикошетами о несуществании пользователей - сам решай.
Вот тут твоя будущая проблема:
http://forum.lissyara.su/viewtopic.php?f=20&t=15344
Re: Как сделать перенаправление письма?
Добавлено: 2009-02-19 13:40:49
bobot
dikens3 писал(а):Ну можешь не перечислять.. Создай запрос на сервер 2 и спроси, есть там такой пользователь или нет. Этот вариант самый правильный.
2-й вариант пересылать всё на 2-й сервер. Просто убери проверку пользователей. С рикошетами о несуществании пользователей - сам решай.
Вот тут твоя будущая проблема:
http://forum.lissyara.su/viewtopic.php?f=20&t=15344
грубо говоря мне надо сделать вот так
Код: Выделить всё
domainlist local_domains = сервер1.example
.
.
.
smart_route:
driver = "manualroute"
domains = !+local_domains
transport = remote_smtp
route_list = * сервер2.example
Re: Как сделать перенаправление письма?
Добавлено: 2009-02-19 14:51:50
bobot
estade писал(а):конфиг exim'a в студию
задача решаемая на раз два три
ау ну так что?