From f2ff1eb9552a977677570e345e1c6362b618395e Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Sun, 11 Dec 2016 19:15:09 +0100 Subject: [PATCH] Remove binary apk and use sieve_imap for antispam learning, fixes #33 --- dovecot/Dockerfile | 8 +----- dovecot/conf/dovecot.conf | 26 ++++++++++-------- ...ovecot-pigeonhole-plugin-extdata-39-r0.apk | Bin 26372 -> 0 bytes dovecot/sieve/bin/mailtrain | 3 ++ dovecot/sieve/report-ham.sieve | 3 ++ dovecot/sieve/report-spam.sieve | 3 ++ ...controller.conf => worker-controller.conf} | 2 +- 7 files changed, 26 insertions(+), 19 deletions(-) delete mode 100644 dovecot/dovecot-pigeonhole-plugin-extdata-39-r0.apk create mode 100755 dovecot/sieve/bin/mailtrain create mode 100644 dovecot/sieve/report-ham.sieve create mode 100644 dovecot/sieve/report-spam.sieve rename rspamd/conf/{worker.d/controller.conf => worker-controller.conf} (93%) diff --git a/dovecot/Dockerfile b/dovecot/Dockerfile index 5aceef69..1968074e 100644 --- a/dovecot/Dockerfile +++ b/dovecot/Dockerfile @@ -2,17 +2,11 @@ FROM alpine:edge RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ && apk add --update \ - dovecot \ - dovecot-sqlite \ - dovecot-pigeonhole-plugin \ - dovecot-antispam-plugin@testing \ + dovecot dovecot-sqlite dovecot-pigeonhole-plugin dovecot-pigeonhole-plugin-extdata \ rspamd-client@testing \ bash \ && rm -rf /var/cache/apk/* -COPY dovecot-pigeonhole-plugin-extdata-39-r0.apk / -RUN apk add --allow-untrusted --force dovecot-pigeonhole-plugin-extdata-39-r0.apk - COPY conf /etc/dovecot COPY sieve /var/lib/dovecot diff --git a/dovecot/conf/dovecot.conf b/dovecot/conf/dovecot.conf index 9d8b5e16..7b542524 100644 --- a/dovecot/conf/dovecot.conf +++ b/dovecot/conf/dovecot.conf @@ -104,7 +104,7 @@ service auth-worker { ############### protocol imap { - mail_plugins = $mail_plugins imap_quota antispam + mail_plugins = $mail_plugins imap_quota imap_sieve } protocol pop3 { @@ -155,13 +155,16 @@ service managesieve { plugin { sieve = file:~/sieve;active=~/.dovecot.sieve - sieve_plugins = sieve_extdata - sieve_global_extensions = +vnd.dovecot.extdata +spamtest +spamtestplus + sieve_plugins = sieve_extdata sieve_imapsieve sieve_extprograms + sieve_global_extensions = +vnd.dovecot.extdata +spamtest +spamtestplus +vnd.dovecot.execute sieve_before = /var/lib/dovecot/before.sieve sieve_default = /var/lib/dovecot/default.sieve sieve_after = /var/lib/dovecot/after.sieve sieve_extdata_dict_uri = proxy::sieve + # Sieve execute + sieve_execute_bin_dir = /var/lib/dovecot/bin + # Send vacation replies even for aliases # See the Pigeonhole documentation about warnings: http://wiki2.dovecot.org/Pigeonhole/Sieve/Extensions/Vacation # It appears that our implemntation of mail delivery meets criteria of section 4.5 @@ -171,19 +174,20 @@ plugin { # Include the recipient in vacation replies so that DKIM applies sieve_vacation_send_from_recipient = yes - antispam_backend = mailtrain - antispam_spam = Junk - antispam_trash = Trash - antispam_mail_sendmail = /usr/bin/rspamc - antispam_mail_spam = learn_spam - antispam_mail_notspam = learn_ham - antispam_mail_sendmail_args = -h;antispam:11334;-P;q1 - # extract spam score from # X-Spam-Result: .... [ / `#Am{3PrSt%2u~-bcwQrY<0WkYM~Wn8MMec_Q7E0rYMq1kzGkDG0MJ- zQ9@ahHOq`8WF6bgV7C8x&q&?-x!>>q_x=8U^Xk5r^FHT!p7WgNJnM1g!i6CC$H%|& zE%K`P3Tdb}lJ8KJ<*iTecS>#&)odi!cl8{)(0RLFRm#Uc6gvmD z9QL{Vo8swMulyss{@{0`>lPD{@;$rz1SiSZ`mdhO@B ztSw)s75nw{OX7)b^P?L!o|D>wkF*NtOE(dem!e^*?jtSlL*6FIkspyrjJbTOe10jz zVkkwxPR~kB0?skAd;ZtmTn`IDboD~;3 z&@PH9@koC&ITvw`5mNU2>Q!aTXdOPbtaSnV5>-%D_f;n_R3czsRAJ09y0t8a`7n(` zN^sm_c_#ns!kO?pS(vQR;E@3$Yx?wH-LtkXJ+dfWe_=4T>38y+{0qB@%zHA1ize&@ z$09c;iGShL&rQA9H%f!;&YZ@z{Oc#INp5oTpS0>5%`0#m8&n zsYBU!T2GiOvpQ}J&)rWyJ>*v3oThT|d3$_u@hW7rbkOum5|tmL;7^`N=SmhMuJS<`}MZMyS#cYF5(KkrE%^if?UD}$^V zn4WVd`~oM2-9$3-lZWV|8q|S=#l0qdn`9ZfC$yROqDS|A`KpL4}t%bJQ$1{!1SgQ~Acq9v%3iN(`x-mTBH6F(1%-?2SYT~8|ubfr*c zJcG(~zRtC%msnx6o^I;0+CWMAY}@5(SKKJ)6S{NwP<&SfEt`NE^+zK9vE=^;uk&*D z@gZ7}z|T^=q7UJFiEg`To<)L6R+#PZ`SYHtQd3h-#6zEr?lc2)B}ny|>+6yoax#C~ zy-$03;fWmCj@=zNWFwGB-?Qat{$+C5qPpNgQ%uoL@180`PIGR9Rck_qiO=akr!#w_ z_Dv6eYmm%yRXXhAQh2)Zo3zg2FCRGUAVPSfY0fXE!CDUfF^lmQl45bImM5_F`r3VM z?Kjr`E_6_6+x4~A!NayWmCO;mi?yhe?d)mnp>Ond73!ec@(A#tb+yy+7qCD7yI*Eh&>fnJzdyl5d6>EfL5zgP$e5{>(K_$N|vYk%)34LJXO zy4-n#>0@1HJgKvC0$D; zXuk{(Jh*+zZT*91I)85d+cWOiHnP(gVg3(npxT^fd;Y!x{}>g#L4MwJM^#nqv2FNH ze--^EBw2)2pO;ymNjlO|oGa0$DXZhT>ubs1SA;S%NUhG_C)?Gb^|K!R8@m7QMOr;7 zykc?aXU>DE*4M`TUD&R#oonBx5}KFo_ky@>uDwmg<%7!4_{tA9n{L>4ylMb88%qlS znEpG={U7}Ni4a`y6%WAc(tmJ&Pf}G6clEeke;2a77-;o(5#W4|V|NY>W=rf-p=w@d zr`7ho2>{#o$4~Ht#fj@bUjOx}P<)2)UrH|!?U$MK{tYZ@{U@?zS7-OA%k|7-PPTyq zuhn9HFY9Wb43j5&OM?H=w;Ra(f$!Y=d7mtg=}n2Xly1{h5v^)2)NxhOx2O*@ zU(^3|#A+1fYUMnt6|vM4CdM2o2`}dNRlWWRS@MdQ@2CChM*T6?n#aVl*ZDh>f5yU- ziDg{>{?L~H&y^@>A_HkxPCk!O`ujep_K#^>l#0=OR~4I=8Bp+#C7LTx&b(3kx2^c^ z82_c!?bC5((Xn_*!2ySEnF7i9{l)`7HUzADRge;YoBP_|KOwtHrQ6;OrLjXk5lh>U zG02~V5EuL`bLa1mZddOH*p_z1vI_YZ0w74R{%e1BnV&m%17Kdi7*Mwk$dB9jddqvG z=8_h2cQFtWeTkZ9cbd(s&g(qyeAz80+x^mzuo^)7x7Eq^aX9otPrd8x>|6}_f3r_s z!}_M;VoZbOYQNUM?}dGfW05W{G!<0RznO>SfzHl@U5)H|LsTh;rPE0DK~?v}#0L{d zo|QhFTaFh!-8=);uD|W9nyebS*g6>FnuT(nAax6A3dYA+cNQ;vHpK>xeTE&r|KlI9 zEtR%`v;8)@5hVjOyED}erT+~-|COVbBuirH;~xUwce*gQXqQ+=5Dk@OHGP-J@gx>u zIXXd$?O{q3&Z5z0k?@+7dBzVr^R*uifymOoFU8FUrzB?K^RU0}FwweyU zy{eTZ(En=pz$=-vF6Tt6TMs1UT~5dgewkTg@p^Z9>(th`J8`U@H$al3-P=T8=KqGO zJe6?PMO{XNQF0lqfYQ=PQ5vn*LE}Y6e8tuMjx==b4-rpz?|9NU!^o;f`bhJs9HPZO z?}Vx)?73Uof?q}~qv!RidiKiDTaicJ^Um=4pggJC>7azOsek=|$=f!AZkB7*e?VhT z^_uGaCU&I4UE@=W`xf53A2KR}EvU}{$c!Izpoa<;jGofINqz3B@qK)i2iDguL-t{_ zmc!`uhstojB(Ng??Z2|3Xzq7*f2@|1Tm;PE*3^;#0%7{OW|{BKhE78+Z>ZmL<62tl zZJqrG!tLXLQcC4A(%*}Vk6I^L3oUM?`m#Mzal`+URAje{J9&z0F zVh1+qdl#?_#-**0_2CP|o*(UD6;c@%!Tp~P4L79fd5csg;w=|G2zSW^PAm+EEyzjC zQY2?7Odsx)@AMVu01kl38iXV-{!Y6mY28&eUB@IFAf>HBh8NM{3u1R3!{o8>lXaY@ z@Y8JjA{xm`4L&KYC!#ZJu!}dPd@)Hwv5E$!N!Wr^wHqxQ$*60e4A{=#V$PheL}Aw? z7hBY!O$&U6+RgCe;3?c^cKpUzMq?5oJ7=-~i?F6Cz0rF9VJouyi!d>N(Jz58C1!@* zXs^N?8kKaTy)!sZ2tVjv=sT$!wm@xt$nNR?b|!;-U@x((_$P>MrG4wg~B&9XTV4(67*@0@>KIOp239sTW(`pi zIbHOINVKT^F)VuwZnEBWN4Wx(Se49KY+#mDGIc7MW7SimJvqq>7==4NrX`h46({S6 zXX=PSB6w0F5=o$p4+m|oY-$)i>OQwee3l|UiWtO4=2A#S5cWd^$I6UT8chhWF1UhL2=Ei0ZOEr3O&jMs69+{FS5ZAK}3 z%||(d8EAY03qwSUAZt!algwFDDTQ;Nie|5x$Q*JXRxB`>c}FuW zKz6W4CT29gYxkvls-ud(cG-Qgv1in;p(smo+3Ve0h2$p{-&Q;Q&@j}yISk(K8-E)2 zE#@<|PnOeuJ@tleC%p=z;ycD!ro~^qjVzkXeINSz8dhLl#@ByA>ilp)bWCm`&g*IIPd+F}-%t%J_^clJAv|R7?6m%hCzS}1Aby4ASUIl0|ar_XibPiy~LI2yZNEA6~-80sF%ZM z%y5SwCEpDYj$Fwr5t^+!M@`4|+ZSXga75p(M z{SX*}=XN2(U$S|$ibfgb@ z&}p@U$Ij`sz}CNKniQn*qI3G`u2AZ?!8e(%4u2bXMs%#H_OeBfBbN%a?#;no8x-f) z6Ef+qyJf`ev~SkCN^_kH542YKqZwrtl<54Y?BJRExsezj?7!@PEuZ*}F;MR?gmu)0H+AM_;x-Z`2Z+wr`W zY4%g+P9weIbN_76com-ye5e!$`N1qLrzNkZz|O)rqwgRW;xpNvEmc1dqt|Ebi!M2# z(*$z?#+C^?KGf$CQ7j|pfv3)P7WuCoYK@#lLo&HO$3yqFs#9ko4LhIlyug(xKCdZ> zgr^TqA01g&{)?&G{nJNxrHS$FH!n8=4-Z@s;AuOq5!(N)e@7bV#nHA|7um~wBqGe; zFFkTLeR|8UWdsI%mgAF{7BYsR%-Q1(GkK4>cM;+9PP`6B1(flBX22c;%{oi-^1+FcZu5G334&&K?sT8=FH^*M!|#=iONN;7qMzRK>93xb(<%R@ zVSqc|bV;0OF^_P5;qqUUd0dc`0I1$^nbjtVJ6tNvolkK-|#^Zz`410;$p!t0luM3)AV!DEhef@!u0=^XC4^yVlSDXln z{{VE!R|?94R7*EPjePJ`1zgua4EQ5-Af(w`KnbC`0(u3hdbw@q_c#zDs{aK6sU}pF zAQW*TG6}V~S#VoXF0u8HAf%lVEDEhYAPC+?J{=SsR_!%I$iU;+E5Vnt1VlAXbpQM% z!B0-sUz{@H{ZHsPfNTB4v&7ui69gk^Q^LN63*0*hIs7%_kDyd#&$_fabs7=d+vDHc zwn~9Fa7U@O{q1dXO?64@Nff%YK+-UibhW#R)J(y!o1SI*Ah{jG3us zLpVhoUIl_SL%lBM?>9o_J(qhY`92*E`L%p?FMfLk(8tIXS0J1+)GNdNuA(c{z0&J7 z4t!6E{8b5p*pt6N5U^YO?%J+_rqGgqc|!*TK0pSyM1UGcDe(;>AZ@7ENU47{)LRq( zmn6cfI~WF@`XL*FKA0d@LR$r)0HN?gK4`vGlV63exKQ#KZe#hT&A;P2Db zr*0hXMU<|DArs7jVPwbS=)nAJhPHl>J6ffXb+gMEuA!wk;`b!_A&>-WoXw-=QQ>$K zJ6$KA-0k-=>N2ECxrcyykEKI}d|6s!`i%x=b(|+!{+q%U=-~^&qLt`bmnL_M-K}K_tl5{`|WH;Y4~zoZ4j@8&P8Pu~T)L{w!$<##j>dNb_v=m={@&q~!QwnvwA)gA+| zRh1T9`G8*mSZEG-4oN8SL0aK=M9L3CN?HKDL;^_S2v341;RcWdSP90EZUElw`vh#f zC@||Cu!&B7%WurzA;{#~`8BZN=URU<@C+dLwq?`2tZ|zi&Bb2&=k&(*BQ77X;nz zEiD80mhpiocCEe3X0C@YW1}u@_8(RsMDcJ4|F;+!5e>>4~4<*2fp#P_(QwFU@Vp%AfKi)!jV=N4XZ~g*2POk$*{m}ION(5gFIFg* z{(6NuA^-yWE+rn30p##5LjRfw1dRc~0UL>S?=e5rQG-*2aKA$3wXilg5VYDH(H*H~ z&i4wEEeB-g8zbZdVf-R85LBnyE44ZMwx;c>Y`#KCASUxud{Z(&J3xh-;1mw;-*WhF z@z3y`>4Dw;7335a!tM1JzBZgmRN}wu7YPU|D1j^yW(nTO{S5=1X?AQpN5on&Xu1mt z!fJ_Gsf@>uD6d>6>hO5$FR_$Y5)(sTgxk%M^)R;f)XE%5*H@Ftgek=gA}&WV$b~wq zh3S*aV*l1)Jzw9d(mQ?w`^H}~xZiEM+fRIUEJKk6LbP;K;$Qs@^7M_M;aFu8wUtS& zY*n@fLFcBE0F6%J zN}6-Fmexm9jBXf`S-T%SnmJ0L+WRS=k9z^~qB94h7NV zF^Nz!yf~huH~+YQY6A#yY)4(m@^$!&Ad0e`A$SX!FC13f2URI;0|CPv?ys zJbN{XF^WuLwP5eqi(-Rb_-Z7wTGFTM`a&Bd@j-d4B70FX@r`G0PI0cMS72Tjr}m;R zbyAU{3{M_brm2i=c^N%)*)mQ5XA&cpd|{MxnVb7yo~i6>+zo=$4%W>2u!XS^e#J^= zUjNjhV}Ta4D6RjSt-=t8p16=KK6?WY#Y*j`j%8SB`FaB0fD8qzq*{)3@F+P>9L)|1 z4h3nOlXc{8q-wT`;@zSc@qIB6CNyJ-gnHjj47U z#^^85up$$Ya9G~JY+S^ihe7Ctpb~!*H7M@fEs8cZ6R1pMG$b1COuw_j@GBFG$ag)mVl3abO+t8`yI6D0&PbZ(U)?B#SJybH# zbc~uAY$Sbic^+~RT>)5C5C-)rE=>B)oemtcSuaSFr_Md$de(YL#IvmxS|7UH^`#?` z`W=mMK6OYX$%(|R2~W-CIRSDCLK#$rAt^!-9=nbFjf!Cf?4HwnH*`Txcf|*NHsZ^x zc)~;(CR#tasd76m2e)xWc}(xfAnH=0ijqp-x^YN07zF-_4W!t?G<#Amq4bi>p>k9? z2*pnggOJ=_GCyY4M8#DlndmtxA9H9JrIJjx2AM&#EM+)z&{K{_urq#+_cNB`eeXc+ zfWEF%z@cEcty1^F=*w3!7kpmp$JMr}_9*F1m7{#F9! zCvgc5`+*KM&lZAucYpf;C9Gtw-mhwpK=PGeI|D(=+dQ|Ful|R%p10@~hj3!o&K!lx z4a;|N#G$EQv@WlPZuUN)AfOP+gpC(WRAKXvfP7biz?!)p4%v}# zEUxkdT-v8o>c()@5JwEQ?&-cKj|eaYdNFVyejJYLQQSa35l#qLe)K&#q^a6Vtig$0 zfqT!wtpPjXGyyRN&J9Sy$%6UR+rW=ttHaH5mq0%^6dd!DNC4*#r@;_ijlm3@LYXb6 z(*0YiKC*Y@yPqyozjcb2U0-ghIxl5-LQi&N!cy2@r+pFprwpDgnn5t0Rp2@C21My= zK$IT;U-%lq{sp@QU(2>;a#QqC!KW-Jm2VQymb|_l_0ji{dL=@q9b$NQ*ib!cYp^!E1L z6b};j+?~P8{70ldlZ~t~Dm|y^l5q1o3_r#E!Q3sff532F8M-8lo7hRoFS$3T;E$8O zEmh~8z<$20_tJvvD@or5rSj;KsNzg?#$z~@(3ZN-m?r-k_)UO1IO4yo=QwZ)yS__n z*TAcvv0klxmNxqwJi_AS@L z(gz*7Be|_T4Is7*_LMnXtTi}J`Y0nsh#7LVv^(d?VEyzrJKd_WMzqeJ#QB;k(WVUz-q z=~9M34Me&txvhL3rj#Ks#OD1xcQRY_TS{;a&K|gyQ~Pb?Km@7UD+jU%y_%{A@P3!^ znXaQ66Hno5K|I&v-05yk?bLFj3Y@bT>2cmd0Gl)K9Ns~mWsO9w4?TwhZ{Y3^ms+$O zsYeF((UOA5vyuB;@)&POJ47?AORdV(U(i4t$NOmmrx$owr6|M?Kl2J5f&GM-G~@<` zGH~oR4;R{jUr368!$AE4Fcvs|`l_!G@Qa8la6K>K<_{eq8Nq%eW$(h6(6K}Kwy3k&`!+vAoB^F*70p1kaimspVEWM*F(MgB-~d*dvt{B zAo_qvG^B_V1Qg(~Xo>kvaPLdsfbtwu&(0N68nA^S)9pY_-mC#)iNYi*XJrm97pImF zIMmDr32kd+Y`d;Y2?Zx!l7^+m#y>HMr3rt zE*+@37$^-9k=+ZlqoBrA`UvZJQd&7lC(~CnyR1n45SFq;M%kd)@@7#Oc*5;}JRSHx^JdpoY-361+4TFh# zz{y-3tw|}&1r?jlGu0=V{bpq$?fJ=MxWXisjLmw)v9SlP>u{H1WuH8LT)HgxEL;!6 zV*kz>eQ$a%aM40-?crd$Y8uPTcu+QHwkr+Q1ABHVm#<>qXfbcKUhIhF813csfIfTY zIB$SE3|{)bt-1>8d7NTwLE&s;GiRPGK8v+thGNf2vrL-z0{2kmvI6keU?%E$@CfZ* zsHriu?qGkT3FBR`R~f-@VTfB50u?|qm3RTH;%Bu`i$-aQW9?#CA1YYV*B}g_gmI>N zbjV}5C~fE8xfL8u*nPAxKb#~81;HJJZFC5M`_opT| zk~})Db6r=|97VRGz`wGu4KvK~7|uSwKSbW(VNxtMEwIaWLs)7kS17Qlu;8GH)C!$h zjvKES2MR`Nv+{x47%w7Avsq0OlKEKwl7LLD0ROZ{oa+8>K?@_y$YHr|_JOj+ zTfACogNDIyaF^T%GlO+puZ~nSH2fZRPk&1`jVdnIzP$kFxSO_;WlVMoGA0K6^x{C! zemC+Z0XTlZl*l%YHNh3?fD0!^M~C(dfuhimTt-(HRUwj_o!5U!v&%tFR8`Mvb;`)y z28sFLQtiTpZ%YArYw&q?R%zVvmu9koCel?vRnHpe9 zmsWT0?FR>l%p-k51%rLRA0B~6`WFz+id_uK^3#=TOMR3q^>w&WLsGUe0 zdFj7N5V(+_kvp-`=~CGf8Mb;K(p#Tqxr$zdDP+GcCRjzza9J`4rm&CE>RLzUIn|`1 zw>ol-16R=jdmIOLh|V;V;H>kM11#kq{Do&{<0Ed_q9>eS3rq&u@bSj~>7 z%``*z@_0e9+|JELMBaHx=omLE;dwb{ql~CW&x>8Tyk@@~O-7GJAjNf3x zJMx7Fq`7qw4OF@qbWpqs)rtp zQ~NEgCS|>|l<@&ReTyFKk;;j|S+p_h>&(LjEFmBWqfNH9E-LOO6qkC*AQ1tAz-7k1 z@bvZ@^b|IWnN6+Cs2w)IIAWH)WS?lf7khA~jpor|t&jEACKi`^co$*3{YJKR#~^_D z0Vlaa4wFwnP&QEVkT5uASAOj?+!9> zN>x?qeBbzN-V%UucpC^`SfJn}3kJCfCd^1c<@V*fKzh=!_kkD!Vh@8GKg1T*8q|a! zBA@ZXcBq^qkuU=c5Lqz2bUQy3#Gf!zBmy#ID1dgQt^$Adn)w*mJ?6mavIf`@cH1^^ zFxI7H@Xrqi0aZt|h3U{$$sh>Xx} zfqincHyB`(3FqFrWMF6dqo`PoB@!a>-Q>O=4;Ad@@73)kj>CC6ln>|)4x>bJkF$(6 z@y?cX%=vHw%$L&VFt5MheNtg((OC2dI89mWb9$o6qf}15_3Fv0kC${uK!|yw#9%Xp zzF0H!VwjAcs8XX~k>_b`?V8Hryz<)820nrszVNB5sI49N+|Pi|eg9u8W8lNye;#1T z)C!Aw8S!7Z=Dai@SJRx(CM7>u+I*m{#oe5n>7(2-7pg7Qapov^%kOr93qY6uaehWx zdVC^=x7kj?Za1&L_N~?wZoMcCt_#6zn7kwS8tzMc`ggDY;ZH91#M91*L9W(If#U> z&Z#^fnX?gi@Ddk-O_i{l~=)Z~}A$D?K! zzl6Iex9^2XNJjT2_d6j2IQ}v`bj>o$l`t9L%YUz8CH`>Q@#y736x&wtTdy_G#V1Yx zcuO@eAJDv;2an>7J8ZdBAv*z@LwPZZ!32mTcmYiyp8q=s8k8WJSG;nUK`x}!ughc6 z09?$v!6lU{0XXN)!x#vn2YTPSazVgNU0y_lxTF<47CC-T+tEWnvFIux%OHRRK5+&TJ;8zxBEXOdDJ6$$YtQZ+Y= zz08Nh5c1gAi7Gh74F@400HN-5?})z*u0OqDDyCgETDm|TyYf_q=9Yrj^f^WnHrD~9 zq_`dXCuY)&@+6l}(JsXw%oaXwd=YZk64ZN8n;-3ltS-T+X3}49Z3$@&%!4XaUh?`n z(0?kRhy|)SDUl*h+)r$9FdW1bh1WnPx_n$5*af&&WX(-}kM8Q#g{w~D+=>=ExI7%E zJo$FL&B~L%fPz=AR5}hA0uQL%#1_tuW2d%Gi9uG~;h?r;b4>&sjPTxKz7o2G6Pa2C z2M6E4;R;}#0%Sq_hLbem_Y;6XhDG%CO+^UzCH}8Q{^CM8I6cn~mz_QzDhDUXRe@O( z1*WJ^wwI#JC)S$@&uX#~#8ak|{On{I7@nmi`N#1`##sDgVo`ox(L->w4K7Iufn+&2 zC9c=lzE4vVPNsv?kI4ZZ!!L}Z5g$qo1t8o*%u-pZOEU=zlC~guOI8t0#;K@0)+&|P zD>)4gcd^Yt3=zIypcjIif1eY!5Y-7Phx9|R+X}}VSOV}ZlVXV&a0bp9JC_Fz$blG# zE}l&hwk0~PNW7F1U}GBB%ls7vO0hcm3c zx0(K5Eu%~Zp1!C~Wm-mwRkv;xy-xB+F-Fyz^JX6xkjC&x2+|Fl=p0yBnCJ`A3*&k> z$PaK0%m69OipVZ%1F_hfNbG@qV^>fml%%vq`-JN4xOg}3BE}c^I8eG|mdY?%LPzd` z^%v_&Yb)#iZQ?leTk2pycIne_NyO&fZMis5Ljb}e5vU0tlL0SEU}=DN0l$Gnn+<$i zCc77iS9UM3_8Z+mc`*`q#uzvNA_+5K-IUCM{Wk{o-)%#71hDcXIH_g*2QbuU;9S@- z*w9n@4#vjg&((S)rqVVAdA8~8IUBX)PInx9UXurIK%@a{^_kMSCOu` z+b7Nz*edAt2~jQzitMg@0N3Fnf2h2^7u6d<KpRze4o5XZR1wvBL!d#k}3pd@&Slg90b zASj^`caB$Uj{q{P!>iJ5fm0z#_29S(6b(V!;ejAAGWAPuPy(#srXYZE3T?t~APDDn zfXagAF9=wUK(#z2#jTCk{NlC^R#N}X?|*x6{|dbI{_XF&URjNf{rI~sa|;V3G78M$ z$B*|{PCwrN?Fq-h9-QLedH&!gA+{L{byV8%=n9ur--5HOOIE43mY46rmV_K3*?8V* zxb5-o>-4iRYMn)K#(t`GOvKf4^@VD0jYg3zzIg7X|E;i?5x0GF+5-=noaC zLm%SqdYj#S?jRX`Dik|I>7fkAS-m}-r2H%68NTGPeqe=0iED?3H)}4-3IBqkONo;T z)-s8?AK2X9b27QCFV0G{Tg!Vwqq&_@S{B6eYad@dH0!nNi)LWY8tRBt))()JtQTYH zXe-Q#z+u03%IYnl1_7;2kpY(`KeRAkTw+f;Uv?P%v*Qs7UGH7uTIgz~_T?OLviNI= z)PPo*vi`kp-+{Sz)MoiCR2%A5qx`H9!B6(znDk$@+59?YNqCf0So~#j=j;S?ROv+V z$JX$XTT)}EqIdS}IBGh3C84@$roZN6uExVWp0REjqb{z|LBDJtqxuuFtnuJp>`wr9 ze2I@e!F4fC%BKzgg6uXiM;&c%Llr(&exB++U(sGycya=HolL~il7lFbC{`yWXe*m; z;u|%}aK$4; zHyN_2Qr>>0v>o$c50E~boH4&af`HJ0Roi|2HK*n#AzgwFWFp32as=YrgIlLtD(UNs zf@DcjxQbtU-Bu~^i*giDqPC24<+Kdkgc%}|Usg~Ap}&|~stpV_0Qg()MT467Lq9>= zP*MJV&q=;gVa6Vui|@#EuWPGedu>eNc-Ns;f$@qUb+-+!RiSJ7de`=v)*)OgY;`#W z_KL%aJ#2P$8`g9)6WgWPz@o{-uq*JSppRzkX=KpQXZovBx`C?>h4IjYqJY<%!?RmY zXkzI%$UUCS&v@qIJp)z-XM{*#RD`0eI0Sy-3?h1Zv5RiC@Gf1MSshEP<&1eZir}s2 zdjQ$xDYlVTB9KzVN#H$+9XktR*FNYR1kDM&0Ol*&_9Zy$>3s7y2%1zr1$tmNrL2Z< zc8@>&&VY8(fRo8bwb70``HwBAX||6Pc=qVKC$2Yr%yfK zWkxA0e7$k#7jNXDZM_!TEp0k3O7j0&j+N`PB27eI;X5h7To95}z%=eS$=8y9%KNdQ zJs)(Ee5CcpOYmoB%o1DWlRg|la7;>2py#-=;^?5N-#tG>Y zrVo_Tih!0f@=|s9HBrmtNuj65N=56C$Qf2L~1n>1h5Z@8c4s~v|@ z*Ggw&zWVpznQ=J-51ts*bt&ktd>-}w1Wd(qLiepVrBV6DM-q3qawjn{ zX#8L>G1uE;Z~Y9n7wOi}uNi(1UJcc2MW#j>$%6SmfRdj-=bOTBB8o>iVxAT{_iy)bpbwZ{Wby z*D{(vsC?LFr{l`AT&EPRkG>i7)xXtQYb5Wgq0zjc>$uZFvHma@RnF&{=CmC(I@1B` ze@!$lNsU!{uNdx^+wH2t<;54h^K&l>n~z$^r=5yM$0^npyURzIDD6BCxM8GttZO%S zg6Hd_Or!HHPRVP>Uh(_PW%p;(B(G>4qa?26B#LwA*>F@5cu5MB_p?BzjrY4}Z00UN zS55SADlEWD@@BkVGu4$#)Gb{gX)QP#)A#w@OyRaf_y- zPC!DJnt2kTn8{O}-0i|+-BmyL!AqTCpH1Vq^zr2Vg0-b~Z2prg_wzqnE_-D1JdbRn zca$*@J&EQGvuBPee(67#QIZvzMRfhm$>c=%ec-q~`SwTj;q$U+k5iu=FB~`NHjm`e z`6f_L7WjyiA}PoE%Z^5x2oUhOdOSB1L3=F|E8$523(6 z*(rtNwS3!=T`Uh>E>O_IT2o1KvC7jRF}Tje~t>cHly50?*QYl03HW_)TG{*waI zqzz!GK#E8qdi@^IvHUnB8w+=Ak3nG7Vf3wvf1SbboqQLH*z;Nw`ZZt^6e%NAE~GDl zi-?6DOxZ%Z0OPOSBDiWm({&4I?YLOEkSn6xgbu$V+&FCLcCRVaA%$D7FMvA(kiM&i zvYk-SQ6VV17(lG!>tz!V3Vqw5c_s-!+y*(1uQ{+vZY7R|*z^{HY8d=`t{sHV(gkf+ z9D+9W$l=zB@Y~p7p(A_vaEk!CjTGcF0g%%8ZLWaUlL7|{4WR9XYoJhg2n8yifFaC6 zZtXBBiI7$v_^c%d)xyoIAyc@Q4m7m@&>h?eNx`jXL~kFAeI?|334ok(g_uq7;NQV) zVc0@YB#e>7kE@5fVGvW9@Ld{8>IUT9=Ib4SUm4KUI6TS@a)x^ct%3|->Mi+j?KFTh zhOhiD@RbEA$iWPSaHH_6Ds)>GyebPGaN7!P-^5@39<-(i;1EpFX$sCNqfx*jTkA!R}3R`6G(K=})PK*mGJTp#qZT#0LiU&WzG1Ne0f zt`Y7%3Uz3~F!+1>;IA5x@7Dv+5x3nC`x|_hfn@c-=kXQgLojvzP{0`6%nv2On8*3b zn_*N^h^cXy0x>8brVoQSnYik}sxHLZIv@lSke2QS-1>a}-Yg(7*)k9nzDYr9Y6t~e zO(@zPNS7Re9GOzp&Dl5^sz3tseYqYVL}@Z>cYBK9)fbbWySyZ0_qUOO076EsQa6l-9eC z5@RreeEn?32q?+Jh5Ds_4qGjWb7L_A?>?%9`bUN$u^0C!u~o;#l4XUjYbK4DR@kYH zuR&MyMfAU`PUiHrCz{v5!e7w6~ z`D-vIW>4Q@L(%I4g=MI;nzkqyV;LnC;L78lIocsd3i8{kONbQ{H<9IhltM{XzTR$2 z8O)|1DWv_bJ&vxm<&^n%5Wj^Vv>Cfq5Y|u2rrUL3t}MRLxx@K7S`hxkeXb+M&~3*! zVI!?Uqf8f9b@A8hPAYYERLN^@fy1>iE8md}5*Zb4EVaC?mSk-&zuwyIkH+-cMHq($ zHV9#I@~oQUhuM294LC$+`SC!5@x-1^s_7}+>>^cl0&rnRP>s|iVGLOeV_zUjJSQ&Z zJY-Qojn8XxV=+;Qh6A<1S9SN{vgxdBv`-ejyG;=#QOO^_(Eg05*N#!<0W9v#eBx`P z#u+H0ez~xg7PM#iOQ&y!!aH_TXVw+pi5mkOK7{Gh2Trvhf0KFd@$s^5_vC3q=WlKrTD(y=5F z49bNy5Px_bt-+Nw7=L&#tHqL1ZA%$%(b0LdPUoJvy;tEG;l^|8Eg6 znM4Ik;x|ExO%{Cs%xUbQW|&W=NZ1fIFpfgLcN0hX@12! zFxtys%@UhJQv%PK(pimd*W^PSQ+@67_nkHDh|fG%!QNflH&V}hmuJP_BLifKMcF#8 zS3otxOCIh>&WzYs;S^dWe^(4O;h(DTu2GMz-k`4EG(SIgCgNg5DpL0CvOty14$BDv z;Ye@{VLhH+b)E2~bD}xkmJ?m!IaYsRPeGY^e5^&IQ&$DGvE^Eqzd>PUfkr!WcQQ|U zVu3iJ_1DhN2sNNRGy>|)*KJ0pdm{%0nbw}m+iYbQV&CYQ4s#iIQE%o zkAFY)$)hoX46SS(E$PeR7nQJIz;0zVQB zU@(%IpT`cn?__ohn+*I_pN-Bn6~lPuS$Tr#)>)#mB!)D{A0=eUkoIbul{i&@ZR(u4 z^HHT`vKn05_GMq3IhJP#u8mHScGX|aoZ_!8FWI-bD~0R>6X&lx(RT}j{p(SvZy}tt z>E*fU_s%ZQ?__IQWPty55ZH-<_>F%T5Iy>ZQ`eI*Oos$*pB>zZq&7{>(Pw~u8LdCY zXKSDs%4%HA=nAVi*ui-Z->RyX0z`^Y%P`}Ac3{R%QqtTe zZrsYoBK@*BPOVou6Nwpv{98X}-qs|gFkKb#5SwJ;V-AnMZ;2atpF?&b)k|}Jh7}jO5nPy-?>ZAd*tkL!wA&iN* zoYWeO{X4dE<`(ctv|S~xc*j~A+ZNVAnuX_r@)X`RlZBHXWuCJggzbr0$SRC|x@Lj? z3{chNRqZtMA_YtGLbxr!F;YK5aj~L<51d=T#_Ak-6y%si2V0@70J$6Rs~X6D2GEOi zcteg_Qi`(a^_iT3)+gqe`arpP>{g;W*o-9=b<`kLkXF^vAr!R+MFcOv2 zQAG&TsPSE6X6gcp{E8HwCHn(yt!>E|f1XV&h{oDDQ53(hRFrqBj95eC4jugmI5|2FaVh&W?}t}M{N!8599mt+9OPQXHAAGEHYGpiKfke z12zThmOcmF?9H?x$C4rcoV?f~lI89?RL5Rz3!T!79$7x^cRr@(4a!6zpZ7$9>nj(V z>aQ`5k>Hx#E?ar$Bff24)3T*)8mV_<{neQx)IMn;LA&BK=oXkSp}Y62RON=8yvO@t z{U1jWYF9ZLDuglUD4rPvBA=7j1hf;d6f=F9ocYsB``1C*Nm{RkF$t^o%py`OU~E%1 zmRx6v1=#*Fx4hC9QKPPCSdN)K!lDIu+qRZ`3{&5 zeB+XyO)qFRx#6VpK#Yo(84Vr$!nSu*v*nxt`m1@WH93>8?=CStxwV2C9^`!&7-KM( z1<%9NO#BVapy4wcJjW`KTXq1~g%Tpvjt;WF3&dSaaG{32hfqZQRP;m$LtZUdK&_Y= zLE+1Ia2iC{(;AFXt}N7WSpUL{Y~olx30Y6gnQ7B(*jQOFCJwaCFtMd^6c{oyk#)2( zS#I~9z$}Gln#owQC8agf9`xk;61Orr%-JVeEhS%4(@aS2rSA4%6PRsjip|E>UhTl> z0m?!tqSskg21Q>j!Cvn>MwYq?77jB43wRaS`HYfx?EL;D1VKY!2K#_;}=l$uVNYAJNms&?y5YZ#0Q zYimW+39w?>225<3{94-V1#PY#eaAk&HcLvTG-e^z&a`K61Z6*M%}b`h|LrdFs^ByWB^r@OvDF40BW z4zhV#>l(?4xp5`IH?*vd#~mbzg6v89wB6#!j;jF5)C+Zkjp_rsqLW)1^*1Ty>byM~ z?RBlBDo1Qmv`S6bz4(!OaH-7GOm&k1kgYcQ@7-?on`3D&B;Z=95G@fKvrch>j3eeb((7dNlJJPFOor_;A8 zcU%P-IC!ZZ=3nDw&2szGc39jQj_M8OvCpw|;cd^s&v7Vx?#$CD_29Oe)1QrogL$bz zqfcQm>zCNPN3H9cF1qsq>=_dve$Z9SLCHr&*lYSPM{r%`DWrhAfBhEEj6s<)pr(#6ya!@p$|W?yAP|9$O{EDKN)-?p zprghbR0w1Of|iKoA|OO;H7dffQIJq9tvL$SSV$TrVgRj3)F3A+YSWHLD;Kraz|_i6 ztwBZN4f@ARpW2tc^o5I{Ex2kB%(r99YB^t*wfNm1<=2QViu>HM)M}RT1=^2(-HGvouEbd?kQ%4tu?D+AR|0k7d7j0{pV5P zwmLy`=)+<23dfQ}I+W*YH#H|T_B#!Z9SdkI8@fv zLwtzF&8RKSEKh_XXs8qFqQas5jV`{8l-4AE!6A_kanxxzzWh;VMLG@5GEcTbpNDd~`Pw3@s?waTNmwH?TOy1w-tY*G z>z8OxMoF7Po?Mn_n33UE>K7k&xtXG4JZmD#`Rr`b%Vyou81nI_@X+^DN}Cg&>$l2@ zuA8jLWO`4TtN0yX@BR8Keyr7^_4+lZS_*q(4i*lrB5tiB5-S1panaT8`YS#}xty>_ zG9F6o=$|KK+4%T9tvZ|36GL*xO7q|~%R;Wnj(--X`+OKTBgQ3dnq@OA4DQ8f61GTd zgM7vPBp8usBP-hEf$a(IyfbjwN`>+z>#P!XvR_1UjV#+B zd_7*FNi|-!26H1{`)mDT)?o^btD$kb<;4B%GD+2_F~$8JMiRC&{+_2(-07@CB0ukH zJxsj5dP?p*$AuhCrQMnH@*U%|F4iSg3~;LTlo{L%&w(=eGjqcNp#!;HwyrAmqaX#- zPT^04e@8%}4uFVWW#~^8g&GVZigrI_yQ)QGFAvU*u=4>-i)I%v{Xhg{+GP6Rk$^difx){4+PCBBjz z+(=HgSdrA%axv7R!iA*2BsUEm$9CVGq{RB?;u{bj(;z%dp>|=DJV=4`e;vrPn_sI* zUYq_y4xGk6gpw^@)**rn3cGP^ZgqCx%!B&34aGT|ayEs$$RZ2}qPA>#UYdKL#=I2h zt}o)MBd(^@M0jK!Ts-^U>WtCAnw(#MHs9Z=TY7YA99U`usjKsIHoh0uVyuo+<=s92 z6k%9P)$xQx)p{UA6TjDG*G=KEyL6csM1>qXhhDCGY`pRP;@QAczdzD>d+vd+*ZRhN z`c;Q+>2=YA{qRn^v^VGc#=N2VyKC&sH(Sqo)eU^Z0HMxipilwHr`tFZ1bc*+Z`+WL zq%!#D92MpI1nLXS_(^y8^yzpOkGj8Ys_YmADKQjQx9v^xJlh_>$)njT z&4WtK1MQnWe$KJ1MWh?@|A6j@&uDVk zZ+ycbos0q;(Y1h;ZZGvbJ|M?1!=W{Tsg%6Cu4GR>Xh5JqR0WfYHGv`b)YcGG>x^ul zDuX9C&p?k5V-LbXY?3IphCfI!%}+ W5STz<0)hVxfw7X&^d;lSiqKys<-!U8 diff --git a/dovecot/sieve/bin/mailtrain b/dovecot/sieve/bin/mailtrain new file mode 100755 index 00000000..cfa36398 --- /dev/null +++ b/dovecot/sieve/bin/mailtrain @@ -0,0 +1,3 @@ +#!/bin/sh + +rspamc -h antispam:11334 -P mailu "learn_$1" /dev/stdin <&0 diff --git a/dovecot/sieve/report-ham.sieve b/dovecot/sieve/report-ham.sieve new file mode 100644 index 00000000..b160f36a --- /dev/null +++ b/dovecot/sieve/report-ham.sieve @@ -0,0 +1,3 @@ +require "vnd.dovecot.execute"; + +execute :pipe mailtrain ham; diff --git a/dovecot/sieve/report-spam.sieve b/dovecot/sieve/report-spam.sieve new file mode 100644 index 00000000..b2a544a6 --- /dev/null +++ b/dovecot/sieve/report-spam.sieve @@ -0,0 +1,3 @@ +require "vnd.dovecot.execute"; + +execute :pipe "mailtrain" "spam"; diff --git a/rspamd/conf/worker.d/controller.conf b/rspamd/conf/worker-controller.conf similarity index 93% rename from rspamd/conf/worker.d/controller.conf rename to rspamd/conf/worker-controller.conf index 5434527c..3f6ff609 100644 --- a/rspamd/conf/worker.d/controller.conf +++ b/rspamd/conf/worker-controller.conf @@ -2,7 +2,7 @@ worker { bind_socket = "0.0.0.0:11334"; type = "controller"; count = 1; - password = "q1"; + password = "mailu"; secure_ip = "127.0.0.1"; secure_ip = "::1"; static_dir = "${WWWDIR}";