[exim-conf] два новых варианта интеграции с rspamd

Victor Ustugov victor на corvax.kiev.ua
Сб Окт 6 15:06:51 EEST 2018


приветствую

реализованы два новых варианта интеграции exim с rspamd:

1. интеграция с помощью dlfunc rspamd_http, выполняющей POST запросы к
rspamd по протоколу HTTP, а не запросы по протоколу RSPAMC:
https://mta.org.ua/exim-4.88-conf/dlfunc/rspamd_http/rspamd_http.c

2. интеграция с помощью ${readsocket. в этом случае также используются
POST запросы.


для использования этих новых вариантов интеграции добавлена переменная
confRSPAMD_PROTO с такими возможными значениями:

RSPAMC		- использовать команду SYMBOL протокола RSPAMC/1.3
HTTP_DLFUNC	- использовать POST запрос к /checkv2 через dlfunc
		rspamd_http
HTTP_READSOCKET	- использовать POST запрос к /checkv2 через ${readsocket
define(`confRSPAMD_PROTO', `RSPAMC')


функциональность dlfunc rspamd_http и её обвязки не уступает
функциональности старой dlfunc rspamd
https://mta.org.ua/exim-4.88-conf/dlfunc/rspamd/rspamd.c
но ещё не реализован целый ряд функциональных возможностей, упомянутых тут:

https://rspamd.com/doc/architecture/protocol.html#milter-headers
https://rspamd.com/doc/modules/milter_headers.html


т. о. dlfunc rspamd_http является скорее прототипом, хоть и полностью
рабочим. и значением по умолчанию для confRSPAMD_PROTO является RSPAMC,
подразумевающим использование старой dlfunc rspamd.


а вариант интеграции exim с rspamd через ${readsocket является
прототипом в буквальном смысле этого слова. для работы данного варианта
интеграции нужно пересобирать exim с патчами Jeremy Harris для парчинга
JSON массивов с помощью ${extract json, которые штатно будут доступны в
следующем релизе exim:

https://git.exim.org/exim.git/commitdiff/8fdf20fd84ec88d8f8a250f56d2b4d29ba946392

https://git.exim.org/exim.git/commitdiff/9d03af0a7d6bfcc13156ce8fd676ce00dd32d228

https://git.exim.org/exim.git/commitdiff/a3970a881934e1fc6be1993bfe544dd17abf6082

или можно использовать патч, основанный на двух первых из вышеуказанных
патчей, адаптированный для применения при сборке exim из порта FreeBSD:

https://mta.org.ua/exim-4.88-conf/patches/exim-4.91-extract-json/patch-src__exim-4.91-extract-json.patch


в механизм сборки exim-4.91_3 из порта FreeBSD уже добавлена возможность
сборки с этим патчем:

https://mta.org.ua/exim-4.88-conf/packages/ports-freebsd/exim-4.91_3/


для его применения нужно в Makefile.local добавить строку:

WITH_EXPERIMENTAL_EXTRACT_JSON=YES


при использовании обоих новых вариантов интеграции exim с rspamd
реализованы два набора добавляемых заголовков.

первый больше похож на набор заголовков, добавляемых при использовании
старой dlfunc rspamd.
второй весьма близок к набору заголовков, добавляемых в письмо при
использовании postfix+rspamd.

выбор используемого варианта заголовка производится путём присвоения
переменной confRSPAMD_HTTP_HEADERS_STYLE одного из двух значение -
DEFAULT или MILTER


-- 
Best wishes
Victor Ustugov        mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
Skype ID: corvax_nb   JID: victor на corvax.kiev.ua



Подробная информация о списке рассылки exim-conf