Current section
19 Versions
Jump to
Current section
19 Versions
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…