Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota + DSP

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение xM » 2013-12-10 23:21:03

gyurza2000 писал(а):Ну и с задвоением разобрался...но вот SIEVE...ничего не понимаю:
С путями что-то, похоже.
У меня для

Код: Выделить всё

mail_location = maildir:/var/mail/%d/%n
прописано следующим образом

Код: Выделить всё

plugin {
  sieve = ~/dovecot.sieve
  sieve_before = /usr/local/etc/dovecot/default.sieve
  sieve_dir = ~/sieve
  sieve_global_path = /usr/local/etc/dovecot/default.sieve
}
sieve_before и sieve_global_path можете не прописывать - мне они нужны для сортировки СПАМ'а.
И Dovecot и Roundcube при таком варианте всё прекрасно видят и обрабатывают.
IT voodoo blog https://kostikov.co

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-10 23:47:41

Спаибо за ответ :) Я уже абсолютные пути прописал, работает

Сейчас уже другая проблема:
письма стали по 2 одинаковых в ящик падать. И когда нажимаешь кнопку "СПАМ", DSPAM их не метит [SPAM]
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-10 23:58:19

в логе EXIM при задвоении:

Код: Выделить всё

2013-12-11 00:51:31 1VqUH9-0001WX-LK ** reconveneds20@ponyexpress.net R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<reconveneds20@ponyexpress.net>: host mail.suddenlinkmail.com [208.180.40.132]: 550 Invalid recipient: <reconveneds20@ponyexpress.net>
2013-12-11 00:51:31 1VqUH9-0001WX-LK Frozen (delivery error message)
2013-12-11 00:51:31 1VqUH9-0001WT-HK ** reconveneds20@ponyexpress.net R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<reconveneds20@ponyexpress.net>: host mail.suddenlinkmail.com [208.180.40.132]: 550 Invalid recipient: <reconveneds20@ponyexpress.net>
2013-12-11 00:51:31 1VqUH9-0001WT-HK Frozen (delivery error message)
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 0:38:22

Во, ещё закономерность:
когда приходят дубли, одно письмо с меткой [SPAM] автоматической от DSPAM кладётся в СПАМ, а второе во входящих остаётся непомеченным
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2013-12-11 13:24:18

gyurza2000 писал(а):Во, ещё закономерность:
Вы бы для начала свои конфиги показали (dspam, dovecot - mail, master, imap,dovecot-sql, lda, plugin, sieve, qouta, auth-sql, exim что касается роутеров и транспорта довекота и дспама) без коментариев и межстрочных пробелов.

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 13:40:55

ОК, вечером сделаю. Но, вообще то всё по Вашей статье делал. Спасибо
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2013-12-11 13:46:54

Ну если бы у меня была схожая ситуация, я бы наверное ее описал, поэтому где то закралась ошибка и не факт, что в конфигах со статьи.
Права еще надо смотреть, как dspam собирался, от кого запускается, может еще что-то... В базе exim-а в таблице alias поле goto один адрес должен быть.

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 13:54:50

freeman_tnu писал(а):... В базе exim-а в таблице alias поле goto один адрес должен быть.
Опочки....у меня в этом поле на некоторых мылах чаще всего по 2-3 e-mail

но это нужная пересылка...как же быть?
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2013-12-11 13:56:00

Если емейлы одинаковые то будет задвоение, если разные, то все норм. Пересылка пусть остается, она не влияет на дубли.

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 14:29:06

не, ну тогда всё нормально, e-mailы разные...
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 14:55:29

письма из входящих не переносятся в СПАМ c меткой SPAM, а копируются!
В результате в папке ВХОДЯЩИЕ имеем письмо, а в папке СПАМ имеем копию этого письма, но в сабджект его дописано SPAM
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2013-12-11 15:27:56

ну покажите конфиг екзима хотя бы...

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 17:10:57

EXIM

Код: Выделить всё

