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 1vQA52-000G7r-0Q for pgsql-www@arkaria.postgresql.org; Mon, 01 Dec 2025 20:01:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vQA50-004GA7-2i for pgsql-www@arkaria.postgresql.org; Mon, 01 Dec 2025 20:01:03 +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 1vQA50-004G9h-1t for pgsql-www@lists.postgresql.org; Mon, 01 Dec 2025 20:01:02 +0000 Received: from mail-yx1-xb12c.google.com ([2607:f8b0:4864:20::b12c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vQA4y-002d0Q-0N for pgsql-www@lists.postgresql.org; Mon, 01 Dec 2025 20:01:01 +0000 Received: by mail-yx1-xb12c.google.com with SMTP id 956f58d0204a3-640d8b78608so3473726d50.1 for ; Mon, 01 Dec 2025 12:01:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hagander.net; s=mail; t=1764619260; x=1765224060; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=AHRmJWL13us2yIdefRlIb/UR1kVY4fuykzP+fbUxzMI=; b=elWwxjTf6UfzV/F5unc/IISOEMReDFEN1QfyUFr6RYiuAYCjoKO1+E+qrwhUg6bdZ8 BrgwMY+WR4c9IlRBjaesQpEgfGTu9KqR36ylVGNryVGjdKrtBO9/948wLvQ4AIwXYh8s JTLxBjB2NQyvoddsqQ4FoEUMWmu4aBccQM0vfi2Tb4v99/rk972CIT1yEsQWqBdxfc4o wlOj5fPNdE9XvsLxGWNRyIDe0dRr9KCnhU5eQom3cPMgLMbCT9sqC7ACp+1axV1Gbpx4 PTi6aPZDO/cCpysimFrkZSWkubd9ImfcuH7lsuC8u6snbFa0NIvgT4Xm4FBoktpkJ7Jk Vjmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764619260; x=1765224060; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=AHRmJWL13us2yIdefRlIb/UR1kVY4fuykzP+fbUxzMI=; b=kaJ+qUXhMbXrAz/XBdFK48TUq3sh75P9qel9oJJgFD9V02X1cjO1YC8YlhBi8Ydxyj 7VxWp8PClW1FtZbJDTVRubYbue1h0dMMxewOsctR+AnZQwKoMGBBuHftCVcYCs+77UEo /hHJe0o86K49CwjnsMx60abmbpGuN/enYm+YtQyhBV51av+HvfG4r3ukIQzYGmu5b+3R grknipeaEqiv5eG/8vAvVtHuGUMox3qObyRnRXTSoR8/ch/8jnVYV12iMW5N8jQ4ZBw/ zSfg+ib7EHTXGKjsr04kJdCvEMWykiJdvd8Y1yauSVoUs8HPiZMkE9xdbXwVGypUTKbM iq9w== X-Gm-Message-State: AOJu0Yzgpx6peDPNHnwN9Gz8r11W9e34eUPIVT6q4HifCNK7zejmOIKF UJV2Y7oKpe4wwEoCM5pgNhIp7g8glkgPPPawTRZ9K8wNfBCS8f/4EphYEuj9aePjpIg6VfpJ/8b wTAgWm29vsN1QTr2Cj7VDhf7iNdqG2f6myqzbMjeg+aueeGCKJUTv3g== X-Gm-Gg: ASbGncs+H/hMhVhnbUZBlAhiHQPxqPtIGG/1k6dp5yVLKs8bAZSuagOr5k1zUWzRSGa YRRHT/b6eBO9NTqUQ9maUo9uHnDN+IL1WHfE0fAnU4fFuPp4y4UL6Hods8dNI55rBiPX/ZJYOSA XRnjwnXGneHffTS2fPChAChbKsa/TLgiGsrPIzHex9Ekz6NWuHFANIYDdGv82uECDMPvdOhCSvj aDrQsz0/JYPL/nuWJpeh85lXekxklArVfi+/X463tPSz+X6TX91bWPC2nZyPnj5FeJN3Hg= X-Google-Smtp-Source: AGHT+IEhkejibp+WuKXx1T049lJQQxWpQkgSftBpr/6bf3KT/xpkHoIA7lFOVLyv+V9g5LY4hY5wFOr/GcRBuNnJsqI= X-Received: by 2002:a05:690e:845:b0:640:d255:2d75 with SMTP id 956f58d0204a3-64302ab1ecfmr20461034d50.48.1764619259849; Mon, 01 Dec 2025 12:00:59 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Magnus Hagander Date: Mon, 1 Dec 2025 21:00:47 +0100 X-Gm-Features: AWmQ_bkv-hy-2dbJfiIFwY1VpCvXaDC4ojYeIq_vPV-uU08M6CUoWXwkxJbl5HE Message-ID: Subject: Re: pglister: pgarchives does not synchronize subscribers with email delivery disabled (proposed patch) To: =?UTF-8?Q?C=C3=A9lestin_Matte?= Cc: PostgreSQL WWW Content-Type: multipart/alternative; boundary="00000000000025bda20644e9708c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000025bda20644e9708c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 22 Sept 2025 at 20:18, C=C3=A9lestin Matte wrot= e: > The pglister_sync script is supposed to synchronize subscribers from > pglister to pgarchives, so they can access archives. > From what I understand of its semantics, the "nomail" field (labeled > "Disable mail delivery") is used to remain subscribed, to be able to acce= ss > archives, without receiving emails. > However, due to the way the API works, this is not the case. > pglister_sync.py makes a call to the API, which get subscribers from the > mailinglist_subscribers SQL view. This view is built in the > 0027_merge_migrations.py migrations and excludes users with nomail. > I propose a patch with a migration to change this SQL view to include > nomail users (copying previous definition, without "AND NOT nomail"). > Note that this changes results of the API, which might have consequences > if other scripts use it (I haven't found any with some grepping). > Hi! 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? //Magnus --00000000000025bda20644e9708c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Mon, 22 Sept= 2025 at 20:18, C=C3=A9lestin Matte <contact@cmatte.me> wrote:
The pglister_sync script is supposed to synchronize subs= cribers from pglister to pgarchives, so they can access archives.
=C2=A0From what I understand of its semantics, the "nomail" field= (labeled "Disable mail delivery") is used to remain subscribed, = to be able to access archives, without receiving emails.
However, due to the way the API works, this is not the case. pglister_sync.= py makes a call to the API, which get subscribers from the mailinglist_subs= cribers SQL view. This view is built in the 0027_merge_migrations.py migrat= ions and excludes users with nomail.
I propose a patch with a migration to change this SQL view to include nomai= l users (copying previous definition, without "AND NOT nomail").<= br> Note that this changes results of the API, which might have consequences if= other scripts use it (I haven't found any with some grepping).

Hi!

mailinglist_subsc= ribers 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 swi= tch to not work at all?

While you're on the ri= ght track to include them, don't we also need to include the nomail col= umn as a column in the view and then filter on that when sending email?

//Magnus
--00000000000025bda20644e9708c--