Current section

19 Versions

Jump to

Compare versions

8 files changed
+381 additions
-232 deletions
  @@ -2,9 +2,10 @@
2 2 {<<"build_tools">>,[<<"rebar3">>]}.
3 3 {<<"description">>,<<"Zotonic SMTP Listener">>}.
4 4 {<<"files">>,
5 - [<<"LICENSE">>,<<"rebar.config">>,<<"rebar.lock">>,<<"src">>,
6 - <<"src/zotonic_listen_smtp.app.src">>,<<"src/zotonic_listen_smtp.erl">>,
7 - <<"src/zotonic_listen_smtp_check.erl">>,
5 + [<<"LICENSE">>,<<"priv">>,<<"priv/translations">>,
6 + <<"priv/translations/template">>,<<"rebar.config">>,<<"rebar.lock">>,
7 + <<"src">>,<<"src/zotonic_listen_smtp.app.src">>,
8 + <<"src/zotonic_listen_smtp.erl">>,<<"src/zotonic_listen_smtp_check.erl">>,
8 9 <<"src/zotonic_listen_smtp_receive.erl">>,
9 10 <<"src/zotonic_listen_smtp_spam.erl">>]}.
10 11 {<<"licenses">>,[<<"Apache-2.0">>]}.
  @@ -16,9 +17,9 @@
16 17 [{<<"gen_smtp">>,
17 18 [{<<"app">>,<<"gen_smtp">>},
18 19 {<<"optional">>,false},
19 - {<<"requirement">>,<<"1.2.0">>}]},
20 + {<<"requirement">>,<<"~> 1.3">>}]},
20 21 {<<"zotonic_core">>,
21 22 [{<<"app">>,<<"zotonic_core">>},
22 23 {<<"optional">>,false},
23 - {<<"requirement">>,<<"1.0.0-rc.15">>}]}]}.
24 - {<<"version">>,<<"1.0.0-rc.15">>}.
24 + {<<"requirement">>,<<"1.0.0-rc.17">>}]}]}.
25 + {<<"version">>,<<"1.0.0-rc.17">>}.
  @@ -9,8 +9,8 @@
9 9
10 10 {deps,
11 11 [
12 - {zotonic_core, "1.0.0-rc.15"},
13 - {gen_smtp, "1.2.0"}
12 + {zotonic_core, "1.0.0-rc.17"},
13 + {gen_smtp, "~> 1.3"}
14 14 ]
15 15 }.
  @@ -1,193 +1,199 @@
