Намутил я что-то с конфигами и сам блин не могу понять в чём проблема...в общем пробовал прикрутить DSPAM к exim'y, ексим настраивал про статью Лиса про вайтлистинг, ексим и довкот.
Mar 19 10:10:19 fire deliver(
qaz@fire.lutsk.ua): setgid(26) failed: Operation not permitted
Mar 19 10:10:19 fire exim[64115]: 1HSKM3-0008nX-4v ==
qaz@fire.lutsk.ua R=local_delivery_spam_router T=local_delivery_spam_transport defer (0): Child process of local_delivery_spam_transport transport returned 75 (could mean temporary error) from command: /usr/local/libexec/dovecot/deliver
привожу свои конфиги транспортов и роутеров
# Конфигурация транспортов
# Доставка на удалённые хосты - по SMTP
remote_smtp:
driver = smtp
headers_add = "X-Descriptions: powered by Qaz"
hosts_avoid_esmtp = ${lookup mysql{INSERT IGNORE INTO `sended_list` \
(`user_from`, `user_to`, `added_timestamp`, \
`last_mail_timestamp`, `mail_count`) VALUES \
(LCASE('${quote_mysql:$sender_address}'), \
LCASE('${quote_mysql:$local_part@$domain}'), \
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), '1') ON DUPLICATE \
KEY UPDATE `last_mail_timestamp` = UNIX_TIMESTAMP(), \
`mail_count` = `mail_count` + 1}}
# Доставка локальным адресатам - в dovecot
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
dovecot_spam_delivery:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain -m SPAM
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = mailnull
#local_delivery:
# driver = appendfile
# file = /var/mail/$local_part
# delivery_date_add
# envelope_to_add
# return_path_add
# group = mail
# user = $local_part
# mode = 0660
# no_mode_fail_narrower
# Имя программы
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
# Транспорт для автоответов
address_reply:
driver = autoreply
# В никуда
null_transport:
driver = appendfile
file = /dev/null
dspam_addspam_transport:
driver = pipe
command = "/usr/local/bin/dspam --user \
$local_part@$domain --class=spam --source=error"
return_path_add = false
return_fail_output = true
log_output = true
home_directory = "/var/db/dspam"
current_directory = "/var/db/dspam"
user = mailnull
group = mail
dspam_notspam_transport:
driver = pipe
command = "/usr/local/bin/dspam --user \
$local_part@$domain --class=innocent \
--source=error --deliver=innocent %u"
return_path_add = false
return_fail_output = true
log_output = true
home_directory = "/var/db/dspam"
current_directory = "/var/db/dspam"
user = mailnull
group = mail
dspam_spamcheck_transport:
driver = pipe
command = /usr/local/bin/dspam --deliver=innocent \
--user "$local_part@$domain" -- %u
user = mailnull
group = mail
return_path_add = false
log_output = true
return_fail_output = true
headers_remove = X-DSPAM-Result
# Тут создается специальная папка, доступная пользователю по IMAP,
# куда складывается помеченный спам для
# последующего осмотра и разбора.
local_delivery_spam_transport:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d \
$local_part@$domain -m INBOX.Spam
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
/usr/home/qaz/>cat /usr/local/etc/exim/includes/600.routers.conf
dspam_addspam_router:
driver = accept
domains = +local_domains
local_part_prefix = spam-
transport = dspam_addspam_transport
dspam_notspam_router:
driver = accept
domains = +local_domains
local_part_prefix = notspam-
transport = dspam_notspam_transport
# Конфигурация роутеров
# Поиск маршрута к хосту в DNS. Если маршрут не найден в DNS -
# то это `унроутабле аддресс`. Не проверяются локальные
# домены, 0.0.0.0 и 127.0.0.0/8
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
# вводим спамерский роутиг (закомменчено - dovecot всё ещё не умеет по pop3 отдавать из разных диреткорий.
# если юзаете тока imap - то самое оно. очень удобно...)
#spam_transport:
# driver = accept
# condition = ${if match{$h_X-Spam:}{YES}}
# transport = dovecot_spam_delivery
# смотрим альясы
mysql_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT LCASE(`goto`) FROM `alias` WHERE \
`address`=LCASE('${quote_mysql:$local_part@$domain}') OR \
`address`=LCASE('${quote_mysql:@$domain}') AND `active`='1' \
ORDER BY SUBSTRING_INDEX(`address`,'@',1) DESC LIMIT 1}}
dspam_spamscan_router:
driver = accept
domains = +local_domains
no_verify
condition = "${if and {{!eq {$received_protocol}{spam-scanned}} \
{!eq {$received_protocol}{local}} } {1}{0}}"
transport = dspam_spamcheck_transport
require_files = /usr/local/bin/dspam
address_test = false
local_delivery_spam_router:
driver = accept
domains = +local_domains
condition = ${if match{$h_X-DSPAM-Result:}{Spam}}
transport = local_delivery_spam_transport
no_more
# Всё что осталось - это локальные адресаты.
# Доставляем почту в dovecot
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT LCASE(`goto`) FROM \
`alias` WHERE \
`address`=LCASE('${quote_mysql:$local_part@$domain}') OR \
`address`=LCASE('${quote_mysql:@$domain}') AND `active`='1' \
ORDER BY SUBSTRING_INDEX(`address`,'@',1) DESC LIMIT 1}{yes}{no}}
transport = dovecot_delivery
cannot_route_message = Unknown user
чувствую я где-то протупил конкретно...в общем тыкните носом мну