# http://www.berklix.com/~jhs/dots/.procmailrc_owner_keep # ~jhs/.procmailrc_owner_keep included by ~jhs/.procmailrc # For Julian as majordomo & mailman owner # & as postmaster & as various_lists@mailman.berklix.org owner # Not as normal end user recipient of list subscriptions, OWNER_APPROVAL_MODERATED=owner/approval_moderated OWNER_APPROVAL_TABOO=owner/approval_taboo OWNER_APPROVAL_TOO_BIG=owner/approval_too_big OWNER_APPROVAL_BCC=owner/approval_bcc OWNER_BOUNCE=owner/bounce OWNER_LISTS_NON_MEMBER=owner/lists_non_member OWNER_MAILMAN_NORMAL=owner/mailman/non_petitions OWNER_MAILMAN_PETITION_SIGNATURES=owner/mailman/petitions SPAM_LISTS_NON_MEMBER=spam/lists_non_member :0 Hw * ^From: mailman-owner@(mailman(|[1-2])|land|slim)\.berklix.org * ^(To|Cc): [a-z0-9\-\._]+\-auto@(lists|mailman(|[1-2])|land|slim)\.berklix.org * ^Subject: Your new mailing list: { :0 wB * ^The mailing list \`.+\' has just been created for you. # \`.+\' Satisfy brackets.c * ^You can configure your mailing list at the following web page: | $RCVSTORE +$OWNER_MAILMAN_NORMAL } # Server: /usr/local/mailman/logs/subscribe # has Fields: pending new deleted with addreses. # cd ~jhs/mail ; Grep ADDRESSES # to check notification delivered correctly :0 Hw * ^From: mailman-bounces@(mailman(|[1-2])|land|slim).berklix.org { :0 Hw # Allow bike-fast-org-owner@ & ctm-src-12-owner@ & pc322-owner@ * ^(To|Cc): [a-z0-9\-\._]+\-owner@(mailman(|[1-2])|land|slim).berklix.org { :0 Hw * ^Subject: .+ address change notification { :0 Bw # Address for member ...... has been successfully changed from # ...@....... to ...@....... for list Bg. * ^Address for member (|.+)has been successfully changed from | $RCVSTORE +$OWNER_MAILMAN_NORMAL } :0 Hw * ^Subject: .+ (|un)subscri(be|ption) notification { :0 B # Short names appear on one line, but if email name is long, # mailman splits it. * @.+ has been successfully * (|un)subscribed # sometimes a line break occurs between word above & below * (from|to) { :0 Hw * ^Subject: Votes-sign (|un)subscri(be|ption) notification # (Only Votes-sign Not votes-chat, that has no special significance) # Save seperately, special subscriptions to petition lists, # as I may need to have a record of when people signed the petition, # in order to confirm to addressee of petition (Queen''s office) # that petition addresses are genuinely collected. # --- # The mailman robot itself doesnt collect that info (I presume ?) # in its .pck file, though it is in server # /usr/local/mailman/logs/subscribe # But I might forget & purge logs/subscribe sometime, so this is a spare copy. # JJLATER I could set up a cron grep on server of logs/subscribe # which has a more compact 2 x 1 line form (with dates & IP No.) # -- # ~/mail/Makefile does not have any auto clean of parents of this directory. | $RCVSTORE +$OWNER_MAILMAN_PETITION_SIGNATURES :0 w # Other normal non petition lists | $RCVSTORE +$OWNER_MAILMAN_NORMAL } } :0 Hw * ^Subject: .+ (|un)subscri(be|ption) notification { # Unsub message omits human name, so will be shorter line, # I have not seen one split in 2 lines. :0 B * ^.+@.+ has # Assume a line break might occur here. * been # Assume a line break might occur here. * removed # Assume a line break might occur here. * from { :0 Hw # Save seperately special un-subscriptions to petition lists, # as I may need to have a record of when they subscribed. # Also I need to stop make clean running in here. * ^Subject: Votes-sign (|un)subscri(be|ption) notification | $RCVSTORE +$OWNER_MAILMAN_NORMAL :0 w # Other non petition | $RCVSTORE +$OWNER_MAILMAN_NORMAL } } } } :0 Hw * ^(To|Cc): [a-z0-9\-\._]+\-owner@(mailman(|[1-2])|land|slim).berklix.org { :0 HW * ^Subject: .+ (|un)subscri(be|ption) notification * ^From: mailman-bounces@(mailman(|[1-2])|land|slim).berklix.org * ^Errors-to: mailman-bounces@(mailman(|[1-2])|land|slim).berklix.org * ^Sender: (|".+" ) { :0 Bw # * ^jul has been successfully subscribed to LIST. # XXX YYY has been successfully subscribed to * .+@.+ has been (|successfully )((|un)subscribed|removed) (to|from) | $RCVSTORE +$OWNER_MAILMAN_NORMAL :0 Bw # Mailman also emits split long lines eg: # B_________ F_______ has been # successfully subscribed to B_____. * .+@.+ has been * (|successfully )((|un)subscribed|removed) (to|from) [a-z0-9\-\._]+\.$ | $RCVSTORE +$OWNER_MAILMAN_NORMAL :0 Bw * @.+\..+ has been removed from # | $NOMIME_FORCE | $RCVSTORE +$OWNER_MAILMAN_NORMAL | $RCVSTORE +$OWNER_MAILMAN_NORMAL } :0 Hw * ^From: mailman@(mailman(|[1-2])|land|slim).berklix.org * ^Subject: Bounce action notification { :0 wB * ^This is a Mailman mailing list bounce action notice: # List: Bg * List: * Member: # Action: Subscription disabled. * Action: * (|un)Subscription disabled. # Reason: Excessive or fatal bounces. * Reason: * Excessive or fatal bounces. * ^The triggering bounce notice is attached below. * ^Questions\? Contact the Mailman site administrator at * ^mailman@(mailman(|[1-2])|land|slim).berklix.org\. | $RCVSTORE +$OWNER_BOUNCE } :0 Hw * ^From: [a-z0-9\-\._]+\-owner@(mailman(|[1-2])|land|slim).berklix.org * ^Subject: [a-z0-9\-\._]+ post from .+@.+ requires approval { :0 Bw * ^As list administrator, your authorization is requested for the * ^following mailing list posting: # List: [a-z0-9\-\._]+@mailman.berklix.org * From: * Subject: * ^At your convenience, visit: * http://mailman.berklix.org/mailman/admindb/[a-z0-9\-\._]+ * ^to approve or deny the request\. { :0 Bw * Reason: Post to moderated list | $RCVSTORE +$OWNER_APPROVAL_MODERATED :0 Bw * Reason: Message body is too big: [0-9]+ bytes with a limit of [0-9]+ KB | $RCVSTORE +$OWNER_APPROVAL_TOO_BIG :0 Bw * Reason: Message has implicit destination | $RCVSTORE +$OWNER_APPROVAL_BCC } } :0 Hw * ^From: [a-z0-9\-\._]+\-bounces@(mailman(|[1-2])|land|slim).berklix.org * ^Subject: [0-9]+ .+ moderator request\(s\) waiting { :0 wB # * ^The [a-z0-9\-\._]+@(mailman(|[1-2])|land|slim).berklix.org mailing list has [0-9]+ request\(s\) waiting for # * ^your consideration at # Above broke 2018-12, not recognising: # The Bg-chat@mailman.berklix.org mailing list has 2 request(s) waiting # for your consideration at: # So shorten & break up * ^The [a-z0-9\-\._]+@(mailman(|[1-2])|land|slim).berklix.org mailing list has [0-9]+ * request\(|s\) * waiting * for * your * consideration * at * http://(mailman(|[1-2])|land|slim).berklix.org/mailman/admindb/[a-z0-9\-\._]+ * ^Please attend to this at your earliest convenience. This notice of * ^pending requests, if any, will be sent out daily. * ^Pending (posts|(|un)subscriptions): # The (|un) above is a guess, I have not seen it. | $RCVSTORE +$OWNER_APPROVAL_MODERATED } } # :0 Hw # * ^(To|Cc):.*Majordomo-Owner@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) # { # :0 Hw # * ^From:.*majordomo@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) # | $RCVSTORE +$OWNER_MAJORDOMO # } :0 Hw # JJLATER might FAIL: * ^To:.*owner-[[:print:]]+@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) * ^(To|Cc):.*owner-[a-z0-9\-\._]+@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) | $NOMIME_FORCE | $RCVSTORE +$OWNER_MAILMAN_NORMAL # $NOMIME_FORCE was added 2014-10-26, I do not even bother to check here # if it''s necessary, I prefer to reduce this junk to the minimum. # Auto responder for people asking me to sub. them. # Man procmailex reccomends for safety that auto responders such as this # will become, occur After all mail lists have been filtered. # JJLATER see man procmailex "A simple autoreply recipe" # :0 Hw # Divert non personal, possibly spam away from my personal mbox # * ^(To|Cc):.*Majordomo-Owner@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) # # | $RCVSTORE +$OWNER_MAJORDOMO # $OWNER_MAJORDOMO/. :0 Hw # Non personal for list approval. # JJLATER FAILS: * ^To:[[:blank:]]*[a-z0-9\-\._]+\-approval@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) * ^(To|Cc):.*[a-z0-9\-\._]+\-approval@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) { :0 Hw * Subject:.*BOUNCE [a-z0-9\-\._]+@lists:.*Non-member submission from { # If a non member & also images or base 64, assume spam. :0 wB * ^Content-Type: multipart/mixed; $SPAM_LISTS_NON_MEMBER/. :0 wB # A spammer to Something-request@mailman.berklix with header of # multipart/alternative gets forwarded to body of # To: Something-approval@mailman.berklix * ^Content-Type: multipart/alternative; $SPAM_LISTS_NON_MEMBER/. :0 wB * ^Content-Type: image/ $SPAM_LISTS_NON_MEMBER/. :0 wB * ^Content-transfer-encoding: base64 $SPAM_LISTS_NON_MEMBER/. :0 wB # Not too suspicious, could be just eg from a different # than normal eg webmail address, so keep. # | $RCVSTORE +$OWNER_LISTS_NON_MEMBER # Above lets EXMH go blue (in case people I know mail # valid stuff from a non registered address), # Alternate below does not go blue, I dont normaly look, # as not just bounces from majordomo, # but most is direct spam to owner-LIST@mailman.berklix or perhaps # LIST-owner@ ? $OWNER_LISTS_NON_MEMBER/. } :0 Hw * Subject:.*BOUNCE [a-z0-9\-\._]+@lists:.*Message too long \(\>[0-9]+ chars\) | $RCVSTORE +$OWNER_APPROVAL_TOO_BIG :0 Hw * Subject:.*BOUNCE [a-z0-9\-\._]+@[a-z0-9\-\.]+: +taboo header: \/.+\/i | $RCVSTORE +$OWNER_APPROVAL_TABOO # Above lets EXMH go blue, alternate below does not. # $OWNER_APPROVAL_TABOO/. :0 Hw * Subject:.*BOUNCE [a-z0-9\-\._]+@[a-z0-9\-\.]+: +taboo body match \"\/.+\/i\" at line [0-9]+ | $RCVSTORE +$OWNER_APPROVAL_TABOO # Above lets EXMH go blue, alternate below does not. # $OWNER_APPROVAL_TABOO/. :0 Hw # Subject: BOUNCE test@lists: Admin request: /^subject:\s*cancel\b/i Admin request of type /\bcancel\b/i at line 2 * Subject: BOUNCE [a-z0-9\-\._]+@[a-z0-9\-\._]+: Admin request: | $RCVSTORE +owner/approval_admin # Catches rejects by majordomo administrivia = yes enabling # list of phrases in admin_body in majordomo.cf. :0 Hw # To: pcs-approval@mailman.berklix # From: majordomo@mailman.berklix * Subject: +(UN|)SUBSCRIBE { :0 Bw * No action is required on your part\. | $NOMIME_FORCE | $RCVSTORE +$OWNER_MAILMAN_NORMAL } :0 Hw * Subject:.*BOUNCE [a-z0-9\-\._]+@lists: Approval required: # Done last as should never happen as I run no majordomo moderated lists. # Nearest I come to that is some lists have a restricted list of # senders, via majordomo *.config_src: restrict_post. | $RCVSTORE +$OWNER_APPROVAL_MODERATED } :0 Hw * ^(To|Cc):.*postmaster@((www|webmail)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) | $RCVSTORE +owner/postmaster # Let this one turn blue for exmh as its an escalation address :0 Hw * ^(To|Cc):.*webmaster@((www|webmail)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) # | $RCVSTORE +owner/webmaster # Above turns blue for exmh, below does not owner/webmaster/. :0 Hw * ^(To|Cc):.*mailer-daemon@((www|webmail)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) # Do not expect anyone except spammers or idiots writing to mailer-daemon. $SPAM_NULL_NO_RCVSTORE # | $RCVSTORE +spam/mailer-daemon # :0 Hw # * ^From:.*majordomo@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) # * ^(To|Cc):.*jhs@((lists|webmail|land|slim|js)\.|)(berklix|bsdpie|exitbrexit|geoffharries|reinheitsgebot|surfacevision|the-phoney-photon)\.(com|de|eu|net|org|uk) # { # :0 Hw # * ^\>\>\>\> approve .+ (|un)subscribe # * ^(Succeeded|Failed)\. # # I have seen "Succeeded" but "Failed" is just from memory. # | $NOMIME_FORCE | $RCVSTORE +$OWNER_MAILMAN_NORMAL # } :0 Hw * ^Subject: Cron ctm_dequeue * ^From: Cron Daemon * ^To: sms@(|(land|slim).)berklix.org { :0 Bw # ^ctm_dequeue: svn-cur.10158.xz 3/12 sent # ^ctm_dequeue: src-12.1697.gz 9/12 sent * ^ctm_dequeue: ([a-z]|\-)+(|[0-9]+)\.[0-9]+\.(x|g)z [0-9]+/[0-9]+ sent | $RCVSTORE +cron/ctm/dequeue }