Страница 1 из 1

Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-03-23 18:29:07
deisler
Здравствуйте.
Настроил exim + mysql + dspam + dovecot, во входящих письмах поля Return-path и Envelope-from не совпадают с полем From, а всегда равны root@мой домен. Подскажите куда копать?
Спасибо.

Re: Поля Return-path и Envelope-from

Добавлено: 2009-03-23 18:50:43
Laa
Покажите свои роутер и транспорт, через которые приходят письма.

Re: Поля Return-path и Envelope-from

Добавлено: 2009-03-23 19:15:52
deisler
Роутеры

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

begin 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
dnslookup:
    driver = dnslookup
    domains = ! +local_domains
    transport = remote_smtp
    ignore_target_hosts = 0.0.0.0 : localhost
    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_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_lmtp_spamcheck_transport
   require_files = /usr/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_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
remote_smtp:
    driver = smtp
dovecot_delivery:
    driver = pipe
    command = /usr/libexec/dovecot/deliver -d $local_part@$domain
    message_prefix =
    message_suffix =
    delivery_date_add
    envelope_to_add = true
    return_path_add = true
    log_output
address_pipe:
    driver = pipe
    return_output
address_reply:
    driver = autoreply
dspam_addspam_transport:
    driver = pipe
    command = /usr/bin/dspam --debug --user \
              $local_part@$domain --class=spam --source=error
    return_path_add = false
    return_fail_output = true
    log_output = true
    home_directory = "/var/spool/dspam"
    current_directory = "/var/spool/dspam"
    user = dspam
    group = dspam                                           
dspam_notspam_transport:
    driver = pipe
    command = /usr/bin/dspam --debug --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/spool/dspam"
   current_directory = "/var/spool/dspam"
   user = dspam
   group = dspam
dspam_lmtp_spamcheck_transport:
   driver = lmtp
   socket = /var/run/dspam/dspam.sock
   batch_max = 20
   user = dspam
   group = dspam
   return_path_add = false
local_delivery_spam_transport:
   driver = pipe
   command = /usr/libexec/dovecot/deliver -d \
                $local_part@$domain -s -m Spam
   message_prefix =
   message_suffix =
   delivery_date_add
   envelope_to_add = true
   return_path_add = true                                              

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-03-24 11:10:09
Laa
А попробуйте сделать еще один роутер, перед довкотовым, который для теста доставит письмо в какой-то тестовый maildir, посмотрите какие в этом письме будут subj.

Я просто подозреваю dovecot_delivery, сам ним не пользовался, поэтому опыта по нему нет. :pardon:

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-03-25 12:12:14
deisler
Laa писал(а):А попробуйте сделать еще один роутер, перед довкотовым, который для теста доставит письмо в какой-то тестовый maildir, посмотрите какие в этом письме будут subj.

Я просто подозреваю dovecot_delivery, сам ним не пользовался, поэтому опыта по нему нет. :pardon:
Да, действительно, при доставке почты в файл, такой проблемы нет.
Явно это махинации довекота.
Кто в довекоте разбирается, подскажите, пожалуйста.

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-01 11:21:47
deisler
Ошибся, на самом деле заменяет поля return-path и envelope-from именно dspam на этапе проверки спама.
Dspam работает как демон через lmtp.

Роутер:

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

dspam_lmtp_spamcheck_transport:
   driver = lmtp
   socket = /var/run/dspam/dspam.sock
   batch_max = 20
   user = dspam
   group = dspam                      
Заголовки:

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

Return-path: <root@mydomain.ru>
Envelope-to: user@mydomain.ru
Delivery-date: Wed, 01 Apr 2009 11:44:16 +0400
Received: from root by mx.mydomain.ru with spam-scanned (Exim 4.69)
        (envelope-from <root@mydomain.ru>)
        id 1Lov7Q-0007ir-AW
        for user@mydomain.ru; Wed, 01 Apr 2009 11:44:16 +0400
Received: from f230.mail.ru ([194.186.55.141]:50678)
        by mx.mydomain.ru with esmtp (Exim 4.69)
        (envelope-from <user@mail.ru>)
        id 1Lov7Q-0007if-98
        for user@mydomain.ru; Wed, 01 Apr 2009 11:44:16 +0400
Received: from mail by f230.mail.ru with local
        id 1Lov6w-0002Ty-00
        for user@mydomain.ru; Wed, 01 Apr 2009 11:43:46 +0400