1 1 {"1.2.0",
2 - [{<<"bcrypt">>,{pkg,<<"bcrypt">>,<<"1.1.5">>},1},
2 + [{<<"bcrypt">>,{pkg,<<"bcrypt">>,<<"1.2.2">>},1},
3 3 {<<"bear">>,{pkg,<<"bear">>,<<"1.0.0">>},3},
4 4 {<<"bert">>,{pkg,<<"bert">>,<<"0.1.0">>},1},
5 5 {<<"buffalo">>,{pkg,<<"buffalo">>,<<"2.1.0">>},2},
6 6 {<<"cf">>,{pkg,<<"cf">>,<<"0.3.1">>},2},
7 - {<<"cowboy">>,{pkg,<<"cowboy">>,<<"2.9.0">>},2},
8 - {<<"cowlib">>,{pkg,<<"cowlib">>,<<"2.12.0">>},2},
9 - {<<"cowmachine">>,{pkg,<<"cowmachine">>,<<"1.10.3">>},1},
10 - {<<"depcache">>,{pkg,<<"depcache">>,<<"1.7.1">>},1},
7 + {<<"cowboy">>,{pkg,<<"cowboy">>,<<"2.14.2">>},2},
8 + {<<"cowlib">>,{pkg,<<"cowlib">>,<<"2.16.0">>},2},
9 + {<<"cowmachine">>,{pkg,<<"cowmachine">>,<<"1.14.0">>},1},
10 + {<<"depcache">>,{pkg,<<"depcache">>,<<"2.0.0">>},1},
11 11 {<<"dh_date">>,{pkg,<<"dh_date">>,<<"1.0.0">>},1},
12 12 {<<"diffy">>,{pkg,<<"diffy">>,<<"1.1.2">>},1},
13 - {<<"dispatch_compiler">>,{pkg,<<"dispatch_compiler">>,<<"1.0.0">>},1},
13 + {<<"dispatch_compiler">>,{pkg,<<"dispatch_compiler">>,<<"1.2.0">>},1},
14 14 {<<"edown">>,{pkg,<<"edown">>,<<"0.8.4">>},1},
15 15 {<<"eiconv">>,{pkg,<<"eiconv">>,<<"1.0.0">>},1},
16 - {<<"epgsql">>,{pkg,<<"epgsql">>,<<"4.6.0">>},1},
16 + {<<"epgsql">>,{pkg,<<"epgsql">>,<<"4.8.0">>},1},
17 17 {<<"erlang_exif">>,{pkg,<<"erlang_exif">>,<<"3.0.0">>},1},
18 - {<<"erlexec">>,{pkg,<<"erlexec">>,<<"1.21.0">>},2},
18 + {<<"erlexec">>,{pkg,<<"erlexec">>,<<"2.2.2">>},2},
19 19 {<<"erlpass">>,{pkg,<<"erlpass">>,<<"1.0.4">>},1},
20 20 {<<"erlware_commons">>,{pkg,<<"erlware_commons">>,<<"1.5.0">>},1},
21 + {<<"euneus">>,{pkg,<<"euneus">>,<<"2.4.0">>},2},
21 22 {<<"exometer_core">>,{pkg,<<"exometer_core">>,<<"1.6.1">>},1},
22 - {<<"filezcache">>,{pkg,<<"filezcache">>,<<"1.1.0">>},1},
23 + {<<"filezcache">>,{pkg,<<"filezcache">>,<<"2.2.1">>},1},
23 24 {<<"folsom">>,{pkg,<<"folsom">>,<<"1.0.0">>},2},
24 - {<<"gen_smtp">>,{pkg,<<"gen_smtp">>,<<"1.2.0">>},0},
25 - {<<"gproc">>,{pkg,<<"gproc">>,<<"0.9.0">>},1},
25 + {<<"gen_smtp">>,{pkg,<<"gen_smtp">>,<<"1.3.0">>},0},
26 + {<<"gproc">>,{pkg,<<"gproc">>,<<"1.1.0">>},1},
26 27 {<<"hut">>,{pkg,<<"hut">>,<<"1.3.0">>},2},
27 - {<<"jobs">>,{pkg,<<"jobs">>,<<"0.9.0">>},1},
28 - {<<"jsx">>,{pkg,<<"jsx">>,<<"3.0.0">>},1},
29 - {<<"jsxrecord">>,{pkg,<<"jsxrecord">>,<<"1.2.0">>},1},
28 + {<<"jobs">>,{pkg,<<"jobs">>,<<"0.10.0">>},1},
29 + {<<"json_polyfill">>,{pkg,<<"json_polyfill">>,<<"0.1.4">>},2},
30 + {<<"jsx">>,{pkg,<<"jsx">>,<<"3.1.0">>},1},
31 + {<<"jsxrecord">>,{pkg,<<"jsxrecord">>,<<"2.2.0">>},1},
30 32 {<<"keyserver">>,{pkg,<<"keyserver">>,<<"1.0.0">>},1},
31 - {<<"logstasher">>,{pkg,<<"logstasher">>,<<"1.0.0">>},1},
33 + {<<"logstasher">>,{pkg,<<"logstasher">>,<<"1.1.0">>},1},
32 34 {<<"meck">>,{pkg,<<"meck">>,<<"0.8.13">>},1},
33 35 {<<"mimetypes">>,{pkg,<<"mimetypes">>,<<"1.1.0">>},1},
34 - {<<"mochiweb">>,{pkg,<<"mochiweb">>,<<"2.22.0">>},1},
36 + {<<"mochiweb">>,{pkg,<<"mochiweb">>,<<"3.2.2">>},1},
35 37 {<<"mqtt_packet_map">>,{pkg,<<"mqtt_packet_map">>,<<"1.1.0">>},2},
36 - {<<"mqtt_sessions">>,{pkg,<<"mqtt_sessions">>,<<"2.1.0">>},1},
38 + {<<"mqtt_sessions">>,{pkg,<<"mqtt_sessions">>,<<"2.6.1">>},1},
37 39 {<<"oauth">>,{pkg,<<"oauth">>,<<"2.1.0">>},1},
38 40 {<<"parse_trans">>,{pkg,<<"parse_trans">>,<<"3.4.0">>},1},
39 41 {<<"poolboy">>,{pkg,<<"poolboy">>,<<"1.5.2">>},1},
40 42 {<<"proper">>,{pkg,<<"proper">>,<<"1.4.0">>},1},
41 - {<<"qdate">>,{pkg,<<"qdate">>,<<"0.7.0">>},1},
42 - {<<"qdate_localtime">>,{pkg,<<"qdate_localtime">>,<<"1.2.1">>},1},
43 - {<<"ranch">>,{pkg,<<"ranch">>,<<"2.1.0">>},1},
43 + {<<"qdate">>,{pkg,<<"qdate">>,<<"0.7.3">>},1},
44 + {<<"qdate_localtime">>,{pkg,<<"qdate_localtime">>,<<"1.2.2">>},1},
45 + {<<"ranch">>,{pkg,<<"ranch">>,<<"2.2.0">>},1},
44 46 {<<"recon">>,{pkg,<<"recon">>,<<"2.5.2">>},1},
45 - {<<"ringbuffer">>,{pkg,<<"ringbuffer">>,<<"1.2.0">>},1},
47 + {<<"ringbuffer">>,{pkg,<<"ringbuffer">>,<<"1.3.0">>},1},
46 48 {<<"router">>,{pkg,<<"router">>,<<"1.0.4">>},2},
47 - {<<"s3filez">>,{pkg,<<"s3filez">>,<<"1.4.1">>},1},
49 + {<<"s3filez">>,{pkg,<<"s3filez">>,<<"2.0.0">>},1},
48 50 {<<"setup">>,{pkg,<<"setup">>,<<"2.1.0">>},1},
49 51 {<<"sidejob">>,{pkg,<<"sidejob">>,<<"2.1.0">>},1},
50 - {<<"ssl_verify_fun">>,{pkg,<<"ssl_verify_fun">>,<<"1.1.6">>},2},
51 - {<<"template_compiler">>,{pkg,<<"template_compiler">>,<<"2.5.0">>},1},
52 + {<<"ssl_verify_fun">>,{pkg,<<"ssl_verify_fun">>,<<"1.1.7">>},2},
53 + {<<"template_compiler">>,{pkg,<<"template_compiler">>,<<"3.5.0">>},1},
52 54 {<<"tls_certificate_check">>,
53 - {pkg,<<"tls_certificate_check">>,<<"1.17.3">>},
55 + {pkg,<<"tls_certificate_check">>,<<"1.32.0">>},
54 56 1},
55 57 {<<"yamerl">>,{pkg,<<"yamerl">>,<<"0.8.1">>},1},
56 - {<<"zotonic_core">>,{pkg,<<"zotonic_core">>,<<"1.0.0-rc.15">>},0},
58 + {<<"zotonic_core">>,{pkg,<<"zotonic_core">>,<<"1.0.0-rc.17">>},0},
57 59 {<<"zotonic_filehandler">>,
58 - {pkg,<<"zotonic_filehandler">>,<<"1.0.0-rc.15">>},
60 + {pkg,<<"zotonic_filehandler">>,<<"1.0.0-rc.17">>},
59 61 1},
60 62 {<<"zotonic_fileindexer">>,
61 - {pkg,<<"zotonic_fileindexer">>,<<"1.0.0-rc.15">>},
63 + {pkg,<<"zotonic_fileindexer">>,<<"1.0.0-rc.17">>},
62 64 1},
63 65 {<<"zotonic_filewatcher">>,
64 - {pkg,<<"zotonic_filewatcher">>,<<"1.0.0-rc.15">>},
66 + {pkg,<<"zotonic_filewatcher">>,<<"1.0.0-rc.17">>},
65 67 1},
66 - {<<"zotonic_notifier">>,{pkg,<<"zotonic_notifier">>,<<"1.0.0-rc.15">>},1},
67 - {<<"zotonic_rdf">>,{pkg,<<"zotonic_rdf">>,<<"1.0.1">>},1},
68 - {<<"zotonic_ssl">>,{pkg,<<"zotonic_ssl">>,<<"1.3.0">>},1},
69 - {<<"zotonic_stdlib">>,{pkg,<<"zotonic_stdlib">>,<<"1.13.0">>},1}]}.
68 + {<<"zotonic_notifier">>,{pkg,<<"zotonic_notifier">>,<<"1.0.0-rc.17">>},1},
69 + {<<"zotonic_rdf">>,{pkg,<<"zotonic_rdf">>,<<"1.1.0">>},1},
70 + {<<"zotonic_ssl">>,{pkg,<<"zotonic_ssl">>,<<"1.4.0">>},1},
71 + {<<"zotonic_stdlib">>,{pkg,<<"zotonic_stdlib">>,<<"1.27.0">>},1}]}.
70 72 [
71 73 {pkg_hash,[
72 - {<<"bcrypt">>, <<"A6763BD4E1AF46D34776F85B7995E63A02978DE110C077E9570ED17006E03386">>},
74 + {<<"bcrypt">>, <<"99904DD4A0DF4E8454293E630F2C895A599A616304838468540402FECECD11ED">>},
73 75 {<<"bear">>, <<"430419C1126B477686CDE843E88BA0F2C7DC5CDF0881C677500074F704339A99">>},
74 76 {<<"bert">>, <<"A87D6693515070A9B287C1043CB7E5B2406BE0357685022764BFBD2609703555">>},
75 77 {<<"buffalo">>, <<"DA9581B05B50723267B2A61689D1FAF996D12881DF2B81FF641416594789A7CD">>},
76 78 {<<"cf">>, <<"5CB902239476E141EA70A740340233782D363A31EEA8AD37049561542E6CD641">>},
77 - {<<"cowboy">>, <<"865DD8B6607E14CF03282E10E934023A1BD8BE6F6BACF921A7E2A96D800CD452">>},
78 - {<<"cowlib">>, <<"58B73B75BEE32295A3E2CB37CD73D7B41E8B0C9C9A235869E6BFCCE3FC1A63AA">>},
79 - {<<"cowmachine">>, <<"B89220D8FDAA7FF5980805A8AE89801639443D13B3882172F787B6A762CD8DCD">>},
80 - {<<"depcache">>, <<"BB85FDD459FAF1374773EDA4249D2C1F037A32C509AC1E1C89654CAB3D4CC233">>},
79 + {<<"cowboy">>, <<"4008BE1DF6ADE45E4F2A4E9E2D22B36D0B5ABA4E20B0A0D7049E28D124E34847">>},
80 + {<<"cowlib">>, <<"54592074EBBBB92EE4746C8A8846E5605052F29309D3A873468D76CDF932076F">>},
81 + {<<"cowmachine">>, <<"FDF1A5FDF9BC209767970B6307084B775DFDB0F1AEB3D51CFC58FF3CBA9C072E">>},
82 + {<<"depcache">>, <<"57C092E9482FF2626FC96AB072B87AF86178EE817602126FAAE0B06FB6692918">>},
81 83 {<<"dh_date">>, <<"5B0C286665E160DE44132552931BEF06B5CB2244D5BD20E333A686E9D8BF92E3">>},
82 84 {<<"diffy">>, <<"7060E34FD512F210056B7E66E8D315CB90D06B97A6656D92FC299EB91692E36E">>},
83 - {<<"dispatch_compiler">>, <<"E55A3A7B5CC6F5F3887691FF600C177B52534504C8C67804DCE115B5756F2FA0">>},
85 + {<<"dispatch_compiler">>, <<"ACCA180E8771411BED645E0F53CEE41F49DFB6642D0A49AB78D0CA191F2B656F">>},
84 86 {<<"edown">>, <<"C0ADDD5530A66E4C8B4A68FFDE122F7DD710EAED815492E438AAAFE63D4C76E1">>},
85 87 {<<"eiconv">>, <<"EE1E47EE37799A05BEFF7A68D61F63CCCC93101833C4FB94B454C23B12A21629">>},
86 - {<<"epgsql">>, <<"A403534D03811C867E79405BB18D6061A5FCEF92ACF0236A9150AC93748CE143">>},
88 + {<<"epgsql">>, <<"C491B141B8C37BCE7B67F2079F168F339BB374A7CF9A286CB3B40AD1CD3FABE5">>},
87 89 {<<"erlang_exif">>, <<"557457BD2C48637ABD356D10059C5A6A1BC88AA152645A1DD43D2D843FCDADBB">>},
88 - {<<"erlexec">>, <<"748AF41A9B77FDE69BB82D5EC37E37384D4F849F971687DE49D57E8CB59422EA">>},
90 + {<<"erlexec">>, <<"EDB9F1A7D821A9DF4EFDC82BD11817AB5249DBD294D5C54EC249BD905F10E804">>},
89 91 {<<"erlpass">>, <<"395BAAF1E296B7B46C9D296C25040AF1B7EB91731F208D772BA346AB4572A8FC">>},
90 92 {<<"erlware_commons">>, <<"918C56D8FB3BE52AF0DF138ED6E0755E764AD4467CD7D025761F7D0A17D3DEC1">>},
93 + {<<"euneus">>, <<"E58178FB3B2C6FE139C863C4B347574E4C599BF1B9530ED3BAE7A10E2C7F870A">>},
91 94 {<<"exometer_core">>, <<"742ED00E1F10F8BEFF61A0F43E105C78C2F982E10F1C4E740D59DF89924C65EA">>},
92 - {<<"filezcache">>, <<"6F59DEB2A507CF39647DEA275DA664F7ACA19AB6B9424828AEC36587CED7B715">>},
95 + {<<"filezcache">>, <<"070D326D6BDE3E5E2C4E924EA252689F4302B2058379A85179556ADD875D2C50">>},
93 96 {<<"folsom">>, <<"50ECC998D2149939F1D5E0AA3E32788F8ED16A58E390D81B5C0BE4CC4EF25589">>},
94 - {<<"gen_smtp">>, <<"9CFC75C72A8821588B9B9FE947AE5AB2AED95A052B81237E0928633A13276FD3">>},
95 - {<<"gproc">>, <<"853CCB7805E9ADA25D227A157BA966F7B34508F386A3E7E21992B1B484230699">>},
97 + {<<"gen_smtp">>, <<"62C3D91F0DCF6CE9DB71BCB6881D7AD0D1D834C7F38C13FA8E952F4104A8442E">>},
98 + {<<"gproc">>, <<"AB00E5283015AFF9B61078E74C4D5CF59538F52EB6DBDFB8BD56CE76B3E43285">>},
96 99 {<<"hut">>, <<"71F2F054E657C03F959CF1ACC43F436EA87580696528CA2A55C8AFB1B06C85E7">>},
97 - {<<"jobs">>, <<"B2F0071531C4A48575A096FEC428DCDD4555C64E5086FE521FCEAF581B1F51DC">>},
98 - {<<"jsx">>, <<"20A170ABD4335FC6DB24D5FAD1E5D677C55DADF83D1B20A8A33B5FE159892A39">>},
99 - {<<"jsxrecord">>, <<"7C029EFCC0C8F48D4FFB9FB1401855051974535228775789A15DBBC360D2060B">>},
100 + {<<"jobs">>, <<"329C024A889249EA8262D0EF70BC7A498B7C96DA95977EBD026B13B069FB0E13">>},
101 + {<<"json_polyfill">>, <<"ED9AD7A8CBDB8D1F1E59E22CDAE23A153A5BB93B5529AEBAEB189CA4B4C536C8">>},
102 + {<<"jsx">>, <<"D12516BAA0BB23A59BB35DCCAF02A1BD08243FCBB9EFE24F2D9D056CCFF71268">>},
103 + {<<"jsxrecord">>, <<"486617130EAC71E5134CAF7CD4661A1850AE74B8BD628BDB586754D70A0FFA94">>},
100 104 {<<"keyserver">>, <<"09F9841C0721062C455E1FE02070DD4298EC821B9396419F36F0B3B2B3BB5A12">>},
101 - {<<"logstasher">>, <<"201887477C830545493025CE871D276FD923E6193ED5B8D3DE49B448B8B7A03F">>},
105 + {<<"logstasher">>, <<"BCC72B0B71E7D30B9D468A2766F931387ADEB963DEBDA51791DE99D827207D1D">>},
102 106 {<<"meck">>, <<"FFEDB39F99B0B99703B8601C6F17C7F76313EE12DE6B646E671E3188401F7866">>},
103 107 {<<"mimetypes">>, <<"82D455AE77558C0B839D7EF8F862FB67AD4450CD394FC728F8D894078F95B40F">>},
104 - {<<"mochiweb">>, <<"F104D6747C01A330C38613561977E565B788B9170055C5241AC9DD6E4617CBA5">>},
108 + {<<"mochiweb">>, <<"BB435384B3B9FD1F92F2F3FE652EA644432877A3E8A81ED6459CE951E0482AD3">>},
105 109 {<<"mqtt_packet_map">>, <<"4D44C0673B936491F9BE7AF4908092AB902C0ADFD168158DC73953A3A560C547">>},
106 - {<<"mqtt_sessions">>, <<"1D7A5DCB0ADE1C6BA6F9C7B583D3893C23E508D2B2EBE508477003CC70E15346">>},
110 + {<<"mqtt_sessions">>, <<"E4CDCBAB0C6F19F83C3F1BECCA51CFA08FDD2293C7B711E1FFA8F453CC94AA70">>},
107 111 {<<"oauth">>, <<"D339CD258E3384703CB75D21A7958F0258FD1B7B0022BC59AEA154BE74B817CC">>},
108 112 {<<"parse_trans">>, <<"BB87AC362A03CA674EBB7D9D498F45C03256ADED7214C9101F7035EF44B798C7">>},
109 113 {<<"poolboy">>, <<"392B007A1693A64540CEAD79830443ABF5762F5D30CF50BC95CB2C1AAAFA006B">>},
110 114 {<<"proper">>, <<"89A44B8C39D28BB9B4BE8E4D715D534905B325470F2E0EC5E004D12484A79434">>},
111 - {<<"qdate">>, <<"EBFFBE723E5290714ADCB74AFA1FBDB89DF152586B491F56306B29526D93975B">>},
112 - {<<"qdate_localtime">>, <<"72E1034DC6B7FEE8F588281EDDD0BD0DC5260005D758052F50634D265D382C18">>},
113 - {<<"ranch">>, <<"2261F9ED9574DCFCC444106B9F6DA155E6E540B2F82BA3D42B339B93673B72A3">>},
115 + {<<"qdate">>, <<"6FE5C29AE46B42B9F8915AC965AFEE1A12DAE81DE6C44417506AD25EB875130D">>},
116 + {<<"qdate_localtime">>, <<"43E1B20102F50A8B2A2BE7042C2F6BE989AD96CA2CC319DB5DF56E122E8873F6">>},
117 + {<<"ranch">>, <<"25528F82BC8D7C6152C57666CA99EC716510FE0925CB188172F41CE93117B1B0">>},
114 118 {<<"recon">>, <<"CBA53FA8DB83AD968C9A652E09C3ED7DDCC4DA434F27C3EAA9CA47FFB2B1FF03">>},
115 - {<<"ringbuffer">>, <<"A64CBAED172B0D75998732F09CDADDC289438E92DA8CB2849FE71D4F87A8F654">>},
119 + {<<"ringbuffer">>, <<"283D176C18A05E6C41F36BD8808E96CDDD85D104A984A1771FCA19526A478E61">>},
116 120 {<<"router">>, <<"E9311B9D296B41C9484FC933EFD847F87E7DCBAD94DEE1566FB77570CA59EF2C">>},
117 - {<<"s3filez">>, <<"660249CC653D99D73E35DF7EB74019CB482B849D20F34F719ED9E59FB18CFDD9">>},
121 + {<<"s3filez">>, <<"673DE2D0A31DFBBBA29DC79B5DA63BC815119F000CCF64D485826C48BFDA4BCF">>},
118 122 {<<"setup">>, <<"05F69185A5EB71474C9BC6BA892565651EC7507791F85632B7B914DBFE130510">>},
119 123 {<<"sidejob">>, <<"5D6A7C9C620778CB1908E46B552D767DF2ED4D77070BB7B5B8773D4FF18D1D37">>},
120 - {<<"ssl_verify_fun">>, <<"CF344F5692C82D2CD7554F5EC8FD961548D4FD09E7D22F5B62482E5AEAEBD4B0">>},
121 - {<<"template_compiler">>, <<"615356CED932E472411617CE1ED0C73162D90D5F526A5273024720FF62CA3C85">>},
122 - {<<"tls_certificate_check">>, <<"B84B68C5A607A37C98C88D26101028F9667DF520FF6557ACBABCAFB6799EB317">>},
124 + {<<"ssl_verify_fun">>, <<"354C321CF377240C7B8716899E182CE4890C5938111A1296ADD3EC74CF1715DF">>},
125 + {<<"template_compiler">>, <<"92723F5C86BC8EA467B736650866E576605026EDD97DD3F88150DE12ED22609F">>},
126 + {<<"tls_certificate_check">>, <<"A9BA9F1EA59F6728F564BC990047B56539C48F17866C2DEFA51D3C872A8DCDF6">>},
123 127 {<<"yamerl">>, <<"07DA13FFA1D8E13948943789665C62CCD679DFA7B324A4A2ED3149DF17F453A4">>},
124 - {<<"zotonic_core">>, <<"C3ACAD4C0585D809FE42A60F89E5085BD8451C7961ED8F05ABC693611D24EFBB">>},
125 - {<<"zotonic_filehandler">>, <<"542AB4C8A288D496F35135A65D0BDB30961801BD64893AA7B03459694D87454F">>},
126 - {<<"zotonic_fileindexer">>, <<"127393641639989B7B388900B9F2F403B76A907F0B12E898FA2F054F68681716">>},
127 - {<<"zotonic_filewatcher">>, <<"0B7DF7EC46ECD4AC2542F8478BC9B4F67D805EDF4EE48C93197CFB1CA1B17060">>},
128 - {<<"zotonic_notifier">>, <<"D74806F8AF8A5A3E7E423CBB994270EAA8E3A66144AB51EF25A99AAEF1C2D257">>},
129 - {<<"zotonic_rdf">>, <<"D0E72A13D179549E6520BFCCFFD25F4C93533098698EE77F73CFE5778345D708">>},
130 - {<<"zotonic_ssl">>, <<"8C6FFC725D4A2549C3FB941BC766C772EDD81091A28458FB4BAA6E5957D3810A">>},
131 - {<<"zotonic_stdlib">>, <<"D0EFD279C005B82CA54C015ECB95F1AF11FC5088546999FFDED986895D2F2F5A">>}]},
128 + {<<"zotonic_core">>, <<"14676C86E89DDA7984195E6F0469CEB89870468EE292DCE790CBA803D2E025F6">>},
129 + {<<"zotonic_filehandler">>, <<"F7D89B579879AF7A3F257692247FB31D6157E73486DB977FEB6B846EA9545E9C">>},
130 + {<<"zotonic_fileindexer">>, <<"748FF3FAB9FA2BE9EA3145F1AC99F3C7231A4D150B064129858324037D4ABEF5">>},
131 + {<<"zotonic_filewatcher">>, <<"6981EC2DFCDF0AD69B1C10055CA33022AB6D49B486D1CAC55D4CFCD86C5B738C">>},
132 + {<<"zotonic_notifier">>, <<"A2EA2E6C71DFCD762D7E09BFB34BC99C76683FC73E20BA15E67C020F555665A7">>},
133 + {<<"zotonic_rdf">>, <<"2946E96A281325CAC5D2BA74B41EBC0866920074F4CDC42992E461BB4AB452D9">>},
134 + {<<"zotonic_ssl">>, <<"C89E61836D0D305F9C2EFA25F097F0BE0B07C12AD7913DED3F376AF9886B8F81">>},
135 + {<<"zotonic_stdlib">>, <<"36D6F7A1004DEE169A61ADB57FDE8175F39F59634B5FFFD4AA0C1D0985D2A74E">>}]},
132 136 {pkg_hash_ext,[
133 - {<<"bcrypt">>, <<"3418821BC17CE6E96A4A77D1A88D7485BF783E212069FACFC79510AFBFF95352">>},
137 + {<<"bcrypt">>, <<"6428D68BB2608490E150BE406A7AB75B5BCE4A2B5A3B0C3F36A12E367A141561">>},
134 138 {<<"bear">>, <<"157B67901ADF84FF0DA6EAE035CA1292A0AC18AA55148154D8C582B2C68959DB">>},
135 139 {<<"bert">>, <<"2A561521EC3529B248658A3E2D3D4BFE6729B0AB8291C701BF15EF413EDA1506">>},
136 140 {<<"buffalo">>, <<"8F9EE40F2B5B08DE4EF30CEE42966656398D2009C3F0D091E2D4F111E6FDE5D0">>},
137 141 {<<"cf">>, <<"315E8D447D3A4B02BCDBFA397AD03BBB988A6E0AA6F44D3ADD0F4E3C3BF97672">>},
138 - {<<"cowboy">>, <<"2C729F934B4E1AA149AFF882F57C6372C15399A20D54F65C8D67BEF583021BDE">>},
139 - {<<"cowlib">>, <<"FA8A335B7C61263317C6214676CFB8C448AE9C36BAD3D98DF9CB166265940FD1">>},
140 - {<<"cowmachine">>, <<"6E2D1395D82CD35178D956C2FEC6F5040818B5769C629BA313FB69B7AB252A36">>},
141 - {<<"depcache">>, <<"40A441A5B1B8E322263C4E6EF35A7D5BC75D080E7A4AAB0D02BCE6059DF53BC1">>},
142 + {<<"cowboy">>, <<"569081DA046E7B41B5DF36AA359BE71A0C8874E5B9CFF6F747073FC57BAF1AB9">>},
143 + {<<"cowlib">>, <<"7F478D80D66B747344F0EA7708C187645CFCC08B11AA424632F78E25BF05DB51">>},
144 + {<<"cowmachine">>, <<"8C7E51E6978C52B4546A10D495B3FB289866D93A21C6DD529FF9A7562075E6A1">>},
145 + {<<"depcache">>, <<"B09A0915D02C99A9FA1D0885D7CF4306012ACE04C00F780BF9745B479F1B8624">>},
142 146 {<<"dh_date">>, <<"3F5D908383A0243A693147EA85A5654769B90078AC999A076ED6F0917F7614CF">>},
143 147 {<<"diffy">>, <<"9A59BBDCAFB6B115B5099711F7F114EDB00BE11658CEF08EF26E04F8040C7149">>},
144 - {<<"dispatch_compiler">>, <<"D45F7985312783DFF7F277B62B73DEBB526D4B3FAA38C9D44AA55F0BFB3C1141">>},
148 + {<<"dispatch_compiler">>, <<"781A720D89A33E7286EBC7EAA8A140AC01011C6A67FD0631B4D9C3A09E88A04C">>},
145 149 {<<"edown">>, <<"1CAF8F99BEE8B671EFA752EA163C9299A120BFC4A43820E1C5CE1BFDF63B4446">>},
146 150 {<<"eiconv">>, <<"8C80851DECF72FC4571A70278D7932E9A87437770322077ECF797533FBB792CD">>},
147 - {<<"epgsql">>, <<"6BE4910A02551F21EAB6F6F27D97B0D4B1DFFC617F1A64C8C95FDD45652FA9E1">>},
151 + {<<"epgsql">>, <<"00E550006A62FB439FC7E879419443C889C34605E9B9DC406029D8BAA1AD79D8">>},
148 152 {<<"erlang_exif">>, <<"F03815AC2C2808A84313B3DFAFF41CCB2E3BC7A643113274C76BF9241DE490CD">>},
149 - {<<"erlexec">>, <<"826616A344D1BC0A35C9D2C7175478166F607A4E3B14C878229FD405694D65C0">>},
153 + {<<"erlexec">>, <<"5E8E3C3773113785361B3B55218D92F7E91509CC9D679BF67C5C3703B394C900">>},
150 154 {<<"erlpass">>, <<"0F3B6FF0E854A78E6F356364AA91AE7DA27FA4DDDBA633033B67848B37550D38">>},
151 155 {<<"erlware_commons">>, <<"3E7C6FB2BA4C29B0DD5DFE9D031B66449E2088ECEC1A81465BD9FDE05ED7D0DB">>},
156 + {<<"euneus">>, <<"200EEFCE320314831AD79D77F03B109BC035E0A282B6B71FBCD3A7982804184D">>},
152 157 {<<"exometer_core">>, <<"EC1AF0A961F29B3854F61B594C79454D26AC7B1F6CB89BBF0688BFF65F6A6D6B">>},
153 - {<<"filezcache">>, <<"86CD60A0FE537E953F80B62927A98D755D4CD5584D51EEC5DB8628CB712BCD43">>},
158 + {<<"filezcache">>, <<"96649604F6F4B0F57D868F8F2C0E6339F364B1F6DFE1879517E1187A314ED100">>},
154 159 {<<"folsom">>, <<"DD6AB97278E94F9E4CFC43E188224A7B8C7EAEC0DD2E935007005177F3EEBB0E">>},
155 - {<<"gen_smtp">>, <<"5EE0375680BCA8F20C4D85F58C2894441443A743355430FF33A783FE03296779">>},
156 - {<<"gproc">>, <<"587E8AF698CCD3504CF4BA8D90F893EDE2B0F58CABB8A916E2BF9321DE3CF10B">>},
160 + {<<"gen_smtp">>, <<"0B73FBF069864ECBCE02FE653B16D3F35FD889D0FDD4E14527675565C39D84E6">>},
161 + {<<"gproc">>, <<"0481E1513457286A23E852D482434306F65A6479A98D2F828F6E750D53A4DCA0">>},
157 162 {<<"hut">>, <<"7E15D28555D8A1F2B5A3A931EC120AF0753E4853A4C66053DB354F35BF9AB563">>},
158 - {<<"jobs">>, <<"4E50CC8EDD7B5A0AE6F4C17B25514470A772626A5F6C24E9BC06A62AEF618237">>},
159 - {<<"jsx">>, <<"37BECA0435F5CA8A2F45F76A46211E76418FBEF80C36F0361C249FC75059DC6D">>},
160 - {<<"jsxrecord">>, <<"04A7E108F7FADC7F88FAB4CBCDFF34B5A1BFD4073A431ADDA288B1AE27DC0FA5">>},
163 + {<<"jobs">>, <<"09D486146BD32897726BB1F63DD95D1EB7F6F5A4C21C38CA58AB1646E8229724">>},
164 + {<<"json_polyfill">>, <<"48C397EE2547FA459EDE01A30EC0E85717ABED3010867A63EEAAC5F203274303">>},
165 + {<<"jsx">>, <<"0C5CC8FDC11B53CC25CF65AC6705AD39E54ECC56D1C22E4ADB8F5A53FB9427F3">>},
166 + {<<"jsxrecord">>, <<"7C8D6F6EE0E253EC6C8BC68825403089E7E22860111D5AA764FA793FF195AAD4">>},
161 167 {<<"keyserver">>, <<"40BE055BC455093E3A4D604219C2F293B416604A7D8E3776E761D549D1311192">>},
162 - {<<"logstasher">>, <<"25B6307B6F4A6B0CE523BAFF1E680811562007348A6B6EA1B2206DE9F0EAC575">>},
168 + {<<"logstasher">>, <<"FD0FCF05FB0A1050AC5C23FA24AEA207FA4AD42FE4FAE26000E004E7E39ED1A5">>},
163 169 {<<"meck">>, <<"D34F013C156DB51AD57CC556891B9720E6A1C1DF5FE2E15AF999C84D6CEBEB1A">>},
164 170 {<<"mimetypes">>, <<"234802943A215B1B6CE408015F103C4223EA98179E4FE411CD55E9A4D0B07E53">>},
165 - {<<"mochiweb">>, <<"CBBD1FD315D283C576D1C8A13E0738F6DAFB63DC840611249608697502A07655">>},
171 + {<<"mochiweb">>, <<"4114E51F1B44C270B3242D91294FE174CE1ED989100E8B65A1FAB58E0CBA41D5">>},
166 172 {<<"mqtt_packet_map">>, <<"82BD12177EC927244ECC40093FB5A9BFAC317106168FD11F7D49FB3434C6D1DA">>},
167 - {<<"mqtt_sessions">>, <<"27B240E69F53FC85072F90A0123CA57548D7D090CDC8F173CD25F98D3BEE4322">>},
173 + {<<"mqtt_sessions">>, <<"FC5307F3225F6023D3B32470F3C1C5AB3E2D3B67B08AE7A59718283B941D62AE">>},
168 174 {<<"oauth">>, <<"1E88788690B3CDE182F77829F205EAB75522255DCCED20341C5BA05CAC849B13">>},
169 175 {<<"parse_trans">>, <<"F99E368830BEA44552224E37E04943A54874F08B8590485DE8D13832B63A2DC3">>},
170 176 {<<"poolboy">>, <<"DAD79704CE5440F3D5A3681C8590B9DC25D1A561E8F5A9C995281012860901E3">>},
171 177 {<<"proper">>, <<"18285842185BD33EFBDA97D134A5CB5A0884384DB36119FEE0E3CFA488568CBB">>},
172 - {<<"qdate">>, <<"4D053F50D29D508FAF74AB1CEEC035476987DB411694CDC87C23E2F7A5BE08DB">>},
173 - {<<"qdate_localtime">>, <<"1109958D205C65C595C8C5694CB83EBAF2DBE770CF902E4DCE8AFB2C4123764D">>},
174 - {<<"ranch">>, <<"244EE3FA2A6175270D8E1FC59024FD9DBC76294A321057DE8F803B1479E76916">>},
178 + {<<"qdate">>, <<"244D906D1C2777ECB6EA19F60EE8A7451628E0C9AC47A09A5F64493E2C3C7BC4">>},
179 + {<<"qdate_localtime">>, <<"A38D5F1C5AE14B22F471E442B262AECCAFB915B664C7C364443DC73179C50FDA">>},
180 + {<<"ranch">>, <<"FA0B99A1780C80218A4197A59EA8D3BDAE32FBFF7E88527D7D8A4787EFF4F8E7">>},
175 181 {<<"recon">>, <<"2C7523C8DEE91DFF41F6B3D63CBA2BD49EB6D2FE5BF1EEC0DF7F87EB5E230E1C">>},
176 - {<<"ringbuffer">>, <<"D3E575FD919751E80B4DF275C6A4710E394F998EDDD9281B4FC202DAD6C1E299">>},
182 + {<<"ringbuffer">>, <<"B57AF2BBAE7EEAE6B002967CA9D0B281A1CFFCE66DE8C019EB28B48E9E23047E">>},
177 183 {<<"router">>, <<"C9F939968F8D8BCBEB03087829693E5BEEA6BFFD14A9717200FB57522A141838">>},
178 - {<<"s3filez">>, <<"DEF977CDB6772B65BCCBB1E70381FA1D41ACE1B65AC803BA940FB95BE318AE11">>},
184 + {<<"s3filez">>, <<"BFB6F1863817DDF4A5E7196DDF0082C8030958BBD502715936AD384D56D27119">>},
179 185 {<<"setup">>, <<"EFD072578F0CF85BEA96CAAFFC7ADB0992398272522660A136E10567377071C5">>},
180 186 {<<"sidejob">>, <<"6DC3DAC041C8C07C64401ECD22684730DA1497F5F14377B3CA9C5B2B9A135181">>},
181 - {<<"ssl_verify_fun">>, <<"BDB0D2471F453C88FF3908E7686F86F9BE327D065CC1EC16FA4540197EA04680">>},
182 - {<<"template_compiler">>, <<"CB686A036D0DC5409A45850013864B9AD3DADD84DDD788E375F3B2425C302060">>},
183 - {<<"tls_certificate_check">>, <<"EEC5BA4298DEE0B4E1EF612D90B2A35F6AF064D477BD9531EAC19CABA9F84A0A">>},
187 + {<<"ssl_verify_fun">>, <<"FE4C190E8F37401D30167C8C405EDA19469F34577987C76DDE613E838BBC67F8">>},
188 + {<<"template_compiler">>, <<"950BFAE288E77C092313B3CFBFC33426E38FBFB044C9E37F62FAF991E2BE3AF0">>},
189 + {<<"tls_certificate_check">>, <<"38E38DB768244D808E11ED27F812E7D927EA5F999007B07D0473DB44D7F7CC51">>},
184 190 {<<"yamerl">>, <<"96CB30F9D64344FED0EF8A92E9F16F207DE6C04DFFF4F366752CA79F5BCEB23F">>},
185 - {<<"zotonic_core">>, <<"168919485B71CEC632E18C26534525F8DE5BC51C408ADFE158A18932C6A194E4">>},
186 - {<<"zotonic_filehandler">>, <<"76387F9DCC77E7F5A4CBEFFF24FF44871F31F428BCBD9828487E5FA248E90805">>},
187 - {<<"zotonic_fileindexer">>, <<"EFE75B44FE5E6632558530380CBE56C1CCC5E152908C8107F3ECE7F29650F209">>},
188 - {<<"zotonic_filewatcher">>, <<"B739C09BFCF1BE8C486878E6E1D5D4E9287CCFFCD4EEDA6DAA5625506FE0517A">>},
189 - {<<"zotonic_notifier">>, <<"9353699ABE89E7B6514751AE351DFF4285D8AEBEFE047371BCCC8DEA2782EE38">>},
190 - {<<"zotonic_rdf">>, <<"096C1E2E16582FE3F6253534068D22B39F246D84C01237C42A8B489B42BB7A16">>},
191 - {<<"zotonic_ssl">>, <<"9280FF76A55744CB52CB874352ABD01D77E676FAD6E922B187E6D4D589CCE2A0">>},
192 - {<<"zotonic_stdlib">>, <<"C2CFB9F9DB6C9EFC58EAC6C311ADA85C27CFFA4BE99C49786BD9A950CB054519">>}]}
191 + {<<"zotonic_core">>, <<"AB05137EACFACC282C9AF70FCBF9AB338B80212FC3074345885C81CD57ED6956">>},
192 + {<<"zotonic_filehandler">>, <<"6CB33DC66FCFBD3598CFAD63DE1559FD255E3548B2F63FFB9550370704076673">>},
193 + {<<"zotonic_fileindexer">>, <<"E2869B0720F4CE88DA80FB75A46FC3A2DD95E5BD1142880422EF0BE95EEC7CB9">>},
194 + {<<"zotonic_filewatcher">>, <<"4A27DF1BDC60379827A9074E0472DD141DB8130F83E3D8AFB6778DA69ACCDBF9">>},
195 + {<<"zotonic_notifier">>, <<"CD1B54E1AE79F74B911A917C4815316F18EBFB4E0AD429211ECD3A1990034F26">>},
196 + {<<"zotonic_rdf">>, <<"1D195A268BC00A7FC74EB069F836C1DB7B96FA7AD4F1645E9D671097A9874A20">>},
197 + {<<"zotonic_ssl">>, <<"A3640BC23610B02C71CD50C9E5FD09BF2E3BD2AACB323FCE0C94AB2EB8B7C79C">>},
198 + {<<"zotonic_stdlib">>, <<"B9555F50717F2F8FBD3D4156CE7F4E2DF380441D942DE54789466940929B08C3">>}]}
193 199 ].
  @@ -1,6 +1,6 @@
