From 299fc3d5e87253e39220833d0302055abd48a173 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 23 Apr 2024 21:49:06 -0400 Subject: [PATCH 1/4] list-remote-forwards.cabal: fix triples -> pairs --- list-remote-forwards.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/list-remote-forwards.cabal b/list-remote-forwards.cabal index 52b2b3d..53dfcd9 100644 --- a/list-remote-forwards.cabal +++ b/list-remote-forwards.cabal @@ -93,7 +93,7 @@ description: SQL query used to produce a list of all forwards on the mail system. This query should return the set of all (address, goto) - triples, where \"goto\" is the destination address; i.e. to + pairs, where \"goto\" is the destination address; i.e. to where the \"address\" forwards. The \"goto\" field may contain more than one email address, separated by commas. -- 2.43.2 From f8044bf9cce5af9b40be8d77650b51a2a58c5639 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Wed, 24 Apr 2024 06:54:56 -0400 Subject: [PATCH 2/4] doc/man1/list-remote-forwards.1: mention the configuration file --- doc/man1/list-remote-forwards.1 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/man1/list-remote-forwards.1 b/doc/man1/list-remote-forwards.1 index 77eec6e..39042e3 100644 --- a/doc/man1/list-remote-forwards.1 +++ b/doc/man1/list-remote-forwards.1 @@ -93,6 +93,16 @@ Username used to connect to the database (Postgres-only). Default: The current user +.SH CONFIGURATION FILE + +Any of the options above can be placed in a configuration file rather +than passed on the command line. An example config file +\fIdoc/list-remote-forwardsrc.example\fR is included with the +source. You can edit it and rename it to either +\fI$sysconfdir/list-remote-forwardsrc\fR or +\fI~/.list-remote-forwardsrc\fR. The variable \fI$sysconfdir\fR is +determined at build time and is typically \fI/etc\fR on UNIX systems. + .SH EXAMPLES .nf -- 2.43.2 From f5a559d5a48434aa9fba4792730c4b71c727d1d2 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Wed, 24 Apr 2024 06:58:04 -0400 Subject: [PATCH 3/4] doc/man1/list-remote-forwards.1: reword the first paragraph --- doc/man1/list-remote-forwards.1 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/man1/list-remote-forwards.1 b/doc/man1/list-remote-forwards.1 index 39042e3..851cd60 100644 --- a/doc/man1/list-remote-forwards.1 +++ b/doc/man1/list-remote-forwards.1 @@ -15,10 +15,10 @@ A list of addresses that are forwarded to remote domains. .SH DESCRIPTION .P A list of local domains is supplied to the program (more or less) -through the \fI\-\-domain\-query\fR option. Any addresses which -forward to another address not contained in this list of local domains -is considered a remote forward. Remote forwards can cause problems for -a number of reasons, the most common of which are, +through the \fI\-\-domain\-query\fR option. Any addresses in the list +that forward to an address \fBnot\fR in the list are considered remote +forwards. Remote forwards can cause problems for a number of reasons, +the most common of which are, .IP \(bu 2 If the sender has an SPF record authorizing his mail server to send mail on his behalf, then when his message is forwarded by the @@ -47,7 +47,8 @@ SQL query used to produce a list of local domains. This should return the set of all domains (i.e one column) that are local to the server. See the default value for an example. -Default: \(dqSELECT domain FROM domain WHERE domain <> 'ALL' ORDER BY domain;\(dq +Default: \(dqSELECT domain FROM domain WHERE domain <> 'ALL' ORDER BY +domain;\(dq .IP \fB\-\-exclude-mx\fR,\ \fB-e\fR The name of a mail exchanger, the forwards of whose domains we should -- 2.43.2 From 7dbe05ca7729033af623c37f64d994626eec850e Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Wed, 24 Apr 2024 06:59:59 -0400 Subject: [PATCH 4/4] list-remote-forwards.cabal: delete the redundant description I'm tired of maintaining this. --- list-remote-forwards.cabal | 121 +------------------------------------ 1 file changed, 3 insertions(+), 118 deletions(-) diff --git a/list-remote-forwards.cabal b/list-remote-forwards.cabal index 53dfcd9..e9a239f 100644 --- a/list-remote-forwards.cabal +++ b/list-remote-forwards.cabal @@ -17,124 +17,9 @@ extra-source-files: synopsis: List all remote forwards for mail accounts stored in a SQL database. description: - /Usage/: - - @ - list-remote-forwards [OPTIONS] - @ - - List all remote forwards for mail accounts stored in a SQL database. - - A list of local domains is supplied to the program (more or less) - through the @--domain-query@ option. Any addresses which - forward to another address not contained in this list of local domains - is considered a remote forward. Remote forwards can cause problems for - a number of reasons, the most common of which are, - - * If the sender has an SPF record authorizing his mail server to send - mail on his behalf, then when his message is forwarded by the - recipient's mail server, it will fail any subsequent SPF checks. This - will likely cause the message to be rejected, and the original - recipient's server will generate backscatter. - - * If any spam makes it through the filter on the recipient's mail - server, that spam will then be forwarded to a remote destination. The - remote destination will blame the forwarding server for the spam, and - that can impact its reputation and potentially lead to a blacklisting - even though the spam did not originate on the recipient's server. - - Whether or not these are an issue depends on the circumstances, but in - any case it is useful to know who is forwarding mail off-site. - - /Input:/ - - None. - - /Output:/ - - A list of addresses that are forwarded to remote domains. - - /Options/: - - * \--database - - The name of the database (or file, if SQLite) to which we should - connect. - - Default: The name of the current user (Postgres only). - - * \--domain-query - - SQL query used to produce a list of local domains. This should - return the set of all domains (i.e one column) that are local to the - server. See the default value for an example. - - Default: \"SELECT domain FROM domain WHERE domain <> 'ALL' ORDER BY - domain;\" - - * \--exclude-mx, -e - - The name of a mail exchanger, the forwards of whose domains we - should ignore. For example, if one mail exchanger, - mx1.example.com, has strict spam filtering, it may be acceptable - to have remote forwarding for domains that have mx1.example.com - as their sole mail exchanger (MX record). In that case, you - might want to exclude those domains from the report by naming - mx1.example.com here. - - A forward will be excluded from the report only if /all/ of its MX - records are contained in the given exclude list. - - This option can be repeated to add mail exchangers to the exclude list. - - Default: [] (empty) - - * \--forward-query, -f - - SQL query used to produce a list of all forwards on the mail - system. This query should return the set of all (address, goto) - pairs, where \"goto\" is the destination address; i.e. to - where the \"address\" forwards. The \"goto\" field may contain - more than one email address, separated by commas. - - Default: \"SELECT address,goto FROM alias ORDER BY address;\" - - * \--host, -h - - Hostname where the database is located (Postgres-only). - - Default: None, a UNIX domain socket connection is attempted - (Postgres only) - - * \--password - - Password used to connect to the database (Postgres-only). - - Default: None (assumes passwordless authentication) - - * \--port - - Port number used to connect to the database (Postgres-only). - - Default: None, a UNIX domain socket connection is attempted - (Postgres only) - - * \--username, -u - - Username used to connect to the database (Postgres-only). - - Default: The current user - - /Examples/: - - @ - $ list-remote-forwards --database=test\/fixtures\/postfixadmin.sqlite3 - user1@example.com -> user1@example.net - user2@example.com -> user1@example.org - user2@example.com -> user2@example.org - user2@example.com -> user3@example.org - user7@example.com -> user8@example.net - @ + List all remote forwards for mail accounts stored in a SQL + database. A description, options, and examples can be found in the + man page. executable list-remote-forwards build-depends: -- 2.43.2