Re: [Exim-users] demime *

2017-01-05 Пенетрантность Max Kostikov
Тогда, на всякий случай, учтите, что 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 *

2017-01-05 Пенетрантность Mikhail Golub

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 *

2017-01-05 Пенетрантность Mikhail Golub

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 *

2017-01-05 Пенетрантность Mikhail Golub

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 *

2017-01-05 Пенетрантность Mikhail Golub

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 *

2017-01-05 Пенетрантность George L. Yermulnik
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 *

2017-01-04 Пенетрантность George L. Yermulnik
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 *

2017-01-04 Пенетрантность Mikhail Golub

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 *

2017-01-04 Пенетрантность Victor Cheburkin
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 *

2017-01-04 Пенетрантность 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.


закодировано 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 *

2017-01-04 Пенетрантность Lena
> В 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 *

2017-01-03 Пенетрантность Victor Cheburkin
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 *

2017-01-03 Пенетрантность 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, то и тело сообщения (с заголовками) не 
доступно.


Подскажите, пожалуйста, как в 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 *

2016-11-28 Пенетрантность Mikhail Golub

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



[Exim-users] demime *

2016-11-28 Пенетрантность Mikhail Golub

Привет.

Подскажите, плиз, что-то не могу понять.

Есть такая конструкция.

check_data:

warn demime = *

warn set acl_m_test = ${run{SHELL -c "/bin/ls 
/var/spool/exim/scan/$message_id/$message_id.eml"}}

 logwrite = TEST: $acl_m_test

Так все работает и проблем нет.
Но если заремить "demime = *", то с логе получаю запись с пустой строкой 
вместо имени файла.
Пока замечено что пустая строка - это письма от nagois, root ... Т.е. не 
большого размера и в plain text.


Согласно документации 
http://www.exim.org/exim-html-current/doc/html/spec_html/ch-content_scanning_at_acl_time.html

"The file is created when the first content scanning facility is called."

Но почему поведение не однозначное?

--
Mikhail Golub

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users