Received: from [82.138.57.196] by win.mail.ru with HTTP;
        Wed, 01 Apr 2009 11:43:46 +0400
From: User <user@mail.ru>
To: user@mydomain.ru                                             
Как сей факт пофиксить? При Return-path root@mydomain.ru мессаги о недоставленных сообщениях не будут доходить до отправителя.

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-10 12:34:08
zed
Мне тоже этот вопрос очень интересен. Моск уже разрушил.
Ап.

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-12 22:03:27
x-fly
Тоже очень нужный вопрос... :Search:
UP

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-12 23:01:20
Alex Keda
добавить в доверенные пользователи?

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-13 0:24:57
x-fly
Мне нужно заменять заголовок Return-path на свой заголовок. Но какие-то настройки сервера перекрывают его.
Пока выяснилось вот что: выставляем значение Return-path на какое-нибудь мыло - mail_name@mydomain.com,
а вместо него попадает значение user@hostname.com - где user - это пользователь сервера и владелец домена hostname.com, а hostname.com - это основное имя сервера.
Какие могут быть варианты? Из-за чего перекрывается значение?

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-13 8:17:39
Alex Keda
lissyara писал(а):добавить в доверенные пользователи?

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-13 12:34:04
deisler
lissyara писал(а):добавить в доверенные пользователи?
В моей конфигурации exim и dovecot работают от mail:mail
dspam от dspam:dpam.
В конфиге dspam в доверенные пользователи добавлены:
Trust root
Trust dspam
Trust mail
Тем не менее, проблема с заголовками return_path и envelope-from имеется.
Я что-то упустил?

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-13 21:25:08
Alex Keda
тогда эмулируйте отправку и смотрите лог.
фиг знает что у вас не так =)

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-14 10:19:46
Вуглускр
Нужно чтобы dspam запускался от доверенного юзера для exim-а. Иначе exim не дает менять envelope-from и return-path.
У себя еще продублировал параметром "-f $local_part@$domain" в транспорте при вызове дспама. Так, на всякий случай :-)

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-14 16:35:27
deisler
Заметил интересную деталь.
Работа dspam у меня настроена через lmtp.
Когда в транспорте настроил работу через вызов бинарника:

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

dspam_spamcheck_transport:
   driver = pipe
   command = /usr/bin/dspam --deliver=innocent \
                --user "$local_part@$domain" -- %u
   user = dspam
   group = dspam
   return_path_add = false
   log_output = true
   return_fail_output = true
   headers_remove        = X-DSPAM-Result
Значения полей изменились на dspam@mydomain.ru
После изменений полей user и group в mail:mail, под которыми у меня работает exim, поля стали принимать нормальные значения, равными полю from.
При использовании транспорта, настроенным на работу через lmtp, даже с установленными user/group на mail:mail, значения полей Return-path и Envelope-from равны root@mydomain.com.
Хотелось бы пофиксить данную тему при работе с lmtp, т.к. хотелось бы, чтобы dspam работал в качестве демона.

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-14 20:17:20
Alex Keda
в качестве демона оно от кого пашет?

Re: Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2009-04-15 13:21:36
deisler
В качестве демона работает под юзером dspam.

Поля Return-path и Envelope-from не совпадают с полем From

Добавлено: 2015-02-27 17:53:32
tester112
Поздноватый ответ, но все же эта проблема решается правкой стартового скрипта, костыль конечно, но ничего друго не помогало, у меня dspam запущен сокетом в системе, правка make.conf чтобы владелец был не root не помогает, хотя владелец сокета меняется, однако письмо все равно от root приходит, пришлось сделать следующее:
1. Поставить sudo.
2. Исправить стартовый скрипт:

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

-command=/usr/local/bin/${name}
+command=/usr/local/bin/sudo
-command_args="--daemon --debug > /dev/null 2>&1 &"
+command_args="-u mailnull /usr/local/bin/${name} --daemon --debug > /dev/null 2>&1 &"
-command_args="--daemon > /dev/null 2>&1 &"
+command_args="-u mailnull /usr/local/bin/${name} --daemon > /dev/null 2>&1 &"
и добавить
procname="/usr/local/bin/dspam"
чтобы скрипт мог отслежаивать свое сотояние (чтобы работали restart, stop, status)потому что запущенная программа изменилась