allow_mx_to_ip = yes
primary_hostname = adios.spb.ru
hide mysql_servers = localhost/xxx/xxx/xxx
domainlist local_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}
domainlist relay_to_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}
hostlist   relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/16
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
qualify_domain = adios.spb.ru
qualify_recipient = adios.spb.ru
allow_domain_literals = false
exim_user = mailnull
exim_group = mail
never_users = root
rfc1413_query_timeout = 0s
sender_unqualified_hosts = +relay_from_hosts
recipient_unqualified_hosts = +relay_from_hosts
ignore_bounce_errors_after = 45m
timeout_frozen_after = 3d
helo_accept_junk_hosts = 192.168.0.0/16
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"
smtp_accept_max = 50
smtp_accept_max_per_connection = 100
smtp_connect_backlog = 30
smtp_accept_max_per_host = 20
split_spool_directory = true
remote_max_parallel = 15
return_size_limit = 70k
message_size_limit = 64M
helo_allow_chars = _
smtp_enforce_sync = true
log_selector = \
    +all_parents \
    +connection_reject \
    +incoming_interface \
    +lost_incoming_connection \
    +received_sender \
    +received_recipients \
    +smtp_confirmation \
    +smtp_syntax_error \
    +smtp_protocol_error \
    -queue_run
log_file_path = /80gb/logs/exim_%s.log
syslog_timestamp = no

begin acl
acl_check_rcpt:
accept  hosts = :
deny    message       = "incorrect symbol in address"
   domains       = +local_domains
   local_parts   = ^[.] : ^.*[@%!/|]
deny    message       = "incorrect symbol in address"
   domains       = !+local_domains
   local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept  local_parts   = postmaster
   domains       = +local_domains
deny    message       = "HELO/EHLO require by SMTP RFC"
   condition     = ${if eq{$sender_helo_name}{}{yes}{no}}
  accept  authenticated = *
deny    message       = "Не надо пихать свой IP в качестве HELO!"
   hosts         =  *:!+relay_from_hosts
   condition     = ${if eq{$sender_helo_name}\
         {$sender_host_address}{true}{false}}
deny    condition     = ${if eq{$sender_helo_name}\
         {$interface_address}{yes}{no}}
   hosts         = !127.0.0.1 : !localhost : *
   message       = "Это мой IP-адрес! Пшёл прочь!"
deny    condition     = ${if match{$sender_helo_name}\
{\N^\d+$\N}{yes}{no}}
   hosts         = !127.0.0.1:!localhost:*
   message       = "В HELO не могут быть тока цифры!"
deny    message       = "Не нравится мне Ваш хост..."
   condition     = ${if match{$sender_host_name}\
         {adsl|dialup|pool|peer|dhcp}{yes}{no}}

warn
set acl_m0 = 30s
warn
logwrite = Delay $acl_m0 for $sender_host_name \
[$sender_host_address] with HELO=$sender_helo_name. Mail \
from $sender_address to $local_part@$domain.
delay = $acl_m0
  accept  domains       = +local_domains
          endpass
          message       = "In my mailserver not stored this user"
          verify        = recipient
  accept  domains       = +relay_to_domains
          endpass
          message       = "main server not know how relay to this address"
          verify        = recipient
deny    message       = "host in blacklist - $dnslist_domain \n $dnslist_text"
   dnslists      = opm.blitzed.org : \
         proxies.blackholes.easynet.nl : \
         dnsbl.sorbs.net : \
         dul.nsbl.sorbs.net : \
         dul.ru : \
         sbl-xbl.spamhaus.org : \
         zen.spamhaus.org : \
         cbl.abuseat.org : \
         bl.spamcop.net : \
         dynablock.njabl.org
  accept  hosts         = +relay_from_hosts
  deny    message       = "Homo hominus lupus est"
acl_check_data:
  accept

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 `goto` FROM `alias` WHERE \
            `address`='${quote_mysql:$local_part@$domain}' OR \
                `address`='${quote_mysql:@$domain}'}}

