############################################################################### # # If no X-Delivered-Sender: record, use the machine generated return # address: # :0 * !^x-delivered-sender: { :0 wh SENDER=| formail -rzx To: # :0 wfha | formail -A "X-Delivered-Sender: ${SENDER}" # :0 E { :0 wfh | formail -A "X-Diagnostic: No machine generated return address" # :0: x-diagnostic } } # :0 whE SENDER=| formail -zx "X-Delivered-Sender:" # ############################################################################### # # Save the sender's domain: # :0 * ^x-delivered-sender:.*\/[^@.]+\.[^.]+$ * MATCH ?? ^^\/.+ { DOMAIN="${MATCH}" } # :0 E { :0 wfh | formail -A "X-Diagnostic: No domain name" # :0: x-diagnostic } # :0 * ^x-delivered-sender:.*\/[^@][-0-9a-z._+=]+$ * MATCH ?? ^^\/.+ { FQDN="${MATCH}" } # :0 E { :0 wfh | formail -A "X-Diagnostic: No fully qualified domain name" # :0: x-diagnostic } # ############################################################################### # # If no X-Delivered-From: record, use the trusted return address: # :0 * !^x-delivered-from: { :0 wh FROM=| formail -rtzx To: # :0 wfha | formail -A "X-Delivered-From: ${FROM}" # :0 E { :0 wfh | formail -A "X-Diagnostic: No trusted return address" # :0: x-diagnostic } } # :0 whE FROM=| formail -zx "X-Delivered-From:" # ############################################################################### # # Reconstruct the envelope 'From ': # :0 * !^x-env-from: { :0 * ^From[ ]+\/[-0-9a-z._+=?]+@[-0-9a-z._+=]+[^ ] { :0 wfh | formail -A "X-Env-From: ${MATCH}" # ENV_FROM="${MATCH}" } # :0 E { :0 wfh | formail -A "X-Env-From: ${SENDER}" # ENV_FROM="${SENDER}" } } # :0 whE ENV_FROM=| formail -zx "X-Env-From:" # ############################################################################### # # Reconstruct the envelope domain: # :0 * !^x-env-fqdn: { :0 wfh * ^x-env-from: .*\/[^@]+\.[^.]+$ * MATCH ?? ^^\/.+ | formail -A "X-Env-FQDN: ${MATCH}" # :0 E { :0 wfh | formail -A "X-Diagnostic: No envelope fully qualified domain" # :0: x-diagnostic } # ENV_FQDN="${MATCH}" } # :0 whE ENV_FQDN=| formail -zx "X-Env-FQDN:" # :0 * !^x-env-domain: { :0 wfh * ^x-env-from: .*\/[^@.]+\.[^.]+$ * MATCH ?? ^^\/.+ | formail -A "X-Env-Domain: ${MATCH}" # :0 E { :0 wfh | formail -A "X-Diagnostic: No envelope domain" # :0: x-diagnostic } # ENV_DOMAIN="${MATCH}" } # :0 whE ENV_DOMAIN=| formail -zx "X-Env-Domain:" # ############################################################################### # # If no X-Delivered-Path: record, create one: # :0 * !^x-delivered-path: { :0 wfh * ^return-path:[ ]+[<]\/[-0-9a-z._+=@?]+[^>] | formail -A "X-Delivered-Path: ${MATCH}" # :0 wfhE * ^From[ ]+\/[-0-9a-z._+=@?]+[^ ] | formail -A "X-Delivered-Path: ${MATCH}" # :0 wfhE | formail -A "X-Delivered-Path: ${SENDER}" } # :0 wh RPATH=| formail -zx "X-Delivered-Path:" # ###################################################################### # # A license is hereby granted to reproduce this software for personal, # non-commercial use. # # THIS PROGRAM IS PROVIDED "AS IS". THE AUTHOR PROVIDES NO WARRANTIES # WHATSOEVER, EXPRESSED OR IMPLIED, INCLUDING WARRANTIES OF # MERCHANTABILITY, TITLE, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE # AUTHOR DOES NOT WARRANT THAT USE OF THIS PROGRAM DOES NOT INFRINGE THE # INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD PARTY IN ANY COUNTRY. # # So there. # # Copyright (c) 1992-2005, John Conover, , All # Rights Reserved. # # $Revision: 1.0 $ # $Date: 2005/03/11 08:33:13 $ # $Id: howto-addresses.txt,v 1.0 2005/03/11 08:33:13 conover Exp $ # $Log: howto-addresses.txt,v $ # Revision 1.0 2005/03/11 08:33:13 conover # Initial revision #