1 1 {application,zotonic_listen_smtp,
2 2 [{description,"Zotonic SMTP Listener"},
3 - {vsn,"1.0.0-rc.15"},
3 + {vsn,"1.0.0-rc.17"},
4 4 {registered,[]},
5 5 {applications,[kernel,stdlib,gen_smtp,zotonic_core]},
6 6 {env,[]},
  @@ -3,9 +3,10 @@
3 3 %% with gen_smtp.
4 4 %% Original author: Andrew Thompson (andrew@hijacked.us)
5 5 %% @author Atilla Erdodi <atilla@maximonster.com>
6 - %% @copyright 2010-2021 Maximonster Interactive Things
6 + %% @copyright 2010-2025 Maximonster Interactive Things
7 + %% @end
7 8
8 - %% Copyright 2010-2021 Maximonster Interactive Things
9 + %% Copyright 2010-2025 Maximonster Interactive Things
9 10 %%
10 11 %% Licensed under the Apache License, Version 2.0 (the "License");
11 12 %% you may not use this file except in compliance with the License.
  @@ -48,7 +49,7 @@ child_spec() ->
48 49 case {z_config:get(smtp_listen_ip),z_config:get(smtp_listen_port)} of
49 50 {none, Port} ->
50 51 ?LOG_WARNING(#{
51 - text => "SMTP server disabled: 'smtp_listen_ip' is set to 'none'",
52 + text => <<"SMTP server disabled: 'smtp_listen_ip' is set to 'none'">>,
52 53 in => zotonic_listen_smtp,
53 54 ip => none,
54 55 port => Port,
  @@ -57,7 +58,7 @@ child_spec() ->
57 58 ignore;
58 59 {IP, none} ->
59 60 ?LOG_WARNING(#{
60 - text => "SMTP server disabled: 'smtp_listen_port' is set to 'none'",
61 + text => <<"SMTP server disabled: 'smtp_listen_port' is set to 'none'">>,
61 62 in => zotonic_listen_smtp,
62 63 ip => ip_to_string(IP),
63 64 port => none,
  @@ -76,16 +77,33 @@ child_spec() ->
76 77 [{address, IP} | Args1]
77 78 end,
78 79 ?LOG_NOTICE(#{
79 - text => "SMTP server listening",
80 + text => <<"SMTP server listening">>,
80 81 in => zotonic_listen_smtp,
81 82 ip => ip_to_string(IP),
82 83 port => Port,
83 84 protocol => smtp
84 85 }),
85 - Options = [{port, Port} | Args2],
86 + Options = [
87 + {port, Port},
88 + {sessionoptions, [
89 + {tls_options, tls_options()},
90 + {size, z_config:get(smtp_listen_size)}
91 + ]}
92 + | Args2
93 + ],
86 94 gen_smtp_server:child_spec(?MODULE, ?MODULE, Options)
87 95 end.
88 96
97 + tls_options() ->
98 + Options = z_ssl_certs:ssl_listener_options(),
99 + Options1 = lists:keydelete(session_tickets, 1, Options),
100 + Options2 = lists:keydelete(reuse_sessions, 1, Options1),
101 + Options3 = lists:keydelete(anti_replay, 1, Options2),
102 + [
103 + {session_tickets, disabled}
104 + | Options3
105 + ].
106 +
89 107 ip_to_string(any) -> "any";
90 108 ip_to_string(IP) -> inet:ntoa(IP).
91 109
  @@ -99,17 +117,17 @@ init(Hostname, SessionCount, Peer, Options) ->
99 117 options = Options,
100 118 peer = Peer,
101 119 hostname = HostnameB,
102 - banner = iolist_to_binary( io_lib:format("~s ESMTP Zotonic", [HostnameB]) )
120 + banner = <<HostnameB/binary, " ESMTP Zotonic">>
103 121 },
104 122 {ok, State#state.banner, State};
105 123 true ->
106 124 ?LOG_WARNING(#{
107 - text => "SMTP Connection limit exceeded",
125 + text => <<"SMTP Connection limit exceeded">>,
108 126 in => zotonic_listen_smtp,
109 127 limit => ?SESSION_LIMIT,
110 128 session_count => SessionCount,
111 129 src => inet:ntoa(Peer),
112 - hostname => Hostname,
130 + hostname => HostnameB,
113 131 protocol => smtp
114 132 }),
115 133 {stop, normal, io_lib:format("421 ~s is too busy to accept mail right now", [Hostname])}
  @@ -126,10 +144,13 @@ handle_HELO(Hostname, State) ->
126 144
127 145 -spec handle_EHLO(Hostname :: binary(), Extensions :: list(), State :: #state{}) -> {'error', string(), #state{}} | {'ok', list(), #state{}}.
128 146 handle_EHLO(Hostname, Extensions, State) ->
147 + IsSTARTTLS = z_config:get(smtp_starttls),
129 148 MyExtensions = case proplists:get_value(auth, State#state.options, false) of
130 149 true ->
131 150 % auth is enabled, so advertise it
132 151 Extensions ++ [{"AUTH", "PLAIN LOGIN CRAM-MD5"}, {"STARTTLS", true}];
152 + false when IsSTARTTLS ->
153 + Extensions ++ [{"STARTTLS", true}];
133 154 false ->
134 155 Extensions
135 156 end,
  @@ -149,7 +170,7 @@ check_dnsbl(State) ->
149 170 {ok, State};
150 171 {ok, {blocked, Service}} ->
151 172 ?LOG_NOTICE(#{
152 - text => "SMTP DNSBL check: blocked -- closing connection with a 451",
173 + text => <<"SMTP DNSBL check: blocked -- closing connection with a 451">>,
153 174 in => zotonic_listen_smtp,
154 175 src => inet:ntoa(State#state.peer),
155 176 dnsbl => Service,
  @@ -175,7 +196,7 @@ handle_RCPT(To, State) ->
175 196 case zotonic_listen_smtp_receive:get_site(To) of
176 197 {ok, Site} ->
177 198 ?LOG_INFO(#{
178 - text => "SMTP accepting incoming email",
199 + text => <<"SMTP accepting incoming email">>,
179 200 in => zotonic_listen_smtp,
180 201 recipient => To,
181 202 site => Site,
  @@ -185,7 +206,7 @@ handle_RCPT(To, State) ->
185 206 {ok, State};
186 207 {error, unknown_host} ->
187 208 ?LOG_WARNING(#{
188 - text => "SMTP not accepting mail",
209 + text => <<"SMTP not accepting mail">>,
189 210 in => zotonic_listen_smtp,
190 211 reason => unknown_host,
191 212 recipient => To,
  @@ -195,7 +216,7 @@ handle_RCPT(To, State) ->
195 216 {error, "551 User not local. Relay denied.", State};
196 217 {error, not_running} ->
197 218 ?LOG_WARNING(#{
198 - text => "SMTP not accepting mail for site",
219 + text => <<"SMTP not accepting mail for site">>,
199 220 in => zotonic_listen_smtp,
200 221 reason => not_running,
201 222 recipient => To,
  @@ -208,11 +229,11 @@ handle_RCPT(To, State) ->
208 229 % {error, "451 Server error. Please try again later.", State}
209 230 end.
210 231
211 - -spec handle_RCPT_extension(Extension :: binary(), State :: #state{}) -> {'ok', #state{}} | 'error'.
232 + -spec handle_RCPT_extension(Extension :: binary(), State :: #state{}) -> {'ok', #state{}}.
212 233 handle_RCPT_extension(_Extension, State) ->
213 234 {ok, State}.
214 235
215 - -spec handle_DATA(From :: binary(), To :: [binary(),...], Data :: binary(), State :: #state{}) -> {'ok', string(), #state{}} | {'error', string(), #state{}}.
236 + -spec handle_DATA(From :: binary(), To :: [binary(),...], Data :: binary(), State :: #state{}) -> {'ok', binary(), #state{}} | {'error', string(), #state{}}.
216 237 handle_DATA(From, To, Data, State) ->
217 238 MsgId = z_ids:id(32),
218 239 DataRcvd = add_received_header(Data, MsgId, State),
  @@ -254,7 +275,7 @@ decode_and_receive(MsgId, From, To, DataRcvd, State) ->
254 275 case find_bounce_id({Type, Subtype}, To, Headers) of
255 276 {ok, MessageId} ->
256 277 ?LOG_NOTICE(#{
257 - text => "SMTP email is bounce of previous message id",
278 + text => <<"SMTP email is bounce of previous message id">>,
258 279 in => zotonic_listen_smtp,
259 280 recipient => To,
260 281 from => From,
  @@ -272,7 +293,7 @@ decode_and_receive(MsgId, From, To, DataRcvd, State) ->
272 293 bounce ->
273 294 % Bounced, but without a message id (accept & silently drop the message)
274 295 ?LOG_NOTICE(#{
275 - text => "SMTP email is bounce of unknown message id",
296 + text => <<"SMTP email is bounce of unknown message id">>,
276 297 in => zotonic_listen_smtp,
277 298 recipient => To,
278 299 from => From,
  @@ -283,7 +304,7 @@ decode_and_receive(MsgId, From, To, DataRcvd, State) ->
283 304 maybe_autoreply ->
284 305 % Sent to a bounce address, but not a bounce (accept & silently drop the message)
285 306 ?LOG_NOTICE(#{
286 - text => "SMTP email is an autoreply, ignored",
307 + text => <<"SMTP email is an autoreply, ignored">>,
287 308 in => zotonic_listen_smtp,
288 309 recipient => To,
289 310 from => From,
  @@ -297,7 +318,7 @@ decode_and_receive(MsgId, From, To, DataRcvd, State) ->
297 318 end;
298 319 {error, Reason} ->
299 320 ?LOG_ERROR(#{
300 - text => "SMTP receive: Message decode FAILED",
321 + text => <<"SMTP receive: Message decode FAILED">>,
301 322 in => zotonic_listen_smtp,
302 323 reason => Reason,
303 324 recipient => To,
  @@ -310,7 +331,7 @@ decode_and_receive(MsgId, From, To, DataRcvd, State) ->
310 331
311 332 receive_data({ok, {ham, SpamStatus, _SpamHeaders}}, {Type, Subtype, Headers, Params, Body}, MsgId, From, To, DataRcvd, State) ->
312 333 ?LOG_NOTICE(#{
313 - text => "SMTP email received",
334 + text => <<"SMTP email received">>,
314 335 in => zotonic_listen_smtp,
315 336 recipient => To,
316 337 from => From,
  @@ -323,7 +344,7 @@ receive_data({ok, {ham, SpamStatus, _SpamHeaders}}, {Type, Subtype, Headers, Par
323 344 reply_handled_status(Received, MsgId, reset_state(State));
324 345 receive_data({ok, {spam, SpamStatus, _SpamHeaders}}, _Decoded, MsgId, From, To, _DataRcvd, State) ->
325 346 ?LOG_NOTICE(#{
326 - text => "SMTP Refusing spam",
347 + text => <<"SMTP Refusing spam">>,
327 348 in => zotonic_listen_smtp,
328 349 recipient => To,
329 350 from => From,
  @@ -334,7 +355,7 @@ receive_data({ok, {spam, SpamStatus, _SpamHeaders}}, _Decoded, MsgId, From, To,
334 355 {error, zotonic_listen_smtp_spam:smtp_status(SpamStatus, From, To, State#state.peer), reset_state(State)};
335 356 receive_data({error, Reason}, Decoded, MsgId, From, To, DataRcvd, State) ->
336 357 ?LOG_WARNING(#{
337 - text => "SMTP receive: passing erronous spam check as ham",
358 + text => <<"SMTP receive: passing erronous spam check as ham">>,
338 359 in => zotonic_listen_smtp,
339 360 reason => Reason,
340 361 recipient => To,
Loading more files…