LOGFILE=$HOME/procmail.log MAILDIR=$HOME/Maildir/ ORGMAIL=$HOME/Maildir/ DEFAULT=$HOME/Maildir/ DROPPRIVS=yes VERBOSE=no # avoid anoying mailing-list membership reminders from Mailman and Sympa # note there is no space between Subject and `Rappel_pour` :0 * ^From: .*(mailman-owner@|-request@) * ^Subject:( mailing list memberships reminder|Rappel_pour_les_abonnements_aux_listes_sur_| Rappel de votre abonnement) /dev/null # # MTA-STS & TLS-RPT # :0 * ^TLS-Report-Domain: .* .lists.ssl-reports/ # DMARC vs. mailing-lists :0 * ^X-Mailer: .*opendmarc .lists.ssl-reports/ :0 * ^Subject: DMARC Forensic Report for .* .lists.ssl-reports/ :0 * ^From: OpenDMARC Filter .* .lists.ssl-reports/ :0 * ^Subject: Report Domain: .* .lists.ssl-reports/ :0 * ^Subject: Dmarc Aggregate Report Domain: .* .lists.ssl-reports/ # # avoid mailing-list parsers and to end-up directly in the inbox # #:0 #* ^X-Notifications: #$DEFAULT # # those call themselves a spam # try to catch a few campaigns before we apply mailing-list parsers # # disable because it matches some list #:0 #* ^X-Campaign: #.listloose/ # idem #:0 #* ^X-Report-Abuse: #.listloose/ # From: Olivier from Xen Orchestra :0 * X-Mandrill-User: .listloose/ # some spam showed as such (yhwhrepairs / rk7108vkjm1e6) :0 * ^X-EBS: .listloose/ :0 * ^X-CSA-Complaints: .listloose/ # != Feedback-ID which shows with protonmail :0 * ^X-Feedback-ID: .listloose/ :0 * ^X-MailingID: .listloose/ :0 * ^X-Entity-ID: .listloose/ # # mailing-list parsers # # handling all Sender would create too much fuss # this is why we check for majordomo alike senders # beware of double quotes around the name :0 * ^Sender: .*<\/([^+@\.>"]+) { SENDERID=$MATCH :0 * SENDERID ?? (owner-|-owner|-bounces) .lists.${MATCH}/ } # there's an exception for slackware-security without <> # Sender: owner-slackware-security@slackware.com :0 * ^Sender: .*\/([^+@\."]+) { SENDERID=$MATCH :0 * SENDERID ?? (owner-|-owner|-bounces) .lists.${MATCH}/ } #:0 #* ^X-Mailru-Msgtype: \/(.*) #.lists.${MATCH}/ # place list-unsub before list-id so we get nicer folder names # catch http* links :0 * ^List-Unsubscribe: ]+) .lists.${MATCH}/ :0 * ^List-Unsubscribe: ]+) .lists.${MATCH}/ # do not create folders based on mailto - this creates to much fuss #:0 #* ^List-Unsubscribe: ]+) #.listloose/ # List-ID and friends: "name" --> becomes some :0 * ^(List-ID|List-Id|X-(Mailing-)?List): .*<\/([^+@\.>]+) .lists.${MATCH}/ ## X-Sender here and not ABUSE otherwise it gets precedence # no X-Sender as private emails sometimes got it # we keep list-id and list-unsub in case it failed from above # no Feedback-ID Feedback-Id because it matches protonmail :0 * ^(Sender|List-ID|List-Id|List-Unsubscribe|X-(Mailing-)?List): .* .listloose/ # w/o @ for slackware's run-parts stderr # postfix errors are sent to postmaster :0 * ^To: (root|postmaster) .cron/ # debian defaults :0 * ^From: .* \(Cron Daemon\) .cron/