From owner-dev-commits-ports-main@freebsd.org Wed May 26 11:32:22 2021 Return-Path: Delivered-To: dev-commits-ports-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 507BB63A3AE; Wed, 26 May 2021 11:32:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FqphQ0yr3z4n3Y; Wed, 26 May 2021 11:32:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 011717BC8; Wed, 26 May 2021 11:32:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 14QBWL6q023844; Wed, 26 May 2021 11:32:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 14QBWLG8023843; Wed, 26 May 2021 11:32:21 GMT (envelope-from git) Date: Wed, 26 May 2021 11:32:21 GMT Message-Id: <202105261132.14QBWLG8023843@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 71daa4ae2f2b - main - mail/mlmmj: handle X-Original-From MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 71daa4ae2f2b89711db9e1a74ac8eb204adf2bf1 Auto-Submitted: auto-generated X-BeenThere: dev-commits-ports-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commits to the main branch of the FreeBSD ports repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2021 11:32:22 -0000 The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/ports/commit/?id=71daa4ae2f2b89711db9e1a74ac8eb204adf2bf1 commit 71daa4ae2f2b89711db9e1a74ac8eb204adf2bf1 Author: Baptiste Daroussin AuthorDate: 2021-05-26 11:30:03 +0000 Commit: Baptiste Daroussin CommitDate: 2021-05-26 11:32:20 +0000 mail/mlmmj: handle X-Original-From when used in conjonction with rspamd like on the FreeBSD mailing lists setup, rspamd will handle the munge of the from in case of sender of email with strong DMARC policy (yahoo, google), rspamd will set the X-Original-From field with the original email address, use it to check if the sender is a member of the list it is sending email to --- mail/mlmmj/Makefile | 2 +- mail/mlmmj/files/patch-originalfromemail | 44 ++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/mail/mlmmj/Makefile b/mail/mlmmj/Makefile index 56d557d7f4b1..385d85e5a743 100644 --- a/mail/mlmmj/Makefile +++ b/mail/mlmmj/Makefile @@ -2,7 +2,7 @@ PORTNAME= mlmmj PORTVERSION= 1.3.0 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= mail MASTER_SITES= http://mlmmj.org/releases/ diff --git a/mail/mlmmj/files/patch-originalfromemail b/mail/mlmmj/files/patch-originalfromemail new file mode 100644 index 000000000000..b848a7c939dd --- /dev/null +++ b/mail/mlmmj/files/patch-originalfromemail @@ -0,0 +1,44 @@ +diff --git src/mlmmj-process.c src/mlmmj-process.c +index 82e4d04..c8f4add 100644 +--- src/mlmmj-process.c ++++ src/mlmmj-process.c +@@ -473,6 +473,7 @@ int main(int argc, char **argv) + struct stat st; + uid_t uid; + struct email_container fromemails = { 0, NULL }; ++ struct email_container originalfromemails = { 0, NULL }; + struct email_container toemails = { 0, NULL }; + struct email_container ccemails = { 0, NULL }; + struct email_container rpemails = { 0, NULL }; +@@ -488,6 +489,7 @@ int main(int argc, char **argv) + { "Return-Path:", 0, NULL }, + { "Delivered-To:", 0, NULL }, + { "Subject:", 0, NULL }, ++ { "X-Original-From", 0, NULL }, + { NULL, 0, NULL } + }; + +@@ -708,6 +710,11 @@ int main(int argc, char **argv) + for(i = 0; i < readhdrs[0].valuecount; i++) { + find_email_adr(readhdrs[0].values[i], &fromemails); + } ++ /* X-Original-From: addresses */ ++ for(i = 0; i < readhdrs[6].valuecount; i++) { ++ find_email_adr(readhdrs[6].values[i], &originalfromemails); ++ } ++ + /* discard malformed mail with invalid From: unless it's a bounce */ + if(fromemails.emailcount != 1 && + (recipextra == NULL || +@@ -1047,7 +1054,10 @@ int main(int argc, char **argv) + exit(EXIT_SUCCESS); + } + if(subonlypost) { +- foundaddr = (is_subbed(listdir, posteraddr, 0) != ++ char *testaddr; ++ if (originalfromemails.emailcount > 0) ++ testaddr = originalfromemails.emaillist[0]; ++ foundaddr = (is_subbed(listdir, testaddr, 0) != + SUB_NONE); + } else if (modonlypost) { + foundaddr = is_moderator(listdir, posteraddr, NULL);