## DSPAM ROUTERS
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
    user = mailnull
    group = mail

local_delivery_spam_router:
    driver                       = accept
    domains                      = +local_domains
    condition                    = ${if match{$h_X-DSPAM-Result:}{Spam}}
    transport                    = local_delivery_spam_transport
    no_more
    user = mailnull
    group = mail

dovecot_user:
  driver = accept
  condition = ${lookup mysql{SELECT `goto` FROM \
  `alias` WHERE \
  `address`='${quote_mysql:$local_part@$domain}' OR \
  `address`='${quote_mysql:@$domain}'}{yes}{no}}
  transport = dovecot_delivery

begin transports
DKIM_DOMAIN                     = ${lc:${domain:$h_from:}}
DKIM_FILE                       = /usr/local/etc/exim/${lc:${domain:$h_from:}}.key
DKIM_PRIVATE_KEY                = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}

remote_smtp:
  driver = smtp
  dkim_domain = DKIM_DOMAIN
  dkim_selector = dkim
  dkim_private_key = DKIM_PRIVATE_KEY

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

## DSPAM TRANSPORT
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  --user \
       $local_part@$domain --deliver=innocent %u
user = mailnull
group = mail
return_path_add = false
log_output = true
return_fail_output = true
headers_remove        = X-DSPAM-Result

local_delivery_spam_transport:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d \
       $local_part@$domain -m Junk
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = mailnull

address_pipe:
  driver = pipe
  return_output
address_reply:
  driver = autoreply
begin retry

*                    *       F,2h,15m; G,16h,1h,1.5; F,4d,6h

begin rewrite

begin authenticators
dovecot_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

dovecot_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 17:21:02

DSPAM

Код: Выделить всё

Home /var/db/dspam
StorageDriver /usr/local/lib/dspam/libmysql_drv.so
TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned"
OnFail error
Trust root
Trust dspam
Trust apache
Trust mail
Trust mailnull 
TrainingMode teft
TestConditionalTraining on
Feature chained noise
Algorithm graham burton
Tokenizer chain
PValue graham
WebStats on
Preference "trainingMode=TEFT"		# { TOE | TUM | TEFT | NOTRAIN } -> default:teft
Preference "spamAction=tag"	# { quarantine | tag | deliver } -> default:quarantine
Preference "spamSubject=[SPAM]"		# { string } -> default:[SPAM]
Preference "statisticalSedation=5"	# { 0 - 10 } -> default:0
Preference "enableBNR=on"		# { on | off } -> default:off
Preference "enableWhitelist=on"		# { on | off } -> default:on
Preference "signatureLocation=headers"	# { message | headers } -> default:message
Preference "tagSpam=off"		# { on | off }
Preference "tagNonspam=off"		# { on | off }
Preference "showFactors=on"		# { on | off } -> default:off
Preference "optIn=off"			# { on | off }
Preference "optOut=off"			# { on | off }
Preference "whitelistThreshold=10"	# { Integer } -> default:10
Preference "makeCorpus=off"		# { on | off } -> default:off
Preference "storeFragments=off"		# { on | off } -> default:off
Preference "localStore="		# { on | off } -> default:username
Preference "processorBias=on"		# { on | off } -> default:on
Preference "fallbackDomain=off"		# { on | off } -> default:off
Preference "trainPristine=off"		# { on | off } -> default:off
Preference "optOutClamAV=off"		# { on | off } -> default:off
Preference "ignoreRBLLookups=off"	# { on | off } -> default:off
Preference "RBLInoculate=off"		# { on | off } -> default:off
AllowOverride enableBNR
AllowOverride enableWhitelist
AllowOverride fallbackDomain
AllowOverride ignoreGroups
AllowOverride ignoreRBLLookups
AllowOverride localStore
AllowOverride makeCorpus
AllowOverride optIn
AllowOverride optOut
AllowOverride optOutClamAV
AllowOverride processorBias
AllowOverride RBLInoculate
AllowOverride showFactors
AllowOverride signatureLocation
AllowOverride spamAction
AllowOverride spamSubject
AllowOverride statisticalSedation
AllowOverride storeFragments
AllowOverride tagNonspam
AllowOverride tagSpam
AllowOverride trainPristine
AllowOverride trainingMode
AllowOverride whitelistThreshold
AllowOverride dailyQuarantineSummary
MySQLServer		localhost
MySQLPort		3306
MySQLUser		dspam
MySQLPass		dspam
MySQLDb		dspam
MySQLCompress		true
MySQLReconnect		true
MySQLConnectionCache	1000
HashRecMax		98317
HashAutoExtend		on  
HashMaxExtents		0
HashExtentSize		49157
HashPctIncrease		10
HashMaxSeek		100
HashConnectionCache	100
IgnoreHeader X-Spam-Status
IgnoreHeader X-Spam-Scanned
IgnoreHeader X-Virus-Scanner-Result
IgnoreHeader X-Spam-Score
IgnoreHeader Date
IgnoreHeader Envelope-to
IgnoreHeader Delivery-date
IgnoreHeader Received
IgnoreHeader User-Agent
IgnoreHeader Content-Type
IgnoreHeader Content-Transfer-Encoding
IgnoreHeader To
Notifications	off
PurgeSignatures 14	# Stale signatures
PurgeNeutral	90	# Tokens with neutralish probabilities
PurgeUnused	90	# Unused tokens
PurgeHapaxes	30	# Tokens with less than 5 hits (hapaxes)
PurgeHits1S	15	# Tokens with only 1 spam hit
PurgeHits1I	15	# Tokens with only 1 innocent hit
LocalMX 127.0.0.1
SystemLog	on
UserLog		on
Opt out
MaxMessageSize 614400
ProcessorURLContext on
ProcessorBias on
StripRcptDomain off
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2013-12-11 18:04:03

