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

Исходное сообщение
"Как копировать только исходящую почту"

Отправлено rf , 26-Июн-08 09:57 
Для копирования почты использую Sendmail и вот такой скрипт находящийся в файле copymail.m4 . Объясните, пожалуйста, что тут нужно поправить, чтобы копировалась только исходящая почта? Не могу разобраться в том как написаны правила. Заранее всем спасибо.

PUSHDIVERT(-1)

ifdef(`COPYMAIL_MAILBOX',,`define(`COPYMAIL_MAILBOX',`test@test.ru')')dnl
POPDIVERT

#########################################
###   COPYMAIL Mailer specification   ###
#########################################

VERSIONID(`$Id: cpsendmail.html,v 1.2 2002/06/14 18:39:10 freeman Exp $')dnl

LOCAL_CONFIG
D{COPYMAIL}COPYMAIL
C{CP}${COPYMAIL}

LOCAL_RULE_0
# Send all mail to copymail mailer
R$* < @ $+ . $~{CP} . >    $#copymail $@ $2 . $3 . ${COPYMAIL} $: $1 @ $2 . $3 . ${COPYMAIL}
# if mail has been processed by copymail mailer, process it usual way...
R$* < @ $* . ${COPYMAIL} >    $1 < @ $2 . >

# Send message to original recipient + additional mailbox: COPYMAIL_MAILBOX
Mcopymail, P=/usr/sbin/sendmail, F=fmSDFMu, S=0, R=0, A=sendmail -N never COPYMAIL_MAILBOX.${COPYMAIL} $u


Содержание

Сообщения в этом обсуждении
"Как копировать только исходящую почту"
Отправлено cYbErLoRd , 26-Июн-08 10:17 
Не парься с этим, а используй синоним.
http://dv8.ro/Synonym/synonym.html


"Как копировать только исходящую почту"
Отправлено cYbErLoRd , 26-Июн-08 10:20 
А вообще, вот измененная версия м4 файла с комментами.

PUSHDIVERT(-1)

ifdef(`COPYMAIL_MAILBOX',,
        `define(`COPYMAIL_MAILBOX', `postmaster')')dnl

ifdef(`COPY_USERS',,
        `define(`COPY_USERS', `-o /etc/mail/copy-users')')dnl

ifdef(`NOCOPY_CONFIG',,
        `errprint(`*** You must define NOCOPY_CONFIG for copymail mailer!!! ***')')dnl

POPDIVERT
#########################################
###   COPYMAIL Mailer specification   ###
#########################################

VERSIONID(`$Id: cpsendmail.html,v 1.2 2002/06/14 18:39:10 freeman Exp $')dnl

LOCAL_CONFIG
F{COPY}COPY_USERS

LOCAL_RULE_0
# Send mail $={COPY} to copymail mailer

#To: E-mail check
R$+ < @ $+ . > $*                       $: $1 < @ $2 . > $3 $| $1 @ $2
R$+ < @ $+ . > $* $| $={COPY}           $#copymail $@ localhost $: $1 < @ $2 . > $3

#To: Domain check
R$+ < @ $+ . > $* $| $+ @ $={COPY}      $#copymail $@ localhost $: $1 < @ $2 . > $3

#From: All originating from some ip are copying
R$* < @ $+ . > $* $| $*                 $: $1 <@ $2 . > $3 $| $&{client_addr}
R$* < @ $+ . > $* $| $={COPY}           $#copymail $@ localhost $: $1 < @ $2 . > $3

#From: E-mail check
R$* < @ $+ . > $* $| $*                 $: $1 <@ $2 . > $3 $| $&f
R$* < @ $+ . > $* $| <$*>               $: $1 <@ $2 . > $3 $| $4
R$* < @ $+ . > $* $| $={COPY}           $#copymail $@ localhost $: $1 < @ $2 . > $3

#From: Domain check
R$* < @ $+ . > $* $| $+ @ $={COPY}      $#copymail $@ localhost $: $1 < @ $2 . > $3

#The rest are welcome without copying
R$* < @ $+ . > $* $| $*                 $: $1 <@ $2 . > $3

# Send message to original recipient + additional mailbox: COPYMAIL_MAILBOX
Mcopymail, P=/usr/sbin/sendmail, F=fmSDFMu, S=0, R=0,
        A=sendmail -N never -C NOCOPY_CONFIG COPYMAIL_MAILBOX $u


"Как копировать только исходящую почту"
Отправлено rf , 26-Июн-08 10:29 
>[оверквотинг удален]
>R$* < @ $+ . > $* $| $*                 $: $1 <@ $2 . > $3
>
>
>
>
>
># Send message to original recipient + additional mailbox: COPYMAIL_MAILBOX
>Mcopymail, P=/usr/sbin/sendmail, F=fmSDFMu, S=0, R=0,
>        A=sendmail -N never -C
>NOCOPY_CONFIG COPYMAIL_MAILBOX $u

Расскажите как вы пишете правида. Я хочу понять, что там написано. Подскажите где почитать.


"Как копировать только исходящую почту"
Отправлено cYbErLoRd , 26-Июн-08 10:44 
Этот конфиг переписал не я, а Medlar вот в этой теме http://www.opennet.me/openforum/vsluhforumID1/79758.html

Сам я уже давно перешел с сендмыла на эксим чего и вам советую.


"Как копировать только исходящую почту"
Отправлено Medlar , 26-Июн-08 10:58 
а вы где взяли эти правила?

на первый взгляд здесь использован вариант копирования почты если домен не указан в
строке C{CP}
причем как домен входящий так и исходящий

вам ведь только исходящую нужно копировать причем всю?

тот пример что вам привели - отсюда http://www.opennet.me/openforum/vsluhforumID1/79758.html

там и описаны условия задачи и они совсем не ваши


про почитать про синатаксис - здесь - http://www.anrb.ru/linux/intro.html


"Как копировать только исходящую почту"
Отправлено rf , 26-Июн-08 11:04 
>[оверквотинг удален]
>причем как домен входящий так и исходящий
>
>вам ведь только исходящую нужно копировать причем всю?
>
>тот пример что вам привели - отсюда http://www.opennet.me/openforum/vsluhforumID1/79758.html
>
>там и описаны условия задачи и они совсем не ваши
>
>
>про почитать про синатаксис - здесь - http://www.anrb.ru/linux/intro.html

Вы совершенно правы, при использование приведённого мною примера копируется вся почта (вх/исх). Вот хочу понять, как подправить содержимое файла, чтобы копировалась только исходящая от нашего домена почта.


"Как копировать только исходящую почту"
Отправлено Medlar , 26-Июн-08 12:12 
сегодня совсе нет времени вникать в эту задачу но на "быструю руку" и без гарантии

1 вариант
в том примере что вам уже предложили УБЕРИТЕ секции
#To: E-mail check
R$+ < @ $+ . > $*                           $: $1 < @ $2 . > $3 $| $1 @ $2
R$+ < @ $+ . > $* $| $={COPY}                  $#copymail $@ localhost $: $1 < @ $2 . > $3

#To: Domain check
R$+ < @ $+ . > $* $| $+ @ $={COPY}                  $#copymail $@ localhost $: $1 < @ $2 . > $3

#From: E-mail check
R$* < @ $+ . > $* $| $*                   $: $1 <@ $2 . > $3 $| $&f
R$* < @ $+ . > $* $| <$*>                  $: $1 <@ $2 . > $3 $| $4
R$* < @ $+ . > $* $| $={COPY}                  $#copymail $@ localhost $: $1 < @ $2 . > $3

#From: Domain check
R$* < @ $+ . > $* $| $+ @ $={COPY}                            $#copymail $@ localhost $: $1 < @ $2 . > $3

Тогда будет вам проверка исходящей почты с ip из вашей сети

2 ВАРИАНТ
В вашем же примере добавим ip источника на проверку
получится что-то такое

R$* < @ $+ . >     $: $1 <@ $2 . > <$&{client_addr}>
R$* < @ $+ . > <$=R>    $#copymail $@ $2 . $3 . ${COPYMAIL} $: $1 @ $2 . $3 . ${COPYMAIL}

ну это при условии что ip к-м разрешено релеить находчтся в relay-domains



"Как копировать только исходящую почту"
Отправлено rf , 26-Июн-08 13:09 
>[оверквотинг удален]
>
>2 ВАРИАНТ
>В вашем же примере добавим ip источника на проверку
>получится что-то такое
>
>R$* < @ $+ . >     $: $1 <@ $2 . > <$&{client_addr}>
>R$* < @ $+ . > <$=R>    $#copymail $@ $2 . $3 . ${COPYMAIL} $: $1 @ $2 . $3 . ${COPYMAIL}
>
>ну это при условии что ip к-м разрешено релеить находчтся в relay-domains
>

Medlar, по первому варианту из какого файла убирать строчки? Мне не совсем понятно. И если вы сейчас заняты, то когда к вам лучше обратиться?


"Как копировать только исходящую почту"
Отправлено Medlar , 26-Июн-08 14:14 
СООБЩИТЕ СВОЙ МЭЙЛ НА АДРЕС
постмастер анрб точка ру

я вам отвечу позже


"Как копировать только исходящую почту"
Отправлено rf , 26-Июн-08 14:41 
>СООБЩИТЕ СВОЙ МЭЙЛ НА АДРЕС
>постмастер анрб точка ру
>
>я вам отвечу позже

:( напишите на латинском свой e-mail, плиз.


"Как копировать только исходящую почту"
Отправлено rf , 27-Июн-08 07:36 
>СООБЩИТЕ СВОЙ МЭЙЛ НА АДРЕС
>постмастер анрб точка ру
>
>я вам отвечу позже

Так как правильно пишется ваш e-mail?


"Как копировать только исходящую почту"
Отправлено omger , 27-Июн-08 08:35 
Вам же во втором посте дали ссылку на мильтер, с помощью котрого, можно настроить очень гибкие правила копирования буквально за 5 минут. Мышки плакали, кололись но продолжали жрать кактус (с)

"Как копировать только исходящую почту"
Отправлено rf , 27-Июн-08 10:37 
>Вам же во втором посте дали ссылку на мильтер, с помощью котрого,
>можно настроить очень гибкие правила копирования буквально за 5 минут. Мышки
>плакали, кололись но продолжали жрать кактус (с)

Хочу просто разобраться с написанием правил.


"Как копировать только исходящую почту"
Отправлено Z0termaNN , 30-Июн-08 17:49 
>>Вам же во втором посте дали ссылку на мильтер, с помощью котрого,
>>можно настроить очень гибкие правила копирования буквально за 5 минут. Мышки
>>плакали, кололись но продолжали жрать кактус (с)
>
>Хочу просто разобраться с написанием правил.

ну если только с правилами,
только этот способ намного более дорогой, чем addrcpt в milter,
т.к. каждое сообщение обрабатывается 2 раза, а кроме того на каждое
копирование производится запуск sendmail. такими приемами пользовались
когда milterа не было, да и то не всегда.


"Как копировать только исходящую почту"
Отправлено Medlar , 27-Июн-08 11:37 
Вообще-то здесь я уже все объяснила и добавить-то нечего

Если не понятен первый вариант, почему вы не можете в уже используемом вами варианте всего лишь заменить вашу строку
# Send all mail to copymail mailer
R$* < @ $+ . $~{CP} . >    $#copymail $@ $2 . $3 . ${COPYMAIL} $: $1 @ $2 . $3 . ${COPYMAIL}

на те что я привела и сообщить результат?



"Как копировать только исходящую почту"
Отправлено rf , 27-Июн-08 11:45 
>Вообще-то здесь я уже все объяснила и добавить-то нечего
>
>Если не понятен первый вариант, почему вы не можете в уже используемом
>вами варианте всего лишь заменить вашу строку
># Send all mail to copymail mailer
>R$* < @ $+ . $~{CP} . >    $#copymail $@ $2 . $3 . ${COPYMAIL} $: $1 @ $2 . $3 . ${COPYMAIL}
>
> на те что я привела и сообщить результат?
>
>

То есть получиться такой copymail.m4?

PUSHDIVERT(-1)

ifdef(`COPYMAIL_MAILBOX',,`define(`COPYMAIL_MAILBOX',`test@test.ru')')dnl
POPDIVERT

#########################################
###   COPYMAIL Mailer specification   ###
#########################################

VERSIONID(`$Id: cpsendmail.html,v 1.2 2002/06/14 18:39:10 freeman Exp $')dnl

LOCAL_CONFIG
D{COPYMAIL}COPYMAIL
C{CP}${COPYMAIL}

LOCAL_RULE_0
R$* < @ $+ . >     $: $1 <@ $2 . > <$&{client_addr}>
R$* < @ $+ . > <$=R>    $#copymail $@ $2 . $3 . ${COPYMAIL} $: $1 @ $2 . $3 . ${COPYMAIL}
# if mail has been processed by copymail mailer, process it usual way...
R$* < @ $* . ${COPYMAIL} >    $1 < @ $2 . >

# Send message to original recipient + additional mailbox: COPYMAIL_MAILBOX
Mcopymail, P=/usr/sbin/sendmail, F=fmSDFMu, S=0, R=0, A=sendmail -N never COPYMAIL_MAILBOX.${COPYMAIL} $u

О результате сообщу.


"Как копировать только исходящую почту"
Отправлено Medlar , 01-Июл-08 08:25 
поправочка
вместо <$=R>
<$=R $*>

"Как копировать только исходящую почту"
Отправлено rf , 30-Июн-08 17:37 
>Вообще-то здесь я уже все объяснила и добавить-то нечего
>
>Если не понятен первый вариант, почему вы не можете в уже используемом
>вами варианте всего лишь заменить вашу строку
># Send all mail to copymail mailer
>R$* < @ $+ . $~{CP} . >    $#copymail $@ $2 . $3 . ${COPYMAIL} $: $1 @ $2 . $3 . ${COPYMAIL}
>
> на те что я привела и сообщить результат?
>
>

Попробовала. К сожалению, письма всё равно копируются все вх и исх письма.


"Как копировать только исходящую почту"
Отправлено Medlar , 30-Июн-08 18:33 
в каком файле прописаны ip которым разрешено релеить?

"Как копировать только исходящую почту"
Отправлено rf , 30-Июн-08 18:37 
>в каком файле прописаны ip которым разрешено релеить?

/etc/mail/access


"Как копировать только исходящую почту"
Отправлено Medlar , 30-Июн-08 19:04 
Вот это для кого было написано несколькими днями ранее?

"... ну это при условии что ip к-м разрешено релеить находчтся в relay-domains ... "

И кстати вопрос об источнике выбранного вами набора правил также повис в воздухе

P.S. Простите, без обид, зачем вам sendmail?
Может, выбрать почтовик попроще?
Если не ошибаюсь (народ подправит), в exim-е копирование почты настраивается достаточно просто



"Как копировать только исходящую почту"
Отправлено rf , 01-Июл-08 07:06 
>Вот это для кого было написано несколькими днями ранее?
>
>"... ну это при условии что ip к-м разрешено релеить находчтся в
>relay-domains ... "

Извиняюсь, почему-то когда стала пробовать на практике, то совсем про это условие забыла. Что нужно изменить, если файл используется /etc/mail/access?

>И кстати вопрос об источнике выбранного вами набора правил также повис в
>воздухе

Делала по 1-му варианту отсюда
http://www.opennet.me/docs/RUS/sendmail_copy/

>P.S. Простите, без обид, зачем вам sendmail?
>Может, выбрать почтовик попроще?
>Если не ошибаюсь (народ подправит), в exim-е копирование почты настраивается достаточно просто
>

То есть с sendmail это будет сложновато сделать? Просто мне не хотелось чтобы всё работало с одним конфигурационным файлом почтовика.


"Как копировать только исходящую почту"
Отправлено Medlar , 01-Июл-08 08:33 
>>Вот это для кого было написано несколькими днями ранее?
>>
>>"... ну это при условии что ip к-м разрешено релеить находчтся в
>>relay-domains ... "
>
>Извиняюсь, почему-то когда стала пробовать на практике, то совсем про это условие
>забыла. Что нужно изменить, если файл используется /etc/mail/access?

переписать эту строку
но я этим занимться сегодня не буду - и так на полпути к даче

>[оверквотинг удален]
>
>Делала по 1-му варианту отсюда
>http://www.opennet.me/docs/RUS/sendmail_copy/
>
>>P.S. Простите, без обид, зачем вам sendmail?
>>Может, выбрать почтовик попроще?
>>Если не ошибаюсь (народ подправит), в exim-е копирование почты настраивается достаточно просто
>>
>
>То есть с sendmail это будет сложновато сделать?

судя по этому треду, разросшемуся из ничего, для вас - да
опять-таки, без обид, обычно народ спрашивает правило или набор правил,
получает его и в  след.раз заходит
на эту ветку (если заходит) только чтобы сказать thnks.

А многоуважемый Z0termaNN уже вам объяснил почему не стоит использовать именно это решение

P/S/ Если все-таки будете продолжать копать в этом направлении обратите внимание на поправочку из моего предыдущего поста


"Как копировать только исходящую почту"
Отправлено krysha , 30-Ноя-10 19:23 
уж извините, что поднимаю такую древнюю тему, но всё же.
Можете объяснить, зачем в конфиге стоит sendmail -N never ? При этом пользователям, для которых идет копирование почты, никогда не присылаются dsn. Некоторые умельцы -N never не ставят (пример тут http://www.mavhome.dp.ua/docs/copymail.htm)

Или в этом случае может возникнуть какое-то зацикливание?
По правде говоря, я за пол года эксплуатации варианта, приведенного в ссылке, столкнулся с постоянной доставкой одного и того же письма с одного внешнего почтового сервера. После чего переделывал на вариант с 2мя разными конфигами. Проблема исчезла, но отсутствие сообщений об ошибках доставки у пользователей не радует.

(Про милтер советовать не нужно, я его и так попробую, но хотелось бы прояснить ситуации с широко распространенными вариантами копировани на основе подобных правил copymail.m4