Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vWC5V-00EvHH-0F for pgsql-www@arkaria.postgresql.org; Thu, 18 Dec 2025 11:22:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vWC5T-001iNM-2m for pgsql-www@arkaria.postgresql.org; Thu, 18 Dec 2025 11:22:28 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vWC5T-001iMx-1S for pgsql-www@lists.postgresql.org; Thu, 18 Dec 2025 11:22:28 +0000 Received: from smtp.cmatte.me ([54.37.205.152]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vWC5R-001Jam-29 for pgsql-www@lists.postgresql.org; Thu, 18 Dec 2025 11:22:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cmatte.me; s=myselector; t=1766056942; bh=6j4R+BxH+q7DdFFghC+L5elcq8NnAEdhoQwcMqg5SsY=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=OY4WeJe703FFHOmOaIDAoYR4KLfsuy++REy6yKn4srXYpJBLx1lDCGwxKpyExevjT MlGUn/TVYC5g3ADrqQci1UVnBvbZmf5BjR3Xvl6VNskZYQ4yFn3l27zsvEutU1EsrL 9Zjj7vdccvhnHZxReZ+EZSBQnELQ88YVYVJcZR1Mp7n9Rn3bEmduxu+u7Gupmx/HXW n6iPLN49u1/4RSn6qCdDuhS30jzWK7S4PlAAnteK6j3Gg/t3t9QIN/TQnBpk6sSWUH TNGzKz1XrUmvl+Wqk/2V4yazhpVDUr3BKVCjlM3HraWLJ5C6sGGjhgvrUACZa/lchd 2r10uneQSKWMg== Content-Type: multipart/mixed; boundary="------------1NWAwZ04IjB8i0y5fAN6zSVb" Message-ID: <3de25c28-38a9-414a-aa69-219164bd6afb@cmatte.me> Date: Thu, 18 Dec 2025 12:22:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: pglister: pgarchives does not synchronize subscribers with email delivery disabled (proposed patch) To: Magnus Hagander Cc: PostgreSQL WWW References: Content-Language: en-US From: =?UTF-8?Q?C=C3=A9lestin_Matte?= Autocrypt: addr=celestin.matte@cmatte.me; keydata= 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 co++UjjOPJT3t7qY4ekbQ3xf6bdSDZh7Aw== In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------1NWAwZ04IjB8i0y5fAN6zSVb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit > mailinglist_subscribers is used for actual mail delivery as well, isn't it? If you just change the view, it will change all deliveries and basically the nomail switch to not work at all? > > While you're on the right track to include them, don't we also need to include the nomail column as a column in the view and then filter on that when sending email? Correct. I added nomail in the mailinglist_subscribers view, then made just it was filtered upon in mailhandler.py. Series of patches attached Thanks for the review! -- Célestin Matte --------------1NWAwZ04IjB8i0y5fAN6zSVb Content-Type: text/x-patch; charset=UTF-8; name="0001-Include-nomail-users-in-API-call-results.patch" Content-Disposition: attachment; filename="0001-Include-nomail-users-in-API-call-results.patch" Content-Transfer-Encoding: base64 RnJvbSAzN2FkM2FiYzI4ODdmMjhmMTE4ZDFhZTQ3OGU3MDQ2OThiNzMxYzNiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qz1DMz1BOWxlc3Rpbj0yME1hdHRl Pz0gPGRldkBjbWF0dGUubWU+CkRhdGU6IE1vbiwgMjIgU2VwIDIwMjUgMTk6NTc6MjEgKzAy MDAKU3ViamVjdDogW1BBVENIIDEvM10gSW5jbHVkZSBub21haWwgdXNlcnMgaW4gQVBJIGNh bGwgcmVzdWx0cwoKT3RoZXJ3aXNlLCBwZ2FyY2hpdmVzJ3MgcGdsaXN0ZXJfc3luYyB3b24n dCBnaXZlIGFjY2VzcyB0byB0aGVzZSB1c2VycwotLS0KIC4uLjYwX2ZpeF9tYWlsaW5nbGlz dF9zdWJzY3JpYmVyc19zcWxfdmlldy5weSB8IDI4ICsrKysrKysrKysrKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgd2Vi L3BnbGlzdGVyL2xpc3RzL21pZ3JhdGlvbnMvMDA2MF9maXhfbWFpbGluZ2xpc3Rfc3Vic2Ny aWJlcnNfc3FsX3ZpZXcucHkKCmRpZmYgLS1naXQgYS93ZWIvcGdsaXN0ZXIvbGlzdHMvbWln cmF0aW9ucy8wMDYwX2ZpeF9tYWlsaW5nbGlzdF9zdWJzY3JpYmVyc19zcWxfdmlldy5weSBi L3dlYi9wZ2xpc3Rlci9saXN0cy9taWdyYXRpb25zLzAwNjBfZml4X21haWxpbmdsaXN0X3N1 YnNjcmliZXJzX3NxbF92aWV3LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjVmNDllNDgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdsaXN0ZXIvbGlzdHMvbWln cmF0aW9ucy8wMDYwX2ZpeF9tYWlsaW5nbGlzdF9zdWJzY3JpYmVyc19zcWxfdmlldy5weQpA QCAtMCwwICsxLDI4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKK2Zyb20gZGphbmdvLmRiIGltcG9ydCBt aWdyYXRpb25zLCBtb2RlbHMKKworCitjbGFzcyBNaWdyYXRpb24obWlncmF0aW9ucy5NaWdy YXRpb24pOgorCisgICAgZGVwZW5kZW5jaWVzID0gWworICAgICAgICAoJ2xpc3RzJywgJzAw NTlfcmZjODA1OCcpLAorICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBbCisgICAgICAgIG1p Z3JhdGlvbnMuUnVuU1FMKCIiIgorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBtYWlsaW5nbGlz dF9zdWJzY3JpYmVycyBBUworICAgU0VMRUNUIGxpc3RfaWQgQVMgbGlzdGlkLAorICAgICAg ICAgbHMuc3Vic2NyaWJlcl9pZCBBUyBzdWJzY3JpYmVyYWRkcmVzc19pZCwKKyAgICAgIGVt YWlsLAorICAgICAgZWxpbWluYXRlY2MsCisgICAgICB0b2tlbiwKKyAgICAgIHMudXNlcl9p ZCBBUyB1c2VyaWQsCisgICAgICAoU0VMRUNUIGFycmF5X2FnZyhsaXN0dGFnX2lkKSBGUk9N IGxpc3RzX2xpc3RzdWJzY3JpcHRpb25fdGFncyBsc3QgV0hFUkUgbHN0Lmxpc3RzdWJzY3Jp cHRpb25faWQ9bHMuaWQpIEFTIHRhZ3MKKyAgIEZST00gbGlzdHNfbGlzdHN1YnNjcmlwdGlv biBscworICAgSU5ORVIgSk9JTiBsaXN0c19zdWJzY3JpYmVyYWRkcmVzcyBzYSBPTiBzYS5p ZD1scy5zdWJzY3JpYmVyX2lkCisgICBMRUZUIEpPSU4gbGlzdHNfc3Vic2NyaWJlciBzIE9O IHMudXNlcl9pZD1zYS5zdWJzY3JpYmVyX2lkCisgICBXSEVSRSBjb25maXJtZWQgQU5EIHN1 YnNjcmlwdGlvbl9jb25maXJtZWQKKyIiIiksCisgICAgXQotLSAKMi41Mi4wCgo= --------------1NWAwZ04IjB8i0y5fAN6zSVb Content-Type: text/x-patch; charset=UTF-8; name="0002-Add-nomail-in-mailinglist_subscribers-view.patch" Content-Disposition: attachment; filename="0002-Add-nomail-in-mailinglist_subscribers-view.patch" Content-Transfer-Encoding: base64 RnJvbSBjYzc3OGE0MzYwZmE3ZTM3ODhlZWZmMjYwYjZjZGFmMzEzYTYyZmM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qz1DMz1BOWxlc3Rpbj0yME1hdHRl Pz0gPGRldkBjbWF0dGUubWU+CkRhdGU6IFRodSwgMTggRGVjIDIwMjUgMTE6MjE6MDQgKzAx MDAKU3ViamVjdDogW1BBVENIIDIvM10gQWRkIG5vbWFpbCBpbiBtYWlsaW5nbGlzdF9zdWJz Y3JpYmVycyB2aWV3CgpTbyB3ZSBjYW4gZmlsdGVyIGJhc2VkIG9uIGl0IGR1cmluZyBlbWFp bCBkZWxpdmVyeQotLS0KIC4uLi9taWdyYXRpb25zLzAwNjBfZml4X21haWxpbmdsaXN0X3N1 YnNjcmliZXJzX3NxbF92aWV3LnB5ICAgIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS93ZWIvcGdsaXN0ZXIv bGlzdHMvbWlncmF0aW9ucy8wMDYwX2ZpeF9tYWlsaW5nbGlzdF9zdWJzY3JpYmVyc19zcWxf dmlldy5weSBiL3dlYi9wZ2xpc3Rlci9saXN0cy9taWdyYXRpb25zLzAwNjBfZml4X21haWxp bmdsaXN0X3N1YnNjcmliZXJzX3NxbF92aWV3LnB5CmluZGV4IDVmNDllNDguLmE4ZTI5NzEg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2xpc3Rlci9saXN0cy9taWdyYXRpb25zLzAwNjBfZml4X21h aWxpbmdsaXN0X3N1YnNjcmliZXJzX3NxbF92aWV3LnB5CisrKyBiL3dlYi9wZ2xpc3Rlci9s aXN0cy9taWdyYXRpb25zLzAwNjBfZml4X21haWxpbmdsaXN0X3N1YnNjcmliZXJzX3NxbF92 aWV3LnB5CkBAIC0xOSw3ICsxOSw4IEBAIENSRUFURSBPUiBSRVBMQUNFIFZJRVcgbWFpbGlu Z2xpc3Rfc3Vic2NyaWJlcnMgQVMKICAgICAgIGVsaW1pbmF0ZWNjLAogICAgICAgdG9rZW4s CiAgICAgICBzLnVzZXJfaWQgQVMgdXNlcmlkLAotICAgICAgKFNFTEVDVCBhcnJheV9hZ2co bGlzdHRhZ19pZCkgRlJPTSBsaXN0c19saXN0c3Vic2NyaXB0aW9uX3RhZ3MgbHN0IFdIRVJF IGxzdC5saXN0c3Vic2NyaXB0aW9uX2lkPWxzLmlkKSBBUyB0YWdzCisgICAgICAoU0VMRUNU IGFycmF5X2FnZyhsaXN0dGFnX2lkKSBGUk9NIGxpc3RzX2xpc3RzdWJzY3JpcHRpb25fdGFn cyBsc3QgV0hFUkUgbHN0Lmxpc3RzdWJzY3JpcHRpb25faWQ9bHMuaWQpIEFTIHRhZ3MsCisg ICAgICBub21haWwKICAgIEZST00gbGlzdHNfbGlzdHN1YnNjcmlwdGlvbiBscwogICAgSU5O RVIgSk9JTiBsaXN0c19zdWJzY3JpYmVyYWRkcmVzcyBzYSBPTiBzYS5pZD1scy5zdWJzY3Jp YmVyX2lkCiAgICBMRUZUIEpPSU4gbGlzdHNfc3Vic2NyaWJlciBzIE9OIHMudXNlcl9pZD1z YS5zdWJzY3JpYmVyX2lkCi0tIAoyLjUyLjAKCg== --------------1NWAwZ04IjB8i0y5fAN6zSVb Content-Type: text/x-patch; charset=UTF-8; name="0003-mail-handler-don-t-send-email-to-users-with-nomail-s.patch" Content-Disposition: attachment; filename*0="0003-mail-handler-don-t-send-email-to-users-with-nomail-s.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzNTExNTVkOTQ0MTdiZGFkZTdlNmNiYWZmMGIwNGY0MzA1NjYwNjdhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qz1DMz1BOWxlc3Rpbj0yME1hdHRl Pz0gPGRldkBjbWF0dGUubWU+CkRhdGU6IFRodSwgMTggRGVjIDIwMjUgMTI6MDQ6MDggKzAx MDAKU3ViamVjdDogW1BBVENIIDMvM10gbWFpbCBoYW5kbGVyOiBkb24ndCBzZW5kIGVtYWls IHRvIHVzZXJzIHdpdGggbm9tYWlsIHNldAoKLS0tCiBsaWIvaGFuZGxlcnMvbWFpbGhhbmRs ZXIucHkgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9saWIvaGFuZGxlcnMvbWFpbGhhbmRsZXIucHkgYi9saWIv aGFuZGxlcnMvbWFpbGhhbmRsZXIucHkKaW5kZXggNzFhN2Q0ZS4uYzI0ODg3MSAxMDA2NDQK LS0tIGEvbGliL2hhbmRsZXJzL21haWxoYW5kbGVyLnB5CisrKyBiL2xpYi9oYW5kbGVycy9t YWlsaGFuZGxlci5weQpAQCAtODY2LDcgKzg2Niw3IEBAIE9SREVSIEJZIDEiIiIsCiAgICAg ICAgICAgICAgICAgICAgICdNYWlsIHRvIGxpc3QgezB9IGRlbGl2ZXJlZCB0byB7MX0gdGFn cyAoezJ9KScuZm9ybWF0KHNlbGYubWxpc3QubmFtZSwgbGVuKHNlbGYudGFncyksICIsIi5q b2luKHNlbGYudGFnbmFtZXMpKSwKICAgICAgICAgICAgICAgICAgICAgc2VsZi5tZXNzYWdl aWQpCiAKLSAgICAgICAgICAgIGN1cnMuZXhlY3V0ZSgiSU5TRVJUIElOVE8gb3V0Z29pbmdf cmVjaXBpZW50cyAob3V0Z29pbmdfaWQsIHN1YnNjcmliZXJhZGRyZXNzX2lkLCByZWNpcGll bnRfaGVhZGVycykgU0VMRUNUICUob3V0aWQpcywgc3Vic2NyaWJlcmFkZHJlc3NfaWQsIENB U0UgV0hFTiBsLmRpc2FibGVfbGlzdF9oZWFkZXJzIFRIRU4gJycgRUxTRSByZWNpcGllbnRf bGlzdF9oZWFkZXJzKCUod2Vicm9vdClzLCAlKGxpc3RpZClzLCB0b2tlbikgRU5EIEZST00g bWFpbGluZ2xpc3Rfc3Vic2NyaWJlcnMgcyBJTk5FUiBKT0lOIGxpc3RzX2xpc3QgbCBPTiBs LmlkPXMubGlzdGlkIFdIRVJFIGxpc3RpZD0lKGxpc3RpZClzIHswfSBBTkQgTk9UIChDT0FM RVNDRShlbGltaW5hdGVjYywgZmFsc2UpIEFORCBlbWFpbD1BTlkoJShjY2xpc3QpcykpIE9S REVSIEJZIHNwbGl0X3BhcnQoZW1haWwsICdAJywgMikiLmZvcm1hdChxZXh0cmEpLCBwYXJh bXMpCisgICAgICAgICAgICBjdXJzLmV4ZWN1dGUoIklOU0VSVCBJTlRPIG91dGdvaW5nX3Jl Y2lwaWVudHMgKG91dGdvaW5nX2lkLCBzdWJzY3JpYmVyYWRkcmVzc19pZCwgcmVjaXBpZW50 X2hlYWRlcnMpIFNFTEVDVCAlKG91dGlkKXMsIHN1YnNjcmliZXJhZGRyZXNzX2lkLCBDQVNF IFdIRU4gbC5kaXNhYmxlX2xpc3RfaGVhZGVycyBUSEVOICcnIEVMU0UgcmVjaXBpZW50X2xp c3RfaGVhZGVycyglKHdlYnJvb3QpcywgJShsaXN0aWQpcywgdG9rZW4pIEVORCBGUk9NIG1h aWxpbmdsaXN0X3N1YnNjcmliZXJzIHMgSU5ORVIgSk9JTiBsaXN0c19saXN0IGwgT04gbC5p ZD1zLmxpc3RpZCBXSEVSRSBsaXN0aWQ9JShsaXN0aWQpcyB7MH0gQU5EIE5PVCAoQ09BTEVT Q0UoZWxpbWluYXRlY2MsIGZhbHNlKSBBTkQgZW1haWw9QU5ZKCUoY2NsaXN0KXMpKSBBTkQg bm90IG5vbWFpbCBPUkRFUiBCWSBzcGxpdF9wYXJ0KGVtYWlsLCAnQCcsIDIpIi5mb3JtYXQo cWV4dHJhKSwgcGFyYW1zKQogICAgICAgICAgICAgcmVjaXBpZW50Y291bnQgPSBjdXJzLnJv d2NvdW50CiAgICAgICAgICAgICBjdXJzLmV4ZWN1dGUoIk5PVElGWSBvdXRnb2luZyIpCiAK LS0gCjIuNTIuMAoK --------------1NWAwZ04IjB8i0y5fAN6zSVb--