Здесь dspam_spamcheck_transport:

Надо

Код: Выделить всё

 command = /usr/local/bin/dspam --deliver=innocent \
                --user "$local_part@$domain" -- %u

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 18:23:07

Да, есть такое, я просто по аналогии с остальными command привёл этот параметр к единообразию.
Не подскажешь ещё как средствами SIEVE организовать пересылку копий писем на другой, ВНЕШНИЙ e-mail?

Что то не работает redirect
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2013-12-11 18:33:36

не подскажу...

Но у меня вот так
#cat /var/mail/exim/domain.com.ua/mymail@domain.com.ua/sieve/managesieve.sieve

Код: Выделить всё

if true
{
        redirect :copy "remotemail@my.somemail.com";
}
работает без проблем.

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 18:59:25

Делаю так же, а в результате:

Код: Выделить всё

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  gyurza2000@mail.ru
    Message was not accepted -- invalid mailbox.  Local mailbox gyurza2000@mail.ru is unavailable:
    user not found
а если в альясы эксима прописать то всё нормально пересылается.
Я кажется нашёл причину задвоения:
письма близнецы отличались тем что одно приходило в мой ящик, а другое, было переадресованным. Которое приходило в мой ящик напрямую метилось DSPAMом, которое переадрессованное - не метилось и оставалось в папке Входящие. Поэтому я решил организовать переадресацию средствами SIEVE, что бы мне не всё пересылалось, а по определённым правилам, но...не тут то было, почему то
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-11 19:25:31

А где исправляется эта ошибка?

Код: Выделить всё

