Home | History | Annotate | Line # | Download | only in proto
      1 #++
      2 # NAME
      3 #	header_checks 5
      4 # SUMMARY
      5 #	Postfix built-in content inspection
      6 # SYNOPSIS
      7 # .nf
      8 #	\fBheader_checks = pcre:/etc/postfix/header_checks\fR
      9 #	\fBmime_header_checks = pcre:/etc/postfix/mime_header_checks\fR
     10 #	\fBnested_header_checks = pcre:/etc/postfix/nested_header_checks\fR
     11 #	\fBbody_checks = pcre:/etc/postfix/body_checks\fR
     12 # .sp
     13 #	\fBmilter_header_checks = pcre:/etc/postfix/milter_header_checks\fR
     14 # .sp
     15 #	\fBsmtp_header_checks = pcre:/etc/postfix/smtp_header_checks\fR
     16 #	\fBsmtp_mime_header_checks = pcre:/etc/postfix/smtp_mime_header_checks\fR
     17 #	\fBsmtp_nested_header_checks = pcre:/etc/postfix/smtp_nested_header_checks\fR
     18 #	\fBsmtp_body_checks = pcre:/etc/postfix/smtp_body_checks\fR
     19 # .sp
     20 #	\fBpostmap -q "\fIstring\fB" pcre:/etc/postfix/\fIfilename\fR
     21 #	\fBpostmap -q - pcre:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
     22 # .fi
     23 # DESCRIPTION
     24 #	This document describes access control on the content of
     25 #	message headers and message body lines; it is implemented
     26 #	by the Postfix \fBcleanup\fR(8) server before mail is queued.
     27 #	See \fBaccess\fR(5) for access control on remote SMTP client
     28 #	information.
     29 #
     30 #	Each message header or message body line is compared against
     31 #	a list of patterns.
     32 #	When a match is found the corresponding action is executed, and
     33 #	the matching process is repeated for the next message header or
     34 #	message body line.
     35 #
     36 #	Note: message headers are examined one logical header at a time,
     37 #	even when a message header spans multiple lines. Body lines are
     38 #	always examined one line at a time.
     39 #
     40 #	For examples, see the EXAMPLES section at the end of this
     41 #	manual page.
     42 #
     43 #	Postfix header or body_checks are designed to stop a flood of mail
     44 #	from worms or viruses; they do not decode attachments, and they do
     45 #	not unzip archives. See the documents referenced below in the README
     46 #	FILES section if you need more sophisticated content analysis.
     47 # FILTERS WHILE RECEIVING MAIL
     48 # .ad
     49 # .fi
     50 #	Postfix implements the following four built-in content
     51 #	inspection classes while receiving mail:
     52 # .IP "\fBheader_checks\fR (default: empty)"
     53 #	These are applied to initial message headers (except for
     54 #	the headers that are processed with \fBmime_header_checks\fR).
     55 # .IP "\fBmime_header_checks\fR (default: \fB$header_checks\fR)"
     56 #	These are applied to MIME related message headers only.
     57 # .sp
     58 #	This feature is available in Postfix 2.0 and later.
     59 # .IP "\fBnested_header_checks\fR (default: \fB$header_checks\fR)"
     60 #	These are applied to message headers of attached email
     61 #	messages (except for the headers that are processed with
     62 #	\fBmime_header_checks\fR).
     63 # .sp
     64 #	This feature is available in Postfix 2.0 and later.
     65 # .IP \fBbody_checks\fR
     66 #	These are applied to all other content, including multi-part
     67 #	message boundaries.
     68 # .sp
     69 #	With Postfix versions before 2.0, all content after the initial
     70 #	message headers is treated as body content.
     71 # FILTERS AFTER RECEIVING MAIL
     72 # .ad
     73 # .fi
     74 #	Postfix supports a subset of the built-in content inspection
     75 #	classes after the message is received:
     76 # .IP "\fBmilter_header_checks\fR (default: empty)"
     77 #	These are applied to headers that are added with Milter
     78 #	applications.
     79 # .sp
     80 #	This feature is available in Postfix 2.7 and later.
     81 # FILTERS WHILE DELIVERING MAIL
     82 # .ad
     83 # .fi
     84 #	Postfix supports all four content inspection classes while
     85 #	delivering mail via SMTP.
     86 # .IP "\fBsmtp_header_checks\fR (default: empty)"
     87 # .IP "\fBsmtp_mime_header_checks\fR (default: empty)"
     88 # .IP "\fBsmtp_nested_header_checks\fR (default: empty)"
     89 # .IP "\fBsmtp_body_checks\fR (default: empty)"
     90 #	These features are available in Postfix 2.5 and later.
     91 # COMPATIBILITY
     92 # .ad
     93 # .fi
     94 #	With Postfix version 2.2 and earlier specify "\fBpostmap
     95 #	-fq\fR" to query a table that contains case sensitive
     96 #	patterns. By default, regexp: and pcre: patterns are case
     97 #	insensitive.
     98 # TABLE FORMAT
     99 # .ad
    100 # .fi
    101 #	This document assumes that header and body_checks rules are specified
    102 #	in the form of Postfix regular expression lookup tables. Usually the
    103 #	best performance is obtained with \fBpcre\fR (Perl Compatible Regular
    104 #	Expression) tables. The \fBregexp\fR (POSIX regular
    105 #	expressions) tables are usually slower, but more widely
    106 #	available.
    107 #	Use the command "\fBpostconf -m\fR" to find out what lookup table
    108 #	types your Postfix system supports.
    109 #
    110 #	The general format of Postfix regular expression tables is
    111 #	given below.
    112 #	For a discussion of specific pattern or flags syntax,
    113 #	see \fBpcre_table\fR(5) or \fBregexp_table\fR(5), respectively.
    114 # .IP "\fB/\fIpattern\fB/\fIflags action\fR"
    115 #	When /\fIpattern\fR/ matches the input string, execute
    116 #	the corresponding \fIaction\fR. See below for a list
    117 #	of possible actions.
    118 # .IP "\fB!/\fIpattern\fB/\fIflags action\fR"
    119 #	When /\fIpattern\fR/ does \fBnot\fR match the input string,
    120 #	execute the corresponding \fIaction\fR.
    121 # .IP "\fBif /\fIpattern\fB/\fIflags\fR"
    122 # .IP "\fBendif\fR"
    123 #	If the input string matches /\fIpattern\fR/, then match that
    124 #	input string against the patterns between \fBif\fR and
    125 #	\fBendif\fR.  The \fBif\fR..\fBendif\fR can nest.
    126 # .sp
    127 #	Note: do not prepend whitespace to patterns inside
    128 #	\fBif\fR..\fBendif\fR.
    129 # .IP "\fBif !/\fIpattern\fB/\fIflags\fR"
    130 # .IP "\fBendif\fR"
    131 #	If the input string does not match /\fIpattern\fR/, then
    132 #	match that input string against the patterns between \fBif\fR
    133 #	and \fBendif\fR. The \fBif\fR..\fBendif\fR can nest.
    134 # .IP "blank lines and comments"
    135 #	Empty lines and whitespace-only lines are ignored, as
    136 #	are lines whose first non-whitespace character is a `#'.
    137 # .IP "multi-line text"
    138 #	A pattern/action line starts with non-whitespace text. A line that
    139 #	starts with whitespace continues a logical line.
    140 # TABLE SEARCH ORDER
    141 # .ad
    142 # .fi
    143 #	For each line of message input, the patterns are applied in the
    144 #	order as specified in the table. When a pattern is found that matches
    145 #	the input line, the corresponding action is executed and then the
    146 #	next input line is inspected.
    147 # TEXT SUBSTITUTION
    148 # .ad
    149 # .fi
    150 #	Substitution of substrings from the matched expression into the
    151 #	\fIaction\fR
    152 #	string is possible using the conventional Perl syntax
    153 #	(\fB$1\fR, \fB$2\fR, etc.).
    154 #	The macros in the result string may need to be written as \fB${n}\fR
    155 #	or \fB$(n)\fR if they aren't followed by whitespace.
    156 #
    157 #	Note: since negated patterns (those preceded by \fB!\fR) return a
    158 #	result when the expression does not match, substitutions are not
    159 #	available for negated patterns.
    160 # ACTIONS
    161 # .ad
    162 # .fi
    163 #	Action names are case insensitive. They are shown in upper case
    164 #	for consistency with other Postfix documentation.
    165 # .IP "\fBBCC \fIuser@domain\fR"
    166 #	Add the specified address as a BCC recipient, and inspect
    167 #	the next input line. The address
    168 #	must have a local part and domain part. The number of BCC
    169 #	addresses that can be added is limited only by the amount
    170 #	of available storage space.
    171 #
    172 #	Note 1: the BCC address is added as if it was specified with
    173 #	NOTIFY=NONE. The sender will not be notified when the BCC
    174 #	address is undeliverable, as long as all down-stream software
    175 #	implements RFC 3461.
    176 #
    177 #	Note 2: this ignores duplicate addresses (with the same
    178 #	delivery status notification options).
    179 # .sp
    180 #	This feature is available in Postfix 3.0 and later.
    181 # .sp
    182 #	This feature is not supported with smtp header/body checks.
    183 # \" .IP "\fBDELAY \fItime\fR"
    184 # \"	Place the message into the deferred queue, and delay the
    185 # \"	initial delivery attempt by \fItime\fR. The time value may
    186 # \"	be followed by a one-character suffix that specifies the
    187 # \"	time unit: s (seconds), m (minutes), h (hours), d (days),
    188 # \"	w (weeks).  The default time unit is s (seconds).
    189 # \" .sp
    190 # \"	Limitations:
    191 # \" .RS
    192 # \" .IP \(bu
    193 # \"	This action affects all the recipients of the message.
    194 # \" .IP \(bu
    195 # \"	The delay value has no effect with remote file systems that
    196 # \"	don't correctly emulate UNIX local file system semantics.
    197 # \"	In that case, the delay will be half of $queue_run_delay
    198 # \"	on average.
    199 # \" .IP \(bu
    200 # \"	Mail will still be delivered with "sendmail -q", "postfix
    201 # \"	flush" or "postqueue -f".
    202 # \" .IP \(bu
    203 # \"	Delayed mail increases the amount of disk I/O during deferred
    204 # \"	queue scans. When large amounts of mail are queued for
    205 # \"	delayed delivery it may be preferable to use the HOLD feature
    206 # \"	instead.
    207 # \" .RE
    208 # \" .IP
    209 # \"	This feature is available in Postfix 2.3 and later.
    210 # .IP "\fBDISCARD \fIoptional text...\fR"
    211 #	Claim successful delivery and silently discard the message.
    212 #	Do not inspect the remainder of the input message.
    213 #	Log the optional text if specified, otherwise log a generic
    214 #	message.
    215 # .sp
    216 #	Note: this action disables further header or body_checks inspection
    217 #	of the current message and affects all recipients.
    218 #	To discard only one recipient without discarding the entire message,
    219 #	use the transport(5) table to direct mail to the discard(8) service.
    220 # .sp
    221 #	This feature is available in Postfix 2.0 and later.
    222 # .sp
    223 #	This feature is not supported with smtp header/body checks.
    224 # .IP \fBDUNNO\fR
    225 #	Pretend that the input line did not match any pattern, and inspect the
    226 #	next input line. This action can be used to shorten the table search.
    227 # .sp
    228 #	For backwards compatibility reasons, Postfix also accepts
    229 #	\fBOK\fR but it is (and always has been) treated as \fBDUNNO\fR.
    230 # .sp
    231 #	This feature is available in Postfix 2.1 and later.
    232 # .IP "\fBFILTER \fItransport:destination\fR"
    233 #	Override the content_filter parameter setting, and inspect
    234 #	the next input line.
    235 #	After the message is queued, send the entire message through
    236 #	the specified external content filter. The \fItransport\fR
    237 #	name specifies the first field of a mail delivery agent
    238 #	definition in master.cf; the syntax of the next-hop
    239 #	\fIdestination\fR is described in the manual page of the
    240 #	corresponding delivery agent.  More information about
    241 #	external content filters is in the Postfix FILTER_README
    242 #	file.
    243 # .sp
    244 #	Note 1: do not use $\fInumber\fR regular expression
    245 #	substitutions for \fItransport\fR or \fIdestination\fR
    246 #	unless you know that the information has a trusted origin.
    247 # .sp
    248 #	Note 2: this action overrides the main.cf \fBcontent_filter\fR
    249 #	setting, and affects all recipients of the message. In the
    250 #	case that multiple \fBFILTER\fR actions fire, only the last
    251 #	one is executed.
    252 # .sp
    253 #	Note 3: the purpose of the FILTER command is to override
    254 #	message routing.  To override the recipient's \fItransport\fR
    255 #	but not the next-hop \fIdestination\fR, specify an empty
    256 #	filter \fIdestination\fR (Postfix 2.7 and later), or specify
    257 #	a \fItransport:destination\fR that delivers through a
    258 #	different Postfix instance (Postfix 2.6 and earlier). Other
    259 #	options are using the recipient-dependent \fBtrans\%port\%_maps\fR
    260 #	or the sen\%der-dependent
    261 #	\fBsender\%_de\%pen\%dent\%_de\%fault\%_trans\%port\%_maps\fR
    262 #	features.
    263 # .sp
    264 #	This feature is available in Postfix 2.0 and later.
    265 # .sp
    266 #	This feature is not supported with smtp header/body checks.
    267 # .IP "\fBHOLD \fIoptional text...\fR"
    268 #	Arrange for the message to be placed on the \fBhold\fR queue,
    269 #	and inspect the next input line.  The message remains on \fBhold\fR
    270 #	until someone either deletes it or releases it for delivery.
    271 #	Log the optional text if specified, otherwise log a generic
    272 #	message.
    273 #
    274 #	Mail that is placed on hold can be examined with the
    275 #	\fBpostcat\fR(1) command, and can be destroyed or released with
    276 #	the \fBpostsuper\fR(1) command.
    277 # .sp
    278 #	Note: use "\fBpostsuper -r\fR" to release mail that was kept on
    279 #	hold for a significant fraction of \fB$maximal_queue_lifetime\fR
    280 #	or \fB$bounce_queue_lifetime\fR, or longer. Use "\fBpostsuper -H\fR"
    281 #	only for mail that will not expire within a few delivery attempts.
    282 # .sp
    283 #	Note: this action affects all recipients of the message.
    284 # .sp
    285 #	This feature is available in Postfix 2.0 and later.
    286 # .sp
    287 #	This feature is not supported with smtp header/body checks.
    288 # .IP \fBIGNORE\fR
    289 #	Delete the current line from the input, and inspect
    290 #	the next input line. See \fBSTRIP\fR for an alternative
    291 #	that logs the action.
    292 # .IP "\fBINFO \fIoptional text...\fR
    293 #	Log an "info:" record with the \fIoptional text...\fR (or
    294 #	log a generic text), and inspect the next input line. This
    295 #	action is useful for routine logging or for debugging.
    296 # .sp
    297 #	This feature is available in Postfix 2.8 and later.
    298 # .IP "\fBPASS \fIoptional text...\fR"
    299 #	Log a "pass:" record with the \fIoptional text...\fR (or
    300 #	log a generic text), and turn off header, body, and Milter
    301 #	inspection for the remainder of this message.
    302 # .sp
    303 #	Note: this feature relies on trust in information that is
    304 #	easy to forge.
    305 # .sp
    306 #	This feature is available in Postfix 3.2 and later.
    307 # .sp
    308 #	This feature is not supported with smtp header/body checks.
    309 # .IP "\fBPREPEND \fItext...\fR"
    310 #	Prepend one line with the specified text, and inspect the next
    311 #	input line.
    312 # .sp
    313 #	Notes: 
    314 # .RS
    315 # .IP \(bu
    316 #	The prepended text is output on a separate line, immediately
    317 #	before the input that triggered the \fBPREPEND\fR action.
    318 # .IP \(bu
    319 #	The prepended text is not considered part of the input
    320 #	stream: it is not subject to header/body checks or address
    321 #	rewriting, and it does not affect the way that Postfix adds
    322 #	missing message headers.
    323 # .IP \(bu
    324 #	When prepending text before a message header line, the prepended
    325 #	text must begin with a valid message header label.
    326 # .IP \(bu
    327 #	This action cannot be used to prepend multi-line text.
    328 # .RE
    329 # .IP
    330 #	This feature is available in Postfix 2.1 and later.
    331 # .sp
    332 #	This feature is not supported with milter_header_checks.
    333 # .IP "\fBREDIRECT \fIuser@domain\fR"
    334 #	Write a message redirection request to the queue file, and
    335 #	inspect the next input line. After the message is queued,
    336 #	it will be sent to the specified address instead of the
    337 #	intended recipient(s).
    338 # .sp
    339 #	Note 1: this action overrides the \fBFILTER\fR action, and affects
    340 #	all recipients of the message. If multiple \fBREDIRECT\fR actions
    341 #	fire, only the last one is executed.
    342 # .sp
    343 #	Note 2: a REDIRECT address is subject to canonicalization
    344 #	(add missing domain) but NOT subject to canonical, masquerade,
    345 #	bcc, or virtual alias mapping.
    346 # .sp
    347 #	This feature is available in Postfix 2.1 and later.
    348 # .sp
    349 #	This feature is not supported with smtp header/body checks.
    350 # .IP "\fBREPLACE \fItext...\fR"
    351 #	Replace the current line with the specified text, and inspect the next
    352 #	input line.
    353 # .sp
    354 #	This feature is available in Postfix 2.2 and later. The
    355 #	description below applies to Postfix 2.2.2 and later.
    356 # .sp
    357 #	Notes: 
    358 # .RS
    359 # .IP \(bu
    360 #	When replacing a message header line, the replacement text
    361 #	must begin with a valid header label.
    362 # .IP \(bu
    363 #	The replaced text remains part of the input stream. Unlike
    364 #	the result from the \fBPREPEND\fR action, a replaced message
    365 #	header may be subject to address rewriting and may affect
    366 #	the way that Postfix adds missing message headers.
    367 # .RE
    368 # .IP "\fBREJECT \fIoptional text...\fR
    369 #	Reject the entire message. Do not inspect the remainder of
    370 #	the input message.  Reply with \fIoptional text...\fR when
    371 #	the optional text is specified, otherwise reply with a
    372 #	generic error message.
    373 # .sp
    374 #	Note: this action disables further header or body_checks inspection
    375 #	of the current message and affects all recipients.
    376 # .sp
    377 #	Postfix version 2.3 and later support enhanced status codes.
    378 #	When no code is specified at the beginning of \fIoptional
    379 #	text...\fR, Postfix inserts a default enhanced status code of
    380 #	"5.7.1".
    381 # .sp
    382 #	This feature is not supported with smtp header/body checks.
    383 # .IP "\fBSTRIP \fIoptional text...\fR"
    384 #	Log a "strip:" record with the \fIoptional text...\fR (or
    385 #	log a generic text), delete the input line from the input,
    386 #	and inspect the next input line. See \fBIGNORE\fR for a
    387 #	silent alternative.
    388 # .sp
    389 #	This feature is available in Postfix 3.2 and later.
    390 # .IP "\fBWARN \fIoptional text...\fR
    391 #	Log a "warning:" record with the \fIoptional text...\fR (or
    392 #	log a generic text), and inspect the next input line. This
    393 #	action is useful for debugging and for testing a pattern
    394 #	before applying more drastic actions.
    395 # BUGS
    396 #	Empty lines never match, because some map types mis-behave
    397 #	when given a zero-length search string.  This limitation may
    398 #	be removed for regular expression tables in a future release.
    399 #
    400 #	Many people overlook the main limitations of header and body_checks
    401 #	rules.
    402 # .IP \(bu
    403 #	These rules operate on one logical message header or one body
    404 #	line at a time. A decision made for one line is not carried over
    405 #	to the next line.
    406 # .IP \(bu
    407 #	If text in the message body is encoded
    408 #	(RFC 2045) then the rules need to be specified for the encoded
    409 #	form.
    410 # .IP \(bu
    411 #	Likewise, when message headers are encoded (RFC
    412 #	2047) then the rules need to be specified for the encoded
    413 #	form.
    414 # .PP
    415 #	Message headers added by the \fBcleanup\fR(8) daemon itself
    416 #	are excluded from inspection. Examples of such message headers
    417 #	are \fBFrom:\fR, \fBTo:\fR, \fBMessage-ID:\fR, \fBDate:\fR.
    418 #
    419 #	Message headers deleted by the \fBcleanup\fR(8) daemon will
    420 #	be examined before they are deleted. Examples are: \fBBcc:\fR,
    421 #	\fBContent-Length:\fR, \fBReturn-Path:\fR.
    422 # CONFIGURATION PARAMETERS
    423 # .ad
    424 # .fi
    425 # .IP "\fBbody_checks (empty)\fR"
    426 #	Optional lookup tables for content inspection as specified in
    427 #	the \fBbody_checks\fR(5) manual page.
    428 # .IP "\fBbody_checks_size_limit (51200)\fR"
    429 #	How much text in a message body segment (or attachment, if you
    430 #	prefer to use that term) is subjected to body_checks inspection.
    431 # .IP "\fBheader_checks (empty)\fR"
    432 #	Optional lookup tables for content inspection of primary non-MIME
    433 #	message headers, as specified in the \fBheader_checks\fR(5) manual page.
    434 # .IP "\fBmime_header_checks ($header_checks)\fR"
    435 #	Optional lookup tables for content inspection of MIME related
    436 #	message headers, as described in the \fBheader_checks\fR(5) manual page.
    437 # .IP "\fBnested_header_checks ($header_checks)\fR"
    438 #	Optional lookup tables for content inspection of non-MIME message
    439 #	headers in attached messages, as described in the \fBheader_checks\fR(5)
    440 #	manual page.
    441 # .IP "\fBdisable_mime_input_processing (no)\fR"
    442 #	Turn off MIME processing while receiving mail.
    443 # EXAMPLES
    444 # .ad
    445 # .fi
    446 #	Header pattern to block attachments with bad file name
    447 #	extensions.  For convenience, the PCRE /x flag is specified,
    448 #	so that there is no need to collapse the pattern into a
    449 #	single line of text.  The purpose of the [[:xdigit:]]
    450 #	sub-expressions is to recognize Windows CLSID strings.
    451 #
    452 # .na
    453 # .nf
    454 #	/etc/postfix/main.cf:
    455 #	    header_checks = pcre:/etc/postfix/header_checks.pcre
    456 #
    457 #	/etc/postfix/header_checks.pcre:
    458 #	    /^Content-(Disposition|Type).*name\es*=\es*"?([^;]*(\e.|=2E)(
    459 #	      ade|adp|asp|bas|bat|chm|cmd|com|cpl|crt|dll|exe|
    460 #	      hlp|ht[at]|
    461 #	      inf|ins|isp|jse?|lnk|md[betw]|ms[cipt]|nws|
    462 #	      \e{[[:xdigit:]]{8}(?:-[[:xdigit:]]{4}){3}-[[:xdigit:]]{12}\e}|
    463 #	      ops|pcd|pif|prf|reg|sc[frt]|sh[bsm]|swf|
    464 #	      vb[esx]?|vxd|ws[cfh]))(\e?=)?"?\es*(;|$)/x
    465 #	        REJECT Attachment name "$2" may not end with ".$4"
    466 # .ad
    467 # .fi
    468 #
    469 #	Body pattern to stop a specific HTML browser vulnerability exploit.
    470 #
    471 # .na
    472 # .nf
    473 #	/etc/postfix/main.cf:
    474 #	    body_checks = regexp:/etc/postfix/body_checks
    475 #
    476 #	/etc/postfix/body_checks:
    477 #	    /^<iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0>$/
    478 #	        REJECT IFRAME vulnerability exploit
    479 # SEE ALSO
    480 #	cleanup(8), canonicalize and enqueue Postfix message
    481 #	pcre_table(5), format of PCRE lookup tables
    482 #	regexp_table(5), format of POSIX regular expression tables
    483 #	postconf(1), Postfix configuration utility
    484 #	postmap(1), Postfix lookup table management
    485 #	postsuper(1), Postfix janitor
    486 #	postcat(1), show Postfix queue file contents
    487 #	RFC 2045, base64 and quoted-printable encoding rules
    488 #	RFC 2047, message header encoding for non-ASCII text
    489 # README FILES
    490 # .ad
    491 # .fi
    492 #	Use "\fBpostconf readme_directory\fR" or
    493 #	"\fBpostconf html_directory\fR" to locate this information.
    494 # .na
    495 # .nf
    496 #	DATABASE_README, Postfix lookup table overview
    497 #	CONTENT_INSPECTION_README, Postfix content inspection overview
    498 #	BUILTIN_FILTER_README, Postfix built-in content inspection
    499 #	BACKSCATTER_README, blocking returned forged mail
    500 # LICENSE
    501 # .ad
    502 # .fi
    503 #	The Secure Mailer license must be distributed with this software.
    504 # AUTHOR(S)
    505 #	Wietse Venema
    506 #	IBM T.J. Watson Research
    507 #	P.O. Box 704
    508 #	Yorktown Heights, NY 10598, USA
    509 #
    510 #	Wietse Venema
    511 #	Google, Inc.
    512 #	111 8th Avenue
    513 #	New York, NY 10011, USA
    514 #--
    515