Re: [Exim-users] demime *
Тогда, на всякий случай, учтите, что system filter запускается один раз на сообщение до выполнения роутеров. Поэтому если требуется обработка получателей, то можно вызывать фильтр через роутер redirect. Mikhail Golub писал 2017-01-05 15:16: Почему я system_filter раньше не использовал? :) Делает то же, что я пытался сделать через shadow_transport, только гораздо проще. -- With best regards, Max Kostikov BBM: 24CA5DF8 | W: https://kostikov.co ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
05.01.2017 14:49, Oleksandr Trotsai пишет: А вариант с system filter пробовали Я вот примерно так system_filter = /etc/mail/system-filter system_filter_pipe_transport = address_pipe_archive system_filter_user = exim веду архив почты В /etc/mail/system-filter ... # Exim filter if first_delivery then ... unseen pipe ... ... endif Пример сохраненного письма из этого же треда запихнул во вложение, но вроде как там все что надо есть Почему я system_filter раньше не использовал? :) Делает то же, что я пытался сделать через shadow_transport, только гораздо проще. Спасибо. -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
А вариант с system filter пробовали Я вот примерно так system_filter = /etc/mail/system-filter system_filter_pipe_transport = address_pipe_archive system_filter_user = exim веду архив почты В /etc/mail/system-filter ... # Exim filter if first_delivery then ... unseen pipe ... ... endif Пример сохраненного письма из этого же треда запихнул во вложение, но вроде как там все что надо есть -- Best regard, Aleksander Trotsai aka MAGE-RIPE aka MAGE-UANIC My public PGP key placed at http://mvps.adamant.ua/pgp/trotsai.asc Big trouble: BOFH excuse #211: Lightning strikes. >From exim-users-boun...@mailground.net Thu Jan 05 14:38:11 2017 Received: from ikke.mailground.net ([204.109.60.111]) by relay-n.adamant.ua with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1cP7J1-0006Pv-JK; Thu, 05 Jan 2017 14:38:11 +0200 Received: from localhost ([127.0.0.1] helo=ikke.mailground.net) by ikke.mailground.net with esmtp (Exim 4.87 (FreeBSD)) (envelope-from ) id 1cP7I0-000Ll8-7s; Thu, 05 Jan 2017 12:37:04 + Received: from forward4m.cmail.yandex.net ([5.255.216.22]) by ikke.mailground.net with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87 (FreeBSD)) (envelope-from ) id 1cP7Hn-000Ll2-Fj for exim-users@mailground.net; Thu, 05 Jan 2017 12:36:51 + Received: from smtp2o.mail.yandex.net (smtp2o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::26]) by forward4m.cmail.yandex.net (Yandex) with ESMTP id ED85C206ED for ; Thu, 5 Jan 2017 15:36:20 +0300 (MSK) Received: from smtp2o.mail.yandex.net (localhost.localdomain [127.0.0.1]) by smtp2o.mail.yandex.net (Yandex) with ESMTP id CACD05080D72 for ; Thu, 5 Jan 2017 15:36:20 +0300 (MSK) Received: by smtp2o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id tFfh3jU8Rw-aJkOiGtf; Thu, 05 Jan 2017 15:36:19 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmn.org.ua; s=mail; t=1483619779; bh=4yV5jnUn3Fcp8vI203ol3bYjEocoUXKtEQ4JbE8GV9Q=; h=Subject:To:References:From:Message-ID:Date:In-Reply-To; b=ut+bKpw5zeD8KkFMFWbRmoVghDYfSw97WThZgCkRdTweUt+ZfbD80f9cUkMECln5Z 8LS+H8dYMdP/UWGXgdGBqb5HFa522j79kajbEYhZql0f6Na+mmzrzR4qaAqWA3WUaS 5cseW+yndq/lzfmoFr+ZXHIN+akGs3tXL7bcc8ng= Authentication-Results: smtp2o.mail.yandex.net; dkim=pass header.i=@gmn.org.ua X-Yandex-Suid-Status: 1 0 To: exim-users@mailground.net References: <27616342-b34a-7367-e1bf-7cb2a6581...@gmn.org.ua> <20170104084515.gb2...@lena.kiev> <88ed3767-42ac-76c2-c3ee-f12d6f0b0...@gmn.org.ua> <3234df12-02c3-4a7e-9f1b-0ed6f7275...@vc.org.ua> <36293ba5-0fc9-f500-f143-21ef484dd...@gmn.org.ua> <782e7963-d804-b3f6-b60b-744f21c88...@gmn.org.ua> <20170105105048.gj2...@lena.kiev> <096b6695-a672-91e7-c550-66ae90cc2...@gmn.org.ua> From: Mikhail Golub Message-ID: <51e61038-f959-aea6-1f60-a1dc4b478...@gmn.org.ua> Date: Thu, 5 Jan 2017 14:36:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <096b6695-a672-91e7-c550-66ae90cc2...@gmn.org.ua> Subject: Re: [Exim-users] demime * X-BeenThere: exim-users@mailground.net X-Mailman-Version: 2.1.23 Precedence: list List-Id: =?utf-8?b?RXhpbSBNVEEg0L3QsCDRgNGD0YHRgdC60L7QvA==?= List-Unsubscribe: <http://mailground.net/mailman/options/exim-users>, <mailto:exim-users-requ...@mailground.net?subject=unsubscribe> List-Archive: <http://mailground.net/pipermail/exim-users/> List-Post: <mailto:exim-users@mailground.net> List-Help: <mailto:exim-users-requ...@mailground.net?subject=help> List-Subscribe: <http://mailground.net/mailman/listinfo/exim-users>, <mailto:exim-users-requ...@mailground.net?subject=subscribe> Reply-To: =?utf-8?b?RXhpbSBNVEEg0L3QsCDRgNGD0YHRgdC60L7QvA==?= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: exim-users-boun...@mailground.net Sender: "Exim-users" MDUuMDEuMjAxNyAxMzoyMywgTWlraGFpbCBHb2x1YiDQv9C40YjQtdGCOgo+IDA1LjAxLjIwMTcg MTI6NTAsIExlbmFAbGVuYS5raWV2LnVhINC/0LjRiNC10YI6Cj4+PiBGcm9tOiBNaWtoYWlsIEdv bHViCj4+INCV0YHQu9C4INC90LDQtNC+LCDRgtC+INC/0YDQvtGJ0LUg0LIg0YDQvtGD0YLQtdGA 0LUgdW5zZWVuINC4INC10YnQtSDQvtC00LjQvSDRgNC+0YPRgtC10YAKPj4g0L3QsNC/0YDQsNCy 0LvRj9C10YIg0LrQvtC/0LjRjiDQv9C40YHRjNC80LAg0L3QsCDRgtGA0LDQvdGB0L/QvtGA0YIg 0YEgcGlwZSDQvdCwINGB0LrRgNC40L/Rgi4KPgo+INCf0L7RhdC+0LbQtSwg0YfRgtC+INC/0YDQ uNC00LXRgtGB0Y8g0YEg0Y3RgtC40Lwg0LjQt9Cz0L7RgtC+0LLQu9GP0YLRjNGB0Y8uCj4gItC4 0LfQs9C+0YLQvtCy0LvRj9GC0YzRgdGPIiAtINC/0L7RgtC+0LzRgyDRh9GC0L4g0YDQvtGD0YLQ tdGA0L7QsiDQvNC90L7Qs9C+Lgo+INCd0LAg0L7QsdGA0LDQsdC+0YLQutGDINGO0LfQtdGA0L7Q siBFeGNoYW5nZSAtINC+0LTQuNC9INGA0L7Rg9GC0LXRgC4g0JPRgNGD0L/QvyAtINC00YDRg9Cz 0L7QuS4g0KPQstC10L
Re: [Exim-users] demime *
05.01.2017 13:23, Mikhail Golub пишет: 05.01.2017 12:50, l...@lena.kiev.ua пишет: From: Mikhail Golub Если надо, то проще в роутере unseen и еще один роутер направляет копию письма на транспорт с pipe на скрипт. Похоже, что придется с этим изготовляться. "изготовляться" - потому что роутеров много. На обработку юзеров Exchange - один роутер. Групп - другой. Уведомлений о недоставке на адрес группы - третий. На контакт - четвертый ... (на контакт (https://technet.microsoft.com/en-us/library/aa998858(v=exchg.150).aspx) отдельный роутер, чтобы сразу на Exim делать SRS и отправлять письмо адрес контакта). И с unseen не все гладко :( Или я не умею его готовить :) Поставил такой роутер первым. copy_mail: driver = accept verify_recipient = false verify_sender = false transport = my_arc address_test = false disable_logging = true unseen Дальше остальные роутеры. Цель достигнута ... частично. При проверке адреса роутер не срабатывает. При "exim -bt" тоже. Копия сообщения попадает в транспорт и затем в pipe по назначению. Письмо согласно следующим роутерам направляется в ящик пользователя. В лог записи нет для уменьшения замусоривания лога. Но красота заканчивается, когда получателей несколько. В транспорт уходит несколько копий одного и того же письма. Опции, которая бы указала роутеру отрабатывать только один раз на одно сообщение, не нашел. Был рабочий вариант, когда вызывался перловый скрипт из acl. Но при переходе на 4.88 все уперлось в получение сообщения целиком и передачи его в pipe. -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
05.01.2017 13:23, Mikhail Golub пишет: 05.01.2017 12:50, l...@lena.kiev.ua пишет: From: Mikhail Golub Похоже, что придется с этим изготовляться. "Изгаляться" ... проверка орфографии ... Спасибо за помощь. Здесь без сарказма :) Реально спасибо за подсказки вариантов решения. -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
05.01.2017 12:50, l...@lena.kiev.ua пишет: From: Mikhail Golub В acl_smtp_data первой же строчкой идет: warn control = no_mbox_unspool Это команда не удалять файл после того, как письмо принято. Оно вам надо? Я знаю зачем этот параметр. Я специально его установил, чтобы на тестовом Exim проверить, что файл таки не создается, если нет mime. Если надо, то проще в роутере unseen и еще один роутер направляет копию письма на транспорт с pipe на скрипт. Похоже, что придется с этим изготовляться. "изготовляться" - потому что роутеров много. На обработку юзеров Exchange - один роутер. Групп - другой. Уведомлений о недоставке на адрес группы - третий. На контакт - четвертый ... (на контакт (https://technet.microsoft.com/en-us/library/aa998858(v=exchg.150).aspx) отдельный роутер, чтобы сразу на Exim делать SRS и отправлять письмо адрес контакта). Но для сообщений без MIME файл по пути "/scan//.eml" не сохраняется. $spool_directory/input/-буква - файл с телом письма (нераскодированным base64/quoted-printable). Букву не помню, в этом обсуждении ее писали. Заголовок в $message_headers_raw Да, есть там файлы. http://www.lissyara.su/doc/exim/4.62/format_of_spool_files/ Сообщение в очереди exim`a состоит из двух файлов, чьи имена - идентификатор сообщения, сопровождаемый “-D” и “-H”, соответственно. Часть данных сообщения сохраняется отдельно в файле “-D”. Конверт сообщения, статус и заголовки сохраняются в файле “-H”, чей формат описан в этой части. Т.е. это не то, что было в /scan//.eml Спасибо за помощь. ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
Hello! On Thu, 05 Jan 2017 at 12:50:48 (+0200), l...@lena.kiev.ua wrote: > $spool_directory/input/-буква - файл с > телом письма (нераскодированным base64/quoted-printable). > Букву не помню, в этом обсуждении ее писали. > Заголовок в $message_headers_raw -H - заголовки -D - тело -J - журнал вроде так -- George L. Yermulnik [YZ-RIPE] ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
> From: Mikhail Golub > В acl_smtp_data первой же строчкой идет: > warn control = no_mbox_unspool Это команда не удалять файл после того, как письмо принято. Оно вам надо? Если надо, то проще в роутере unseen и еще один роутер направляет копию письма на транспорт с pipe на скрипт. > Но для сообщений без MIME файл по пути > "/scan//.eml" не > сохраняется. $spool_directory/input/-буква - файл с телом письма (нераскодированным base64/quoted-printable). Букву не помню, в этом обсуждении ее писали. Заголовок в $message_headers_raw ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
04.01.2017 11:30, Mikhail Golub пишет: Да, пожалуй надо почитать про queuefile. Спасибо. queuefile - не то :( Там нет сообщения в таком виде, как оно было в /scan//.eml Пробовал через shadow_transport. Все получилось красиво. Но только потом я прочитал, что "Shadow remote transports are not supported" :) И снова в раздумиях. Подскажите, пожалуйста, я не правильно читаю документацию касательно Content_Scanning? Или не стыковка в документации и функционале? Вот. документация с оф. сайта http://www.exim.org/exim-html-current/doc/html/spec_html/ch-content_scanning_at_acl_time.html Где написано: All the content-scanning facilities work on a MBOX copy of the message that is temporarily created in a file called: /scan//.eml Exim собран так (в данном случае важно наличие Content_Scanning): Exim version 4.88 #0 (FreeBSD 11.0) built 04-Jan-2017 11:34:12 Copyright (c) University of Cambridge, 1995 - 2016 (c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2016 Probably Berkeley DB version 1.8x (native mode) Support for: crypteq iconv() use_setclassresources Perl Expand_dlfunc Content_Scanning DNSSEC PRDR TCP_Fast_Open Experimental_QUEUEFILE Experimental_SPF Experimental_SRS В acl_smtp_data первой же строчкой идет: warn control = no_mbox_unspool Но для сообщений без MIME файл по пути "/scan//.eml" не сохраняется. -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
Hello! On Wed, 04 Jan 2017 at 11:10:58 (+0200), Mikhail Golub wrote: > А целиком, как было в > '/var/spool/exim/scan/'.$message_id.'/'.$message_id.'.eml', уже нигде > нет, как я понимаю? :( В acl_smtp_mime через decode. Если сообщение туда попадает. -- George L. Yermulnik [YZ-RIPE] ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
04.01.2017 11:24, Victor Cheburkin пишет: Начало такого тела доступно не только в $message_body (может быть Начало ... Можно, конечно, увеличить message_body_visible. Если нужен конец -- см. $message_body_end ;-) :) Чисто теоретически, файл должен лежать в SPOOL_DIRECTORY/input/$message_id-D и $message_id-H. Или использовать queuefile (но нужно будет exim пересобрать с EXPERIMENTAL_QUEUEFILE=yes) с внешней обвязкой: Queuefile is a pseudo transport which does not perform final delivery. It simply copies the exim spool files out of the spool directory into an external directory retaining the exim spool format. The spool files can then be processed by external processes and then requeued into exim spool directories for final delivery. Да, пожалуй надо почитать про queuefile. Спасибо. -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
Hi! > 4 янв. 2017 г., в 11:10, Mikhail Golub написал(а): > > 04.01.2017 10:45, l...@lena.kiev.ua пишет: >>> В Exim 4.88 demime уже нет. >>> И если сообщение не имеет mime, то и тело сообщения (с >>> заголовками) не доступно. >> >> Если сообщение Content-Type: text/plain >> (или text/html) без multipart, всё равно вызывается (один раз) >> acl_smtp_mime на тело сообщения, >> при этом заполнены переменные, например >> >> $mime_content_type=text/plain >> $mime_charset=koi8-r >> $mime_content_transfer_encoding=8bit >> >> Начало такого тела доступно не только в $message_body (может быть > > Начало ... Можно, конечно, увеличить message_body_visible. Если нужен конец -- см. $message_body_end ;-) Чисто теоретически, файл должен лежать в SPOOL_DIRECTORY/input/$message_id-D и $message_id-H. Или использовать queuefile (но нужно будет exim пересобрать с EXPERIMENTAL_QUEUEFILE=yes) с внешней обвязкой: Queuefile is a pseudo transport which does not perform final delivery. It simply copies the exim spool files out of the spool directory into an external directory retaining the exim spool format. The spool files can then be processed by external processes and then requeued into exim spool directories for final delivery. -- Victor Cheburkin VC319-RIPE, VC1-UANIC ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
04.01.2017 10:45, l...@lena.kiev.ua пишет: В Exim 4.88 demime уже нет. И если сообщение не имеет mime, то и тело сообщения (с заголовками) не доступно. Если сообщение Content-Type: text/plain (или text/html) без multipart, всё равно вызывается (один раз) acl_smtp_mime на тело сообщения, при этом заполнены переменные, например $mime_content_type=text/plain $mime_charset=koi8-r $mime_content_transfer_encoding=8bit Начало такого тела доступно не только в $message_body (может быть Начало ... Можно, конечно, увеличить message_body_visible. закодировано base64 или quoted-printable), но и раскодированным, сканировать можно с помощью mime_regex Заголовок в $message_headers_raw А целиком, как было в '/var/spool/exim/scan/'.$message_id.'/'.$message_id.'.eml', уже нигде нет, как я понимаю? :( Спасибо за помощь. -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
> В Exim 4.88 demime уже нет. > И если сообщение не имеет mime, то и тело сообщения (с > заголовками) не доступно. Если сообщение Content-Type: text/plain (или text/html) без multipart, всё равно вызывается (один раз) acl_smtp_mime на тело сообщения, при этом заполнены переменные, например $mime_content_type=text/plain $mime_charset=koi8-r $mime_content_transfer_encoding=8bit Начало такого тела доступно не только в $message_body (может быть закодировано base64 или quoted-printable), но и раскодированным, сканировать можно с помощью mime_regex Заголовок в $message_headers_raw ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
Hi! > 4 янв. 2017 г., в 9:39, Mikhail Golub написал(а): > > Всех с праздником! > > Новый Год - новый Exim 4.88. > И "demime = *" уже не работает. > > У меня был перловый скрипт, который вызывался через "continue = > ${perl{mail_test}}" в acl_smtp_data. > Скрипт обрабатывал через "Exim::expand_string" адрес отправителя, > получателей, тему и считывал тело сообщения > '/var/spool/exim/scan/'.$message_id.'/'.$message_id.'.eml' > > В Exim 4.88 demime уже нет. > И если сообщение не имеет mime, то и тело сообщения (с заголовками) не > доступно. Давненько уже написано было, что его не будет... Тело сообщения вообще-то доступно через $message_body (только не забыть поставить побольше message_body_visible), заголовки через $message_header, или я не понимаю чего хочется. > Подскажите, пожалуйста, как в 4.88 получить письмо полностью? > Хотелось бы использовать существующий уже механизм - встроенный Perl. > > P.S. Можно через shadow_transport ... Но здесь пока не разобрался как > передать в pipe адрес отправителя, получателей, тему и затем само сообщение > целиком. > Да и в логе лишний "след" в виде ST=shadow_transport ... Почитайте про экспериментальный queuefile, это конечно не совсем то (вернее совсем не то), но может пригодится для похожей по смыслу наружной обвязки. Можно еще через system filter, но это уже как-то совсем не то. Еще через ${run можно, но это тоже будет внешняя команда со всеми вытекающими. > -- > Mikhail Golub > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > -- Victor Cheburkin VC319-RIPE, VC1-UANIC ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
Всех с праздником! Новый Год - новый Exim 4.88. И "demime = *" уже не работает. У меня был перловый скрипт, который вызывался через "continue = ${perl{mail_test}}" в acl_smtp_data. Скрипт обрабатывал через "Exim::expand_string" адрес отправителя, получателей, тему и считывал тело сообщения '/var/spool/exim/scan/'.$message_id.'/'.$message_id.'.eml' В Exim 4.88 demime уже нет. И если сообщение не имеет mime, то и тело сообщения (с заголовками) не доступно. Подскажите, пожалуйста, как в 4.88 получить письмо полностью? Хотелось бы использовать существующий уже механизм - встроенный Perl. P.S. Можно через shadow_transport ... Но здесь пока не разобрался как передать в pipe адрес отправителя, получателей, тему и затем само сообщение целиком. Да и в логе лишний "след" в виде ST=shadow_transport ... -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] demime *
28.11.2016 10:39, Mikhail Golub пишет: Но почему поведение не однозначное? Exim version 4.87 #0 (FreeBSD 11.0) built 24-Nov-2016 11:54:46 Copyright (c) University of Cambridge, 1995 - 2016 (c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2016 Probably Berkeley DB version 1.8x (native mode) Support for: iconv() use_setclassresources Perl Expand_dlfunc OpenSSL Content_Scanning Old_Demime DKIM Experimental_SPF Experimental_SRS Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm mysql passwd #warn demime = * warn set acl_m_test = ${run{SHELL -c "/bin/ls /var/spool/exim/scan/$message_id/$message_id.eml"}} condition = ${if !def:acl_m_test} logwrite = TEST: $acl_m_test Срабатывания на файлы в plain text от root, nagois ... размером 1-2 Кб. -- Mikhail Golub ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users