[csw-devel] SF.net SVN: gar:[14817] csw/mgar/pkg/sendmail/trunk
bonivart at users.sourceforge.net
bonivart at users.sourceforge.net
Wed Jun 15 10:47:17 CEST 2011
Revision: 14817
http://gar.svn.sourceforge.net/gar/?rev=14817&view=rev
Author: bonivart
Date: 2011-06-15 08:47:17 +0000 (Wed, 15 Jun 2011)
Log Message:
-----------
sendmail/trunk: more fixes for sampleconf
Modified Paths:
--------------
csw/mgar/pkg/sendmail/trunk/Makefile
Added Paths:
-----------
csw/mgar/pkg/sendmail/trunk/files/aliases
csw/mgar/pkg/sendmail/trunk/files/helpfile
csw/mgar/pkg/sendmail/trunk/files/local-host-names
csw/mgar/pkg/sendmail/trunk/files/sendmail.cf
csw/mgar/pkg/sendmail/trunk/files/sm-client.st
csw/mgar/pkg/sendmail/trunk/files/statistics
csw/mgar/pkg/sendmail/trunk/files/submit.cf
csw/mgar/pkg/sendmail/trunk/files/trusted-users
Removed Paths:
-------------
csw/mgar/pkg/sendmail/trunk/files/aliases.CSW
csw/mgar/pkg/sendmail/trunk/files/helpfile.CSW
csw/mgar/pkg/sendmail/trunk/files/local-host-names.CSW
csw/mgar/pkg/sendmail/trunk/files/sendmail.cf.CSW
csw/mgar/pkg/sendmail/trunk/files/sm-client.st.CSW
csw/mgar/pkg/sendmail/trunk/files/statistics.CSW
csw/mgar/pkg/sendmail/trunk/files/submit.cf.CSW
csw/mgar/pkg/sendmail/trunk/files/trusted-users.CSW
Modified: csw/mgar/pkg/sendmail/trunk/Makefile
===================================================================
--- csw/mgar/pkg/sendmail/trunk/Makefile 2011-06-15 08:41:49 UTC (rev 14816)
+++ csw/mgar/pkg/sendmail/trunk/Makefile 2011-06-15 08:47:17 UTC (rev 14817)
@@ -28,9 +28,11 @@
DISTFILES = $(NAME).$(VERSION).tar.gz
DISTFILES += Sun-sendmail-deactivate.sh Sun-sendmail-reactivate.sh
-DISTFILES += $(foreach FILE,$(shell cd $(FILEDIR) && ls *.CSW),$(FILE))
+DISTFILES += aliases helpfile local-host-names sendmail.cf
+DISTFILES += sm-client.st statistics submit.cf trusted-users
DISTFILES += README.CSW sendmail.schema
DISTFILES += cswsendmail site.config.m4
+#DISTFILES += $(foreach FILE,$(shell cd $(FILEDIR) && ls *.CSW),$(FILE))
#DISTFILES += CSWsendmail.preremove CSWsendmail.preinstall CSWsendmail.space
#DISTFILES += cswsendmail site.config.m4 $(MY_CLASSES) CSWsendmail.checkinstall
#DISTFILES += README.CSW sendmail.schema CSWsendmail.postinstall
@@ -52,7 +54,6 @@
SAMPLECONF = /etc/opt/csw/mail/aliases
SAMPLECONF += /etc/opt/csw/mail/helpfile
SAMPLECONF += /etc/opt/csw/mail/local-host-names
-SAMPLECONF += /etc/opt/csw/mail/README
SAMPLECONF += /etc/opt/csw/mail/sendmail.cf
SAMPLECONF += /etc/opt/csw/mail/sm-client.st
SAMPLECONF += /etc/opt/csw/mail/statistics
@@ -124,7 +125,7 @@
MANFILES8 = sendmail/sendmail.8 mailstats/mailstats.8 makemap/makemap.8 \
praliases/praliases.8 smrsh/smrsh.8 mail.local/mail.local.8 \
rmail/rmail.8 editmap/editmap.8
-CONFFILES = aliases helpfile local-host-names README sendmail.cf \
+CONFFILES = aliases helpfile local-host-names README.CSW sendmail.cf \
sm-client.st statistics submit.cf trusted-users
configure-custom:
@@ -203,10 +204,13 @@
ginstall -m 644 $(DOWNLOADDIR)/$$file \
$(DESTDIR)$(sysconfdir)/mail/$$file; \
done )
- ( mv $(DESTDIR)$(sysconfdir)/mail/sm-client.st.CSW \
+ ( mv $(DESTDIR)$(sysconfdir)/mail/sm-client.st \
$(DESTDIR)/var/opt/csw/spool/clientmqueue/ )
+
+ @# usergroup
@ginstall -m 755 -d $(DESTDIR)/etc/opt/csw/pkg/CSWsendmail
@ginstall -m 444 $(FILEDIR)/cswusergroup $(DESTDIR)/etc/opt/csw/pkg/CSWsendmail/
+
@$(MAKECOOKIE)
merge-OS:
Copied: csw/mgar/pkg/sendmail/trunk/files/aliases (from rev 14812, csw/mgar/pkg/sendmail/trunk/files/aliases.CSW)
===================================================================
--- csw/mgar/pkg/sendmail/trunk/files/aliases (rev 0)
+++ csw/mgar/pkg/sendmail/trunk/files/aliases 2011-06-15 08:47:17 UTC (rev 14817)
@@ -0,0 +1,65 @@
+#
+# $Id: aliases,v 8.5 2002/06/05 22:54:26 gshapiro Exp $
+# @(#)aliases 8.2 (Berkeley) 3/5/94
+#
+# Aliases in this file will NOT be expanded in the header from
+# Mail, but WILL be visible over networks.
+#
+# >>>>>>>>>> The program "newaliases" must be run after
+# >> NOTE >> this file is updated for any changes to
+# >>>>>>>>>> show through to sendmail.
+#
+#
+# See also RFC 2142, `MAILBOX NAMES FOR COMMON SERVICES, ROLES
+# AND FUNCTIONS', May 1997
+
+# Pretty much everything else in this file points to "root", so
+# you should forward root's email to the system administrator.
+# Delivering mail to root's mailbox or reading mail as root is
+# inadvisable.
+
+# Uncomment and *CHANGE* this!
+# root: insert-human-being-here
+
+# Basic system aliases -- these MUST be present
+MAILER-DAEMON: postmaster
+postmaster: root
+
+# General redirections for pseudo accounts
+bin: root
+daemon: root
+games: root
+mailnull: postmaster
+smmsp: postmaster
+ingres: root
+nobody: root
+system: root
+toor: root
+
+# Well-known aliases
+manager: root
+dumper: root
+operator: root
+
+# RFC 2142: BUSINESS-RELATED MAILBOX NAMES
+# info: root
+# marketing: root
+# sales: root
+# support: root
+
+# RFC 2142: NETWORK OPERATIONS MAILBOX NAMES
+abuse: root
+noc: root
+security: root
+
+# RFC 2142: SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET SERVICES
+hostmaster: root
+usenet: root
+news: usenet
+webmaster: root
+www: webmaster
+uucp: root
+ftp: root
+
+# Trap decode to catch security attacks
+decode: root
Deleted: csw/mgar/pkg/sendmail/trunk/files/aliases.CSW
===================================================================
--- csw/mgar/pkg/sendmail/trunk/files/aliases.CSW 2011-06-15 08:41:49 UTC (rev 14816)
+++ csw/mgar/pkg/sendmail/trunk/files/aliases.CSW 2011-06-15 08:47:17 UTC (rev 14817)
@@ -1,65 +0,0 @@
-#
-# $Id: aliases,v 8.5 2002/06/05 22:54:26 gshapiro Exp $
-# @(#)aliases 8.2 (Berkeley) 3/5/94
-#
-# Aliases in this file will NOT be expanded in the header from
-# Mail, but WILL be visible over networks.
-#
-# >>>>>>>>>> The program "newaliases" must be run after
-# >> NOTE >> this file is updated for any changes to
-# >>>>>>>>>> show through to sendmail.
-#
-#
-# See also RFC 2142, `MAILBOX NAMES FOR COMMON SERVICES, ROLES
-# AND FUNCTIONS', May 1997
-
-# Pretty much everything else in this file points to "root", so
-# you should forward root's email to the system administrator.
-# Delivering mail to root's mailbox or reading mail as root is
-# inadvisable.
-
-# Uncomment and *CHANGE* this!
-# root: insert-human-being-here
-
-# Basic system aliases -- these MUST be present
-MAILER-DAEMON: postmaster
-postmaster: root
-
-# General redirections for pseudo accounts
-bin: root
-daemon: root
-games: root
-mailnull: postmaster
-smmsp: postmaster
-ingres: root
-nobody: root
-system: root
-toor: root
-
-# Well-known aliases
-manager: root
-dumper: root
-operator: root
-
-# RFC 2142: BUSINESS-RELATED MAILBOX NAMES
-# info: root
-# marketing: root
-# sales: root
-# support: root
-
-# RFC 2142: NETWORK OPERATIONS MAILBOX NAMES
-abuse: root
-noc: root
-security: root
-
-# RFC 2142: SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET SERVICES
-hostmaster: root
-usenet: root
-news: usenet
-webmaster: root
-www: webmaster
-uucp: root
-ftp: root
-
-# Trap decode to catch security attacks
-decode: root
Copied: csw/mgar/pkg/sendmail/trunk/files/helpfile (from rev 14812, csw/mgar/pkg/sendmail/trunk/files/helpfile.CSW)
===================================================================
--- csw/mgar/pkg/sendmail/trunk/files/helpfile (rev 0)
+++ csw/mgar/pkg/sendmail/trunk/files/helpfile 2011-06-15 08:47:17 UTC (rev 14817)
@@ -0,0 +1,137 @@
+#vers 2
+cpyr
+cpyr Copyright (c) 1998-2000, 2002, 2004-2007 Sendmail, Inc. and its suppliers.
+cpyr All rights reserved.
+cpyr Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
+cpyr Copyright (c) 1988, 1993
+cpyr The Regents of the University of California. All rights reserved.
+cpyr
+cpyr
+cpyr By using this file, you agree to the terms and conditions set
+cpyr forth in the LICENSE file which can be found at the top level of
+cpyr the sendmail distribution.
+cpyr
+cpyr $$Id: helpfile,v 8.48 2007/02/01 18:29:44 ca Exp $$
+cpyr
+smtp This is sendmail version $v
+smtp Topics:
+smtp HELO EHLO MAIL RCPT DATA
+smtp RSET NOOP QUIT HELP VRFY
+smtp EXPN VERB ETRN DSN AUTH
+smtp STARTTLS
+smtp For more info use "HELP <topic>".
+smtp To report bugs in the implementation see
+smtp http://www.sendmail.org/email-addresses.html
+smtp For local information send email to Postmaster at your site.
+help HELP [ <topic> ]
+help The HELP command gives help info.
+helo HELO <hostname>
+helo Introduce yourself.
+ehlo EHLO <hostname>
+ehlo Introduce yourself, and request extended SMTP mode.
+ehlo Possible replies include:
+ehlo SEND Send as mail [RFC821]
+ehlo SOML Send as mail or terminal [RFC821]
+ehlo SAML Send as mail and terminal [RFC821]
+ehlo EXPN Expand the mailing list [RFC821]
+ehlo HELP Supply helpful information [RFC821]
+ehlo TURN Turn the operation around [RFC821]
+ehlo 8BITMIME Use 8-bit data [RFC1652]
+ehlo SIZE Message size declaration [RFC1870]
+ehlo VERB Verbose [Allman]
+ehlo CHUNKING Chunking [RFC1830]
+ehlo BINARYMIME Binary MIME [RFC1830]
+ehlo PIPELINING Command Pipelining [RFC1854]
+ehlo DSN Delivery Status Notification [RFC1891]
+ehlo ETRN Remote Message Queue Starting [RFC1985]
+ehlo STARTTLS Secure SMTP [RFC2487]
+ehlo AUTH Authentication [RFC2554]
+ehlo ENHANCEDSTATUSCODES Enhanced status codes [RFC2034]
+ehlo DELIVERBY Deliver By [RFC2852]
+mail MAIL From:<sender> [ <parameters> ]
+mail Specifies the sender. Parameters are ESMTP extensions.
+mail See "HELP DSN" for details.
+rcpt RCPT To:<recipient> [ <parameters> ]
+rcpt Specifies the recipient. Can be used any number of times.
+rcpt Parameters are ESMTP extensions. See "HELP DSN" for details.
+data DATA
+data Following text is collected as the message.
+data End with a single dot.
+rset RSET
+rset Resets the system.
+quit QUIT
+quit Exit sendmail (SMTP).
+auth AUTH mechanism [initial-response]
+auth Start authentication.
+starttls STARTTLS
+starttls Start TLS negotiation.
+verb VERB
+verb Go into verbose mode. This sends 0xy responses that are
+verb not RFC821 standard (but should be) They are recognized
+verb by humans and other sendmail implementations.
+vrfy VRFY <recipient>
+vrfy Verify an address. If you want to see what it aliases
+vrfy to, use EXPN instead.
+expn EXPN <recipient>
+expn Expand an address. If the address indicates a mailing
+expn list, return the contents of that list.
+noop NOOP
+noop Do nothing.
+send SEND FROM:<sender>
+send replaces the MAIL command, and can be used to send
+send directly to a users terminal. Not supported in this
+send implementation.
+soml SOML FROM:<sender>
+soml Send or mail. If the user is logged in, send directly,
+soml otherwise mail. Not supported in this implementation.
+saml SAML FROM:<sender>
+saml Send and mail. Send directly to the user's terminal,
+saml and also mail a letter. Not supported in this
+saml implementation.
+turn TURN
+turn Reverses the direction of the connection. Not currently
+turn implemented.
+etrn ETRN [ <hostname> | @<domain> | \#<queuename> ]
+etrn Run the queue for the specified <hostname>, or
+etrn all hosts within a given <domain>, or a specially-named
+etrn <queuename> (implementation-specific).
+dsn MAIL From:<sender> [ RET={ FULL | HDRS} ] [ ENVID=<envid> ]
+dsn RCPT To:<recipient> [ NOTIFY={NEVER,SUCCESS,FAILURE,DELAY} ]
+dsn [ ORCPT=<recipient> ]
+dsn SMTP Delivery Status Notifications.
+dsn Descriptions:
+dsn RET Return either the full message or only headers.
+dsn ENVID Sender's "envelope identifier" for tracking.
+dsn NOTIFY When to send a DSN. Multiple options are OK, comma-
+dsn delimited. NEVER must appear by itself.
+dsn ORCPT Original recipient.
+-bt Help for test mode:
+-bt ? :this help message.
+-bt .Dmvalue :define macro `m' to `value'.
+-bt .Ccvalue :add `value' to class `c'.
+-bt =Sruleset :dump the contents of the indicated ruleset.
+-bt =M :display the known mailers.
+-bt -ddebug-spec :equivalent to the command-line -d debug flag.
+-bt $$m :print the value of macro $$m.
+-bt $$=c :print the contents of class $$=c.
+-bt /mx host :returns the MX records for `host'.
+-bt /parse address :parse address, returning the value of crackaddr, and
+-bt the parsed address.
+-bt /try mailer addr :rewrite address into the form it will have when
+-bt presented to the indicated mailer.
+-bt /tryflags flags :set flags used by parsing. The flags can be `H' for
+-bt Header or `E' for Envelope, and `S' for Sender or `R'
+-bt for Recipient. These can be combined, `HR' sets
+-bt flags for header recipients.
+-bt /canon hostname :try to canonify hostname.
+-bt /map mapname key :look up `key' in the indicated `mapname'.
+-bt /quit :quit address test mode.
+-bt rules addr :run the indicated address through the named rules.
+-bt Rules can be a comma separated list of rules.
+control Help for smcontrol:
+control help This message.
+control restart Restart sendmail.
+control shutdown Shutdown sendmail.
+control status Show sendmail status.
+control mstat Show sendmail status (machine readable format).
+control memdump Dump allocated memory list (for debugging only).
Deleted: csw/mgar/pkg/sendmail/trunk/files/helpfile.CSW
===================================================================
--- csw/mgar/pkg/sendmail/trunk/files/helpfile.CSW 2011-06-15 08:41:49 UTC (rev 14816)
+++ csw/mgar/pkg/sendmail/trunk/files/helpfile.CSW 2011-06-15 08:47:17 UTC (rev 14817)
@@ -1,137 +0,0 @@
-#vers 2
-cpyr
-cpyr Copyright (c) 1998-2000, 2002, 2004-2007 Sendmail, Inc. and its suppliers.
-cpyr All rights reserved.
-cpyr Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
-cpyr Copyright (c) 1988, 1993
-cpyr The Regents of the University of California. All rights reserved.
-cpyr
-cpyr
-cpyr By using this file, you agree to the terms and conditions set
-cpyr forth in the LICENSE file which can be found at the top level of
-cpyr the sendmail distribution.
-cpyr
-cpyr $$Id: helpfile,v 8.48 2007/02/01 18:29:44 ca Exp $$
-cpyr
-smtp This is sendmail version $v
-smtp Topics:
-smtp HELO EHLO MAIL RCPT DATA
-smtp RSET NOOP QUIT HELP VRFY
-smtp EXPN VERB ETRN DSN AUTH
-smtp STARTTLS
-smtp For more info use "HELP <topic>".
-smtp To report bugs in the implementation see
-smtp http://www.sendmail.org/email-addresses.html
-smtp For local information send email to Postmaster at your site.
-help HELP [ <topic> ]
-help The HELP command gives help info.
-helo HELO <hostname>
-helo Introduce yourself.
-ehlo EHLO <hostname>
-ehlo Introduce yourself, and request extended SMTP mode.
-ehlo Possible replies include:
-ehlo SEND Send as mail [RFC821]
-ehlo SOML Send as mail or terminal [RFC821]
-ehlo SAML Send as mail and terminal [RFC821]
-ehlo EXPN Expand the mailing list [RFC821]
-ehlo HELP Supply helpful information [RFC821]
-ehlo TURN Turn the operation around [RFC821]
-ehlo 8BITMIME Use 8-bit data [RFC1652]
-ehlo SIZE Message size declaration [RFC1870]
-ehlo VERB Verbose [Allman]
-ehlo CHUNKING Chunking [RFC1830]
-ehlo BINARYMIME Binary MIME [RFC1830]
-ehlo PIPELINING Command Pipelining [RFC1854]
-ehlo DSN Delivery Status Notification [RFC1891]
-ehlo ETRN Remote Message Queue Starting [RFC1985]
-ehlo STARTTLS Secure SMTP [RFC2487]
-ehlo AUTH Authentication [RFC2554]
-ehlo ENHANCEDSTATUSCODES Enhanced status codes [RFC2034]
-ehlo DELIVERBY Deliver By [RFC2852]
-mail MAIL From:<sender> [ <parameters> ]
-mail Specifies the sender. Parameters are ESMTP extensions.
-mail See "HELP DSN" for details.
-rcpt RCPT To:<recipient> [ <parameters> ]
-rcpt Specifies the recipient. Can be used any number of times.
-rcpt Parameters are ESMTP extensions. See "HELP DSN" for details.
-data DATA
-data Following text is collected as the message.
-data End with a single dot.
-rset RSET
-rset Resets the system.
-quit QUIT
-quit Exit sendmail (SMTP).
-auth AUTH mechanism [initial-response]
-auth Start authentication.
-starttls STARTTLS
-starttls Start TLS negotiation.
-verb VERB
-verb Go into verbose mode. This sends 0xy responses that are
-verb not RFC821 standard (but should be) They are recognized
-verb by humans and other sendmail implementations.
-vrfy VRFY <recipient>
-vrfy Verify an address. If you want to see what it aliases
-vrfy to, use EXPN instead.
-expn EXPN <recipient>
-expn Expand an address. If the address indicates a mailing
-expn list, return the contents of that list.
-noop NOOP
-noop Do nothing.
-send SEND FROM:<sender>
-send replaces the MAIL command, and can be used to send
-send directly to a users terminal. Not supported in this
-send implementation.
-soml SOML FROM:<sender>
-soml Send or mail. If the user is logged in, send directly,
-soml otherwise mail. Not supported in this implementation.
-saml SAML FROM:<sender>
-saml Send and mail. Send directly to the user's terminal,
-saml and also mail a letter. Not supported in this
-saml implementation.
-turn TURN
-turn Reverses the direction of the connection. Not currently
-turn implemented.
-etrn ETRN [ <hostname> | @<domain> | \#<queuename> ]
-etrn Run the queue for the specified <hostname>, or
-etrn all hosts within a given <domain>, or a specially-named
-etrn <queuename> (implementation-specific).
-dsn MAIL From:<sender> [ RET={ FULL | HDRS} ] [ ENVID=<envid> ]
-dsn RCPT To:<recipient> [ NOTIFY={NEVER,SUCCESS,FAILURE,DELAY} ]
-dsn [ ORCPT=<recipient> ]
-dsn SMTP Delivery Status Notifications.
-dsn Descriptions:
-dsn RET Return either the full message or only headers.
-dsn ENVID Sender's "envelope identifier" for tracking.
-dsn NOTIFY When to send a DSN. Multiple options are OK, comma-
-dsn delimited. NEVER must appear by itself.
-dsn ORCPT Original recipient.
--bt Help for test mode:
--bt ? :this help message.
--bt .Dmvalue :define macro `m' to `value'.
--bt .Ccvalue :add `value' to class `c'.
--bt =Sruleset :dump the contents of the indicated ruleset.
--bt =M :display the known mailers.
--bt -ddebug-spec :equivalent to the command-line -d debug flag.
--bt $$m :print the value of macro $$m.
--bt $$=c :print the contents of class $$=c.
--bt /mx host :returns the MX records for `host'.
--bt /parse address :parse address, returning the value of crackaddr, and
--bt the parsed address.
--bt /try mailer addr :rewrite address into the form it will have when
--bt presented to the indicated mailer.
--bt /tryflags flags :set flags used by parsing. The flags can be `H' for
--bt Header or `E' for Envelope, and `S' for Sender or `R'
--bt for Recipient. These can be combined, `HR' sets
--bt flags for header recipients.
--bt /canon hostname :try to canonify hostname.
--bt /map mapname key :look up `key' in the indicated `mapname'.
--bt /quit :quit address test mode.
--bt rules addr :run the indicated address through the named rules.
--bt Rules can be a comma separated list of rules.
-control Help for smcontrol:
-control help This message.
-control restart Restart sendmail.
-control shutdown Shutdown sendmail.
-control status Show sendmail status.
-control mstat Show sendmail status (machine readable format).
-control memdump Dump allocated memory list (for debugging only).
Copied: csw/mgar/pkg/sendmail/trunk/files/local-host-names (from rev 14812, csw/mgar/pkg/sendmail/trunk/files/local-host-names.CSW)
===================================================================
Deleted: csw/mgar/pkg/sendmail/trunk/files/local-host-names.CSW
===================================================================
Copied: csw/mgar/pkg/sendmail/trunk/files/sendmail.cf (from rev 14812, csw/mgar/pkg/sendmail/trunk/files/sendmail.cf.CSW)
===================================================================
--- csw/mgar/pkg/sendmail/trunk/files/sendmail.cf (rev 0)
+++ csw/mgar/pkg/sendmail/trunk/files/sendmail.cf 2011-06-15 08:47:17 UTC (rev 14817)
@@ -0,0 +1,1467 @@
+#
+# Copyright (c) 1998-2004 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.
+#
+# 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
+#####
+##### built by dt73646 at rc-osg-revo on Thu Jul 30 16:59:32 CDT 2009
+##### in /dst/home/dt73646/opencsw/mgar/pkg/sendmail/trunk/work/build-isa-sparcv8/sendmail-8.14.3/cf/cf
+##### using ../ as configuration include directory
+#####
+######################################################################
+#####
+##### DO NOT EDIT THIS FILE! Only edit the source .mc file.
+#####
+######################################################################
+######################################################################
+
+##### $Id: cfhead.m4,v 8.116 2004/01/28 22:02:22 ca Exp $ #####
+##### $Id: cf.m4,v 8.32 1999/02/07 07:26:14 gshapiro Exp $ #####
+##### $Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $ #####
+
+##### $Id: solaris2.m4,v 8.22 1999/09/24 21:43:53 ca Exp $ #####
+
+##### $Id: generic.m4,v 8.15 1999/04/04 00:51:09 ca Exp $ #####
+
+##### $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: proto.m4,v 8.734 2008/01/24 23:42:01 ca Exp $ #####
+
+# level 10 config file format
+V10/Berkeley
+
+# 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/opt/csw/etc/mail/local-host-names
+
+# my official domain name
+# ... define this only if sendmail cannot automatically determine your domain
+#Dj$w.Foo.COM
+
+# host/domain names ending with a token in class P are canonical
+CP.
+
+# "Smart" relay host (may be null)
+DS
+
+
+# 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[[
+
+
+# Resolve map (to check if a host exists in check_mail)
+Kresolve host -a<OKR> -T<TEMP>
+C{ResOk}OKR
+
+
+# Hosts for which relaying is permitted ($=R)
+FR-o /opt/csw/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.14.3
+
+
+###############
+# 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=/opt/csw/etc/mail/aliases
+
+# minimum number of free blocks on filesystem
+O MinFreeBlocks=100
+
+# maximum message size
+#O MaxMessageSize=0
+
+# 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=/opt/csw/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=/opt/csw/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
+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=0
+
+# 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, -1 to auto-select
+#O SharedMemoryKey=0
+
+# file to store auto-selected key for shared memory (SharedMemoryKey = -1)
+#O SharedMemoryKeyFile
+
+# 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.queuereturn.dsn=5d
+O Timeout.queuewarn=4h
+#O Timeout.queuewarn.normal=4h
+#O Timeout.queuewarn.urgent=1h
+#O Timeout.queuewarn.non-urgent=12h
+#O Timeout.queuewarn.dsn=4h
+#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
+
+# 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=/opt/csw/etc/mail/userdb
+
+# fallback MX host
+#O FallbackMXhost=fall.back.host.net
+
+# fallback smart host
+#O FallbackSmartHost=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
+
+# log interval when refusing connections for this long
+#O RejectLogInterval=3h
+
+# 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=0
+
+# maximum number of new connections per second
+#O ConnectionRateThrottle=0
+
+# Width of the window
+#O ConnectionRateWindowSize=60s
+
+# 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=unknown-8bit
+
+# service switch file (name hardwired on Solaris, Ultrix, OSF/1, others)
+#O ServiceSwitchFile=/opt/csw/etc/mail/service.switch
+
+# hosts file (normally /etc/hosts)
+#O HostsFile=/etc/hosts
+
+# dialup line delay on connection failure
+#O DialDelay=0s
+
+# action to take if there are no recipients in the message
+#O NoRecipientAction=none
+
+# chrooted environment for writing to files
+#O SafeFileEnvironment
+
+# 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
+
+# issue temporary errors (4xy) instead of permanent errors (5xy)?
+#O SoftBounce=False
+
+# 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=0
+
+# limit the rate recipients per SMTP envelope are accepted
+# once the threshold number of recipients have been rejected
+#O BadRcptThrottle=0
+
+# 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=0/0
+
+# 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
+
+# override compile time flag REQUIRES_DIR_FSYNC
+#O RequiresDirfsync=true
+
+# list of authentication mechanisms
+#O AuthMechanisms=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
+
+# Authentication realm
+#O AuthRealm
+
+# default authentication information for outgoing connections
+#O DefaultAuthInfo=/opt/csw/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
+# File containing certificate revocation lists
+#O CRLFile
+# DHParameters (only required if DSA/DH is used)
+#O DHParameters
+# Random data source (required for systems without /dev/urandom under OpenSSL)
+#O RandFile
+
+# Maximum number of "useless" commands before slowing down
+#O MaxNOOPCommands=20
+
+# Name to use for EHLO (defaults to $j)
+#O HeloName
+
+############################
+# 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/opt/csw/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, at b, at c:user at d> -> <user at 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 at h.UUCP => h!u
+
+# delete duplicate local names
+R$+ % $=w @ $=w $1 @ $2 u%host at host => u at 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 ... at 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
+
+
+
+# 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 at 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< error : $+ > $* $#error $: $1
+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 at 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 at 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
+
+
+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$+ $: <?> $1
+R<?><$+> $: <@> <$1>
+R<?>$+ $: <@> <$1>
+R$* $: $&{daemon_flags} $| $1
+R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
+R$* u $* $| <@> < $* > $: <?> < $3 >
+R$* $| $* $: $2
+# handle case of @localhost on address
+R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
+R<@> < $* @ [127.0.0.1] >
+ $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
+R<@> < $* @ localhost.$m >
+ $: < ? $&{client_name} > < $1 @ localhost.$m >
+R<@> < $* @ localhost.UUCP >
+ $: < ? $&{client_name} > < $1 @ localhost.UUCP >
+R<@> $* $: $1 no localhost as domain
+R<? $=w> $* $: $2 local client: ok
+R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required for sender address"
+R<?> $* $: $1
+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 > $: <OKR> $1 < @ $2 $3 >
+R<?> $* < @ $j > $: <OKR> $1 < @ $j >
+R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
+R<? $* <$->> $* < @ $+ >
+ $: <$2> $3 < @ $4 >
+
+
+# handle case of no @domain on address
+R<?> $* $: $&{daemon_flags} $| <?> $1
+R$* u $* $| <?> $* $: <OKR> $3
+R$* $| $* $: $2
+R<?> $* $: < ? $&{client_addr} > $1
+R<?> $* $@ <OKR> ...local unqualed ok
+R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required for sender address " $&f
+ ...remote is not
+# check results
+R<?> $* $: @ $1 mark address: nothing known about it
+R<$={ResOk}> $* $: @ $2 domain ok
+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$+ < @ $=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
+R127.0.0.1 $@ RELAY originated locally
+RIPv6:::1 $@ 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.4.0 $: "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}
+# pass to name server to make hostname canonical
+R<@> $* $=P $:<?> $1 $2
+R<@> $+ $:<?> $[ $1 $]
+R$* . $1 strip trailing dots
+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" $2
+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
+
+######################################################################
+### srv_features: which features to offer to a client?
+### (done in server)
+######################################################################
+Ssrv_features
+
+
+######################################################################
+### try_tls: try to use STARTTLS?
+### (done in client)
+######################################################################
+Stry_tls
+
+
+######################################################################
+### tls_rcpt: is connection with server "good" enough?
+### (done in client, per recipient)
+###
+### Parameters:
+### $1: recipient
+######################################################################
+Stls_rcpt
+
+
+######################################################################
+### 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.59 2004/11/23 00:37:25 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:/|@qfSmn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
+ T=DNS/RFC822/X-Unix,
+ A=mail.local -d $u
+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.65 2006/07/12 21:08:10 ca 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 at 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
+
+### sendmail.mc ###
+# divert(-1)
+# #
+# # Copyright (c) 1998, 1999, 2001 Sendmail, Inc. and its suppliers.
+# # All rights reserved.
+# # Copyright (c) 1983 Eric P. Allman. All rights reserved.
+# # Copyright (c) 1988, 1993
+# # The Regents of the University of California. All rights reserved.
+# #
+# # 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.
+# #
+# #
+#
+# #
+# # This is a generic configuration file for SunOS 5.x (a.k.a. Solaris 2.x
+# # and Solaris 7 through the present version).
+# #
+# # It has support for local and SMTP mail only. If you want to
+# # customize it, copy it to a name appropriate for your environment
+# # and do the modifications there.
+# #
+#
+# divert(0)dnl
+# VERSIONID(`$Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $')
+# OSTYPE(solaris2)dnl
+# DOMAIN(generic)dnl
+# MAILER(local)dnl
+# MAILER(smtp)dnl
Deleted: csw/mgar/pkg/sendmail/trunk/files/sendmail.cf.CSW
===================================================================
--- csw/mgar/pkg/sendmail/trunk/files/sendmail.cf.CSW 2011-06-15 08:41:49 UTC (rev 14816)
+++ csw/mgar/pkg/sendmail/trunk/files/sendmail.cf.CSW 2011-06-15 08:47:17 UTC (rev 14817)
@@ -1,1467 +0,0 @@
-#
-# Copyright (c) 1998-2004 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.
-#
-# 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
-#####
-##### built by dt73646 at rc-osg-revo on Thu Jul 30 16:59:32 CDT 2009
-##### in /dst/home/dt73646/opencsw/mgar/pkg/sendmail/trunk/work/build-isa-sparcv8/sendmail-8.14.3/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-#####
-##### DO NOT EDIT THIS FILE! Only edit the source .mc file.
-#####
-######################################################################
-######################################################################
-
-##### $Id: cfhead.m4,v 8.116 2004/01/28 22:02:22 ca Exp $ #####
-##### $Id: cf.m4,v 8.32 1999/02/07 07:26:14 gshapiro Exp $ #####
-##### $Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $ #####
-
-##### $Id: solaris2.m4,v 8.22 1999/09/24 21:43:53 ca Exp $ #####
-
-##### $Id: generic.m4,v 8.15 1999/04/04 00:51:09 ca Exp $ #####
-
-##### $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: proto.m4,v 8.734 2008/01/24 23:42:01 ca Exp $ #####
-
-# level 10 config file format
-V10/Berkeley
-
-# 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/opt/csw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-# host/domain names ending with a token in class P are canonical
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# 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[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OKR> -T<TEMP>
-C{ResOk}OKR
-
-
-# Hosts for which relaying is permitted ($=R)
-FR-o /opt/csw/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.14.3
-
-
-###############
-# 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=/opt/csw/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=0
-
-# 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=/opt/csw/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=/opt/csw/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
-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=0
-
-# 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, -1 to auto-select
-#O SharedMemoryKey=0
-
-# file to store auto-selected key for shared memory (SharedMemoryKey = -1)
-#O SharedMemoryKeyFile
-
-# 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.queuereturn.dsn=5d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.queuewarn.dsn=4h
-#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
-
-# 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=/opt/csw/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# fallback smart host
-#O FallbackSmartHost=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
-
-# log interval when refusing connections for this long
-#O RejectLogInterval=3h
-
-# 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=0
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=0
-
-# Width of the window
-#O ConnectionRateWindowSize=60s
-
-# 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=unknown-8bit
-
-# service switch file (name hardwired on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/opt/csw/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=0s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=none
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment
-
-# 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
-
-# issue temporary errors (4xy) instead of permanent errors (5xy)?
-#O SoftBounce=False
-
-# 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=0
-
-# limit the rate recipients per SMTP envelope are accepted
-# once the threshold number of recipients have been rejected
-#O BadRcptThrottle=0
-
-# 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=0/0
-
-# 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
-
-# override compile time flag REQUIRES_DIR_FSYNC
-#O RequiresDirfsync=true
-
-# list of authentication mechanisms
-#O AuthMechanisms=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# Authentication realm
-#O AuthRealm
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/opt/csw/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
-# File containing certificate revocation lists
-#O CRLFile
-# DHParameters (only required if DSA/DH is used)
-#O DHParameters
-# Random data source (required for systems without /dev/urandom under OpenSSL)
-#O RandFile
-
-# Maximum number of "useless" commands before slowing down
-#O MaxNOOPCommands=20
-
-# Name to use for EHLO (defaults to $j)
-#O HeloName
-
-############################
-# 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/opt/csw/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, at b, at c:user at d> -> <user at 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 at h.UUCP => h!u
-
-# delete duplicate local names
-R$+ % $=w @ $=w $1 @ $2 u%host at host => u at 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 ... at 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
-
-
-
-# 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 at 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< error : $+ > $* $#error $: $1
-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 at 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 at 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
-
-
-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$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required for sender address"
-R<?> $* $: $1
-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 > $: <OKR> $1 < @ $2 $3 >
-R<?> $* < @ $j > $: <OKR> $1 < @ $j >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OKR> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_addr} > $1
-R<?> $* $@ <OKR> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required for sender address " $&f
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<$={ResOk}> $* $: @ $2 domain ok
-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$+ < @ $=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
-R127.0.0.1 $@ RELAY originated locally
-RIPv6:::1 $@ 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.4.0 $: "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}
-# pass to name server to make hostname canonical
-R<@> $* $=P $:<?> $1 $2
-R<@> $+ $:<?> $[ $1 $]
-R$* . $1 strip trailing dots
-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" $2
-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
-
-######################################################################
-### srv_features: which features to offer to a client?
-### (done in server)
-######################################################################
-Ssrv_features
-
-
-######################################################################
-### try_tls: try to use STARTTLS?
-### (done in client)
-######################################################################
-Stry_tls
-
-
-######################################################################
-### tls_rcpt: is connection with server "good" enough?
-### (done in client, per recipient)
-###
-### Parameters:
-### $1: recipient
-######################################################################
-Stls_rcpt
-
-
-######################################################################
-### 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.59 2004/11/23 00:37:25 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:/|@qfSmn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=mail.local -d $u
-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.65 2006/07/12 21:08:10 ca 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 at 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 --
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list