Dec 11 19:44:50 lda(drip-irrigator@adios.spb.ru): Error: rename(/80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes.lock, /80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes) failed: No such file or directory
Dec 11 19:44:50 lda(drip-irrigator@adios.spb.ru): Warning: Our dotlock file /80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes.lock was deleted (kept it 55 secs)
Dec 11 19:44:50 lda(drip-irrigator@adios.spb.ru): Error: file_dotlock_replace(/80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes) failed: No such file or directory
Dec 11 20:08:17 lda(drip-irrigator@adios.spb.ru): Error: rename(/80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes.lock, /80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes) failed: No such file or directory
Dec 11 20:08:17 lda(drip-irrigator@adios.spb.ru): Warning: Our dotlock file /80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes.lock was deleted (kept it 52 secs)
Dec 11 20:08:17 lda(drip-irrigator@adios.spb.ru): Error: file_dotlock_replace(/80gb/mail/adios.spb.ru/drip-irrigator//.dovecot.lda-dupes) failed: No such file or directory
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-14 0:59:39

Объясните пожалуйста, в круглокубе при нажатии кнопочки SPAM (плагин markasjunk2) и соответственно перемещении письма в папку SPAM происходит обучение DSPAM? у меня надпись [SPAM] в тему письма НЕ добавляется и X-DSPAM-Result: Innocent, и если нажимать кнопку НЕспам, тоже ничего не меняется с письмами. Зато когда DSPAM самостоятельно ловит письма (а сейчас он туда пихает практически всю почту), то и [SPAM] в тему письма добавляется и X-DSPAM-Result: Spam
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

gyurza2000
лейтенант
Сообщения: 895
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение gyurza2000 » 2013-12-14 23:18:43

Хм...делаю /usr/local/etc/rc.d/dspam start, а в логах пишется:

Код: Выделить всё

Dec 15 00:14:37 adios dspam[72354]: Could not bind to :24: Permission denied
Dec 15 00:14:37 adios dspam[72354]: Could not bind to :24: Permission denied
Dec 15 00:14:37 adios dspam[72354]: Daemon mode failed to start
Dec 15 00:14:37 adios dspam[72354]: Daemon mode failed to start
Xeon X5460, RAM 8Gb, FreeBSD 13.1-RELEASE on amd64, Apache 2.4, PHP 7.3.30, MySQL 5.7, Exim 4.95_5, Dovecot 2.3.19.1

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2013-12-16 18:23:18

gyurza2000 писал(а):Объясните пожалуйста, в круглокубе при нажатии кнопочки SPAM (плагин markasjunk2)
Я не использую этот плагин, даже не знаю что он делает.
Юзаю плагин для довекота описанный в статье - работает на любом почтовом клиенте.
Зачем запускать демон Dspam-а? Он вызывается с параметрами при каждом входящем письме посредством exim-a.

Аватара пользователя
Casper
рядовой
Сообщения: 21
Зарегистрирован: 2010-04-01 18:19:33

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение Casper » 2014-05-29 10:10:32

Добрый день.

По статье все работает прекрасно, спасибо автору. Вопрос по транспортам... В какой момент вызываются транспорты dspam_addspam_transport и dspam_notspam_transport? Вроде нигде ссылок на них нет.
Еще было бы очень интересно посмотреть как будут выглядеть роуты и транспорты в случае если использовать dspam как демон. Пишут, нагрузка меньше будет.

Заранее спасибо.

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Exim и Dovecot2 c аутентификацией CRAM-MD5 + SQL quota +

Непрочитанное сообщение freeman_tnu » 2014-05-29 11:02:30

В секции роутеров после system_aliases перед локальной доставкой довекота:

Код: Выделить всё

# DSPAM ROUTERS
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

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
  user = mailnull
  group = mail
# my whitelist for dspam
  senders = ! /usr/local/etc/exim/nospamers

local_delivery_spam_router:
  driver                       = accept
  domains                      = +local_domains
  condition                    = ${if match{$h_X-DSPAM-Result:}{Spam}}
  transport                    = local_delivery_spam_transport
  no_more
  user = mailnull
  group = mail
Dspam как демон не использую, т.к. нагрузка на почтовик небольшая (80 ящиков).