From: Kirkland, Mike # IHTUL (mike.kirkland@ndchealth.com)
Date: Mon Apr 28 2003 - 18:57:27 EDT
Hi Everyone,
I am setting up a list server on a Sunfire V120. It is running Solaris9 with
the latest patchkit. It has sendmail 8.12.9+Sun/8.12.2 and is loaded with
Majordomo1.94.5. I am having problems sending requests for lists usage to
the server named larry.tns.ndchealth.com
The majordomo userid is majord.
I can send a mail message from the server to any valid email user at the
tulsa.cistech.com domain, but it errors out when I try to send it to a user
in the ndchealth.com domain.
Attached is files that gives more specific information. Any help on how to
resolve this is appreciated.
I have modified the names of the files so they are windows readable.
/etc/mail/aliases = aliases_dos.txt
/etc/mail/majordomo.aliases = majordomo_aliases_dos.txt
/etc/mail/sendmail.cf = /etc/mail/sendmail_cf_dos.txt
/opt/local/majordomo/lists/test = test_dos.txt
/opt/local/majordomo/lists/test.allow = test_allow_dos.txt
/opt/local/majordomo/lists/test.config = test_config_dos.txt
Sendmail_error_dos.txt contains the mail errors.
Nslookup2_larry_dos.txt contains the nslookup of mx type for us.
Mj1945_mail_errors2_dos.txt is the mail errors that majord receives when
someone trys to subscribe to the majordomo list named test.
Thanks,
Mike
This E-Mail message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited. If you are not the intended
recipient, please contact the sender by reply E-Mail, and destroy all copies
of the original message.
# Copyright (c) 1983-2001 by Sun Microsystems, Inc.
# All rights reserved.
#
#ident "@(#)aliases 1.14 01/08/27 SMI"
##
# Aliases can have any mix of upper and lower case on the left-hand side,
# but the right-hand side should be proper case (usually lower)
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
##
# The following alias is required by the mail protocol, RFC 2821
# Set it to the address of a HUMAN who deals with this system's mail problems.
postmaster: root
# Alias for mailer daemon; returned messages from our MAILER-DAEMON
# should be routed to our local Postmaster.
MAILER-DAEMON: postmaster
# General redirections for pseudo accounts.
bin: root
daemon: root
system: root
toor: root
uucp: root
# Well-known aliases.
manager: root
dumper: root
operator: root
# trap decode to catch security attacks
decode: root
# Aliases to handle mail to programs or files, eg news or vacation
nobody: /dev/null
# Sample aliases:
# Alias for distribution list, members specified here:
#staff:wnj,mosher,sam,ecc,mckusick,sklower,olson,rwh@ernie
# Alias for distribution list, members specified elsewhere:
#keyboards: :include:/usr/jfarrell/keyboards.list
# Alias for a person, so they can receive mail by several names:
#epa:eric
#######################
# Local aliases below #
#######################
#
# Internet host table
#
127.0.0.1 localhost
192.168.105.33 larry larry.tns.ndchealth.com loghost
198.200.166.25 mailhost.tns.ndchealth.com
majordomo: "|/opt/local/majordomo-1.94.5/wrapper majordomo"
owner-majordomo: majord
majordomo-owner: owner-majord
#owner-majordomo: majord,nobody
#majordomo: owner-majord
#Majordomo-Owner: owner-majord
#nobody: /dev/null
test: "|/opt/local/majordomo-1.94.5/wrapper resend -l test test-list"
test-list: :include:/opt/local/majordomo-1.94.5/lists/test
owner-test: mike.kirkland@tulsa.cistech.com
test-owner: mike.kirkland@tulsa.cistech.com
test-request: mike.kirkland@tulsa.cistech.com
test-approval: mike.kirkland@tulsa.cistech.com
>From root@larry.tns.ndchealth.com Tue Apr 22 09:57:00 2003
Date: Tue, 22 Apr 2003 09:56:59 -0500 (CDT)
From: Super-User <root@larry.tns.ndchealth.com>
Message-Id: <200304221456.h3MEuxAt010934@larry.tns.ndchealth.com>
Content-Length: 7
lists
?
>From MAILER-DAEMON Tue Apr 22 09:06:26 2003
Message-ID: <4242F92CA015D5119B9600600834014206A05C55@claven.cistech.com>
From: postmaster@ms.ndcorp.com
To: majord@larry.tns.ndchealth.com
Subject: Undeliverable: Majordomo Registration
Date: Tue, 22 Apr 2003 09:42:12 -0400
Content-Length: 1453
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_01C308D4.FA4264D0
Content-Type: text/plain
Your message
To: majordomo-registration@greatcircle.com;
majord@larry.tns.ndchealth.com
Subject: Majordomo Registration
Sent: Tue, 22 Apr 2003 10:06:14 -0400
did not reach the following recipient(s):
c=US;a= ;p=National Data
Co;o=ihtulsa;dda:SMTP=majordomo-registration@greatcircle.com; on Tue, 22 Apr
2003 10:05:45 -0400
The recipient name is not recognized
The MTS-ID of the original message is: c=us;a= ;p=national data
co;l=CLAVEN0304221405GNXHBPVG
MSEXCH:IMS:National Data Corporation:ihtulsa:CLAVEN 0 (000C05A6) Unknown
Recipient
------_=_NextPart_000_01C308D4.FA4264D0
Content-Type: message/rfc822
Message-ID: <200304221406.h3ME6Ea8010440@larry.tns.ndchealth.com>
From: majord@larry.tns.ndchealth.com
Reply-To: majord@larry.tns.ndchealth.com
To: majordomo-registration@greatcircle.com, majord@larry.tns.ndchealth.com
Subject: Majordomo Registration
Date: Tue, 22 Apr 2003 10:06:14 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
X-MS-Embedded-Report:
Content-Type: text/plain
-- Majordomo Version: 1.94.5 Perl version 5.006001 Majordomo Owner: majord@larry.tns.ndchealth.com Uname: SunOS larry 5.9 Generic_112233-04 sun4u sparc SUNW,UltraAX-i2 ------_=_NextPart_000_01C308D4.FA4264D0-- ? >From majord@larry.tns.ndchealth.com Tue Apr 22 09:06:14 2003 Date: Tue, 22 Apr 2003 09:06:14 -0500 (CDT) From: majordomo - larry <majord@larry.tns.ndchealth.com> Message-Id: <200304221406.h3ME6Ea8010440@larry.tns.ndchealth.com> To: majordomo-registration@greatcircle.com, majord@larry.tns.ndchealth.com Subject: Majordomo Registration Content-Length: 170 -- Majordomo Version: 1.94.5 Perl version 5.006001 Majordomo Owner: majord@larry.tns.ndchealth.com Uname: SunOS larry 5.9 Generic_112233-04 sun4u sparc SUNW,UltraAX-i2 ? $ $ $ mail >From MAILER-DAEMON Tue Apr 22 13:41:06 2003 Message-ID: <4242F92CA015D5119B9600600834014206A08F62@claven.cistech.com> From: postmaster@ms.ndcorp.com To: majord@larry.tns.ndchealth.com Subject: Undeliverable: Majordomo results Date: Tue, 22 Apr 2003 14:16:51 -0400 Content-Length: 10728 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C308FB.58A60196 Content-Type: text/plain Your message To: mike.kirkland@ndchealth.com Subject: Majordomo results Sent: Tue, 22 Apr 2003 14:40:48 -0400 did not reach the following recipient(s): c=US;a= ;p=National Data Co;o=ihtulsa;dda:SMTP=mike.kirkland@ndchealth.com; on Tue, 22 Apr 2003 14:40:18 -0400 The recipient name is not recognized The MTS-ID of the original message is: c=us;a= ;p=national data co;l=CLAVEN0304221840GNXHBSSH MSEXCH:IMS:National Data Corporation:ihtulsa:CLAVEN 0 (000C05A6) Unknown Recipient ------_=_NextPart_000_01C308FB.58A60196 Content-Type: message/rfc822 Message-ID: <200304221840.h3MIem19011138@larry.tns.ndchealth.com> From: majord@larry.tns.ndchealth.com Reply-To: majord@larry.tns.ndchealth.com To: mike.kirkland@ndchealth.com Subject: Majordomo results Date: Tue, 22 Apr 2003 14:40:48 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) X-MS-Embedded-Report: Content-Type: text/plain -- >>>> lists majord@larry.tns.ndchealth.com serves the following lists: test Use the 'info <list>' command to get more information about a specific list. >>>> This E-Mail message is for the sole use of the intended recipient(s) and may **** Command 'this' not recognized. >>>> contain confidential and privileged information. Any unauthorized review, **** Command 'contain' not recognized. >>>> use, disclosure or distribution is prohibited. If you are not the intended **** Command 'use,' not recognized. >>>> recipient, please contact the sender by reply E-Mail, and destroy all copies **** Command 'recipient,' not recognized. >>>> of the original message. **** Command 'of' not recognized. **** Help for majord@larry.tns.ndchealth.com: This help message is being sent to you from the Majordomo mailing list management system at majord@larry.tns.ndchealth.com. This is version 1.94.5 of Majordomo. If you're familiar with mail servers, an advanced user's summary of Majordomo's commands appears at the end of this message. Majordomo is an automated system which allows users to subscribe and unsubscribe to mailing lists, and to retrieve files from list archives. You can interact with the Majordomo software by sending it commands in the body of mail messages addressed to "majord@larry.tns.ndchealth.com". Please do not put your commands on the subject line; Majordomo does not process commands in the subject line. You may put multiple Majordomo commands in the same mail message. Put each command on a line by itself. If you use a "signature block" at the end of your mail, Majordomo may mistakenly believe each line of your message is a command; you will then receive spurious error messages. To keep this from happening, either put a line starting with a hyphen ("-") before your signature, or put a line with just the word end on it in the same place. This will stop the Majordomo software from processing your signature as bad commands. Here are some of the things you can do using Majordomo: I. FINDING OUT WHICH LISTS ARE ON THIS SYSTEM To get a list of publicly-available mailing lists on this system, put the following line in the body of your mail message to majord@larry.tns.ndchealth.com: lists Each line will contain the name of a mailing list and a brief description of the list. ... blah, blah, blah the reminder of the lists request comments Commands should be sent in the body of an email message to "majord@larry.tns.ndchealth.com". Multiple commands can be processed provided each occurs on a separate line. Commands in the "Subject:" line are NOT processed. If you have any questions or problems, please contact "majord@larry.tns.ndchealth.com". ------_=_NextPart_000_01C308FB.58A60196-- ? pwd >From MAILER-DAEMON Tue Apr 22 13:41:06 2003 Message-ID: <4242F92CA015D5119B9600600834014206A08F62@claven.cistech.com> From: postmaster@ms.ndcorp.com To: majord@larry.tns.ndchealth.com Subject: Undeliverable: Majordomo results Date: Tue, 22 Apr 2003 14:16:51 -0400 Content-Length: 10728 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ? >From mike.kirkland@ndchealth.com Tue Apr 22 13:39:48 2003 Message-ID: <4242F92CA015D5119B9600600834014241A926@claven.cistech.com> From: "Kirkland, Mike # IHTUL" <mike.kirkland@ndchealth.com> To: "'majord@larry.tns.ndchealth.com'" <majord@larry.tns.ndchealth.com> Subject: Date: Tue, 22 Apr 2003 13:39:07 -0500 Content-Length: 334 lists This E-Mail message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply E-Mail, and destroy all copies of the original message. ? q $ exit you have mail larry # su - kirklmi Sun Microsystems Inc. SunOS 5.9 Generic May 2002 $ id uid=2002(kirklmi) gid=10(staff) $ exit larry # su - kirklmi Sun Microsystems Inc. SunOS 5.9 Generic May 2002 $ cd /opt/local/maj*1* $ pwd /opt/local/majordomo-1.94.5 $ ./wrapper config-test ------------------------------------------------------------ ---------------- Config-test for Majordomo ---------------- ------------------------------------------------------------ --------------------- Obvious things: --------------------- ------------------ environment variables ------------------ HOME=/opt/local/majordomo-1.94.5 LOGNAME=kirklmi MAJORDOMO_CF=/opt/local/majordomo-1.94.5/majordomo.cf PATH=/bin:/usr/bin:/usr/ucb SHELL=/bin/sh TZ=US/Central --------------------- euid/egid checks --------------------- effective user = majord (uid 2200) effective group = daemon sysadmin staff (gid 12 14 10 ) ---------------------- uid/gid checks ---------------------- real user = majord (uid 2200) real group = daemon sysadmin staff (gid 12 14 10 ) ------------------------------------------------------------ Non obvious things that cause headaches: ------------------------------------------------------------ Good: 'require'd /opt/local/majordomo-1.94.5/majordomo.cf okay. Good: found ctime.pl okay. Good: found majordomo_version.pl okay. Good: found majordomo.pl okay. Good: found shlock.pl okay. Good: found config_parse.pl okay. You're running Majordomo Version 1.94.5. --==> Majordomo home directory is /opt/local/majordomo-1.94.5. ------------------- Include directories ------------------- /opt/local/majordomo-1.94.5 /usr/perl5/5.6.1/lib/sun4-solaris-64int /usr/perl5/5.6.1/lib /usr/perl5/site_perl/5.6.1/sun4-solaris-64int /usr/perl5/site_perl/5.6.1 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.6.1/sun4-solaris-64int /usr/perl5/vendor_perl/5.6.1 /usr/perl5/vendor_perl . --------------------------- Home --------------------------- Good: changedir to /opt/local/majordomo-1.94.5 succeeded. Good: Created a mock lock file. ---------------------- temp directory ---------------------- Good: Created a temp file in $TMPDIR (/usr/tmp). ---------------------- list directory ---------------------- Good: list directory /opt/local/majordomo-1.94.5/lists has good permissions. --------------------------- log --------------------------- Good: logfile /opt/local/majordomo-1.94.5/Log exists and is writeable. ------------------------- Mailers ------------------------- You have defined a mailer for delivery. Attempting to verify that this is a valid mailer...looks okay. You have defined a mailer for delivering administrative messages. Attempting to verify that this is a valid mailer...looks okay. ------------------ Checking majordomo.cf ------------------ Checking to see if there are new variables that should be in your majordomo.cf file...Nope, none that I see. Have you configured where Majordomo is? $whereami is larry.tns.ndchealth.com Good: yup! ----------------------- end of tests ----------------------- Nothing bad found! Majordomo _should_ work correctly. If it doesn't, check your configuration file (/opt/local/majordomo-1.94.5/majordomo.cf) closely, and if it still looks okay, consider asking the majordomo-users mailing list at "majordomo-users@greatcircle.com" for assistance. Be sure and fully specify what your problems are, and what type of machine (and operating system) you are using. Enjoy! $ exit larry # larry # nslookup Default Server: dns1.cistech.com Address: 198.200.166.13 > set type=mx > tulsa.cistech.com Server: dns1.cistech.com Address: 198.200.166.13 tulsa.cistech.com preference = 20, mail exchanger = claven.cistech.com cistech.com nameserver = dns1.cistech.com claven.cistech.com internet address = 198.200.166.25 dns1.cistech.com internet address = 198.200.166.13 > cistech.com Server: dns1.cistech.com Address: 198.200.166.13 cistech.com preference = 20, mail exchanger = claven.cistech.com cistech.com nameserver = dns1.cistech.com claven.cistech.com internet address = 198.200.166.25 dns1.cistech.com internet address = 198.200.166.13 > tns.ndchealth.com Server: dns1.cistech.com Address: 198.200.166.13 tns.ndchealth.com preference = 20, mail exchanger = ns.cistech.com tns.ndchealth.com nameserver = dns1.cistech.com ns.cistech.com internet address = 198.200.166.38 dns1.cistech.com internet address = 198.200.166.13 > ndchealth.com Server: dns1.cistech.com Address: 198.200.166.13 Non-authoritative answer: ndchealth.com preference = 10, mail exchanger = smtp2.ndchealth.com ndchealth.com preference = 20, mail exchanger = smtp1.ndchealth.com Authoritative answers can be found from: ndchealth.com nameserver = css1.ndcorp.com ndchealth.com nameserver = css2.ndcorp.com ndchealth.com nameserver = css.ndcorp.com smtp2.ndchealth.com internet address = 192.168.245.51 smtp1.ndchealth.com internet address = 192.168.245.50 css.ndcorp.com internet address = 206.227.197.5 css1.ndcorp.com internet address = 206.227.197.3 css2.ndcorp.com internet address = 206.227.197.4 > exit larry # mike.kirkland@tulsa.cistech.com # The configuration file for a majordomo mailing list. # Comments start with the first # on a line, and continue to the end # of the line. There is no way to escape the # character. The file # uses either a key = value for simple (i.e. a single) values, or uses # a here document # key << END # value 1 # value 2 # [ more values 1 per line] # END # for installing multiple values in array types. Note that the here # document delimiter (END in the example above) must be the same at the end # of the list of entries as it is after the << characters. # Within a here document, the # sign is NOT a comment character. # A blank line is allowed only as the last line in the here document. # # The values can have multiple forms: # # absolute_dir -- A root anchored (i.e begins with a /) directory # absolute_file -- A root anchored (i.e begins with a /) file # bool -- choose from: yes, no, y, n # enum -- One of a list of possible values # integer -- an integer (string made up of the digits 0-9, # no decimal point) # float -- a floating point number with decimal point. # regexp -- A perl style regular expression with # leading and trailing /'s. # restrict_post -- a series of space or : separated file names in which # to look up the senders address # (restrict-post should go away to be replaced by an # array of files) # string -- any text up until a \n stripped of # leading and trailing whitespace # word -- any text with no embedded whitespace # # A blank value is also accepted, and will undefine the corresponding keyword. # The character Control-A may not be used in the file. # # A trailing _array on any of the above types means that that keyword # will allow more than one value. # # Within a here document for a string_array, the '-' sign takes on a special # significance. # # To embed a blank line in the here document, put a '-' as the first # and ONLY character on the line. # # To preserve whitespace at the beginning of a line, put a - on the # line before the whitespace to be preserved # # To put a literal '-' at the beginning of a line, double it. # # # The default if the keyword is not supplied is given in ()'s while the # type of value is given in [], the subsystem the keyword is used in is # listed in <>'s. (undef) as default value means that the keyword is not # defined or used. # admin_passwd [word] (test.admin) <majordomo> # The password for handling administrative tasks on the list. admin_passwd = test.admin # administrivia [bool] (yes) <resend> # Look for administrative requests (e.g. subscribe/unsubscribe) and # forward them to the list maintainer instead of the list. administrivia = yes # advertise [regexp_array] (undef) <majordomo> # If the requestor email address matches one of these regexps, then # the list will be listed in the output of a lists command. Failure # to match any regexp excludes the list from the output. The # regexps under noadvertise override these regexps. advertise << END END # announcements [bool] (yes) <majordomo> # If set to yes, comings and goings to the list will be sent to the # list owner. These SUBSCRIBE/UNSUBSCRIBE event announcements are # informational only (no action is required), although it is highly # recommended that they be monitored to watch for list abuse. announcements = yes # approve_passwd [word] (test.pass) <resend> # Password to be used in the approved header to allow posting to # moderated list, or to bypass resend checks. approve_passwd = test.pass # archive_dir [absolute_dir] (undef) <majordomo> # The directory where the mailing list archive is kept. This item # does not currently work. Leave it blank. archive_dir = # comments [string_array] (undef) <config> # Comment string that will be retained across config file rewrites. comments << END END # date_info [bool] (yes) <majordomo> # Put the last updated date for the info file at the top of the # info file rather than having it appended with an info command. # This is useful if the file is being looked at by some means other # than majordomo (e.g. finger). date_info = yes # date_intro [bool] (yes) <majordomo> # Put the last updated date for the intro file at the top of the # intro file rather than having it appended with an intro command. # This is useful if the file is being looked at by some means other # than majordomo (e.g. finger). date_intro = yes # debug [bool] (no) <resend> # Don't actually forward message, just go though the motions. debug = no # description [string] (undef) <majordomo> # Used as description for mailing list when replying to the lists # command. There is no quoting mechanism, and there is only room # for 50 or so characters. description = # digest_archive [absolute_dir] (undef) <digest> # The directory where the digest archive is kept. This item does # not currently work. Leave it blank. digest_archive = # digest_issue [integer] (1) <digest> # The issue number of the next issue digest_issue = 1 # digest_maxdays [integer] (undef) <digest> # automatically generate a new digest when the age of the oldest # article in the queue exceeds this number of days. digest_maxdays = # digest_maxlines [integer] (undef) <digest> # automatically generate a new digest when the size of the digest # exceeds this number of lines. digest_maxlines = # digest_name [string] (test) <digest> # The subject line for the digest. This string has the volume and # issue appended to it. digest_name = test # digest_rm_footer [word] (undef) <digest> # The value is the name of the list that applies the header and # footers to the messages that are received by digest. This allows # the list supplied headers and footers to be stripped before the # messages are included in the digest. digest_rm_footer = # digest_rm_fronter [word] (undef) <digest> # Works just like digest_rm_footer, except it removes the front # material. digest_rm_fronter = # digest_volume [integer] (1) <digest> # The current volume number digest_volume = 1 # digest_work_dir [absolute_dir] (undef) <digest> # The directory used as scratch space for digest. Don't change # this unless you know what you are doing digest_work_dir = # get_access [enum] (list) <majordomo> /open;closed;list/ # One of three values: open, list, closed. Open allows anyone # access to this command and closed completely disables the command # for everyone. List allows only list members access, or if # restrict_post is defined, only the addresses in those files are # allowed access. get_access = list # index_access [enum] (open) <majordomo> /open;closed;list/ # One of three values: open, list, closed. Open allows anyone # access to this command and closed completely disables the command # for everyone. List allows only list members access, or if # restrict_post is defined, only the addresses in those files are # allowed access. index_access = open # info_access [enum] (open) <majordomo> /open;closed;list/ # One of three values: open, list, closed. Open allows anyone # access to this command and closed completely disables the command # for everyone. List allows only list members access, or if # restrict_post is defined, only the addresses in those files are # allowed access. info_access = open # intro_access [enum] (list) <majordomo> /open;closed;list/ # One of three values: open, list, closed. Open allows anyone # access to this command and closed completely disables the command # for everyone. List allows only list members access, or if # restrict_post is defined, only the addresses in those files are # allowed access. intro_access = list # maxlength [integer] (40000) <resend,digest> # The maximum size of an unapproved message in characters. When # used with digest, a new digest will be automatically generated if # the size of the digest exceeds this number of characters. maxlength = 40000 # message_footer [string_array] (undef) <resend,digest> # Text to be appended at the end of all messages posted to the # list. The text is expanded before being used. The following # expansion tokens are defined: $LIST - the name of the current # list, $SENDER - the sender as taken from the from line, $VERSION, # the version of majordomo. If used in a digest, no expansion # tokens are provided message_footer << END END # message_fronter [string_array] (undef) <resend,digest> # Text to be prepended to the beginning of all messages posted to # the list. The text is expanded before being used. The following # expansion tokens are defined: $LIST - the name of the current # list, $SENDER - the sender as taken from the from line, $VERSION, # the version of majordomo. If used in a digest, only the expansion # token _SUBJECTS_ is available, and it expands to the list of # message subjects in the digest message_fronter << END END # message_headers [string_array] (undef) <resend,digest> # These headers will be appended to the headers of the posted # message. The text is expanded before being used. The following # expansion tokens are defined: $LIST - the name of the current # list, $SENDER - the sender as taken from the from line, $VERSION, # the version of majordomo. message_headers << END END # moderate [bool] (no) <resend> # If yes, all postings to the list will be bounced to the moderator # for approval. moderate = no # moderator [word] (undef) <resend> # Address for directing posts which require approval. Such # approvals might include moderated mail, administrivia traps, and # restrict_post authorizations. If the moderator address is not # set, it will default to the list-approval address. moderator = # mungedomain [bool] (no) <majordomo> # If set to yes, a different method is used to determine a matching # address. When set to yes, addresses of the form user@dom.ain.com # are considered equivalent to addresses of the form user@ain.com. # This allows a user to subscribe to a list using the domain # address rather than the address assigned to a particular machine # in the domain. This keyword affects the interpretation of # addresses for subscribe, unsubscribe, and all private options. mungedomain = no # noadvertise [regexp_array] (undef) <majordomo> # If the requestor name matches one of these regexps, then the list # will not be listed in the output of a lists command. Noadvertise # overrides advertise. noadvertise << END END # precedence [word] (bulk) <resend,digest> # Put a precedence header with value <value> into the outgoing # message. precedence = bulk # purge_received [bool] (no) <resend> # Remove all received lines before resending the message. purge_received = no # reply_to [word] () <resend,digest> # Put a reply-to header with value <value> into the outgoing # message. If the token $SENDER is used, then the address of the # sender is used as the value of the reply-to header. This is the # value of the reply-to header for digest lists. reply_to = mike.kirkland@tulsa.cistech.com # resend_host [word] (undef) <resend> # The host name that is appended to all address strings specified # for resend. resend_host = larry # restrict_post [restrict_post] (undef) <resend> # If defined, only addresses listed in these files (colon or space # separated) can post to the mailing list. By default, these files # are relative to the lists directory. These files are also checked # when get_access, index_access, info_access, intro_access, # which_access, or who_access is set to 'list'. This is less useful # than it seems it should be since there is no way to create these # files if you do not have access to the machine running resend. # This mechanism will be replaced in a future version of # majordomo/resend. restrict_post = test.allow # sender [word] (owner-test) <majordomo,resend,digest> # The envelope and sender address for the resent mail. This string # has "@" and the value of resend_host appended to it to make a # complete address. For majordomo, it provides the sender address # for the welcome mail message generated as part of the subscribe # command. sender = owner-test # strip [bool] (yes) <majordomo> # When adding address to the list, strip off all comments etc, and # put just the raw address in the list file. In addition to the # keyword, if the file <listname>.strip exists, it is the same as # specifying a yes value. That yes value is overridden by the value # of this keyword. strip = yes # subject_prefix [word] (undef) <resend> # This word will be prefixed to the subject line, if it is not # already in the subject. The text is expanded before being used. # The following expansion tokens are defined: $LIST - the name of # the current list, $SENDER - the sender as taken from the from # line, $VERSION, the version of majordomo. subject_prefix = # subscribe_policy [enum] (open+confirm) <majordomo> /open;closed # One of three values: open, closed, auto; plus an optional # modifier: '+confirm'. Open allows people to subscribe themselves # to the list. Auto allows anybody to subscribe anybody to the list # without maintainer approval. Closed requires maintainer approval # for all subscribe requests to the list. Adding '+confirm', ie, # 'open+confirm', will cause majordomo to send a reply back to the # subscriber which includes a authentication number which must be # sent back in with another subscribe command. subscribe_policy = open+confirm # taboo_body [regexp_array] (undef) <resend> # If any line of the body matches one of these regexps, then the # message will be bounced for review. taboo_body << END END # taboo_headers [regexp_array] (undef) <resend> # If any of the headers matches one of these regexps, then the # message will be bounced for review. taboo_headers << END END # unsubscribe_policy [enum] (open) <majordomo> /open;closed;auto;op # One of three values: open, closed, auto; plus an optional # modifier: '+confirm'. Open allows people to unsubscribe # themselves from the list. Auto allows anybody to unsubscribe # anybody to the list without maintainer approval. The existence of # the file <listname>.auto is the same as specifying the value # auto. Closed requires maintainer approval for all unsubscribe # requests to the list. In addition to the keyword, if the file # <listname>.closed exists, it is the same as specifying the value # closed. Adding '+confirm', ie, 'auto+confirm', will cause # majordomo to send a reply back to the subscriber if the request # didn't come from the subscriber. The reply includes a # authentication number which must be sent back in with another # subscribe command. The value of this keyword overrides the value # supplied by any existent files. unsubscribe_policy = open # welcome [bool] (yes) <majordomo> # If set to yes, a welcome message (and optional 'intro' file) will # be sent to the newly subscribed user. welcome = yes # which_access [enum] (open) <majordomo> /open;closed;list/ # One of three values: open, list, closed. Open allows anyone # access to this command and closed completely disables the command # for everyone. List allows only list members access, or if # restrict_post is defined, only the addresses in those files are # allowed access. which_access = open # who_access [enum] (open) <majordomo> /open;closed;list/ # One of three values: open, list, closed. Open allows anyone # access to this command and closed completely disables the command # for everyone. List allows only list members access, or if # restrict_post is defined, only the addresses in those files are # allowed access. who_access = open mike.kirkland@ndchealth.com larry # mailx -v mike.kirkland@tulsa.cistech.com Subject: test from larry tulsa.cistech.com test54 . EOT larry # mike.kirkland@tulsa.cistech.com... Connecting to localhost via relay... 220 larry.tns.ndchealth.com ESMTP Sendmail 8.12.9+Sun/8.12.2; Tue, 22 Apr 2003 14:48:34 -0500 (CDT) >>> EHLO larry.tns.ndchealth.com 250-larry.tns.ndchealth.com Hello localhost [IPv6:::1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-DELIVERBY 250 HELP >>> MAIL From:<root@larry.tns.ndchealth.com> SIZE=105 250 2.1.0 <root@larry.tns.ndchealth.com>... Sender ok >>> RCPT To:<mike.kirkland@tulsa.cistech.com> >>> DATA 250 2.1.5 <mike.kirkland@tulsa.cistech.com>... Recipient ok 354 Enter mail, end with "." on a line by itself >>> . 250 2.0.0 h3MJmYZS011179 Message accepted for delivery mike.kirkland@tulsa.cistech.com... Sent (h3MJmYZS011179 Message accepted for delivery) Closing connection to localhost >>> QUIT 221 2.0.0 larry.tns.ndchealth.com closing connection larry # mailx -v mike.kirkland@ndchealth.com Subject: test from larry ndchealth.com test 123 . EOT larry # mike.kirkland@ndchealth.com... Connecting to localhost via relay... 220 larry.tns.ndchealth.com ESMTP Sendmail 8.12.9+Sun/8.12.2; Tue, 22 Apr 2003 14:57:55 -0500 (CDT) >>> EHLO larry.tns.ndchealth.com 250-larry.tns.ndchealth.com Hello localhost [IPv6:::1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-DELIVERBY 250 HELP >>> MAIL From:<root@larry.tns.ndchealth.com> SIZE=99 250 2.1.0 <root@larry.tns.ndchealth.com>... Sender ok >>> RCPT To:<mike.kirkland@ndchealth.com> >>> DATA 250 2.1.5 <mike.kirkland@ndchealth.com>... Recipient ok 354 Enter mail, end with "." on a line by itself >>> . 250 2.0.0 h3MJvtZS011186 Message accepted for delivery mike.kirkland@ndchealth.com... Sent (h3MJvtZS011186 Message accepted for delivery) Closing connection to localhost >>> QUIT 221 2.0.0 larry.tns.ndchealth.com closing connection larry # mail >From MAILER-DAEMON Tue Apr 22 14:58:13 2003 Message-ID: <4242F92CA015D5119B9600600834014206A0FDF8@claven.cistech.com> From: postmaster@ms.ndcorp.com To: root@larry.tns.ndchealth.com Subject: Undeliverable: test from larry ndchealth.com Date: Tue, 22 Apr 2003 15:33:58 -0400 Content-Length: 1166 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C30906.1EB1F05C Content-Type: text/plain Your message To: mike.kirkland@ndchealth.com Subject: test from larry ndchealth.com Sent: Tue, 22 Apr 2003 15:57:55 -0400 did not reach the following recipient(s): c=US;a= ;p=National Data Co;o=ihtulsa;dda:SMTP=mike.kirkland@ndchealth.com; on Tue, 22 Apr 2003 15:57:26 -0400 The recipient name is not recognized The MTS-ID of the original message is: c=us;a= ;p=national data co;l=CLAVEN0304221957GNXHBTTF MSEXCH:IMS:National Data Corporation:ihtulsa:CLAVEN 0 (000C05A6) Unknown Recipient ------_=_NextPart_000_01C30906.1EB1F05C Content-Type: message/rfc822 Message-ID: <200304221957.h3MJvtwr011185@larry.tns.ndchealth.com> From: root@larry.tns.ndchealth.com To: mike.kirkland@ndchealth.com Subject: test from larry ndchealth.com Date: Tue, 22 Apr 2003 15:57:55 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) X-MS-Embedded-Report: Content-Type: text/plain test 123 ------_=_NextPart_000_01C30906.1EB1F05C-- ? # # Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 # The Regents of the University of California. All rights reserved. # # Copyright 1993, 1997 - 2002 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # By using this file, you agree to the terms and conditions set # forth in the LICENSE file which can be found at the top level of # the sendmail distribution. # # ###################################################################### ###################################################################### ##### ##### SENDMAIL CONFIGURATION FILE ##### ###################################################################### ##### ##### DO NOT EDIT THIS FILE! Only edit the source .mc file. ##### ###################################################################### ###################################################################### ##### $Id: cfhead.m4,v 8.107 2001/07/22 03:25:37 ca Exp $ ##### ##### ident "@(#)cfhead.m4 1.17 02/01/16 SMI" ##### ##### $Id: cf.m4,v 8.32 1999/02/07 07:26:14 gshapiro Exp $ ##### ##### @(#)subsidiary.mc 1.10 (Sun) 12/14/00 ##### ##### $Id: solaris8.m4,v 8.2 2000/08/23 16:10:49 gshapiro Exp $ ##### ##### $Id: local_lmtp.m4,v 8.16 2000/08/18 18:58:45 ca Exp $ ##### ##### @(#)solaris-generic.m4 1.9 (Sun) 08/27/01 ##### ##### $Id: redirect.m4,v 8.15 1999/08/06 01:47:36 gshapiro Exp $ ##### ##### $Id: use_cw_file.m4,v 8.11 2001/08/26 20:58:57 gshapiro Exp $ ##### ##### $Id: use_ct_file.m4,v 8.11 2001/08/26 20:58:57 gshapiro Exp $ ##### ##### $Id: accept_unqualified_senders.m4,v 8.6 1999/02/07 07:26:07 gshapiro Exp $ ##### ##### $Id: accept_unresolvable_domains.m4,v 8.10 1999/02/07 07:26:07 gshapiro Exp $ ##### ##### $Id: relay_entire_domain.m4,v 8.10 1999/02/07 07:26:12 gshapiro Exp $ ##### ##### $Id: proto.m4,v 8.628 2001/12/28 19:02:40 ca Exp $ ##### # level 10 config file format V10/Sun # override file safeties - setting this option compromises system security, # addressing the actual file configuration problem is preferred # need to set this before any file actions are encountered in the cf file #O DontBlameSendmail=safe # default LDAP map specification # need to set this now before any LDAP maps are defined #O LDAPDefaultSpec=-h localhost ################## # local info # ################## # my LDAP cluster # need to set this before any LDAP lookups are done (including classes) #D{sendmailMTACluster}$m Cwlocalhost # file containing names of hosts for which we receive email Fw/etc/mail/local-host-names # my official domain name # ... define this only if sendmail cannot automatically determine your domain #Dj$w.Foo.COM CP. # "Smart" relay host (may be null) DSmailhost$?m.$m$. # operators that cannot be in local usernames (i.e., network indicators) CO @ % ! # a class with just dot (for identifying canonical names) C.. # a class with just a left bracket (for identifying domain literals) C[[ C{ResOk}OKR # Hosts for which relaying is permitted ($=R) FR-o /etc/mail/relay-domains # arithmetic map Karith arith # dequoting map Kdequote dequote # class E: names that should be exposed as from this host, even if we masquerade # class L: names that should be delivered locally, even if we have a relay # class M: domains that should be converted to $M # class N: domains that should not be converted to $M #CL root C{E}root # my name for error messages DnMAILER-DAEMON CPREDIRECT # Configuration version number DZ8.12.2 ############### # Options # ############### # strip message body to 7 bits on input? O SevenBitInput=False # 8-bit data handling #O EightBitMode=pass8 # wait for alias file rebuild (default units: minutes) O AliasWait=10 # location of alias file O AliasFile=/etc/mail/aliases O AliasFile=/etc/mail/majordomo.aliases # minimum number of free blocks on filesystem O MinFreeBlocks=100 # maximum message size #O MaxMessageSize=1000000 # substitution for space (blank) characters O BlankSub=. # avoid connecting to "expensive" mailers on initial submission? O HoldExpensive=False # checkpoint queue runs after every N successful deliveries #O CheckpointInterval=10 # default delivery mode O DeliveryMode=background # error message header/file #O ErrorHeader=/etc/mail/error-header # error mode #O ErrorMode=print # save Unix-style "From_" lines at top of header? #O SaveFromLine=False # queue file mode (qf files) #O QueueFileMode=0600 # temporary file mode O TempFileMode=0600 # match recipients against GECOS field? #O MatchGECOS=False # maximum hop count #O MaxHopCount=25 # location of help file O HelpFile=/etc/mail/helpfile # ignore dots as terminators in incoming messages? #O IgnoreDots=False # name resolver options #O ResolverOptions=+AAONLY # deliver MIME-encapsulated error messages? O SendMimeErrors=True # Forward file search path O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward # open connection cache size O ConnectionCacheSize=2 # open connection cache timeout O ConnectionCacheTimeout=5m # persistent host status directory #O HostStatusDirectory=.hoststat # single thread deliveries (requires HostStatusDirectory)? #O SingleThreadDelivery=False # use Errors-To: header? O UseErrorsTo=False # log level O LogLevel=9 # send to me too, even in an alias expansion? #O MeToo=True # verify RHS in newaliases? O CheckAliases=False # default messages to old style headers if no special punctuation? O OldStyleHeaders=True # SMTP daemon options O DaemonPortOptions=Name=MTA-v4, Family=inet O DaemonPortOptions=Name=MTA-v6, Family=inet6 O DaemonPortOptions=Port=587, Name=MSA, M=E # SMTP client options #O ClientPortOptions=Family=inet, Address=0.0.0.0 # Modifiers to define {daemon_flags} for direct submissions #O DirectSubmissionModifiers # Use as mail submission program? See sendmail/SECURITY #O UseMSP # privacy flags O PrivacyOptions=authwarnings # who (if anyone) should get extra copies of error messages #O PostmasterCopy=Postmaster # slope of queue-only function #O QueueFactor=600000 # limit on number of concurrent queue runners #O MaxQueueChildren # maximum number of queue-runners per queue-grouping with multiple queues #O MaxRunnersPerQueue=1 # priority of queue runners (nice(3)) #O NiceQueueRun # shall we sort the queue by hostname first? #O QueueSortOrder=priority # minimum time in queue before retry #O MinQueueAge=30m # how many jobs can you process in the queue? #O MaxQueueRunSize=10000 # perform initial split of envelope without checking MX records #O FastSplit=1 # queue directory O QueueDirectory=/var/spool/mqueue # key for shared memory; 0 to turn off #O SharedMemoryKey=0 # timeouts (many of these) #O Timeout.initial=5m #O Timeout.connect=5m #O Timeout.aconnect=0s #O Timeout.iconnect=5m #O Timeout.helo=5m #O Timeout.mail=10m #O Timeout.rcpt=1h #O Timeout.datainit=5m #O Timeout.datablock=1h #O Timeout.datafinal=1h #O Timeout.rset=5m #O Timeout.quit=2m #O Timeout.misc=2m #O Timeout.command=1h #O Timeout.ident=5s #O Timeout.fileopen=60s #O Timeout.control=2m O Timeout.queuereturn=5d #O Timeout.queuereturn.normal=5d #O Timeout.queuereturn.urgent=2d #O Timeout.queuereturn.non-urgent=7d O Timeout.queuewarn=4h #O Timeout.queuewarn.normal=4h #O Timeout.queuewarn.urgent=1h #O Timeout.queuewarn.non-urgent=12h #O Timeout.hoststatus=30m #O Timeout.resolver.retrans=5s #O Timeout.resolver.retrans.first=5s #O Timeout.resolver.retrans.normal=5s #O Timeout.resolver.retry=4 #O Timeout.resolver.retry.first=4 #O Timeout.resolver.retry.normal=4 #O Timeout.lhlo=2m #O Timeout.auth=10m #O Timeout.starttls=1h # time for DeliverBy; extension disabled if less than 0 #O DeliverByMin=0 # should we not prune routes in route-addr syntax addresses? #O DontPruneRoutes=False # queue up everything before forking? O SuperSafe=True # status file O StatusFile=/etc/mail/statistics # time zone handling: # if undefined, use system default # if defined but null, use TZ envariable passed in # if defined and non-null, use that info #O TimeZoneSpec= # default UID (can be username or userid:groupid) #O DefaultUser=mailnull # list of locations of user database file (null means no lookup) #O UserDatabaseSpec=/etc/mail/userdb # fallback MX host #O FallbackMXhost=fall.back.host.net # if we are the best MX host for a site, try it directly instead of config err #O TryNullMXList=False # load average at which we just queue messages #O QueueLA=8 # load average at which we refuse connections #O RefuseLA=12 # load average at which we delay connections; 0 means no limit #O DelayLA=0 # maximum number of children we allow at one time #O MaxDaemonChildren=12 # maximum number of new connections per second #O ConnectionRateThrottle=0 # work recipient factor #O RecipientFactor=30000 # deliver each queued job in a separate process? #O ForkEachJob=False # work class factor #O ClassFactor=1800 # work time factor #O RetryFactor=90000 # default character set #O DefaultCharSet=iso-8859-1 # service switch file (name hardwired on Solaris, Ultrix, OSF/1, others) #O ServiceSwitchFile=/etc/mail/service.switch # hosts file (normally /etc/hosts) #O HostsFile=/etc/hosts # dialup line delay on connection failure #O DialDelay=10s # action to take if there are no recipients in the message #O NoRecipientAction=add-to-undisclosed # chrooted environment for writing to files #O SafeFileEnvironment=/arch # are colons OK in addresses? #O ColonOkInAddr=True # shall I avoid expanding CNAMEs (violates protocols)? #O DontExpandCnames=False # SMTP initial login message (old $e macro) O SmtpGreetingMessage=$j Sendmail $v/$Z; $b # UNIX initial From header format (old $l macro) O UnixFromLine=From $g $d # From: lines that have embedded newlines are unwrapped onto one line #O SingleLineFromHeader=False # Allow HELO SMTP command that does not include a host name #O AllowBogusHELO=False # Characters to be quoted in a full name phrase (@,;:\()[] are automatic) #O MustQuoteChars=. # delimiter (operator) characters (old $o macro) O OperatorChars=.:%@!^/[]+ # shall I avoid calling initgroups(3) because of high NIS costs? #O DontInitGroups=False # are group-writable :include: and .forward files (un)trustworthy? # True (the default) means they are not trustworthy. #O UnsafeGroupWrites=True # where do errors that occur when sending errors get sent? #O DoubleBounceAddress=postmaster # where to save bounces if all else fails #O DeadLetterDrop=/var/tmp/dead.letter # what user id do we assume for the majority of the processing? #O RunAsUser=sendmail # maximum number of recipients per SMTP envelope #O MaxRecipientsPerMessage=100 # limit the rate recipients per SMTP envelope are accepted # once the threshold number of recipients have been rejected #O BadRcptThrottle=20 # shall we get local names from our installed interfaces? #O DontProbeInterfaces=False # Return-Receipt-To: header implies DSN request #O RrtImpliesDsn=False # override connection address (for testing) #O ConnectOnlyTo=0.0.0.0 # Trusted user for file ownership and starting the daemon #O TrustedUser=root # Control socket for daemon management #O ControlSocketName=/var/spool/mqueue/.control # Maximum MIME header length to protect MUAs #O MaxMimeHeaderLength=1024/256 # Maximum length of the sum of all headers #O MaxHeadersLength=32768 # Maximum depth of alias recursion #O MaxAliasRecursion=10 # location of pid file O PidFile=/var/run/sendmail.pid # Prefix string for the process title shown on 'ps' listings #O ProcessTitlePrefix=prefix # Data file (df) memory-buffer file maximum size #O DataFileBufferSize=4096 # Transcript file (xf) memory-buffer file maximum size #O XscriptFileBufferSize=4096 # lookup type to find information about local mailboxes #O MailboxDatabase=pw # list of authentication mechanisms #O AuthMechanisms=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5 # default authentication information for outgoing connections #O DefaultAuthInfo=/etc/mail/default-auth-info # SMTP AUTH flags #O AuthOptions # SMTP AUTH maximum encryption strength #O AuthMaxBits # SMTP STARTTLS server options #O TLSSrvOptions # Input mail filters #O InputMailFilters # CA directory #O CACERTPath # CA file #O CACERTFile # Server Cert #O ServerCertFile # Server private key #O ServerKeyFile # Client Cert #O ClientCertFile # Client private key #O ClientKeyFile # DHParameters (only required if DSA/DH is used) #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile ############################ # QUEUE GROUP DEFINITIONS # ############################ ########################### # Message precedences # ########################### Pfirst-class=0 Pspecial-delivery=100 Plist=-30 Pbulk=-60 Pjunk=-100 ##################### # Trusted users # ##################### # this is equivalent to setting class "t" Ft/etc/mail/trusted-users Troot Tdaemon Tuucp ######################### # Format of headers # ######################### H?P?Return-Path: <$g> HReceived: $?sfrom $s $.$?_($?s$|from $.$_) $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.) $.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version} (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u for $u; $|; $.$b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $?x$x <$g>$|$g$. H?F?From: $?x$x <$g>$|$g$. H?x?Full-Name: $x # HPosted-Date: $a # H?l?Received-Date: $b H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> # ###################################################################### ###################################################################### ##### ##### REWRITING RULES ##### ###################################################################### ###################################################################### ############################################ ### Ruleset 3 -- Name Canonicalization ### ############################################ Scanonify=3 # handle null input (translate to <@> special case) R$@ $@ <@> # strip group: syntax (not inside angle brackets!) and trailing semicolon R$* $: $1 <@> mark addresses R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr> R@ $* <@> $: @ $1 unmark @host:... R$* [ IPv6 : $+ ] <@> $: $1 [ IPv6 : $2 ] unmark IPv6 addr R$* :: $* <@> $: $1 :: $2 unmark node::addr R:include: $* <@> $: :include: $1 unmark :include:... R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon R$* : $* <@> $: $2 strip colon if marked R$* <@> $: $1 unmark R$* ; $1 strip trailing semi R$* < $+ :; > $* $@ $2 :; <@> catch <list:;> R$* < $* ; > $1 < $2 > bogus bracketed semi # null input now results from list:; syntax R$@ $@ :; <@> # strip angle brackets -- note RFC733 heuristic to get innermost item R$* $: < $1 > housekeeping <> R$+ < $* > < $2 > strip excess on left R< $* > $+ < $1 > strip excess on right R<> $@ < @ > MAIL FROM:<> case R< $+ > $: $1 remove housekeeping <> # strip route address <@a,@b,@c:user@d> -> <user@d> R@ $+ , $+ $2 R@ [ $* ] : $+ $2 R@ $+ : $+ $2 # find focus for list syntax R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax R $+ : $* ; $@ $1 : $2; list syntax # find focus for @ syntax addresses R$+ @ $+ $: $1 < @ $2 > focus on domain R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical # convert old-style addresses to a domain-based address R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains # if we have % signs, take the rightmost one R$* % $* $1 @ $2 First make them all @s. R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish # else we must be a local name R$* $@ $>Canonify2 $1 ################################################ ### Ruleset 96 -- bottom half of ruleset 3 ### ################################################ SCanonify2=96 # handle special cases for local names R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain # check for IPv4/IPv6 domain literal R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [addr] R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr # if really UUCP, handle it immediately # try UUCP traffic as a local address R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3 R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3 # hostnames ending in class P are always canonical R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4 R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4 R$* CC $* $| $* < @ $+.$+ > $* $: $3 < @ $4.$5 . > $6 R$* CC $* $| $* $: $3 # pass to name server to make hostname canonical R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4 R$* $| $* $: $2 # local host aliases and pseudo-domains are always canonical R$* < @ $=w > $* $: $1 < @ $2 . > $3 R$* < @ $=M > $* $: $1 < @ $2 . > $3 R$* < @ $* . . > $* $1 < @ $2 . > $3 ################################################## ### Ruleset 4 -- Final Output Post-rewriting ### ################################################## Sfinal=4 R$+ :; <@> $@ $1 : handle <list:;> R$* <@> $@ handle <> and list:; # strip trailing dot off possibly canonical name R$* < @ $+ . > $* $1 < @ $2 > $3 # eliminate internal code R$* < @ *LOCAL* > $* $1 < @ $j > $2 # externalize local domain info R$* < $+ > $* $1 $2 $3 defocus R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical R@ $* $@ @ $1 ... and exit # UUCP must always be presented in old form R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u # delete duplicate local names R$+ % $=w @ $=w $1 @ $2 u%host@host => u@host ############################################################## ### Ruleset 97 -- recanonicalize and call ruleset zero ### ### (used for recursive calls) ### ############################################################## SRecurse=97 R$* $: $>canonify $1 R$* $@ $>parse $1 ###################################### ### Ruleset 0 -- Parse Address ### ###################################### Sparse=0 R$* $: $>Parse0 $1 initial parsing R<@> $#local $: <@> special case error msgs R$* $: $>ParseLocal $1 handle local hacks R$* $: $>Parse1 $1 final parsing # # Parse0 -- do initial syntax checking and eliminate local addresses. # This should either return with the (possibly modified) input # or return with a #error mailer. It should not return with a # #mailer other than the #error mailer. # SParse0 R<@> $@ <@> special case error msgs R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses" R@ <@ $* > < @ $1 > catch "@@host" bogosity R<@ $+> $#error $@ 5.1.3 $: "553 User address required" R$+ <@> $#error $@ 5.1.3 $: "553 Hostname required" R$* $: <> $1 R<> $* < @ [ $* ] : $+ > $* $1 < @ [ $2 ] : $3 > $4 R<> $* < @ [ $* ] , $+ > $* $1 < @ [ $2 ] , $3 > $4 R<> $* < @ [ $* ] $+ > $* $#error $@ 5.1.2 $: "553 Invalid address" R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3 R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part" R<> $* $1 R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name" R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name" R$* < @ $* @ > $* $#error $@ 5.1.2 $: "553 Invalid route address" R$* @ $* < @ $* > $* $#error $@ 5.1.3 $: "553 Invalid route address" R$* , $~O $* $#error $@ 5.1.3 $: "553 Invalid route address" # now delete the local info -- note $=O to find characters that cause forwarding R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ... R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here R< @ $+ > $#error $@ 5.1.3 $: "553 User address required" R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ... R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo" R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required" R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 # # Parse1 -- the bottom half of ruleset 0. # SParse1 # handle numeric address spec R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer # short circuit local delivery so forwarded email works R$=L < @ $=w . > $#local $: @ $1 special local names R$+ < @ $=w . > $#local $: $1 regular local name # resolve remotely connected UUCP links (if any) # resolve fake top level domains by forwarding to other hosts # figure out what should stay in our local mail system R$* < @ $* .$m. > $* $#esmtp $@ $2.$m $: $1 < @ $2.$m. > $3 # pass names that still have a host to a smarthost (if defined) R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name # deal with other remote names R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain # handle locally delivered names R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### SLocal_localaddr Slocaladdr=5 R$+ $: $1 $| $>"Local_localaddr" $1 R$+ $| $#ok $@ $1 no change R$+ $| $#$* $#$2 R$+ $| $* $: $1 # deal with plussed users so aliases work nicely R$+ + * $#local $@ $&h $: $1 R$+ + $* $#local $@ + $2 $: $1 + * # prepend an empty "forward host" on the front R$+ $: <> $1 R< > $+ $: < > < $1 <> $&h > nope, restore +detail R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail R< > < $+ <> $* > $: < > < $1 > else discard R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra + R< > < $+ > $@ $1 no +detail R$+ $: $1 <> $&h add +detail back in R$+ <> + $* $: $1 + $2 check whether +detail R$+ <> $* $: $1 else discard R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension R< $~[ : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 > R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 > ################################################################### ### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ### ################################################################### SMailerToTriple=95 R< > $* $@ $1 strip off null relay R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4 R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2 R< local : $* > $* $>CanonLocal < $1 > $2 R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer R< $=w > $* $@ $2 delete local host R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer ################################################################### ### Ruleset CanonLocal -- canonify local: syntax ### ################################################################### SCanonLocal # strip local host from routed addresses R< $* > < @ $+ > : $+ $@ $>Recurse $3 R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4 # strip trailing dot from any host name that may appear R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 > # handle local: syntax -- use old user, either with or without host R< > $* < @ $* > $* $#local $@ $1@$2 $: $1 R< > $+ $#local $@ $1 $: $1 # handle local:user@host syntax -- ignore host part R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 > # handle local:user syntax R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1 R< $+ > $* $#local $@ $2 $: $1 ################################################################### ### Ruleset 93 -- convert header names to masqueraded form ### ################################################################### SMasqHdr=93 # do not masquerade anything in class N R$* < @ $* $=N . > $@ $1 < @ $2 $3 . > R$* < @ *LOCAL* > $@ $1 < @ $j . > ################################################################### ### Ruleset 94 -- convert envelope names to masqueraded form ### ################################################################### SMasqEnv=94 R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2 ################################################################### ### Ruleset 98 -- local part of ruleset zero (can be null) ### ################################################################### SParseLocal=98 # addresses sent to foo@host.REDIRECT will give a 551 error code R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} > R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. > R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2> ###################################################################### ### CanonAddr -- Convert an address into a standard form for ### relay checking. Route address syntax is ### crudely converted into a %-hack address. ### ### Parameters: ### $1 -- full recipient address ### ### Returns: ### parsed address, not in source route form ###################################################################### SCanonAddr R$* $: $>Parse0 $>canonify $1 make domain canonical ###################################################################### ### ParseRecipient -- Strip off hosts in $=R as well as possibly ### $* $=m or the access database. ### Check user portion for host separators. ### ### Parameters: ### $1 -- full recipient address ### ### Returns: ### parsed, non-local-relaying address ###################################################################### SParseRecipient R$* $: <?> $>CanonAddr $1 R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part # if no $=O character, no host in the user portion, we are done R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4> R<?> $* $@ $1 # if we relay, check username portion for user%host so host can be checked also R<NO> $* < @ $* $=m > $: <RELAY> $1 < @ $2 $3 > R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 > R<RELAY> $* < @ $* > $@ $>ParseRecipient $1 R<$+> $* $@ $2 ###################################################################### ### check_relay -- check hostname/address on SMTP startup ###################################################################### SLocal_check_relay Scheck_relay R$* $: $1 $| $>"Local_check_relay" $1 R$* $| $* $| $#$* $#$3 R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2 SBasic_check_relay # check for deferred delivery mode R$* $: < ${deliveryMode} > $1 R< d > $* $@ deferred R< $* > $* $: $2 ###################################################################### ### check_mail -- check SMTP `MAIL FROM:' command argument ###################################################################### SLocal_check_mail Scheck_mail R$* $: $1 $| $>"Local_check_mail" $1 R$* $| $#$* $#$2 R$* $| $* $@ $>"Basic_check_mail" $1 SBasic_check_mail # check for deferred delivery mode R$* $: < ${deliveryMode} > $1 R< d > $* $@ deferred R< $* > $* $: $2 # authenticated? R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL R$* $| $#$+ $#$2 R$* $| $* $: $1 R<> $@ <OK> we MUST accept <> (RFC 1123) R$* $: <?> $>CanonAddr $1 canonify sender address and mark it R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots # handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc) R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 > R<?> $* < @ $+ > $: <OKR> $1 < @ $2 > ... unresolvable OK # check results R<?> $* $: @ $1 mark address: nothing known about it R<$={ResOk}> $* $@ <OKR> domain ok: stop R<TEMP> $* $#error $@ 4.1.8 $: "451 Domain of sender address " $&f " does not resolve" R<PERM> $* $#error $@ 5.1.8 $: "553 Domain of sender address " $&f " does not exist" ###################################################################### ### check_rcpt -- check SMTP `RCPT TO:' command argument ###################################################################### SLocal_check_rcpt Scheck_rcpt R$* $: $1 $| $>"Local_check_rcpt" $1 R$* $| $#$* $#$2 R$* $| $* $@ $>"Basic_check_rcpt" $1 SBasic_check_rcpt # empty address? R<> $#error $@ nouser $: "553 User address required" R$@ $#error $@ nouser $: "553 User address required" # check for deferred delivery mode R$* $: < ${deliveryMode} > $1 R< d > $* $@ deferred R< $* > $* $: $2 ###################################################################### R$* $: $1 $| @ $>"Rcpt_ok" $1 R$* $| @ $#TEMP $+ $: $1 $| T $2 R$* $| @ $#$* $#$2 R$* $| @ RELAY $@ RELAY R$* $| @ $* $: O $| $>"Relay_ok" $1 R$* $| T $+ $: T $2 $| $>"Relay_ok" $1 R$* $| $#TEMP $+ $#error $2 R$* $| $#$* $#$2 R$* $| RELAY $@ RELAY R T $+ $| $* $#error $1 # anything else is bogus R$* $#error $@ 5.7.1 $: "550 Relaying denied" ###################################################################### ### Rcpt_ok: is the recipient ok? ###################################################################### SRcpt_ok R$* $: $>ParseRecipient $1 strip relayable hosts # authenticated via TLS? R$* $: $1 $| $>RelayTLS client authenticated? R$* $| $# $+ $# $2 error/ok? R$* $| $* $: $1 no R$* $: $1 $| $>"Local_Relay_Auth" $&{auth_type} R$* $| $# $* $# $2 R$* $| NO $: $1 R$* $| $* $: $1 $| $&{auth_type} R$* $| $: $1 R$* $| $={TrustAuthMech} $# RELAY R$* $| $* $: $1 # anything terminating locally is ok R$+ < @ $* $=m > $@ RELAY R$+ < @ $=w > $@ RELAY R$+ < @ $* $=R > $@ RELAY # check for local user (i.e. unqualified address) R$* $: <?> $1 R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 > # local user is ok R<?> $+ $@ RELAY R<$+> $* $: $2 ###################################################################### ### Relay_ok: is the relay/sender ok? ###################################################################### SRelay_ok # anything originating locally is ok # check IP address R$* $: $&{client_addr} R$@ $@ RELAY originated locally R0 $@ RELAY originated locally R$=R $* $@ RELAY relayable IP address R$* $: [ $1 ] put brackets around it... R$=w $@ RELAY ... and see if it is local # check client name: first: did it resolve? R$* $: < $&{client_resolve} > R<TEMP> $#TEMP $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr} R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name} R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name} R$* $: <@> $&{client_name} R<@> $@ RELAY # pass to name server to make hostname canonical R<@> $* $=P $:<?> $1 $2 R<@> $+ $:<?> $[ $1 $] R$* . $1 strip trailing dots R<?> $* $=m $@ RELAY R<?> $=w $@ RELAY R<?> $* $=R $@ RELAY ###################################################################### ### trust_auth: is user trusted to authenticate as someone else? ### ### Parameters: ### $1: AUTH= parameter from MAIL command ###################################################################### SLocal_trust_auth Strust_auth R$* $: $&{auth_type} $| $1 # required by RFC 2554 section 4. R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated" R$* $| $&{auth_authen} $@ identical R$* $| <$&{auth_authen}> $@ identical R$* $| $* $: $1 $| $>"Local_trust_auth" $1 R$* $| $#$* $#$2 R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author} ###################################################################### ### Relay_Auth: allow relaying based on authentication? ### ### Parameters: ### $1: ${auth_type} ###################################################################### SLocal_Relay_Auth ###################################################################### ### tls_client: is connection with client "good" enough? ### (done in server) ### ### Parameters: ### ${verify} $| (MAIL|STARTTLS) ###################################################################### Stls_client R$* $| $* $@ $>"TLS_connection" $1 ###################################################################### ### tls_server: is connection with server "good" enough? ### (done in client) ### ### Parameter: ### ${verify} ###################################################################### Stls_server R$* $@ $>"TLS_connection" $1 ###################################################################### ### TLS_connection: is TLS connection "good" enough? ### ### Parameters: ### ${verify} ### Requirement: RHS from access map, may be ? for none. ###################################################################### STLS_connection RSOFTWARE $#error $@ 4.7.0 $: "403 TLS handshake." ###################################################################### ### RelayTLS: allow relaying based on TLS authentication ### ### Parameters: ### none ###################################################################### SRelayTLS # authenticated? ###################################################################### ### authinfo: lookup authinfo in the access map ### ### Parameters: ### $1: {server_name} ### $2: {server_addr} ###################################################################### Sauthinfo # ###################################################################### ###################################################################### ##### ##### MAIL FILTER DEFINITIONS ##### ###################################################################### ###################################################################### # ###################################################################### ###################################################################### ##### ##### MAILER DEFINITIONS ##### ###################################################################### ###################################################################### ################################################## ### Local and Program Mailer specification ### ################################################## ##### $Id: local.m4,v 8.58 2000/10/26 01:58:29 ca Exp $ ##### # # Envelope sender rewriting # SEnvFromL R<@> $n errors to mailer-daemon R@ <@ $*> $n temporarily bypass Sun bogosity R$+ $: $>AddDomain $1 add local domain if needed R$* $: $>MasqEnv $1 do masquerading # # Envelope recipient rewriting # SEnvToL R$+ < @ $* > $: $1 strip host part R$+ + $* $: < $&{addr_type} > $1 + $2 mark with addr type R<e s> $+ + $* $: $1 remove +detail for sender R< $* > $+ $: $2 else remove mark # # Header sender rewriting # SHdrFromL R<@> $n errors to mailer-daemon R@ <@ $*> $n temporarily bypass Sun bogosity R$+ $: $>AddDomain $1 add local domain if needed R$* $: $>MasqHdr $1 do masquerading # # Header recipient rewriting # SHdrToL R$+ $: $>AddDomain $1 add local domain if needed R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2 # # Common code to add local domain name (only if always-add-domain) # SAddDomain Mlocal, P=/usr/lib/mail.local, F=lsDFMAw5:/|@qPSXfmnz9, S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL, T=DNS/RFC822/SMTP, A=mail.local -l Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/, T=X-Unix/X-Unix/X-Unix, A=sh -c $u ##################################### ### SMTP Mailer specification ### ##################################### ##### $Id: smtp.m4,v 8.64 2001/04/03 01:52:54 gshapiro Exp $ ##### # # common sender and masquerading recipient rewriting # SMasqSMTP R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified R$+ $@ $1 < @ *LOCAL* > add local qualification # # convert pseudo-domain addresses to real domain addresses # SPseudoToReal # pass <route-addr>s through R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr> # output fake domains as user%fake@relay # do UUCP heuristics; note that these are shared with UUCP mailers R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form # leave these in .UUCP form to avoid further tampering R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. > R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 > R< $&h ! > $+ $@ $1 < @ $&h .UUCP. > R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY R$+ < @ $~[ $* : $+ > $@ $1 < @ $4 > strip mailer: part R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY # # envelope sender rewriting # SEnvFromSMTP R$+ $: $>PseudoToReal $1 sender/recipient common R$* :; <@> $@ list:; special case R$* $: $>MasqSMTP $1 qualify unqual'ed names R$+ $: $>MasqEnv $1 do masquerading # # envelope recipient rewriting -- # also header recipient if not masquerading recipients # SEnvToSMTP R$+ $: $>PseudoToReal $1 sender/recipient common R$+ $: $>MasqSMTP $1 qualify unqual'ed names R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2 # # header sender and masquerading header recipient rewriting # SHdrFromSMTP R$+ $: $>PseudoToReal $1 sender/recipient common R:; <@> $@ list:; special case # do special header rewriting R$* <@> $* $@ $1 <@> $2 pass null host through R< @ $* > $* $@ < @ $1 > $2 pass route-addr through R$* $: $>MasqSMTP $1 qualify unqual'ed names R$+ $: $>MasqHdr $1 do masquerading # # relay mailer header masquerading recipient rewriting # SMasqRelay R$+ $: $>MasqSMTP $1 R$+ $: $>MasqHdr $1 Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=TCP $h Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=TCP $h Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=TCP $h Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=TCP $h Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040, T=DNS/RFC822/SMTP, A=TCP $h _______________________________________________ sunmanagers mailing list sunmanagers@sunmanagers.org http://www.sunmanagers.org/mailman/listinfo/sunmanagers
This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:26:18 EDT