postfix/ 40775 1751 146 0 7044340231 11414 5ustar thivillowwwpostfix/index.html.fr100664 146 146 16511 7024147615 13120 0ustar wwwwww HSC - Fiche transparents - Tutoriel Postfix
Supports de cours
Tutoriel Postfix

Dbut du cours

Description La messagerie lectronique est une application trs importante et des plus utiles des rseaux. Plus rapide et moins onreuse que la plupart des autres moyens de communication (tlcopie, tlphone, courrier postal, coursier...) la messagerie lectronique est un vecteur de plus en plus important dans la communication aussi bien interne qu'externe. Dans l'univers des rseaux TCP/IP, la messagerie SMTP est de loin la plus utilise, notamment avec l'outil Unix sendmail.

Le logiciel libre Postfix est un gestionnaire de messagerie simple configurer et conu pour une scurit optimale. De plus il est peu gourmand en ressources systme et constitue donc une vritable alternative Sendmail. Le choix de Postfix est lgitime tant pour le traitement de flux importants de messages que pour de petites installations.

L'objectif de ce cours est de prparer l'installation et la mise en exploitation de Postfix en lieu et place de Sendmail.

Nature Support de cours - 40 transparents (HTML).
Contexte Support de notre formation Postfix.
Le support disponible ici est celui utilis le 12 octobre 1999 lors de la formation effectue au CRU ; les futures sessions de cette formation pourront utiliser une version revue du support.
Auteurs Alain Thivillon (Alain.Thivillon@hsc.fr)
Sur le mme sujet... Prsentation publiques :
"Postfix : une nouvelle gnration de MTA sous Unix" (juin 1999)
"La scurit du MTA Postfix" (mars 1999)
Table des matires Page de garde

Agenda : matin
Agenda : aprs-midi

Buts (1)
Buts (2)
Buts (3)

Schma de principe

Architecture (1)
Architecture (2)
Architecture (3)
Architecture (4)
Architecture (5)

Compilation (1)
Compilation (2)
Compilation (3)

Installation (1)
Installation (2)
Installation (3)
Installation (4)

Configuration de base (1)
Configuration de base (2)
Configuration de base (3)
Configuration de base (4)

Configuration avance (1) : spam
Configuration avance (2) : spam
Configuration avance (3) : spam
Configuration avance (4) : transports
Configuration avance (5) : rcriture
Configuration avance (6) : utilisateurs virtuels
Configuration avance (7) : LDAP
Configuration avance (8) : Cyrus

Maintenance de postfix (1)
Maintenance de postfix (2)

Migration depuis sendmail
Migration depuis sendmail : M4
Migration depuis sendmail : kit Jussieu
Migration depuis sendmail : problmes ventuels

Exemple 1 : configuration sur un firewall
Exemple 2 : "NullClient"
Exemple 3 : utilisateur en dialup-ip

Droits d'auteur © 1999, Herv Schauer Consultants, tous droits rservs.

 


Dernire modification le 10 dcembre 1999
Informations sur ce serveur - webmaster@hsc.fr
Copyright © 1999 Herv Schauer Consultants
HSC
postfix/index.html120777 146 146 0 7020552202 14772 2index.html.frustar wwwwwwpostfix/big-picture.gif100664 1751 146 13006 7017475550 14447 0ustar thivillowwwGIF87a,ڋ޼H扦ʶ L ĢL* JԪjܮ Nlk x3HxcH)9IYrYJZj4zꑪZ {!;k{Q +<\|@̬ M|<m=浒EX}M0>Nq_onJ߲K^: 줰L'NH1>=5YFɄ3|9cR=,lplbQvǻ-% fMs7WoSmΐ^߷vܠ2橃 ^Uq--} W yw }>~r7pg^JyWuI7br},MNcfR1&_vV`Tʨ݌`l-#块'J$p8an(V?ʈc\؞HًKBRf==١1I _" ٙ3}Le;gp?hMKY{XJm:i,wKÎ%n+8[loկZS9|pÂ0L(RlƴAEs $`ܘے\0!(x,S2˸8s2猩Ϻ@,@Zt|6Ѷ4rOӯThq`]VⵀlT_bivm iLp`yw+1.7HS,wrߏ9#x_Hz΁>~畯B6Hnnͫ7ń{q±;[OWl |OW+=#|O Ke}߽۷~8Ͼ;vLuk'/~ٗ9b L (4$' nN4{1EH4 x gH2i!f?XGNch= $P *z_YxE/ZQ x01:[AF7.!c[W8q?~qnT#qD?;|"?G~QcE#)Jr?+ *J6PIy=#D))-,S2`.o Nb1!%d*Ә0WLet1CStof73)i~ӄ`JtӘgqnNsA=?ZSbWDШ.էT:Ӹ6)׹Ѯ* f-'t3T5)KkVhSYNRe υ|ң?,.JnlB[SFX-kծ)@ֶM{Zfe n(KvDp#q\qPP,]rM#v=^ >靠^;J rϐVwM|[/׿«lEѻWlQB,ґVP[Up%LmpX-BR5߄-swp^#tN*/JOuw n[ wnkS>g<[[NN'e݈Yb4"hr;`iu"SuůЇݖH/vy@`fzpO/3y\ĩ㗮] 9 ]mj,;:Oq۳wʽ"si9yF/Of7.ElQr&(GL26 R9͕4v rJ? {?z/Nqk ucy`w}}EVz%E|֧x<|gwyg' faxDBEP9e(#D6ry,xT؂H^W?8Gԇ<2hi?XilU\h~Ihw<ԅyTbsRofxr[փe[P^{b+kT2_wXf'jj{cJ(5mq1GlYCue O\mۆMdqTs4X&YI~(lH p~sEUPGwuaurR5Phr2Cm~4ETuXR'Vk;OO}0MJ?f=VqoQov39n57B헏#UrU(7i(8EdS ^O/V8g7dsldp%%IfpSxYnAdP; 6(yFc_'%g$GUe >*SVnǓHX1L( s\7>Ih yWɐYtDEY2ǔ(JՕs1ՔbdLCTVqdqu_fxK$8[.97Rz:6OꤎgHըf}Ayb 4}؈XhՏHHgw4LJvx/~&szxuYJiAqY[ȉ"^IF gGxUɅxh_鈕yM!H`YB] @ax7Ƞil VBUlxWgy*}"zix28|[D9~I\{,*49;RxwdGV1ǡک8TL+gGVc<&B})ɈhH ˹| |k )lFN0|b6eI||;̶EL۩/^ \mZ]a-yey/&} `$B`- :q?ikyUվܾ=3!IZ8ݙ/@3C6+z=5œ<$vr؈muYU9^$ $AMinaTʇO˽Pkْ = x'&  $\"mդEYmۘUK& ޼yr%S֑njmi~Մi}˜JPقgmd )ǶV[} Φ9~ǂ ўK^&.$$~ ->/,^ȉ4(Q-4~2">)VL! 8> ͠ ?GU'mn]MN OnQ^WCbNP>6f 5nK75,Ͷ_^RNG;Y{>^f(NmndG>}z'>Ȟ[鄚.\:5m4> %#@%9<ûnww -##-cNϽ܅ !#|`oaP7>yM$U[r% ޑ/Bt6o}Nm'.((Z;*^C.?A_>o9# M1O*QNeĂ<[4]O/__(a/E2.K/ilp_1kf/;a@/fZj> Ы0ƨzs>v_`{}~o//O-/Oɯ/Oo׏;postfix/doc/ 40775 1751 146 0 7017475564 12203 5ustar thivillowwwpostfix/doc/Makefile.in100664 1751 146 6774 7017475552 14360 0ustar thivillowww# For now, just hard-coded rules for daemons, commands, config files. DAEMONS = bounce.8.html cleanup.8.html defer.8.html error.8.html local.8.html \ master.8.html pickup.8.html pipe.8.html qmgr.8.html showq.8.html \ smtp.8.html smtpd.8.html trivial-rewrite.8.html COMMANDS= mailq.1.html newaliases.1.html postalias.1.html postcat.1.html \ postconf.1.html postfix.1.html postkick.1.html postlock.1.html \ postlog.1.html postdrop.1.html postmap.1.html sendmail.1.html \ postsuper.1.html CONFIG = access.5.html aliases.5.html canonical.5.html relocated.5.html \ transport.5.html virtual.5.html update: $(DAEMONS) $(COMMANDS) $(CONFIG) Makefile: Makefile.in (set -e; echo "# DO NOT EDIT"; $(OPTS) $(SHELL) ../makedefs; cat $?) >$@ clean: echo clean tidy: clean clobber: rm -f $(DAEMONS) $(COMMANDS) $(CONFIG) bounce.8.html: ../bounce/bounce.c srctoman $? | nroff -man | man2html | postlink >$@ defer.8.html: bounce.8.html rm -f $@ ln -s $? $@ error.8.html: ../error/error.c srctoman $? | nroff -man | man2html | postlink >$@ cleanup.8.html: ../cleanup/cleanup.c srctoman $? | nroff -man | man2html | postlink >$@ local.8.html: ../local/local.c srctoman $? | nroff -man | man2html | postlink >$@ master.8.html: ../master/master.c srctoman $? | nroff -man | man2html | postlink >$@ pickup.8.html: ../pickup/pickup.c srctoman $? | nroff -man | man2html | postlink >$@ pipe.8.html: ../pipe/pipe.c srctoman $? | nroff -man | man2html | postlink >$@ qmgr.8.html: ../qmgr/qmgr.c srctoman $? | nroff -man | man2html | postlink >$@ showq.8.html: ../showq/showq.c srctoman $? | nroff -man | man2html | postlink >$@ smtp.8.html: ../smtp/smtp.c srctoman $? | nroff -man | man2html | postlink >$@ smtpd.8.html: ../smtpd/smtpd.c srctoman $? | nroff -man | man2html | postlink >$@ trivial-rewrite.8.html: ../trivial-rewrite/trivial-rewrite.c srctoman $? | nroff -man | man2html | postlink >$@ postalias.1.html: ../postalias/postalias.c srctoman $? | nroff -man | man2html | postlink >$@ postcat.1.html: ../postcat/postcat.c srctoman $? | nroff -man | man2html | postlink >$@ postconf.1.html: ../postconf/postconf.c srctoman $? | nroff -man | man2html | postlink >$@ postdrop.1.html: ../postdrop/postdrop.c srctoman $? | nroff -man | man2html | postlink >$@ postfix.1.html: ../postfix/postfix.c srctoman $? | nroff -man | man2html | postlink >$@ postkick.1.html: ../postkick/postkick.c srctoman $? | nroff -man | man2html | postlink >$@ postlock.1.html: ../postlock/postlock.c srctoman $? | nroff -man | man2html | postlink >$@ postlog.1.html: ../postlog/postlog.c srctoman $? | nroff -man | man2html | postlink >$@ postmap.1.html: ../postmap/postmap.c srctoman $? | nroff -man | man2html | postlink >$@ postsuper.1.html: ../postsuper/postsuper.c srctoman $? | nroff -man | man2html | postlink >$@ sendmail.1.html: ../sendmail/sendmail.c srctoman $? | nroff -man | man2html | postlink >$@ mailq.1.html: sendmail.1.html rm -f $@ ln -s $? $@ newaliases.1.html: sendmail.1.html rm -f $@ ln -s $? $@ access.5.html: ../conf/access srctoman - $? | nroff -man | man2html | postlink >$@ aliases.5.html: ../conf/aliases srctoman - $? | nroff -man | man2html | postlink >$@ canonical.5.html: ../conf/canonical srctoman - $? | nroff -man | man2html | postlink >$@ relocated.5.html: ../conf/relocated srctoman - $? | nroff -man | man2html | postlink >$@ transport.5.html: ../conf/transport srctoman - $? | nroff -man | man2html | postlink >$@ virtual.5.html: ../conf/virtual srctoman - $? | nroff -man | man2html | postlink >$@ postfix/doc/uce.html100664 1751 146 52264 7017475552 13770 0ustar thivillowww Postfix Configuration - UCE Controls

Postfix Configuration - UCE Controls


Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation

Introduction

Postfix offers a variety of parameters that limit the delivery of unsolicited commercial email (UCE).

By default, the Postfix SMTP server will accept mail only from or to the local network or domain, so that your system can't be used as a mail relay to forward bulk mail from random strangers.

The text in this document describes how you can set up more detailed anti-UCE policies that prevent delivery of unwanted email altogether, for example with sendmail-style access lists or with RBL (real-time blackhole list) name servers.

Unless indicated otherwise, all parameters described here are in the main.cf file. If you change parameters of a running Postfix system, don't forget to issue a postfix reload command.

Header filtering

The header_checks parameter restricts what is allowed in message headers.

Default:
Allow anything in message headers.

Syntax:
Specify a list of zero or more lookup tables. Whenever a header matches a table, a REJECT result means reject the message.

A rule ending in OK affects only the header being matched. The next header may still result in a REJECT match, causing the mail still to be rejected.

Examples:
header_checks = regexp:/etc/postfix/header_checks
header_checks = pcre:/etc/postfix/header_checks

Client name/address restrictions

The smtpd_client_restrictions parameter restricts what clients this system accepts SMTP connections from.

Default:
Allow SMTP connections from any client.

Syntax:
Specify a list of zero or more restrictions, separated by whitespace or commas. Restrictions are applied in the order as specified; the first restriction that matches wins.

Examples:
smtpd_client_restrictions = hash:/etc/postfix/access, reject_maps_rbl
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client

Restrictions:

reject_unknown_client
Reject the request when the client address to name lookup failed. The unknown_client_reject_code parameter specifies the response code to rejected requests (default: 450).

permit_mynetworks
Permit the request when the client address matches any network listed in $mynetworks.

check_client_access maptype:mapname
maptype:mapname
Search the named access database for the client name, parent domains, client address, or networks obtained by stripping least significant octets. Reject the request if the result is REJECT or "[45]XX text". Permit the request if the result is anything else. The access_map_reject_code parameter specifies the response code for REJECT results (default: 554).

reject_maps_rbl
Reject the request when the client network address is listed under any of the domains listed in $maps_rbl_domains. The maps_rbl_reject_code parameter specifies the response code for rejected requests (default: 554).

permit
reject
reject_unauth_pipelining
See generic restrictions.

Require HELO (EHLO) command

The smtpd_helo_required parameter determines if clients must send a HELO (EHLO) command at the beginning of an SMTP session. Requiring this will stop some UCE software.

Default:
By default, the Postfix SMTP server does not require the use of HELO (EHLO).

Syntax:
Specify yes or no.

Example:
smtpd_helo_required = yes

HELO (EHLO) hostname restrictions

The smtpd_helo_restrictions parameter restricts what hostnames clients may send with the HELO (EHLO) command. Some UCE software can be stopped by being strict here.
Default:
By default, the Postfix SMTP server accepts any hostname.

Syntax:
Specify a list of zero or more restrictions, separated by whitespace or commas. Restrictions are applied in the order as specified; the first restriction that matches wins.

In addition to restrictions that are specific to HELO (EHLO) command parameters, you can also specify restrictions based on the client hostname or network address.

Example:
smtpd_helo_restrictions = reject_invalid_hostname

Restrictions:

reject_invalid_hostname
Reject the request when the client HELO and EHLO command has a bad hostname syntax. The invalid_hostname_reject_code specifies the response code to rejected requests (default: 501).

permit_naked_ip_address
Permit the request when the client HELO (EHLO) command contains a naked IP address without the enclosing [] brackets that the RFC requires. Unfortunately, some popular PC mail clients send HELO greetings in this manner.

reject_unknown_hostname
Reject the request when the hostname in the client HELO (EHLO) command has no DNS A or MX record. The unknown_hostname_reject_code specifies the response code to rejected requests (default: 450).

reject_non_fqdn_hostname
Reject the request when the hostname in the client HELO (EHLO) command is not in fully-qualified domain form. The non_fqdn_reject_code specifies the response code to rejected requests (default: 504).

check_helo_access maptype:mapname
maptype:mapname
Search the named access database for the HELO hostname or parent domains in the specified table. Reject the request if the result is REJECT or "[45]XX text". Permit the request when the result is anything else. The access_map_reject_code parameter specifies the response code for REJECT results (default: 554).

reject_maps_rbl
reject_unknown_client
permit_mynetworks
check_client_access maptype:mapname
See client name/address restrictions.

permit
reject
reject_unauth_pipelining
See generic restrictions.

Sender address restrictions

The smtpd_sender_restrictions parameter restricts what sender addresses this system accepts in MAIL FROM commands.

Default:
By default, the Postfix SMTP server accepts any sender address.

Syntax:
Specify a list of zero or more restrictions, separated by whitespace or commas. Restrictions are applied in the order as specified; the first restriction that matches wins.

In addition to restrictions that are specific to sender mail addresses, you can also specify restrictions based on the information passed with the HELO/EHLO command, and on the client hostname or network address.

Example:
smtpd_sender_restrictions = reject_unknown_sender_domain

Restrictions:
reject_unknown_sender_domain
Reject the request when the sender mail address has no DNS A or MX record. The unknown_address_reject_code parameter specifies the response code for rejected requests (default: 450). The response is always 450 in case of a temporary DNS error.

check_sender_access maptype:mapname
maptype:mapname
Search the named access database for the sender mail address, parent domain, or localpart@. Reject the request if the result is REJECT or "[45]XX text". Permit the request if the result is anything else. The access_map_reject_code parameter specifies the result code for rejected requests (default: 554).

reject_non_fqdn_sender
Reject the request when the address in the client MAIL FROM command is not in fully-qualified domain form. The non_fqdn_reject_code specifies the response code to rejected requests (default: 504).

permit_naked_ip_address
reject_invalid_hostname
reject_unknown_hostname
reject_non_fqdn_hostname
check_helo_access maptype:mapname
See HELO (EHLO) hostname restrictions.

reject_maps_rbl
reject_unknown_client
permit_mynetworks
check_client_access maptype:mapname
See client name/address restrictions.

permit
reject
reject_unauth_pipelining
See generic restrictions.

Recipient address restrictions

The smtpd_recipient_restrictions parameter restricts what recipient addresses this system accepts in RCPT TO commands.
Default:
By default, the Postfix SMTP server forwards mail from any client that matches $mynetworks or $relay_domains, or to any destination that matches $relay_domains.

Syntax:
Specify a list of zero or more restrictions, separated by whitespace or commas. Restrictions are applied in the order as specified; the first restriction that matches wins.

In addition to restrictions that are specific to recipient mail addresses, you can also specify restrictions based on the sender mail address, on the information passed with the HELO/EHLO command, and on the client hostname or network address.

Example:
smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

Restrictions:
check_relay_domains
Permit the request when the client hostname matches $relay_domains, or when the resolved destination address matches $relay_domains, otherwise reject. The relay_domains_reject_code parameter specifies the response code for rejected requests (default: 554).

reject_unauth_destination
Ignore the client hostname. Reject the request when the resolved destination address does not match $relay_domains. The relay_domains_reject_code parameter specifies the response code for rejected requests (default: 554).

permit_mx_backup
Permit the request when the local mail system is MX host for the resolved destination. This includes the case that the local mail system is the final destination. Relevant configuration parameters: $mydestination, $inet_interfaces.

check_recipient_access maptype:mapname
maptype:mapname
Search the named access database for the resolved destination address, parent domain, or localpart@. Reject the request if the result is REJECT or "[45]XX text". Permit the request if the result is anything else. The access_map_reject_code parameter specifies the result code for rejected requests (default: 554).

reject_unknown_recipient_domain
Reject the request when the recipient mail address has no DNS A or MX record. The unknown_address_reject_code parameter specifies the response code for rejected requests (default: 450). The response is always 450 in case of a temporary DNS error.

reject_non_fqdn_recipient
Reject the request when the address in the client RCPT TO command is not in fully-qualified domain form. The non_fqdn_reject_code specifies the response code to rejected requests (default: 504).

reject_unknown_sender_domain
reject_non_fqdn_sender
check_sender_access maptype:mapname
See sender address restrictions.

permit_naked_ip_address
reject_invalid_hostname
reject_unknown_hostname
reject_non_fqdn_hostname
check_helo_access maptype:mapname
See HELO (EHLO) hostname restrictions.

reject_maps_rbl
reject_unknown_client
permit_mynetworks
check_client_access maptype:mapname
See client name/address restrictions.

permit
reject
reject_unauth_pipelining
See generic restrictions.

ETRN command restrictions

Not really an UCE restriction, the smtpd_etrn_restrictions parameter restricts what domains may be specified in ETRN commands, and what clients may issue ETRN commands.
Default:
By default, the Postfix SMTP server accepts any ETRN command from any client.

Syntax:
Specify a list of zero or more restrictions, separated by whitespace or commas. Restrictions are applied in the order as specified; the first restriction that matches wins.

In addition to restrictions that are specific to ETRN domain names, you can also specify restrictions based on the information passed with the HELO/EHLO command, and on the client hostname or network address.

Example:
smtpd_etrn_restrictions = permit_mynetworks, reject

Restrictions:
check_etrn_access maptype:mapname
maptype:mapname
Search the named access database for the domain specified in the ETRN command, or its parent domains. Reject the request if the result is REJECT or "[45]XX text". Permit the request if the result is anything else. The access_map_reject_code parameter specifies the result code for rejected requests (default: 554).

permit_naked_ip_address
reject_invalid_hostname
reject_unknown_hostname
check_helo_access maptype:mapname
See HELO (EHLO) hostname restrictions.

reject_maps_rbl
reject_unknown_client
permit_mynetworks
check_client_access maptype:mapname
See client name/address restrictions.

permit
reject
reject_unauth_pipelining
See generic restrictions.

Generic restrictions

The following restrictions can use used for client hostnames or addresses, for HELO (EHLO) hostnames, for sender mail addresses and for recipient mail addresses.
Restrictions:

permit
Permit the request. This restriction is useful at the end of a restriction list, to make the default policy explicit.

reject
Reject the request. This restriction is useful at the end of a restriction list, to make the default policy explicit. The reject_code configuration parameter specifies the response code to rejected requests (default: 554).

reject_unauth_pipelining
Reject the request when the client sends SMTP commands ahead of time without knowing that Postfix actually supports SMTP command pipelining. This stops mail from bulk mail software that improperly uses SMTP command pipelining to speed up deliveries.

Additional UCE control parameters

maps_rbl_domains
This parameter controls the behavior of the reject_maps_rbl restriction that can appear as part of a client name/address restriction list.

Default:
maps_rbl_domains = rbl.maps.vix.com, dul.maps.vix.com

Note: RBL lookups are disabled by default.

Syntax:
Zero or more DNS domains that blacklist client addresses. A host is blacklisted when its reversed IP address is listed as a subdomain under any of the domains listed in $maps_rbl_domains.

relay_domains
This parameter controls the behavior of the check_relay_domains and reject_unauth_destination restrictions that can appear as part of a recipient address restriction list.

Default:
relay_domains = $mydestination, $virtual_maps.

Syntax:
Specify zero or more domain names, /file/name patterns and/or type:name lookup tables, separated by whitespace and/or commas. A /file/name is replaced by its contents; type:name requests that table lookup is done instead of string comparison.

A host or destination address matches $relay_domains when its name or parent domain matches any of the names, files or lookup tables listed in $relay_domains.


Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation postfix/doc/trivial-rewrite.8.html100664 1751 146 12146 7017475553 16507 0ustar thivillowww



TRIVIAL-REWRITE(8)                             TRIVIAL-REWRITE(8)


NAME
       trivial-rewrite  - Postfix address rewriting and resolving
       daemon

SYNOPSIS
       trivial-rewrite [generic Postfix daemon options]

DESCRIPTION
       The trivial-rewrite daemon processes two types  of  client
       service requests:

       rewrite
              Rewrite  an  address to standard form. The trivial-
              rewrite daemon  by  default  appends  local  domain
              information  to  unqualified  addresses, swaps bang
              paths to domain form,  and  strips  source  routing
              information.  This process is under control of sev-
              eral configuration parameters (see below).

       resolve
              Resolve an address to a (transport, nexthop, recip-
              ient) triple. The meaning of the results is as fol-
              lows:

              transport
                     The delivery agent to use. This is the first
                     field of an entry in the master.cf file.

              nexthop
                     The host to send to. For local delivery this
                     is an empty string.

              recipient
                     The  envelope  recipient  address  that   is
                     passed on to nexthop.

              The  trivial-rewrite daemon by default only distin-
              guishes between local and non-local mail. For finer
              control  over mail routing, use the optional trans-
              port(5) lookup table.

       This program expects to be run from the master(8)  process
       manager.

STANDARDS
       None.  The  command  does  not  interact  with the outside
       world.

SECURITY
       The trivial-rewrite daemon is not security sensitive.   By
       default,  this  daemon  does  not  talk to remote or local
       users.  It can run at a fixed low privilege in a  chrooted
       environment.




                                                                1





TRIVIAL-REWRITE(8)                             TRIVIAL-REWRITE(8)


DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

BUGS
CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

Miscellaneous
       inet_interfaces
              The  network  interfaces  that  this  mail   system
              receives  mail  on.   This  information  is used to
              determine if user@[net.work.addr.ess] is  local  or
              remote.

       mydestination
              List  of domains that this machine considers local.

       myorigin
              The domain that locally-posted mail appears to come
              from.

Rewriting
       allow_percent_hack
              Rewrite user%domain to user@domain.

       append_at_myorigin
              Rewrite user to user@$myorigin.

       append_dot_mydomain
              Rewrite user@host to user@host.$mydomain.

       swap_bangpath
              Rewrite site!user to user@site.

Routing
       default_transport
              The  default  transport to use when no transport is
              explicitly given in the transport(5) table.

       relayhost
              The default host to send mail to when no  entry  is
              matched in the transport(5) table.

              When  no  relayhost  is  specified,  mail is routed
              directly to the destination's mail exchanger.

       transport_maps
              List of tables with domain to (transport,  nexthop)
              mappings.





                                                                2





TRIVIAL-REWRITE(8)                             TRIVIAL-REWRITE(8)


SEE ALSO
       master(8) process manager
       syslogd(8) system logging
       transport(5) transport table format

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA











































                                                                3


postfix/doc/transport.5.html100664 1751 146 12177 7017475553 15413 0ustar thivillowww



TRANSPORT(5)                                         TRANSPORT(5)


NAME
       transport - format of Postfix transport table

SYNOPSIS
       postmap /etc/postfix/transport

DESCRIPTION
       The  optional  transport  file  specifies  a  mapping from
       domain hierarchies to message delivery  transports  and/or
       relay hosts. The mapping is used by the trivial-rewrite(8)
       daemon.

       The file serves as input to the  postmap(1)  command.  The
       result,  an  indexed file in dbm or db format, is used for
       fast searching by the mail  system.  After  updating  this
       table, issue the postfix reload command to make the change
       visible.

       The format of the transport table is as follows:

       blanks and comments
              Blank lines are ignored,  as  are  lines  beginning
              with `#'.

       domain transport:nexthop
              Mail  for  domain is delivered through transport to
              nexthop.

       .domain transport:nexthop
              Mail for  any  subdomain  of  domain  is  delivered
              through transport to nexthop.

              The  interpretation  of the nexthop field is trans-
              port  dependent.  In  the  case  of  SMTP,  specify
              host:service for a non-default server port, and use
              [host] or [host:port] in order to disable MX  (mail
              exchanger)  DNS  lookups.  The  [] form can also be
              used with IP addresses instead of hostnames.

EXAMPLES
       In order to send mail for foo.org and its subdomains
       via the uucp transport to the UUCP host named foo:

            foo.org      uucp:foo
            .foo.org     uucp:foo

       When no nexthop host name is specified, the destination domain
       name is used instead. For example, the following directs mail for
       user@foo.org via the slow transport to a mail
       exchanger for foo.org.  The slow transport could be
       something that runs at most one delivery process at a time:

            foo.org      slow:




                                                                1





TRANSPORT(5)                                         TRANSPORT(5)


       When no transport is specified, the default transport is
       used, as specified via the default_transport configuration
       parameter. The following sends all mail for foo.org and its
       subdomains to host gateway.foo.org:

            foo.org      :[gateway.foo.org]
            .foo.org     :[gateway.foo.org]

       In the above example, the [] are used to suppress MX lookups.
       The result would likely point to your local machine.

       In the case of delivery via SMTP, one may specify
       hostname:service instead of just a host:

            foo.org      smtp:bar.org:2025

       This directs mail for user@foo.org to host bar.org
       port 2025. Instead of a numerical port a symbolic name may be
       used. Specify [] around the destination in order to disable MX lookups.

       The error mailer can be used to bounce mail:

            .foo.org      error:mail for *.foo.org is not deliverable

       This causes all mail for user@anythingfoo.org
       to be bounced.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  topic.  See  the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

       transport_maps
              List of transport lookup tables.

       Other parameters of interest:

       default_transport
              The  transport  to use when no transport is explic-
              itly specified.

       relayhost
              The default host to send to when no transport table
              entry matches.

SEE ALSO
       postmap(1) create mapping table
       trivial-rewrite(8) rewrite and resolve addresses

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.




                                                                2





TRANSPORT(5)                                         TRANSPORT(5)


AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA




















































                                                                3


postfix/doc/smtpd.8.html100664 1751 146 24005 7017475553 14502 0ustar thivillowww



SMTPD(8)                                                 SMTPD(8)


NAME
       smtpd - Postfix SMTP server

SYNOPSIS
       smtpd [generic Postfix daemon options]

DESCRIPTION
       The  SMTP  server  accepts network connection requests and
       performs zero or more SMTP  transactions  per  connection.
       Each received message is piped through the cleanup(8) dae-
       mon, and is placed into the incoming queue as  one  single
       queue  file.   For  this  mode  of  operation, the program
       expects to be run from the master(8) process manager.

       Alternatively, the SMTP server takes an  established  con-
       nection  on  standard input and deposits messages directly
       into the maildrop queue.  In  this  so-called  stand-alone
       mode,  the SMTP server can accept mail even while the mail
       system is not running.

       The SMTP server implements a variety of policies for  con-
       nection  requests,  and for parameters given to HELO, MAIL
       FROM, VRFY and RCPT TO commands. They are  detailed  below
       and in the main.cf configuration file.

SECURITY
       The SMTP server is moderately security-sensitive. It talks
       to SMTP clients and to DNS servers  on  the  network.  The
       SMTP server can be run chrooted at fixed low privilege.

STANDARDS
       RFC 821 (SMTP protocol)
       RFC 1123 (Host requirements)
       RFC 1651 (SMTP service extensions)
       RFC 1652 (8bit-MIME transport)
       RFC 1854 (SMTP Pipelining)
       RFC 1870 (Message Size Declaration)
       RFC 1985 (ETRN command) (partial)

DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

       Depending  on the setting of the notify_classes parameter,
       the postmaster is notified of bounces, protocol  problems,
       policy violations, and of other trouble.

BUGS
       RFC  1985  is  implemented  by  forcing  delivery  of  all
       deferred mail.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload



                                                                1





SMTPD(8)                                                 SMTPD(8)


       command after a configuration change.

Miscellaneous
       always_bcc
              Address  to send a copy of each message that enters
              the system.

       command_directory
              Location  of  Postfix  support  commands  (default:
              $program_directory).

       debug_peer_level
              Increment  in  verbose  logging level when a remote
              host  matches  a  pattern  in  the  debug_peer_list
              parameter.

       debug_peer_list
              List  of  domain or network patterns. When a remote
              host matches a pattern, increase the  verbose  log-
              ging   level   by   the  amount  specified  in  the
              debug_peer_level parameter.

       error_notice_recipient
              Recipient   of    protocol/policy/resource/software
              error notices.

       hopcount_limit
              Limit the number of Received: message headers.

       notify_classes
              List of error classes. Of special interest are:

              policy When  a  client  violates any policy, mail a
                     transcript of the entire SMTP session to the
                     postmaster.

              protocol
                     When  a client violates the SMTP protocol or
                     issues  an  unimplemented  command,  mail  a
                     transcript of the entire SMTP session to the
                     postmaster.

       smtpd_banner
              Text that follows the 220 status code in  the  SMTP
              greeting banner.

       smtpd_recipient_limit
              Restrict  the  number  of  recipients that the SMTP
              server accepts per message delivery.

       smtpd_timeout
              Limit the time to send a  server  response  and  to
              receive a client request.




                                                                2





SMTPD(8)                                                 SMTPD(8)


Resource controls
       line_length_limit
              Limit  the  amount  of memory in bytes used for the
              handling of partial input lines.

       message_size_limit
              Limit the total size in bytes of a message, includ-
              ing on-disk storage for envelope information.

       queue_minfree
              Minimal  amount of free space in bytes in the queue
              file system for the SMTP server to accept any  mail
              at all.

Tarpitting
       smtpd_error_sleep_time
              Time to wait in seconds before sending a 4xx or 5xx
              server error response.

       smtpd_soft_error_limit
              When an SMTP client has made this number of errors,
              wait  error_count  seconds before responding to any
              client request.

       smtpd_hard_error_limit
              Disconnect after a client has made this  number  of
              errors.

UCE control restrictions
       smtpd_client_restrictions
              Restrict what clients may connect to this mail sys-
              tem.

       smtpd_helo_required
              Require that clients introduce  themselves  at  the
              beginning of an SMTP session.

       smtpd_helo_restrictions
              Restrict  what client hostnames are allowed in HELO
              and EHLO commands.

       smtpd_sender_restrictions
              Restrict what sender addresses are allowed in  MAIL
              FROM commands.

       smtpd_recipient_restrictions
              Restrict  what  recipient  addresses are allowed in
              RCPT TO commands.

       smtpd_etrn_restrictions
              Restrict what domain names can be used in ETRN com-
              mands, and what clients may issue ETRN commands.





                                                                3





SMTPD(8)                                                 SMTPD(8)


       maps_rbl_domains
              List  of  DNS domains that publish the addresses of
              blacklisted hosts.

       relay_domains
              Restrict what domains or networks this mail  system
              will relay mail from or to.

UCE control responses
       access_map_reject_code
              Server  response  when  a client violates an access
              database restriction.

       invalid_hostname_reject_code
              Server  response  when  a   client   violates   the
              reject_invalid_hostname restriction.

       maps_rbl_reject_code
              Server   response   when   a  client  violates  the
              maps_rbl_domains restriction.

       reject_code
              Response code when  the  client  matches  a  reject
              restriction.

       relay_domains_reject_code
              Server  response  when a client attempts to violate
              the mail relay policy.

       unknown_address_reject_code
              Server  response  when  a   client   violates   the
              reject_unknown_address restriction.

       unknown_client_reject_code
              Server  response  when  a client without address to
              name mapping  violates  the  reject_unknown_clients
              restriction.

       unknown_hostname_reject_code
              Server   response   when   a  client  violates  the
              reject_unknown_hostname restriction.

SEE ALSO
       cleanup(8) message canonicalization
       master(8) process manager
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research



                                                                4





SMTPD(8)                                                 SMTPD(8)


       P.O. Box 704
       Yorktown Heights, NY 10598, USA























































                                                                5


postfix/doc/smtp.8.html100664 1751 146 21435 7017475553 14342 0ustar thivillowww



SMTP(8)                                                   SMTP(8)


NAME
       smtp - Postfix remote delivery via SMTP

SYNOPSIS
       smtp [generic Postfix daemon options]

DESCRIPTION
       The  SMTP  client processes message delivery requests from
       the queue manager. Each request specifies a queue file,  a
       sender address, a domain or host to deliver to, and recip-
       ient information.  This program expects to be run from the
       master(8) process manager.

       The  SMTP  client updates the queue file and marks recipi-
       ents as finished, or it informs  the  queue  manager  that
       delivery  should  be tried again at a later time. Delivery
       problem reports are sent to the bounce(8) or defer(8) dae-
       mon as appropriate.

       The  SMTP  client  looks  up  a  list  of  mail  exchanger
       addresses for the destination  host,  sorts  the  list  by
       preference,  and  connects to each listed address until it
       finds a server that responds.

       Once the SMTP client has received the server greeting ban-
       ner, no error will cause it to proceed to the next address
       on the mail exchanger list. Instead, the message is either
       bounced, or its delivery is deferred until later.

SECURITY
       The SMTP client is moderately security-sensitive. It talks
       to SMTP servers and to DNS servers  on  the  network.  The
       SMTP client can be run chrooted at fixed low privilege.

STANDARDS
       RFC 821 (SMTP protocol)
       RFC 1651 (SMTP service extensions)
       RFC 1870 (Message Size Declaration)
       RFC 2197 (Pipelining)

DIAGNOSTICS
       Problems  and transactions are logged to syslogd(8).  Cor-
       rupted message files are marked so that the queue  manager
       can move them to the corrupt queue for further inspection.

       Depending on the setting of the notify_classes  parameter,
       the  postmaster is notified of bounces, protocol problems,
       and of other trouble.

BUGS
CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload



                                                                1





SMTP(8)                                                   SMTP(8)


       command after a configuration change.

Miscellaneous
       best_mx_transport
              Name  of  the  delivery  transport  to use when the
              local machine is the most-preferred mail  exchanger
              (by  default,  a  mailer  loop is reported, and the
              message is bounced).

       debug_peer_level
              Verbose logging  level  increment  for  hosts  that
              match a pattern in the debug_peer_list parameter.

       debug_peer_list
              List  of  domain or network patterns. When a remote
              host matches a pattern, increase the  verbose  log-
              ging   level   by   the  amount  specified  in  the
              debug_peer_level parameter.

       disable_dns_lookups
              Disable DNS lookups. This means that mail  must  be
              forwarded via a smart relay host.

       error_notice_recipient
              Recipient    of   protocol/policy/resource/software
              error notices.

       fallback_relay
              Hosts to hand off mail to if a message  destination
              is not found or if a destination is unreachable.

       ignore_mx_lookup_error
              When a name server fails to respond to an MX query,
              search for an A record instead of assuming that the
              name server will recover.

       inet_interfaces
              The network interface addresses that this mail sys-
              tem receives mail on. When any of  those  addresses
              appears in the list of mail exchangers for a remote
              destination, the list is truncated  to  avoid  mail
              delivery loops.

       notify_classes
              When  this  parameter  includes the protocol class,
              send mail to the  postmaster  with  transcripts  of
              SMTP sessions with protocol errors.

       smtp_skip_4xx_greeting
              Skip  servers that greet us with a 4xx status code.

       smtp_skip_quit_response
              Do not wait for the server response  after  sending
              QUIT.



                                                                2





SMTP(8)                                                   SMTP(8)


Resource controls
       smtp_destination_concurrency_limit
              Limit the number of parallel deliveries to the same
              destination.  The default limit is taken  from  the
              default_destination_concurrency_limit parameter.

       smtp_destination_recipient_limit
              Limit  the  number of recipients per message deliv-
              ery.   The  default  limit  is   taken   from   the
              default_destination_recipient_limit parameter.

Timeout controls
       smtp_connect_timeout
              Timeout in seconds for completing a TCP connection.
              When no connection can be made within the deadline,
              the  SMTP client tries the next address on the mail
              exchanger list.

       smtp_helo_timeout
              Timeout in seconds for receiving the SMTP  greeting
              banner.  When the server drops the connection with-
              out sending a greeting banner, or when it sends  no
              greeting  banner  within  the  deadline,  the  SMTP
              client tries the next address on the mail exchanger
              list.

       smtp_helo_timeout
              Timeout  in  seconds  for sending the HELO command,
              and for receiving the server response.

       smtp_mail_timeout
              Timeout in seconds for sending the MAIL  FROM  com-
              mand, and for receiving the server response.

       smtp_rcpt_timeout
              Timeout in seconds for sending the RCPT TO command,
              and for receiving the server response.

       smtp_data_init_timeout
              Timeout in seconds for sending  the  DATA  command,
              and for receiving the server response.

       smtp_data_xfer_timeout
              Timeout in seconds for sending the message content.

       smtp_data_done_timeout
              Timeout in seconds for sending the "." command, and
              for receiving the server response. When no response
              is received, a warning is logged that the mail  may
              be delivered multiple times.

       smtp_quit_timeout
              Timeout  in  seconds  for sending the QUIT command,
              and for receiving the server response.



                                                                3





SMTP(8)                                                   SMTP(8)


SEE ALSO
       bounce(8) non-delivery status reports
       master(8) process manager
       qmgr(8) queue manager
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA










































                                                                4


postfix/doc/small-picture.gif100664 1751 146 622 7017475553 15526 0ustar thivillowwwGIF89as-!,s-ڋ޼H扦j.!þ4}A7D$h9gbc7k*6h/2kc._GQ(xd1PC7HG(ٹyxI51g9Y1"hhٛ S[)W,6Jsl|K@{[]z= *; {)[N>NXi~ ǎX?tր{%B4 DWddQz&M͘%MHJI|D1$GLR[&jS4s +CJSD)bť+%UxiMXW5رd˚=6ڵlۺ} 7.;postfix/doc/small-picture.fig100664 1751 146 10334 7017475553 15567 0ustar thivillowww#FIG 3.1 Landscape Center Inches 1200 2 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 11850 2250 600 300 11250 1950 12450 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 13500 4350 600 300 12900 4050 14100 4650 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 13500 3300 600 300 12900 3000 14100 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 11850 3300 600 300 11250 3000 12450 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 13500 2250 600 300 12900 1950 14100 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 2700 2775 600 300 2100 2475 3300 3075 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 5700 2775 600 300 5100 2475 6300 3075 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 5700 3825 600 300 5100 3525 6300 4125 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7350 3300 600 300 6750 3000 7950 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7350 2250 600 300 6750 1950 7950 2550 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 10800 3300 11250 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 12450 3300 12900 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 12225 3075 13125 2475 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 12138 3542 13038 4142 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 14100 2250 14550 2250 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 14100 3300 14550 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 14100 4350 14550 4350 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 14587 4050 15487 4050 15487 4650 14587 4650 14587 4050 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 14550 3000 15450 3000 15450 3600 14550 3600 14550 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 11850 1500 11850 1950 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 11850 2550 11850 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 13500 1500 13500 1950 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 0 0 2 14700 1350 13950 2025 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 4 10800 3450 11100 3450 11100 4350 10800 4350 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 11850 3600 11850 4050 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 9900 3000 10800 3000 10800 3600 9900 3600 9900 3000 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 9900 4050 10800 4050 10800 4650 9900 4650 9900 4050 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 14550 1950 15450 1950 15450 2550 14550 2550 14550 1950 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 11400 900 12300 900 12300 1500 11400 1500 11400 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 13050 900 13950 900 13950 1500 13050 1500 13050 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 14550 900 15450 900 15450 1500 14550 1500 14550 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 11400 4050 12300 4050 12300 4650 11400 4650 11400 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 9300 3300 9900 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 4 9900 3450 9600 3450 9600 4350 9900 4350 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 6225 3675 6825 3450 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 7950 3300 8400 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 6225 2925 6825 3150 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 3300 2775 3750 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 1650 2775 2100 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 4650 2775 5100 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 4650 3825 5100 3825 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 3750 3525 4650 3525 4650 4125 3750 4125 3750 3525 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 5700 4125 5700 4500 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 0 0 2 4500 4650 5250 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 7350 2550 7350 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 7350 3600 7350 4050 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8550 4200 7800 3525 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 750 2475 1650 2475 1650 3075 750 3075 750 2475 2 2 0 1 -1 6 1 0 20 0.000 0 0 -1 0 0 5 3750 2475 4650 2475 4650 3075 3750 3075 3750 2475 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 8400 3000 9300 3000 9300 3600 8400 3600 8400 3000 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 3750 4500 4650 4500 4650 5100 3750 5100 3750 4500 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 5250 4500 6150 4500 6150 5100 5250 5100 5250 4500 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 6900 4050 7800 4050 7800 4650 6900 4650 6900 4050 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 8400 4050 9300 4050 9300 4650 8400 4650 8400 4050 4 0 -1 0 0 0 15 0.0000 4 150 690 14655 3375 Internet\001 4 0 -1 0 0 0 15 0.0000 4 150 930 14647 4425 UUCP etc.\001 4 0 -1 0 0 0 15 0.0000 4 150 690 3840 3892 Internet\001 4 0 -1 0 0 0 15 0.0000 4 150 405 952 2850 local\001 postfix/doc/showq.8.html100664 1751 146 3524 7017475553 14477 0ustar thivillowww



SHOWQ(8)                                                 SHOWQ(8)


NAME
       showq - list the Postfix mail queue

SYNOPSIS
       showq [generic Postfix daemon options]

DESCRIPTION
       The  showq  daemon  reports the Postfix mail queue status.
       It is the program that emulates the sendmail `mailq'  com-
       mand.

       The  showq  daemon  can also be run in stand-alone mode by
       the super-user. This mode of operation is used to  emulate
       the `mailq' command while the Postfix mail system is down.

SECURITY
       The showq daemon can run in a chroot  jail  at  fixed  low
       privilege, and takes no input from the client. Its service
       port is accessible to local untrusted users, so  the  ser-
       vice can be susceptible to denial of service attacks.

STANDARDS
       None.  The showq daemon does not interact with the outside
       world.

DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

BUGS
       The showq daemon runs at a  fixed  low  privilege;  conse-
       quently, it cannot extract information from queue files in
       the maildrop directory.

SEE ALSO
       cleanup(8) canonicalize and enqueue mail
       pickup(8) local mail pickup service
       qmgr(8) mail being delivered, delayed mail
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA









                                                                1


postfix/doc/sendmail.1.html100664 1751 146 27415 7017475553 15150 0ustar thivillowww



SENDMAIL(1)                                           SENDMAIL(1)


NAME
       sendmail - Postfix to Sendmail compatibility interface

SYNOPSIS
       sendmail [option ...] [recipient ...]

       mailq
       sendmail -bp

       newaliases
       sendmail -I

DESCRIPTION
       The  sendmail  program  implements the Postfix to Sendmail
       compatibility interface.  For the  sake  of  compatibility
       with  existing  applications,  some  Sendmail command-line
       options are recognized but silently ignored.

       By default, sendmail reads a message from  standard  input
       and  arranges for delivery.  sendmail attempts to create a
       queue file in the maildrop directory. If that directory is
       not world-writable, the message is piped through the post-
       drop(1) command, which is expected to execute  with  suit-
       able privileges.

       Specific  command  aliases  are  provided for other common
       modes of operation:

       mailq  List the mail queue. Each  entry  shows  the  queue
              file  ID,  message  size, arrival time, sender, and
              the recipients that still need to be delivered.  If
              mail  could not be delivered upon the last attempt,
              the reason for failure is shown. This mode of oper-
              ation  is implemented by connecting to the showq(8)
              daemon.

       newaliases
              Initialize the alias database. If no alias database
              type is specified, the program uses the type speci-
              fied in the database_type configuration  parameter;
              if  no  input  file  is specified, the program pro-
              cesses   the    file(s)    specified    with    the
              alias_database  configuration  parameter. This mode
              of operation is implemented by running the  postal-
              ias(1) command.

              Note:  it  may  take a minute or so before an alias
              database update becomes visible.  Use  the  postfix
              reload command to eliminate this delay.

       These and other features can be selected by specifying the
       appropriate combination of command-line options. Some fea-
       tures are controlled by parameters in the main.cf configu-
       ration file.



                                                                1





SENDMAIL(1)                                           SENDMAIL(1)


       The following options are recognized:

       -B body_type (ignored)
              The message  body  MIME  type.  Currently,  Postfix
              implements just-send-eight.

       -C config_file (ignored :-)
              The path name of the sendmail.cf file. Postfix con-
              figuration files are kept in /etc/postfix.

       -F full_name
              Set the sender full name. This is  used  only  with
              messages that have no From: message header.

       -I     Initialize  alias database. See the newaliases com-
              mand above.

       -N dsn (ignored)
              Delivery status  notification  control.  Currently,
              Postfix does not implement DSN.

       -R return_limit (ignored)
              Limit   the   size   of   bounced   mail.  Use  the
              bounce_size_limit configuration parameter  instead.

       -X log_file (ignored)
              Log  mailer  traffic.  Use  the debug_peer_list and
              debug_peer_level configuration parameters  instead.

       -bd    Go  into  daemon  mode.  This  mode of operation is
              implemented by executing the postfix start command.

       -bi    Initialize  alias database. See the newaliases com-
              mand above.

       -bm    Read mail  from  standard  input  and  arrange  for
              delivery.  This is the default mode of operation.

       -bp    List the mail queue. See the mailq command above.

       -bs    Stand-alone  SMTP  server  mode. Read SMTP commands
              from standard input, and write responses  to  stan-
              dard output.  This mode of operation is implemented
              by running the smtpd(8) daemon.

       -f sender
              Set  the  envelope  sender  address.  This  is  the
              address where delivery problems are sent to, unless
              the message contains an Errors-To: message  header.

       -h hop_count (ignored)
              Hop  count limit. Use the hopcount_limit configura-
              tion parameter instead.




                                                                2





SENDMAIL(1)                                           SENDMAIL(1)


       -i (ignored)
              Lines beginning with "." get special treatment only
              with -bs.

       -m (ignored)
              Backwards compatibility.

       -n (ignored)
              Backwards compatibility.

       -oAalias_database
              Non-default  alias  database.  Specify  pathname or
              type:pathname. See postalias(1) for details.

       -o7 (ignored)

       -o8 (ignored)
              The message body type.  Currently,  Postfix  imple-
              ments just-send-eight.

       -om (ignored)
              The  sender  is  never  eliminated  from alias etc.
              expansions.

       -o x value (ignored)
              Set option x to value. Use the equivalent  configu-
              ration parameter in main.cf instead.

       -r sender
              Set  the  envelope  sender  address.  This  is  the
              address where delivery problems are sent to, unless
              the  message contains an Errors-To: message header.

       -q     Flush the mail queue. This is implemented by  kick-
              ing the qmgr(8) daemon.

       -qinterval (ignored)
              The   interval   between   queue   runs.   Use  the
              queue_run_delay configuration parameter instead.

       -t     Extract  recipients  from  message  headers.   This
              requires  that  no  recipients  be specified on the
              command line.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

SECURITY
       By design, this program is not  set-user  (or  group)  id.
       However,  it  must  handle  data  from  untrusted users or
       untrusted machines.  Thus, the usual precautions  need  to
       be taken against malicious inputs.




                                                                3





SENDMAIL(1)                                           SENDMAIL(1)


DIAGNOSTICS
       Problems  are  logged  to  syslogd(8)  and to the standard
       error stream.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

       MAIL_DEBUG
              Enable debugging with an external command, as spec-
              ified   with   the  debugger_command  configuration
              parameter.

FILES
       /var/spool/postfix, mail queue
       /etc/postfix, configuration files

CONFIGURATION PARAMETERS
       See the Postfix main.cf file for syntax  details  and  for
       default  values.  Use  the  postfix reload command after a
       configuration change.

       alias_database
              Default  alias  database(s)  for  newaliases.   The
              default  value  for  this  parameter is system-spe-
              cific.

       bounce_size_limit
              The amount of original message context that is sent
              along with a non-delivery notification.

       database_type
              Default alias etc. database type. On many UNIX sys-
              tems the default type is either dbm or hash.

       debugger_command
              Command that is executed after a Postfix daemon has
              initialized.

       debug_peer_level
              Increment  in  verbose  logging level when a remote
              host  matches  a  pattern  in  the  debug_peer_list
              parameter.

       debug_peer_list
              List  of  domain or network patterns. When a remote
              host matches a pattern, increase the  verbose  log-
              ging   level   by   the  amount  specified  in  the
              debug_peer_level parameter.





                                                                4





SENDMAIL(1)                                           SENDMAIL(1)


       fork_attempts
              Number of attempts to fork() a process before  giv-
              ing up.

       fork_delay
              Delay   in   seconds   between   successive  fork()
              attempts.

       hopcount_limit
              Limit the number of Received: message headers.

       mail_owner
              The owner of the mail queue  and  of  most  Postfix
              processes.

       command_directory
              Directory  with  Postfix support commands (default:
              $program_directory).

       daemon_directory
              Directory with Postfix  daemon  programs  (default:
              $program_directory).

       queue_directory
              Top-level  directory  of the Postfix queue. This is
              also the root directory of Postfix daemons that run
              chrooted.

       queue_run_delay
              The  time  between successive scans of the deferred
              queue.

SEE ALSO
       pickup(8) mail pickup daemon
       postalias(1) maintain alias database
       postdrop(1) privileged posting agent
       postfix(1) mail system control
       postkick(1) kick a Postfix daemon
       qmgr(8) queue manager
       showq(8) list mail queue
       smtpd(8) SMTP server
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA





                                                                5


postfix/doc/security.html100664 1751 146 14605 7017475554 15062 0ustar thivillowww Postfix Overview - Security

Postfix Overview - Security


Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security

Introduction

By definition, mail software processes information from potentially untrusted sources. Therefore, mail software must be written with great care, even when it runs with user privileges, and even when it does not talk directly to a network.

Postfix is a complex system. The initial release has about 30,000 lines of code (after deleting the comments). With a system that complex, the security of the system should not depend on a single mechanism. If it did, one single error would be sufficient to compromise the entire mail system. Therefore, Postfix uses multiple layers of defense to control the damage from software and other errors.

Least privilege

Most Postfix daemon programs can be run at fixed low privilege in a chrooted environment. This is especially true for the programs that are exposed to the network: the SMTP server and SMTP client. Although chroot(2), even when combined with low privilege, is no guarantee against system compromise it does add a considerable hurdle. And we all know that every little bit helps.

Insulation

Postfix uses separate processes to insulate activities from each other. In particular, there is no direct path from the network to the security-sensitive local delivery programs. An intruder first has to break through multiple programs. Some parts of the Postfix system are multi-threaded. However, all programs that interact with the outside world are single-threaded. Separate processes give better insulation than multiple threads within a shared address space.

Controlled environment

No Postfix mail delivery program runs under control of a user process. Instead, most Postfix programs run under control of a resident master daemon that runs in a controlled environment, without any parent-child relationship to user processes. This approach eliminates exploits that involve signals, open files, environment variables, and other process attributes that the UNIX system passes on from a possibly-malicious parent to a child.

Set-uid

No Postfix program is set-uid. Introducing the concept was the biggest mistake made in UNIX history. Set-uid (and its weaker cousin, set-gid) causes more trouble than it is worth. Each time a new feature is added to the UNIX system, set-uid causes a security problem: shared libraries, the /proc file system, multi-language support, to mention just a few examples. Set-uid makes it impossible to introduce some of the features that make UNIX successors such as plan9 so attractive, for example, per-process file system name spaces.

By default, the maildrop queue directory is world-writable, so that local processes can submit mail without assistance from a set-uid or set-gid command or from a mail daemon process. The maildrop directory is not used for mail coming in via the network, and queue files are not readable for other users.

A writable directory opens up opportunities for annoyance: a local user can make hard links to someone else's maildrop files so they don't go away and/or are delivered multiple times; a local user can fill the maildrop directory with garbage and try to make the mail system crash; and a local user can hard link someone else's files into the maildrop directory and try to have them delivered as mail. However, Postfix queue files have a specific format; less than one in 10^12 non-Postfix files would be recognized as a valid Postfix queue file.

If a world-writable maildrop directory is not acceptable, sites can revoke world write permission, and enable set-gid privileges for a small helper program that is provided for this purpose.

Trust

As mentioned elsewhere in the overview, Postfix programs do not trust the contents of queue files or of the Postfix internal IPC messages. Queue files have no on-disk record for deliveries to sensitive destinations such as files or commands. Instead, programs such as the local delivery agent attempt to make security-sensitive decisions on the basis of first-hand information.

Of course, Postfix programs do not trust data received from the network, either. In particular, Postfix filters sender-provided data before exporting it via environment variables. If there is one lesson that people have learned from Web site security disasters it is this one: don't let any data from the network near a shell. Filtering is the best we can do.

Large inputs

  • Memory for strings and buffers is allocated dynamically, in order to prevent buffer overrun problems.

  • Long lines in message input are broken up into sequences of reasonably-sized chunks, and are reconstructed upon delivery.

  • Diagnostics are truncated (in one single place!) before they are passed to the syslog(3) interface, in order to prevent buffer overruns on older platforms. However, no general attempt is made to truncate data before it is passed to system calls or to library routines. On some platforms, the software may still exhibit buffer overrun problems, due to vulnerabilities in the underlying software.

  • No specific attempt is made to defend against unreasonably-long command-line arguments. UNIX kernels impose their own limits, which should be sufficient to deal with runaway programs or with malicious users.

Other defenses

  • The number of in-memory instances of any object type is limited, to prevent the mail system from becoming wedged under heavy load.

  • In case of problems, the software pauses before sending an error response to a client, before terminating with a fatal error, or before attempting to restart a failed program. The purpose is to prevent runaway conditions that only make problems worse.

Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security postfix/doc/rewrite.html100664 1751 146 32034 7017475554 14670 0ustar thivillowww Postfix Configuration - Address Manipulation

Postfix Configuration - Address Manipulation


Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation

Introduction

Although the initial Postfix release has no address rewriting language, it can do quite a bit of address manipulation via table lookup. While a message flows through the Postfix system, its addresses are mangled in the order described in this document.

Unless indicated otherwise, all parameters described here are in the main.cf file. If you change parameters of a running Postfix system, don't forget to issue a postfix reload command.

All mail:

Local delivery:

Rewrite addresses to standard form

Before the
cleanup daemon runs an address through any lookup table, it first rewrites the address to the standard user@fully.qualified.domain form, by sending the address to the trivial-rewrite daemon. The purpose of rewriting to standard form is to reduce the number of entries needed in lookup tables. The Postfix trivial-rewrite program implements the following hard-coded address manipulations:
Rewrite @hosta,@hostb:user@site to user@site
The source route feature has been deprecated. Postfix has no ability to handle such addresses, other than to strip off the source route.

Rewrite site!user to user@site
This feature is controlled by the boolean swap_bangpath parameter (default: yes). The purpose is to rewrite UUCP-style addresses to domain style. This is useful only when you receive mail via UUCP, but it probably does not hurt otherwise.

Rewrite user%domain to user@domain
This feature is controlled by the boolean allow_percent_hack parameter (default: yes). Typically, this is used in order to deal with monstrosities such as user%domain@otherdomain.

Rewrite user to user@$myorigin
This feature is controlled by the boolean append_at_myorigin parameter (default: yes). The purpose is to get consistent treatment of user on every machine in $myorigin.

You probably should never turn off this feature, because a lot of Postfix components expect that all addresses have the form user@domain.

If your machine is not the main machine for $myorigin and you wish to have some users delivered locally without going via that main machine, make an entry in the virtual table that redirects user@$myorigin to user@$myhostname.

Rewrite user@host to user@host.$mydomain
This feature is controlled by the boolean append_dot_mydomain parameter (default: yes). The purpose is to get consistent treatment of different forms of the same hostname.

Some will argue that rewriting host to host.$mydomain is bad. That is why it can be turned off. Others like the convenience of having the local domain appended automatically.

Rewrite user@site. to user@site (without the trailing dot).

Canonical address mapping

Before the
cleanup daemon stores inbound mail into the incoming queue, it uses the canonical table to rewrite all addresses in message envelopes and in message headers, local or remote. The mapping is useful to replace login names by Firstname.Lastname style addresses, or to clean up invalid domains in mail addresses produced by legacy mail systems.

Canonical mapping is disabled by default. To enable, edit the canonical_maps parameter in the main.cf file and specify one or more lookup tables, separated by whitespace or commas. For example:

canonical_maps = hash:/etc/postfix/canonical

In addition to the canonical maps which are applied to both sender and recipient addresses, you can specify canonical maps that are applied only to sender addresses or to recipient addresses. For example:

sender_canonical_maps = hash:/etc/postfix/sender_canonical

recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

The sender and recipient canonical maps are applied before the common canonical maps.

Sender-specific rewriting is useful when you want to rewrite ugly sender addresses to pretty ones, and still want to be able to send mail to the those ugly address without creating a mailer loop.

Address masquerading

Address masquerading is a method to hide all hosts below a domain behind their mail gateway, and to make it appear as if the mail comes from the gateway itself, instead of from individual machines.

Address masquerading is disabled by default. To enable, edit the masquerade_domains parameter in the main.cf file and specify one or more domain names separated by whitespace or commas. For example:

masquerade_domains = $mydomain

In this example, addresses of the form user@host.$mydomain would be rewritten to user@$mydomain.

The masquerade_exceptions configuration parameter specifies what user names should not be subjected to address masquerading. Specify one or more user names separated by whitespace or commas. For example,

masquerade_exceptions = root

By default, Postfix makes no exceptions.

Subtle point: address masquerading is applied only to message headers and envelope sender addresses, not to envelope recipients.

Virtual address mapping

After applying the canonical and masquerade mappings, the cleanup daemon uses the virtual table to redirect mail for all recipients, local or remote. The mapping affects only envelope recipients; it has no effect on message headers or envelope senders. Virtual lookups are useful to redirect mail for virtual domains to real user mailboxes, and to redirect mail for domains that no longer exist. Virtual lookups can also be used to transform Firstname.Lastname back into UNIX login names, although it seems that local aliases are a more appropriate vehicle.

Virtual mapping is disabled by default. To enable, edit the virtual_maps parameter in the main.cf file and specify one or more lookup tables, separated by whitespace or commas. For example:

virtual_maps = hash:/etc/postfix/virtual

Addresses found in virtual maps are subjected to another iteration of virtual mapping, but are not subjected to canonical mapping, in order to avoid loops.

Relocated users table

Next, the queue manager runs each recipient name through the relocated database. This table provides information on how to reach users that no longer have an account, or what to do with mail for entire domains that no longer exist. When mail is sent to an address that is listed in this table, the message is bounced with an informative message.

Lookups of relocated users are disabled by default. To enable, edit the relocated_maps parameter in the main.cf file and specify one or more lookup tables, separated by whitespace or commas. For example:

relocated_maps = hash:/etc/postfix/relocated

Mail transport switch

Once the queue manager has established the destination of a message, the optional
transport table controls how the message will be delivered (this table is used by the address rewriting and resolving daemon). By default, everything is sent via the smtp transport. The transport table can be used to send mail to specific sites via UUCP, or to send mail to a really broken mail system that can handle only one SMTP connection at a time (yes, such systems exist and people used to pay real money for them).

Transport table lookups are disabled by default. To enable, edit the transport_maps parameter in the main.cf file and specify one or more lookup tables, separated by whitespace or commas. For example:

transport_maps = hash:/etc/postfix/transport

Alias database

When mail is to be delivered locally, the
local delivery agent runs each local recipient name through the aliases database. The mapping does not affect addresses in message headers. Local aliases are typically used to implement distribution lists, or to direct mail for standard aliases such as postmaster to real people. The table can also be used to map Firstname.Lastname addresses to login names.

Alias lookups are enabled by default. The default configuration depends on the system environment, but it is typically one of the following:

alias_maps = hash:/etc/aliases
alias_maps = dbm:/etc/aliases, nis:mail.aliases

The path to the alias database file is controlled via the alias_database configuration parameter. The value is system dependent. Usually it is one of the following:

alias_database = hash:/etc/aliases (4.4BSD, LINUX)
alias_database = dbm:/etc/aliases (4.3BSD, SYSV<4)
alias_database = dbm:/etc/mail/aliases (SYSV4)

For security reasons, deliveries to command and file destinations are performed with the rights of the alias database owner. A default userid, default_privs, is used for deliveries to commands/files in root-owned aliases.

Per-user .forward files

Users can control their own mail delivery by specifying destinations in a file called .forward in their home directories. The syntax of these files is the same as with system aliases, except that the lookup key and colon are not present.

Non-existent users

When the local delivery agent finds that a message recipient does not exist, the message is normally bounced to the sender ("user unknown"). Sometimes it is desirable to forward mail for non-existing recipients to another machine. For this purpose you can specify an alternative destination with the luser_relay configuration parameter.

Alternatively, mail for non-existent recipients can be delegated to an entirely different message transport, as specified with the fallback_transport configuration parameter. For details, see the local delivery agent.

luser_relay can specify one address. It is subjected to $name expansions. The most useful examples are:

$user@other.host
The bare username, without address extension, is prepended to @other.host. For example, mail for username+foo is sent to username@other.host.

$mailbox@other.host
The entire original recipient localpart, including address extension, is prepended to @other.host. For example, mail for username+foo is sent to username+foo@other.host.

sysadmin+$user
The bare username, without address extension, is appended to sysadmin. For example, mail for username+foo is sent to sysadmin+username.
sysadmin+$mailbox
The entire original recipient localpart, including address extension, is appended to sysadmin. For example, mail for username+foo is sent to sysadmin+username+foo.

Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation postfix/doc/resource.html100664 1751 146 17247 7017475554 15047 0ustar thivillowww Postfix Configuration - Resource Controls

Postfix Configuration - Resource Controls


Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation

Introduction

The Postfix system is designed to run within a finite memory budget. To this end, there are configurable limits on the size of in-memory objects such as text line fragments, on the number of instances of such objects, and on the time an operation may take. In addition, strategies are in place for dealing with resource exhaustion. The idea is to keep running under conditions of stress, without making the problem worse.

Object size limits

The first step towards a fixed memory resource budget is to limit the size of each in-memory object. Once the size of in-memory objects is limited, total memory consumption is limited by limiting the number of object instances. Simple, no?

line_length_limit (default: 2048 bytes)
How long a line of text can be before it is broken up into pieces. All Postfix perimeter programs (SMTP server, SMTP client, local pickup and local delivery) enforce this line length limit when reading data from an untrusted source. Long lines are reconstructed upon delivery.

header_size_limit (default: 102400 bytes)
How much text may be carried in a multi-line message header. Header text that does not fit in $header_size_limit bytes overflows into the message body. This limit is enforced by the cleanup header rewriting code.

The following parameters restrict the use of file system storage:

message_size_limit (default: 10240000 bytes)
The maximal size of a Postfix queue file for inbound mail, including envelope information (sender, recipient, etc.).

queue_minfree (default: no restriction)
How many bytes of free space are needed in the queue file system. The SMTP server declines inbound mail delivery requests when there is insufficient space (the mail will be accepted once enough space becomes available). There is no default limit; however, it seems like a good idea to require at least several times $message_size_limit so that the mail system won't get stuck on a single large message.

bounce_size_limit (default: 50000 bytes)
How much of an undelivered message is sent back to the sender.

Object count limits

Once the sizes of memory objects have been limited, the next step to implement Postfix's finite memory budget is to limit the number of in-memory object instances.
qmgr_message_recipient_limit (default: 10000)
An upper bound on the number of queue manager in-memory recipient address data structures. This parameter also controls the number of instances of other in-memory data structures. See, for example, the delivery rate control documentation.

qmgr_message_active_limit (default: 1000)
An upper limit on the number of messages in the active queue. For an introduction to the Postfix queue organization see the Postfix overview documentation.

duplicate_filter_limit (default: 1000)
How many recipient addresses the local delivery agent and address cleanup daemon remember when delivering a message. A recipient address is ignored when it is found in the remembered list.

Time limits

External commands are given a finite time for completion. Such commands are run by the local delivery agent when it finds a "|command" destination in an alias database, :include: file or .forward file. The pipe mailer implements an alternative way to pipe mail into external commands.
command_time_limit (default: 1000 seconds)
How long the local delivery agent will wait before aborting an external command.

service_name_time_limit (default: $command_time_limit)
The time limit for delivery to external commands via the pipe mailer. For service_name, substitute the service name (the first field in the master.cf file).

Acquiring exclusive file locks

Internally, the Postfix programs cooperate in a very disciplined manner and rarely need to fight for exclusive file access. However, access conflicts may happen on the outside, for example, when mail has to be delivered while a user is accessing her mailbox. Postfix supports two types of file locks:
  • Internal locks, implemented with the fcntl() or flock() system primitives.

  • External locks, implemented as files named file.lock.
Depending on the host system, Postfix uses one method or both. The following configuration parameters control how Postfix deals with file locks:
deliver_lock_attempts (default: 5)
The number of times to try locking a file before giving up.

deliver_lock_delay (default: 1 second)
How long to wait between attempts to lock a file.

stale_lock_time (default: 500)
How old an external lock file may be before it is forcibly removed.

Error recovery

Under conditions of severe stress, available system resources may be insufficient to accommodate Postfix's needs. The world may also seem to fall apart when a Postfix configuration file is broken, or when a Postfix program is defective.

The general approach taken in the face of disaster is to terminate with a fatal run-time error (or with a panic in case of software problems), and to try again after some time (the master daemon will restart processes after some delay). Each failed attempt is logged; hopefully, someone will notice the problem and fix it.

Some recovery strategies were implemented very early during Postfix development, and haven't been made configurable yet. What follows is the beginning of a growing list of recovery control parameters:

fork_attempts (default: 5 times)
The number of times to attempt to create a new process before giving up.

fork_delay (default: 1 second)
The delay between attempts to create a new process.

transport_retry_time (default: 60 seconds)
The amount of time between queue manager attempts to contact an apparently defunct Postfix delivery service.

Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation postfix/doc/relocated.5.html100664 1751 146 6727 7017475554 15306 0ustar thivillowww



RELOCATED(5)                                         RELOCATED(5)


NAME
       relocated - format of Postfix relocated table

SYNOPSIS
       postmap /etc/postfix/relocated

DESCRIPTION
       The  optional relocated file provides the information that
       is used in "user has moved to  new_location"  bounce  mes-
       sages.

       The  file  serves  as input to the postmap(1) command. The
       result, an indexed file in dbm or db format, is  used  for
       fast searching by the mail system. After an update issue a
       postfix reload command to make the change visible.

       Table lookups are case insensitive.

       The format of the table is as follows:

       o      Blank lines are ignored,  as  are  lines  beginning
              with `#'.

       o      An entry has one of the following form:
                   key  new_location
              Where  new_location  specifies  contact information
              such as an  email  address,  or  perhaps  a  street
              address or telephone number.

       The key field is one of the following:

       user@domain
              Matches  user@domain. This form has precedence over
              all other forms.

       user   Matches user@site when site is $myorigin, when site
              is listed in $mydestination, or when site is listed
              in $inet_interfaces.

       @domain
              Matches every address in domain. This form has  the
              lowest precedence.

ADDRESS EXTENSION
       When  the search fails, and the address localpart contains
       the optional recipient delimiter (e.g.,  user+foo@domain),
       the  search  is  repeated for the unextended address (e.g.
       user@domain).

BUGS
       The table format does not understand quoting  conventions.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant



                                                                1





RELOCATED(5)                                         RELOCATED(5)


       to this topic. See the Postfix  main.cf  file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

       relocated_maps
              List of lookup tables for relocated users or sites.

       Other parameters of interest:

       inet_interfaces
              The  network  interface  addresses that this system
              receives mail on.

       mydestination
              List of domains that  this  mail  system  considers
              local.

       myorigin
              The domain that is appended to locally-posted mail.

SEE ALSO
       postmap(1) create lookup table

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA

























                                                                2


postfix/doc/receiving.html100664 1751 146 7361 7017475554 15147 0ustar thivillowww Postfix Anatomy - Receiving Mail

Postfix Anatomy - Receiving Mail


Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities

When a message enters the Postfix mail system, the first stop on the inside is the incoming queue. The figure below shows the main components that are involved with new mail. For an explanation of the symbols used, click on the icon in the upper left-hand corner of this page.

  • Mail is posted locally. The Postfix sendmail program deposits the message into the world-writable maildrop directory, where the message is picked up by the pickup daemon. This daemon does some sanity checks, in order to protect the rest of the Postfix system. In order to avoid accidents, the directory permissions on the maildrop directory must be such that a user cannot delete someone elses mail.

  • Mail comes in via the network. The Postfix SMTP server receives the message and does some sanity checks, in order to protect the rest of the Postfix system. The SMTP server can be configured to implement UCE controls on the basis of local or network-based black lists, DNS lookups, and other client request information.

  • Mail is generated internally by the Postfix system itself, in order to return undeliverable mail to the sender. The bounce or defer daemon brings the bad news.

  • Mail is forwarded by the local delivery agent, either via an entry in the system-wide alias database, or via an entry in a per-user .forward file. This is indicated with the unlabeled arrow.

  • Mail is generated internally by the Postfix system itself, in order to notify the postmaster of a problem (this path is also indicated with the unlabeled arrow). The Postfix system can be configured to notify the postmaster of SMTP protocol problems, UCE policy violations, and so on.

  • The cleanup daemon implements the final processing stage for new mail. It adds missing From: and other message headers, arranges for address rewriting to the standard user@fully.qualified.domain form, and optionally extracts recipient addresses from message headers. The cleanup daemon inserts the result as a single queue file into the incoming queue, and notifies the queue manager of the arrival of new mail. The cleanup daemon can be configured to transform addresses on the basis of canonical and virtual table lookups.

  • On request by the cleanup daemon, the trivial-rewrite daemon rewrites addresses to the standard user@fully.qualified.domain form. The initial Postfix version does not implement a rewriting language. Implementing one would take a lot of effort, and most sites do not need it. Instead, Postfix makes extensive use of table lookup.

Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities postfix/doc/rate.html100664 1751 146 27117 7017475554 14150 0ustar thivillowww Postfix Rate Controls

Postfix Rate Controls


Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation

Introduction

Building a high-performance mail delivery system is one thing; building one that does not knock over other systems is a different story. Some mailers suffer from the thundering herd syndrome: they literally flood other systems with mail. Postfix tries to be a fast mailer and a good neighbor at the same time.

On the inbound side, the Postfix SMTP server has defenses in place against malicious or confused clients. They won't protect against an all-out denial of service attack on your infrastructure, but then nothing will except pulling the plug.

Unless indicated otherwise, all parameters described here are in the main.cf file. If you change parameters of a running Postfix system, don't forget to issue a postfix reload command.

Process limits

The default_process_limit parameter (default: 50) gives direct control over inbound and outbound delivery rates. This parameter controls the number of concurrent processes that implement a Postfix service (smtp client, smtp server, local delivery, etc.). On small systems, or on systems connected via dialup networks, a default_process_limit of 10 is probably more than adequate. Use a larger value if your machine is a major mail hub.

You can override this setting for specific Postfix daemons by editing the master.cf file. For example, if you do not wish to receive 50 SMTP messages at the same time, you could specify:

 
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (50)
# ==========================================================================
. . .
smtp      inet  n       -       -       -       5       smtpd
. . .

Destination concurrency

So, you have this huge mailhub with tons of disk and memory, and have configured Postfix to run up to 1000 SMTP client processes at the same time. Congratulations. But do you really want to make 1000 simultaneous connections to the same remote system? Probably not.

The Postfix queue manager comes to the rescue. This program implements the analog of the TCP slow start flow control strategy: when delivering to a site, send a small number of messages first, then increase the rate as long as all goes well; back off in the face of congestion.

The initial_destination_concurrency parameter (default: 2) controls how many messages are initially sent to the same destination before adapting delivery concurrency. Of course, this setting is effective only as long as it does not exceed the process limit and the destination concurrency limit for the specific mail transport channel.

The default_destination_concurrency_limit parameter (default: 10) controls how many messages may be sent to the same destination simultaneously. You can override this setting for specific delivery channels (local, smtp, uucp etc.). The main.cf file recommends the following:

local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
The local_destination_concurrency_limit parameter controls how many messages are delivered simultaneously to the same local recipient. The recommended limit is low because delivery to the same mailbox must happen sequentially, so massive parallelism is not useful. Another good reason to limit delivery concurrency to the same recipient: if the recipient has an expensive shell command in her .forward file, or if the recipient is a mailing list manager, you don't want to run too many instances at the same time.

A destination concurrency limit of 10 for SMTP delivery seems enough to noticeably load a system without bringing it to its knees. Be careful when changing this to a much larger number.

Recipient limits

The default_destination_recipient_limit parameter (default: 50) controls how many recipients a Postfix delivery agent (smtp, uucp, etc.) will send with each copy of an email message. If an email message has more than $default_destination_recipient_limit recipients at the same destination, the list of recipients will be broken up into smaller lists, and multiple copies of the message will be sent.

You can override this setting for specific Postfix delivery agents (smtp, uucp, etc.). For example:

uucp_destination_recipient_limit = 100
would limit the number of recipients per UUCP delivery to 100.

You must be careful when increasing the recipient limit; some SMTP servers abort the connection when they run out of memory or when a hard recipient limit is reached, so the mail won't get through.

The smtpd_recipient_limit parameter (default: 1000) controls how many recipients the SMTP server will take per delivery. That's more than any reasonable SMTP client would send. The limit exists just to protect the local mail system against a malicious or confused client.

Always postponing delivery

The defer_transports parameter allows you to specify what mail should always be deferred until Postfix is explicitly asked to deliver.

A small site that is on-line only part of the time, and that wants to defer all deliveries until the command sendmail -q is executed (e.g., from a PPP dialout script) would use:

defer_transports = smtp

An ISP can use the defer_transports feature for customers that are off-line most of the time. The customer can trigger delivery by issuing an ETRN command at the SMTP port. The following examples show how to configure such a customer:

/etc/postfix/main.cf:

defer_transports = hold

You can specify any number of transports here. The example gives just one.

/etc/postfix/transport:

customer.com   hold:[gateway.customer.com]
.customer.com   hold:[gateway.customer.com]

The [] are necessary to avoid MX lookups, which might point to your local machine. The second entry is necessary only if you want to relay mail for customer subdomains.

/etc/postfix/master.cf:

hold   unix   -   -   n   -   -   smtp

This is just the master.cf entry for regular SMTP, with the first field changed to hold.

Backoff from unreachable hosts

When a Postfix delivery agent (smtp, local, uucp, etc.) is unable to deliver a message it may blame the message itself or the receiving party.
  • If the delivery agent blames the message, the queue manager gives the queue file a time stamp into the future, so it won't be looked at for a while. By default, the amount of time to cool down is the amount of time that has passed since the message arrived. This results in so-called exponential backoff behavior.

  • If the delivery agent blames the receiving party (for example a local recipient user, or a remote host), the queue manager not only advances the queue file time stamp, but also puts the receiving party on a "dead" list so that it will be skipped for some amount of time.

As you would expect, this whole process is governed by a bunch of little parameters.

queue_run_delay (default: 1000 seconds)
How often the queue manager scans the queue for deferred mail.

maximal_queue_lifetime (default: 5 days)
How long a message stays in the queue before it is sent back as undeliverable.

minimal_backoff_time (default: 1000 seconds)
The minimal amount of time a message won't be looked at, and the minimal amount of time to stay away from a "dead" destination.

maximal_backoff_time (default: 4000 seconds)
The maximal amount of time a message won't be looked at after a delivery failure.

qmgr_message_recipient_limit (default: 1000)
The size of many in-memory queue manager data structures. Among others, this parameter limits the size of the short-term, in-memory "dead" list. Destinations that don't fit the list are not added.

Slowing down bad clients

First of all, no defense will protect against an all-out denial of service attack. I just don't want to raise impossible expectations. But there are a few simple things one can do in order to deal with confused or malicious client programs.

Some defenses are part of a more general strategy: for example, how long a line of text may be before it is broken up into pieces, and how much text may be carried in a multi-line message header. See the resource controls documentation for details.

The Postfix SMTP server increments a per-session error counter whenever a client request is unrecognized or unimplemented, or whenever a client request violates UCE restrictions or other reasons. The error counter is reset when a message is transferred successfully.

As the per-session error count increases, the SMTP server changes behavior. The idea is to limit the damage by slowing down the client. The behavior is controlled by the following parameters:

smtpd_error_sleep_time (default: 5 seconds)
When the per-session error count is small, the SMTP server pauses only when reporting a problem to a client. The purpose is to prevent naive clients from going into a fast connect-error-disconnect loop.

smtpd_soft_error_limit (default: 10)
When the per-session error count exceeds this value, the SMTP server sleeps error_count seconds before responding to a client request.

smtpd_hard_error_limit (default: 100)
When the per-session error count exceeds this value, the SMTP server disconnects.

Unfortunately, the Postfix SMTP server does not yet know how to limit the number of connections from the same client, other than by limiting the total number of SMTP server processes (see process limit). Things could be worse: some mailers don't even implement an SMTP server process limit. That's of course no excuse. I'm still looking for a good solution.


Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation postfix/doc/queuing.html100664 1751 146 10354 7017475554 14665 0ustar thivillowww Postfix Overview - Queue Management

Postfix Overview - Queue Management


Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security

Postfix mail queues

Postfix has four different queues: maildrop, incoming, active and deferred (click the upper left-hand icon for the big picture). Locally-posted mail is deposited into the maildrop, and is copied to the incoming queue after some cleaning up. The incoming queue is for mail that is still arriving or that the queue manager hasn't looked at yet. The active queue is a limited-size queue for mail that the queue manager has opened for delivery. Mail that can't be delivered goes to the deferred queue, so that it does not get in the way of other deliveries.

The queue manager keeps information in memory about the active queue only. The active queue size is limited on purpose: the queue manager should never run out of working memory because of a peak message workload. Whenever there is space in the active queue, the queue manager lets in one message from the incoming queue and one from the deferred queue. This guarantees that new mail will get through even when there is a large backlog.

No thundering herd

Implementing a high-performance mail system is one thing. However, no-one would be pleased when Postfix connects to their site and overwhelms it with lots of simultaneous deliveries. This is an issue especially when a site has been down and mail is backed up elsewhere in the network.

Postfix tries to be a good network neighbor. When delivering mail to a site, Postfix will initially make no more than two simultaneous connections. As long as deliveries succeed, the concurrency slowly increases up to some configurable limit (or until the host or network is unable to handle the load); concurrency is decreased in the face of trouble. For those familiar with TCP/IP implementation details, Postfix implements its own analog of the TCP slow start algorithm

Fairness

Apart from the thundering herd controls, the Postfix delivery strategy is based on round-robin selection. The queue manager sorts message recipients in the active queue by destination, and makes round-robin walks along all destination queues.

On the average, Postfix will do simultaneous deliveries to the same domain only when there is not enough work to keep all outbound SMTP channels busy. So, when AOL goes off-line and comes back, it should not stop the system from delivering to other sites.

When mail arrives faster than Postfix can deliver it, Postfix will favor new mail over delayed mail. The idea is that new mail should be delivered with as little delay as possible; delayed mail can be delivered while the system would otherwise be idle.

Exponential backoff

Postfix implements per-message exponential backoff. When a message cannot be delivered upon the first attempt, the queue manager gives the queue file a time stamp that is offset into the future by some configurable amount of time. Queue files with future time stamps are normally ignored by the queue manager.

Whenever a repeat delivery attempt fails, the queue file time stamp is moved into the future by an amount of time equal to the age of the message. Thus, the time between delivery attempts doubles each time. This strategy effectively implements exponential backoff.

Destination status cache

The Postfix queue manager maintains a limited, short-term list of unreachable destinations. This list helps it to avoid unnecessary delivery attempts, especially with destinations that have a large mail backlog.
Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security postfix/doc/qmgr.8.html100664 1751 146 27540 7017475555 14332 0ustar thivillowww



QMGR(8)                                                   QMGR(8)


NAME
       qmgr - Postfix queue manager

SYNOPSIS
       qmgr [generic Postfix daemon options]

DESCRIPTION
       The  qmgr  daemon  awaits the arrival of incoming mail and
       arranges for its delivery via Postfix delivery  processes.
       The actual mail routing strategy is delegated to the triv-
       ial-rewrite(8) daemon.  This program  expects  to  be  run
       from the master(8) process manager.

       Mail  addressed  to  the  local  double-bounce  address is
       silently discarded.  This stops potential loops caused  by
       undeliverable bounce notifications.

       Mail  addressed to a user listed in the optional relocated
       database is bounced with a "user has  moved  to  new_loca-
       tion" message. See relocated(5) for a precise description.

MAIL QUEUES
       The qmgr daemon maintains the following queues:

       incoming
              Inbound mail from the network, or mail picked up by
              the local pickup agent from the maildrop directory.

       active Messages that the  queue  manager  has  opened  for
              delivery.  Only  a  limited  number  of messages is
              allowed to enter the  active  queue  (leaky  bucket
              strategy, for a fixed delivery rate).

       deferred
              Mail  that  could  not  be delivered upon the first
              attempt. The queue manager  implements  exponential
              backoff  by  doubling  the  time  between  delivery
              attempts.

       corrupt
              Unreadable or damaged queue files  are  moved  here
              for inspection.

DELIVERY STATUS REPORTS
       The  qmgr daemon keeps an eye on per-message delivery sta-
       tus reports in  the  following  directories.  Each  status
       report file has the same name as the corresponding message
       file:

       bounce Per-recipient status information about why mail  is
              bounced.    These   files  are  maintained  by  the
              bounce(8) daemon.

       defer  Per-recipient status information about why mail  is



                                                                1





QMGR(8)                                                   QMGR(8)


              delayed.    These   files  are  maintained  by  the
              defer(8) daemon.

       The qmgr daemon is responsible for asking the bounce(8) or
       defer(8) daemons to send non-delivery reports.

STRATEGIES
       The  queue  manager implements a variety of strategies for
       either opening queue files (input) or for message delivery
       (output).

       leaky bucket
              This  strategy limits the number of messages in the
              active queue and prevents the  queue  manager  from
              running out of memory under heavy load.

       fairness
              When  the  active queue has room, the queue manager
              takes one message from the incoming queue  and  one
              from the deferred queue. This prevents a large mail
              backlog from blocking the delivery of new mail.

       slow start
              This strategy eliminates "thundering herd" problems
              by slowly adjusting the number of parallel deliver-
              ies to the same destination.

       round robin
              The queue manager sorts delivery requests by desti-
              nation.   Round-robin selection prevents one desti-
              nation from dominating deliveries to other destina-
              tions.

       exponential backoff
              Mail  that  cannot  be  delivered  upon  the  first
              attempt is deferred.   The  time  interval  between
              delivery attempts is doubled after each attempt.

       destination status cache
              The   queue  manager  avoids  unnecessary  delivery
              attempts by  maintaining  a  short-term,  in-memory
              list of unreachable destinations.

TRIGGERS
       On an idle system, the queue manager waits for the arrival
       of trigger events, or it waits for a timer to  go  off.  A
       trigger  is  a one-byte message.  Depending on the message
       received, the queue manager performs one of the  following
       actions  (the message is followed by the symbolic constant
       used internally by the software):

       D (QMGR_REQ_SCAN_DEFERRED)
              Start a deferred queue scan.  If a  deferred  queue
              scan  is  already  in  progress,  that scan will be



                                                                2





QMGR(8)                                                   QMGR(8)


              restarted as soon as it finishes.

       I (QMGR_REQ_SCAN_INCOMING)
              Start an incoming queue scan. If an incoming  queue
              scan  is  already  in  progress,  that scan will be
              restarted as soon as it finishes.

       A (QMGR_REQ_SCAN_ALL)
              Ignore deferred queue file time stamps. The request
              affects the next deferred queue scan.

       F (QMGR_REQ_FLUSH_DEAD)
              Purge  all  information  about  dead transports and
              destinations.

       W (TRIGGER_REQ_WAKEUP)
              Wakeup call, This is used by the master  server  to
              instantiate  servers  that  should not go away for-
              ever. The action is  to  start  an  incoming  queue
              scan.

       The  qmgr daemon reads an entire buffer worth of triggers.
       Multiple identical trigger  requests  are  collapsed  into
       one,  and trigger requests are sorted so that A and F pre-
       cede D and I. Thus, in order to  force  a  deferred  queue
       run, one would request A F D; in order to notify the queue
       manager of the arrival of new mail one would request I.

STANDARDS
       None. The qmgr daemon does not interact with  the  outside
       world.

SECURITY
       The  qmgr  daemon is not security sensitive. It reads sin-
       gle-character messages from  untrusted  local  users,  and
       thus  may be susceptible to denial of service attacks. The
       qmgr daemon does not talk to the outside world, and it can
       be run at fixed low privilege in a chrooted environment.

DIAGNOSTICS
       Problems and transactions are logged to the syslog daemon.
       Corrupted message files are saved to the corrupt queue for
       further inspection.

       Depending  on the setting of the notify_classes parameter,
       the postmaster is notified of bounces and of  other  trou-
       ble.

BUGS
       A  single  queue  manager  process has to compete for disk
       access with multiple front-end processes such as smtpd.  A
       sudden  burst  of  inbound mail can negatively impact out-
       bound delivery rates.




                                                                3





QMGR(8)                                                   QMGR(8)


CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

Miscellaneous
       relocated_maps
              Tables with contact information for users, hosts or
              domains that no longer exist. See relocated(5).

       queue_directory
              Top-level directory of the Postfix queue.

Active queue controls
       qmgr_message_active_limit
              Limit the number of messages in the active queue.

       qmgr_message_recipient_limit
              Limit the number of in-memory recipients.

              This parameter also limits the size of  the  short-
              term, in-memory destination cache.

Timing controls
       min_backoff
              Minimal  time  in seconds between delivery attempts
              of a deferred message.

              This parameter also limits the time an  unreachable
              destination  is  kept  in the short-term, in-memory
              destination status cache.

       max_backoff
              Maximal time in seconds between  delivery  attempts
              of a deferred message.

       maximal_queue_lifetime
              Maximal  time in days a message is queued before it
              is sent back as undeliverable.

       queue_run_delay
              Time in seconds between deferred queue scans. Queue
              scans do not overlap.

       transport_retry_time
              Time  in seconds between attempts to contact a bro-
              ken delivery transport.

Concurrency controls
       In the text below, transport is the first field in a  mas-
       ter.cf entry.





                                                                4





QMGR(8)                                                   QMGR(8)


       initial_destination_concurrency
              Initial  per-destination concurrency level for par-
              allel delivery to the same destination.

       default_destination_concurrency_limit
              Default limit on the number of parallel  deliveries
              to the same destination.

       transport_destination_concurrency_limit
              Limit  on  the number of parallel deliveries to the
              same destination, for delivery via the  named  mes-
              sage transport.

Recipient controls
       default_destination_recipient_limit
              Default  limit on the number of recipients per mes-
              sage transfer.

       transport_destination_recipient_limit
              Limit on  the  number  of  recipients  per  message
              transfer, for the named message transport.

SEE ALSO
       master(8), process manager
       relocated(5), format of the "user has moved" table
       syslogd(8) system logging
       trivial-rewrite(8), address routing

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA




















                                                                5


postfix/doc/postsuper.1.html100664 1751 146 5210 7017475555 15367 0ustar thivillowww



POSTSUPER(1)                                         POSTSUPER(1)


NAME
       postsuper - Postfix super intendent

SYNOPSIS
       postsuper [-p] [-s] [-v] [directory ...]

DESCRIPTION
       The  postsuper  command does small maintenance jobs on the
       named Postfix queue directories (default: all).  Directory
       names  are  relative to the Postfix top-level queue direc-
       tory.

       By default, postsuper performs  the  operations  requested
       with the -s and -p command-line options.  postsuper always
       tries to remove objects that are neither files nor  direc-
       tories.   Use  of this command is restricted to the super-
       user.

       Options:

       -s     Structure check.  Move queue files that are in  the
              wrong place in the file system hierarchy and remove
              subdirectories that  are  no  longer  needed.  File
              rearrangements  are necessary after a change in the
              hash_queue_names and/or hash_queue_depth configura-
              tion  parameters.  It  is highly recommended to run
              this check once before Postfix startup.

       -p     Purge stale files (files that are left  over  after
              system or software crashes).

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple -v options  make  the  software  increasingly
              verbose.

DIAGNOSTICS
       Problems  are reported to the standard error stream and to
       syslogd.

CONFIGURATION PARAMETERS
       See the Postfix main.cf file for syntax  details  and  for
       default values.

       hash_queue_depth
              Number of subdirectory levels for hashed queues.

       hash_queue_names
              The  names of queues that are organized into multi-
              ple levels of subdirectories.

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.




                                                                1





POSTSUPER(1)                                         POSTSUPER(1)


AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA




















































                                                                2


postfix/doc/postmap.1.html100664 1751 146 11160 7017475555 15027 0ustar thivillowww



POSTMAP(1)                                             POSTMAP(1)


NAME
       postmap - Postfix lookup table management

SYNOPSIS
       postmap [-c config_dir] [-i] [-v] [-w]
       [file_type:]file_name

DESCRIPTION
       The postmap command creates a new Postfix lookup table, or
       updates  an existing one. The input and output formats are
       expected to be compatible with:

           makemap file_type file_name < file_name

       While the table update is in progress, signal delivery  is
       postponed,  and  an exclusive, advisory, lock is placed on
       the entire table, in order to avoid surprises in spectator
       programs.

       The format of a lookup table input file is as follows:

       o      Blank  lines  are  ignored.  So are lines beginning
              with `#'.

       o      A table entry has the form

                   key whitespace value

       o      A line that starts with  whitespace  continues  the
              preceding line.

       The  key  and  value are processed as is, except that sur-
       rounding white space is stripped off. Unlike with  Postfix
       alias  databases,  quotes cannot be used to protect lookup
       keys that  contain  special  characters  such  as  `#'  or
       whitespace. The key is mapped to lowercase to make mapping
       lookups case insensitive.

       Options:

       -c config_dir
              Read the main.cf configuration file  in  the  named
              directory.

       -i     Incremental  mode. Read entries from standard input
              and  do  not  truncate  an  existing  database.  By
              default,  postmap  creates  a new database from the
              entries in file_name.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

       B-w    Do  not  warn  about  duplicate  entries;  silently



                                                                1





POSTMAP(1)                                             POSTMAP(1)


              ignore them.

       Arguments:

       file_type
              The type of database to be produced.

              btree  The  output  file  is  a  btree  file, named
                     file_name.db.  This  is  available  only  on
                     systems with support for db databases.

              dbm    The  output  consists  of  two  files, named
                     file_name.pag and  file_name.dir.   This  is
                     available  only  on systems with support for
                     dbm databases.

              hash   The output file  is  a  hashed  file,  named
                     file_name.db.   This  is  available  only on
                     systems with support for db databases.

              When no file_type is specified, the  software  uses
              the  database  type specified via the database_type
              configuration parameter.

       file_name
              The name of  the  lookup  table  source  file  when
              rebuilding a database.

DIAGNOSTICS
       Problems and transactions are logged to the standard error
       stream. No output means no problems. Duplicate entries are
       skipped and are flagged with a warning.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

CONFIGURATION PARAMETERS
       database_type
              Default  output  database  type.  On many UNIX sys-
              tems, the default database type is either  hash  or
              dbm.

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704



                                                                2





POSTMAP(1)                                             POSTMAP(1)


       Yorktown Heights, NY 10598, USA
























































                                                                3


postfix/doc/postlog.1.html100664 1751 146 3550 7017475555 15017 0ustar thivillowww



POSTLOG(1)                                             POSTLOG(1)


NAME
       postlog - Postfix-compatible logging utility

SYNOPSIS
       postlog [-i] [-p priority] [-t tag] [-v] [text...]

DESCRIPTION
       The  postlog  command implements a Postfix-compatible log-
       ging interface for use in, for example, shell scripts.

       By default, postlog logs the text  given  on  the  command
       line as one record. If no text is specified on the command
       line, postlog reads from  standard  input  and  logs  each
       input line as one record.

       Logging  is  sent  to  syslogd(8); when the standard error
       stream is connected to a terminal, logging is  sent  there
       as well.

       The following options are implemented:

       -i     Include the process ID in the logging tag.

       -p priority
              Specifies  the  logging  severity:  info (default),
              warn, error, fatal, or panic.

       -t tag Specifies the logging tag, that is, the identifying
              name  that appears at the beginning of each logging
              record.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

SEE ALSO
       syslogd(8) syslog daemon.

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA










                                                                1


postfix/doc/postlock.1.html100664 1751 146 6624 7017475555 15173 0ustar thivillowww



POSTLOCK(1)                                           POSTLOCK(1)


NAME
       postlock - lock mail folder and execute command

SYNOPSIS
       postlock [-c config_dir] [-v] file command...

DESCRIPTION
       The  postlock command locks file for exclusive access, and
       executes command. The locking method  is  compatible  with
       the Postfix UNIX-style local delivery agent.

       Options:

       -c config_dir
              Read  configuration information from main.cf in the
              named configuration directory.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

       Arguments:

       file   A mailbox file. The  user  should  have  read/write
              permission.

       command...
              The  command  to  execute  while file is locked for
              exclusive  access.    The   command   is   executed
              directly,  i.e.  without  interpretation by a shell
              command interpreter.

DIAGNOSTICS
       The result status is 75 (EX_TEMPFAIL)  when  the  file  is
       locked  by another process, 255 (on some systems: -1) when
       postlock could not perform the requested operation.   Oth-
       erwise,  the  exit status is the exit status from the com-
       mand.

BUGS
       With remote file systems, the ability to  acquire  a  lock
       does  not  necessarily  eliminate  access conflicts. Avoid
       file access by processes running on different machines.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax



                                                                1





POSTLOCK(1)                                           POSTLOCK(1)


       details and for default values.

Locking controls
       deliver_lock_attempts
              Limit the number of attempts to acquire  an  exclu-
              sive lock.

       deliver_lock_delay
              Time  in  seconds  between  successive  attempts to
              acquire an exclusive lock.

       stale_lock_time
              Limit the time after which a stale lock is removed.

Resource controls
       fork_attempts
              Number  of attempts to fork() a process before giv-
              ing up.

       fork_delay
              Delay  in   seconds   between   successive   fork()
              attempts.

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA

























                                                                2


postfix/doc/postkick.1.html100664 1751 146 5236 7017475555 15162 0ustar thivillowww



POSTKICK(1)                                           POSTKICK(1)


NAME
       postkick - kick a Postfix service

SYNOPSIS
       postkick [-c config_dir] [-v] class service request

DESCRIPTION
       The  postkick  command sends request to the specified ser-
       vice over a local transport channel.  This  command  makes
       Postfix  private  IPC  accessible for use in, for example,
       shell scripts.

       Options:

       -c config_dir
              Read configuration information from main.cf in  the
              named configuration directory.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple -v options  make  the  software  increasingly
              verbose.

       Arguments:

       class  Name  of  a  class  of local transport channel end-
              points, either  public  (accessible  by  any  local
              user) or private (administrative access only).

       service
              The  name  of a local transport endpoint within the
              named class.

       request
              A string. The list of valid  requests  is  service-
              specific.

DIAGNOSTICS
       Problems and transactions are logged to the standard error
       stream.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax
       details and for default values.

       queue_directory
              Location of the Postfix queue, and of the local IPC



                                                                1





POSTKICK(1)                                           POSTKICK(1)


              communication endpoints.

SEE ALSO
       qmgr(8) queue manager trigger protocol
       pickup(8) local pickup daemon

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA










































                                                                2


postfix/doc/postfix.1.html100664 1751 146 11421 7017475556 15041 0ustar thivillowww



POSTFIX(1)                                             POSTFIX(1)


NAME
       postfix - Postfix control program

SYNOPSIS
       postfix [-c config_dir] [-D] [-v] command

DESCRIPTION
       The  postfix command controls the operation of the Postfix
       mail system: start or stop the master daemon, do a  health
       check,  and other maintenance. The command sets up a stan-
       dardized environment and  runs  the  postfix-script  shell
       script to do the actual work.

       The following commands are implemented:

       check  Validate  the  Postfix  mail  system configuration.
              Warn about bad directory/file ownership or  permis-
              sions, and create missing directories.

       start  Start  the  Postfix mail system. This also runs the
              configuration check described above.

       stop   Stop the Postfix mail system in an orderly fashion.
              Running processes are allowed to terminate at their
              earliest convenience.

              Note: in order to refresh the Postfix  mail  system
              after  a configuration change, do not use the start
              and stop commands in  succession.  Use  the  reload
              command instead.

       abort  Stop the Postfix mail system abruptly. Running pro-
              cesses are signaled to stop immediately.

       flush  Force delivery: attempt to deliver every message in
              the  deferred  mail  queue.  Normally,  attempts to
              deliver delayed mail happen at  regular  intervals,
              the interval doubling after each failed attempt.

       reload Re-read configuration files. Running processes ter-
              minate at their earliest convenience.

       The following options are implemented:

       -c config_dir
              The absolute path to a directory with Postfix  con-
              figuration  files.  Use this to distinguish between
              multiple Postfix instances on the same host.

       -D (with postfix start only)
              Run each Postfix daemon under control of a debugger
              as specified via the debugger_command configuration
              parameter.




                                                                1





POSTFIX(1)                                             POSTFIX(1)


       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

ENVIRONMENT
       The postfix command sets the following  environment  vari-
       ables:

       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              This is set when the -v command-line option is pre-
              sent.

       MAIL_DEBUG
              This is set when the -D command-line option is pre-
              sent.

       The  following configuration parameters are made available
       as process environment variables with the same names:

       command_directory
              Directory with Postfix support  commands  (default:
              $program_directory).

       daemon_directory
              Directory  with  Postfix  daemon programs (default:
              $program_directory).

       config_directory
              Directory with Postfix configuration files and with
              administrative shell scripts.

       queue_directory
              The directory with the Postfix queue directory (and
              with some files needed for programs  running  in  a
              chrooted environment).

       mail_owner
              The  owner of the Postfix queue and of most Postfix
              processes.

FILES
       $config_directory/postfix-script, administrative commands

SEE ALSO
       master(8) Postfix master program

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.





                                                                2





POSTFIX(1)                                             POSTFIX(1)


AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA




















































                                                                3


postfix/doc/postdrop.1.html100664 1751 146 5157 7017475556 15210 0ustar thivillowww



POSTDROP(1)                                           POSTDROP(1)


NAME
       postdrop - Postfix mail posting agent

SYNOPSIS
       postdrop [option ...]

DESCRIPTION
       The postdrop command creates a file in the maildrop direc-
       tory and copies its standard input to the file.

       The command is designed to run  with  set-gid  privileges,
       and  with  group  write  permission  to the maildrop queue
       directory.

       The postdrop command is automatically invoked by the send-
       mail(1)  mail posting agent when the maildrop queue direc-
       tory is not world-writable.

       Options:

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

SECURITY
       This program is designed so that it can run with  set-user
       (or group) id privileges.

DIAGNOSTICS
       Fatal  errors:  malformed input, I/O error, out of memory.
       Problems are logged to  syslogd(8)  and  to  the  standard
       error  stream.   When the input is incomplete, or when the
       process receives a HUP, INT,  QUIT  or  TERM  signal,  the
       queue file is deleted.

ENVIRONMENT
       The  program  deletes all environment information, because
       the C library can't be trusted.

FILES
       /var/spool/postfix, mail queue
       /etc/postfix, configuration files

CONFIGURATION PARAMETERS
       See the Postfix main.cf file for syntax  details  and  for
       default  values.  Use  the  postfix reload command after a
       configuration change.

       queue_directory
              Top-level directory of the Postfix queue.  This  is
              also the root directory of Postfix daemons that run
              chrooted.





                                                                1





POSTDROP(1)                                           POSTDROP(1)


SEE ALSO
       sendmail(1) compatibility interface
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA












































                                                                2


postfix/doc/postconf.1.html100664 1751 146 2752 7017475556 15167 0ustar thivillowww



POSTCONF(1)                                           POSTCONF(1)


NAME
       postconf - Postfix configuration utility

SYNOPSIS
       postconf [-c config_dir] [-d] [-h] [-n] [-v] [parameter
       ...]

DESCRIPTION
       The postconf command prints the actual value of  parameter
       (all known parameters by default), one parameter per line.

       Options:

       -c config_dir
              The main.cf configuration  file  is  in  the  named
              directory.

       -d     Print  default parameter settings instead of actual
              settings.

       -h     Show parameter values only, not  the  ``name  =  ''
              label that normally precedes the value.

       -n     Print non-default parameter settings only.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple -v options  make  the  software  increasingly
              verbose.

DIAGNOSTICS
       Problems are reported to the standard error stream.

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA
















                                                                1


postfix/doc/postcat.1.html100664 1751 146 2130 7017475556 14777 0ustar thivillowww



POSTCAT(1)                                             POSTCAT(1)


NAME
       postcat - show Postfix queue file contents

SYNOPSIS
       postcat [-v] [files...]

DESCRIPTION
       The postcat command prints the contents of the named Post-
       fix queue files in human-readable form. If  no  files  are
       specified  on  the  command  line,  the program reads from
       standard input.

       Options:

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

DIAGNOSTICS
       Problems are reported to the standard error stream.

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA



























                                                                1


postfix/doc/postalias.1.html100664 1751 146 10365 7017475556 15352 0ustar thivillowww



POSTALIAS(1)                                         POSTALIAS(1)


NAME
       postalias - Postfix alias database maintenance

SYNOPSIS
       postalias [-c config_dir] [-i] [-v] [-w]
       [file_type:]file_name ...

DESCRIPTION
       The  postalias  command  creates  a  new   Postfix   alias
       database, or updates an existing one. The input and output
       file formats are expected to be compatible  with  Sendmail
       version  8, and are expected to be suitable for the use as
       NIS alias maps.

       While a database update is in progress, signal delivery is
       postponed,  and  an exclusive, advisory, lock is placed on
       the entire database, in order to avoid surprises in  spec-
       tator programs.

       Options:

       -c config_dir
              Read  the  main.cf  configuration file in the named
              directory.

       -i     Incremental mode. Read entries from standard  input
              and  do  not  truncate  an  existing  database.  By
              default, postalias creates a new database from  the
              entries in file_name.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple -v options  make  the  software  increasingly
              verbose.

       -w     Do  not  warn  about  duplicate  entries;  silently
              ignore them.

       Arguments:

       file_type
              The type of database to be produced.

              btree  The  output   is   a   btree   file,   named
                     file_name.db.   This  is  available  only on
                     systems with support for db databases.

              dbm    The output  consists  of  two  files,  named
                     file_name.pag  and  file_name.dir.   This is
                     available only on systems with  support  for
                     dbm databases.

              hash   The   output   is   a   hashed  file,  named
                     file_name.db.  This  is  available  only  on
                     systems with support for db databases.



                                                                1





POSTALIAS(1)                                         POSTALIAS(1)


              When  no  file_type is specified, the software uses
              the database type specified via  the  database_type
              configuration  parameter.   The  default  value for
              this parameter depends on the host environment.

       file_name
              The name of the alias  database  source  file  when
              rebuilding a database.

DIAGNOSTICS
       Problems  are logged to the standard error stream. No out-
       put means no problems were detected. Duplicate entries are
       skipped and are flagged with a warning.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details and for default values.

       database_type
              Default  alias database type. On many UNIX systems,
              the default type is either dbm or hash.

STANDARDS
       RFC 822 (ARPA Internet Text Messages)

SEE ALSO
       aliases(5) format of alias database input file.
       sendmail(1) mail posting and compatibility interface.

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA











                                                                2


postfix/doc/pipe.8.html100664 1751 146 21114 7017475556 14311 0ustar thivillowww



PIPE(8)                                                   PIPE(8)


NAME
       pipe - Postfix delivery to external command

SYNOPSIS
       pipe [generic Postfix daemon options] command_attributes...

DESCRIPTION
       The  pipe daemon processes requests from the Postfix queue
       manager to deliver messages  to  external  commands.  Each
       delivery request specifies a queue file, a sender address,
       a domain or host to deliver to, and one  or  more  recipi-
       ents.   This  program expects to be run from the master(8)
       process manager.

       The pipe daemon updates queue files and  marks  recipients
       as finished, or it informs the queue manager that delivery
       should be tried again at a later  time.  Delivery  problem
       reports  are  sent  to the bounce(8) or defer(8) daemon as
       appropriate.

COMMAND ATTRIBUTE SYNTAX
       The external command attributes are given in the master.cf
       file at the end of a service definition.  The syntax is as
       follows:

       flags=FR> (optional)
              Optional message processing flags.  By  default,  a
              message is copied unchanged.

              F      Prepend  a "From sender time_stamp" envelope
                     header to  the  message  content.   This  is
                     expected by, for example, UUCP software. The
                     F flag also  causes  an  empty  line  to  be
                     appended to the message.

              R      Prepend  a  Return-Path: message header with
                     the envelope sender address.

              >      Prepend > to lines starting  with  "From  ".
                     This is expected by, for example, UUCP soft-
                     ware.

       user=username (required)

       user=username:groupname
              The external command is executed with the rights of
              the  specified  username.   The software refuses to
              execute commands with root privileges, or with  the
              privileges  of  the mail system owner. If groupname
              is specified, the corresponding group  ID  is  used
              instead of the group ID of of username.

       argv=command... (required)
              The  command to be executed. This must be specified



                                                                1





PIPE(8)                                                   PIPE(8)


              as the last command attribute.  The command is exe-
              cuted  directly,  i.e.  without  interpretation  of
              shell meta characters by  a  shell  command  inter-
              preter.

              In  the  command  argument  vector,  the  following
              macros are recognized and replaced with correspond-
              ing  information  from  the  Postfix  queue manager
              delivery request:

              ${extension}
                     This macro expands to the extension part  of
                     a  recipient  address.  For example, with an
                     address  user+foo@domain  the  extension  is
                     foo.   A command-line argument that contains
                     ${extension} expands into as  many  command-
                     line arguments as there are recipients.

              ${mailbox}
                     This  macro  expands  to  the complete local
                     part of a recipient address.   For  example,
                     with  an address user+foo@domain the mailbox
                     is user+foo.  A command-line  argument  that
                     contains  ${mailbox}  expands  into  as many
                     command-line arguments as there are  recipi-
                     ents.

              ${nexthop}
                     This macro expands to the next-hop hostname.

              ${recipient}
                     This macro expands to the complete recipient
                     address.   A command-line argument that con-
                     tains ${recipient} expands into as many com-
                     mand-line arguments as there are recipients.

              ${sender}
                     This macro expands to  the  envelope  sender
                     address.

              ${user}
                     This macro expands to the username part of a
                     recipient address.   For  example,  with  an
                     address user+foo@domain the username part is
                     user.  A command-line argument that contains
                     ${user}  expands  into  as many command-line
                     arguments as there are recipients.

       In addition to the  form  ${name},  the  forms  $name  and
       $(name)  are also recognized.  Specify $$ where a single $
       is wanted.

DIAGNOSTICS
       Command exit status  codes  are  expected  to  follow  the



                                                                2





PIPE(8)                                                   PIPE(8)


       conventions defined in <sysexits.h>.

       Problems  and transactions are logged to syslogd(8).  Cor-
       rupted message files are marked so that the queue  manager
       can move them to the corrupt queue for further inspection.

SECURITY
       This program needs a dual personality  1)  to  access  the
       private  Postfix  queue and IPC mechanisms, and 2) to exe-
       cute external commands as the specified user. It is there-
       fore security sensitive.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

Miscellaneous
       mail_owner
              The process privileges used while  not  running  an
              external command.

Resource controls
       In  the text below, transport is the first field in a mas-
       ter.cf entry.

       transport_destination_concurrency_limit
              Limit the number of parallel deliveries to the same
              destination,  for delivery via the named transport.
              The default limit is taken from the  default_desti-
              nation_concurrency_limit  parameter.   The limit is
              enforced by the Postfix queue manager.

       transport_destination_recipient_limit
              Limit the number of recipients per  message  deliv-
              ery,  for  delivery  via  the  named transport. The
              default limit is taken  from  the  default_destina-
              tion_recipient_limit   parameter.    The  limit  is
              enforced by the Postfix queue manager.

       transport_time_limit
              Limit the time for delivery  to  external  command,
              for  delivery  via the named transport. The default
              limit is taken from the command_time_limit  parame-
              ter.   The  limit  is enforced by the Postfix queue
              manager.

SEE ALSO
       bounce(8) non-delivery status reports
       master(8) process manager
       qmgr(8) queue manager
       syslogd(8) system logging




                                                                3





PIPE(8)                                                   PIPE(8)


LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA
















































                                                                4


postfix/doc/pickup.8.html100664 1751 146 6054 7017475557 14636 0ustar thivillowww



PICKUP(8)                                               PICKUP(8)


NAME
       pickup - Postfix local mail pickup

SYNOPSIS
       pickup [generic Postfix daemon options]

DESCRIPTION
       The  pickup  daemon waits for hints that new mail has been
       dropped into the world-writable  maildrop  directory,  and
       feeds  it into the cleanup(8) daemon.  Ill-formatted files
       are deleted without notifying the originator.   This  pro-
       gram expects to be run from the master(8) process manager.

STANDARDS
       None. The pickup daemon does not interact with the outside
       world.

SECURITY
       The  pickup  daemon runs with superuser privileges so that
       it 1) can open a queue file with the rights of the submit-
       ting  user and 2) can access the Postfix private IPC chan-
       nels.  On the positive side, the program can run chrooted,
       opens no files for writing, is careful about what files it
       opens for reading, and does not actually  touch  any  data
       that is sent to its public service endpoint.

DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

BUGS
       The  pickup daemon copies mail from file to the cleanup(8)
       daemon.  It could avoid message copying overhead by  send-
       ing  a  file descriptor instead of file data, but then the
       already complex cleanup(8) daemon would have to deal  with
       unfiltered user data.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

Miscellaneous
       always_bcc
              Address to send a copy of each message that  enters
              the system.

       mail_owner
              The  process  privileges  used  while not opening a
              maildrop file.

       queue_directory
              Top-level directory of the Postfix queue.




                                                                1





PICKUP(8)                                               PICKUP(8)


SEE ALSO
       cleanup(8) message canonicalization
       master(8) process manager
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA











































                                                                2


postfix/doc/outbound.gif100664 1751 146 7745 7017475557 14645 0ustar thivillowwwGIF89a !, ڋ޼H扦ʶ L ĢL*̦ JԪj N xm%hxCxXHY 29iY):dJډĪK*t[ԻR') wYl 0-=M]m} ==Nݬ\΍>.O?~>.ឿvX`HD8= 6xHB C`̈E M$q_GQ҃E-cF۸M0w4ie9w)k3h֒:Zi)/J4խ\iMeԯ6ҢV:2Z4bӝZJeW%߾4淋YɎoF8` C5x wԪ3OxgwtҶg` hGF[Snyq }zAt*pcC,Sv߾x}v `w)<$`xCaWaGYxqu5֞oQVsi HAgg~),YIe[|:Hր"HvSh68a#EQYVuLd\uX׎Y^bnY% UBBce k~ RWp@tЛd?Dz9柀Ph>m6Ϟn袗(Χiiy %i9)jjR:OAuJPHm%zvK,ɸA̳lml_ws( I~k϶9 `L)Tn~pK%7R5n#{0 /1 ? ^gѰ_,q1!CB%r ]jZ *Z42#缐ƌC:s1C4/m$;K/2G"%ǪA7g!5̶O([lX{R'F+i؍1:mk`kH Nxc6/^8?84Eyc^)/^l_$y蛏Vgz) zw1^y0nz;q{N$]|OAߞo?߃/=17_.O9/S{?9߻{c{.Nw N;8 =* aF&aa6"!|(dyXw -b^Xndx& L!=,^[Lc>UψA 8ю#t".<<&nS'H.R<" ).pvmd'?YDP~1W)CJO2 *_yOΣN T2ߓ`)HJBRd1˨GW2|nLA r&g;\syl%2WYCq<#7YMv+_K8=ihs%XH ҟhY x2t(=EQ3)]ҙ&BBP5R3sT'IlaBSh3BudDӞբf\TrH(FZDb5PjVHU&UNBh֭B{1+Y*/Qe[-ʕ|^W=u{%M~*dbEZ1 -[Yj-䱓GWKg|6U`h>085&`/mJ;GVCxZWЊֶíi We k祸8.w>mtMr؝.oqZd jzy=q}XX}_ϱ%>l]2.n-i 02bIx+1;aC,'Ո-z.N΅{d1Fql j{w̥$٭HZj^@,8q@)_B`r#¬Yj2_+fȶ-_2&lZf7*ufdJVMnF\r>ځu;iIetmvMLvZijJWke1@/:gUs&տ kFp2BDעVZXfѿ6bSa;֮4 X^]L[ݰfOңt ]W{FKHZm _Rtkh(tu9>JxSi,eY}޳b:gGkdM?7۝6~wNCgONK,dW;BwZ}UG9#Yzۦ87)Nw^K=CaGƤt,MIUC2bO$Շܡ܏ʽמ %D]_&~CD|#gZ{uWBwwe{uG]WOSq~NGm]"}57F[^94GFgqMGT 7W&UX6閂,o=7/Vl7vo҆^iXoll߶hz6h}WD] O=8&^Huc\e7Φv=i`f^hd E/lpluhp2xCrhu}tdWi]舿 C˅jiVZ,N3s[xzs UqB4&zCDO.AW*Oq5xX iJIUxGPnʄqt [GR8E{y_e:~(XrGxGR@"GRYE|Ugg*jꉦxY,)My_*Țkv>9/yƺ ڭDجw"9y \v3,z Yگ"5 !:JMœ^İ[Zcț# ۮJX#+3C@*O V9 ,{S*gRu=k#;ŋ@0BD?aúҴM)S-QkY+X˵]_^+Wed7vk j0ֶq[ pK5wvO·}! !+k|˸Eḏ;s+{fˍw0˺@ +Kk˻뻿 +[;postfix/doc/outbound.fig100664 1751 146 7205 7017475557 14634 0ustar thivillowww#FIG 3.1 Landscape Center Inches 1200 2 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 4350 3300 600 300 3750 3000 4950 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 4350 2250 600 300 3750 1950 4950 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6000 4350 600 300 5400 4050 6600 4650 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6000 3300 600 300 5400 3000 6600 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6000 2250 600 300 5400 1950 6600 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 2700 2250 600 300 2100 1950 3300 2550 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3150 3300 3750 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4950 3300 5400 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4725 3075 5625 2475 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4725 3525 5625 4125 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6600 2250 7050 2250 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6600 3300 7050 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6600 4350 7050 4350 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 7087 4050 7987 4050 7987 4650 7087 4650 7087 4050 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 7050 3000 7950 3000 7950 3600 7050 3600 7050 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4350 1500 4350 1950 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4350 2550 4350 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6000 1500 6000 1950 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 7200 1350 6450 2025 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 4350 3600 4350 4050 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 7050 1950 7950 1950 7950 2550 7050 2550 7050 1950 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 3900 900 4800 900 4800 1500 3900 1500 3900 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 5550 900 6450 900 6450 1500 5550 1500 5550 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 7050 900 7950 900 7950 1500 7050 1500 7050 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 3900 4050 4800 4050 4800 4650 3900 4650 3900 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 3075 2475 3975 3075 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 3150 3450 3450 3450 3450 4350 3150 4350 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 2250 3000 3150 3000 3150 3600 2250 3600 2250 3000 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 2250 4050 3150 4050 3150 4650 2250 4650 2250 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 1650 3300 2250 3300 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 525 675 6825 675 6825 5325 525 5325 525 675 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 4 0 0 1.00 60.00 120.00 2250 3450 1950 3450 1950 4350 2250 4350 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 750 3000 1650 3000 1650 3600 750 3600 750 3000 4 0 -1 0 0 0 15 0.0000 4 150 450 4125 3330 qmgr\001 4 0 -1 0 0 0 15 0.0000 4 150 630 4005 2325 resolve\001 4 0 -1 0 0 0 15 0.0000 4 195 360 5820 4402 pipe\001 4 0 -1 0 0 0 15 0.0000 4 180 420 5790 3345 smtp\001 4 0 -1 0 0 0 15 0.0000 4 150 405 5797 2325 local\001 4 0 -1 0 0 0 15 0.0000 4 150 585 5677 1275 aliases\001 4 0 -1 0 0 0 15 0.0000 4 150 735 7102 1275 .forward\001 4 0 -1 0 0 0 15 0.0000 4 150 690 7155 3375 Internet\001 4 0 -1 0 0 0 15 0.0000 4 150 930 7147 4425 UUCP etc.\001 4 0 -1 0 0 0 15 0.0000 4 150 675 7132 2325 mailbox\001 4 0 -1 0 0 0 15 0.0000 4 150 630 2385 2325 bounce\001 4 0 -1 0 0 0 15 0.0000 4 150 525 2407 3375 active\001 4 0 -1 0 0 0 15 0.0000 4 150 735 2302 4425 deferred\001 4 0 -1 0 0 0 15 0.0000 4 150 810 3915 4425 relocated\001 4 0 -1 0 0 0 15 0.0000 4 195 780 790 3352 incoming\001 4 0 -1 0 0 0 15 0.0000 4 180 780 3930 1245 transport\001 postfix/doc/newaliases.1.html100664 1751 146 27415 7017475557 15513 0ustar thivillowww



SENDMAIL(1)                                           SENDMAIL(1)


NAME
       sendmail - Postfix to Sendmail compatibility interface

SYNOPSIS
       sendmail [option ...] [recipient ...]

       mailq
       sendmail -bp

       newaliases
       sendmail -I

DESCRIPTION
       The  sendmail  program  implements the Postfix to Sendmail
       compatibility interface.  For the  sake  of  compatibility
       with  existing  applications,  some  Sendmail command-line
       options are recognized but silently ignored.

       By default, sendmail reads a message from  standard  input
       and  arranges for delivery.  sendmail attempts to create a
       queue file in the maildrop directory. If that directory is
       not world-writable, the message is piped through the post-
       drop(1) command, which is expected to execute  with  suit-
       able privileges.

       Specific  command  aliases  are  provided for other common
       modes of operation:

       mailq  List the mail queue. Each  entry  shows  the  queue
              file  ID,  message  size, arrival time, sender, and
              the recipients that still need to be delivered.  If
              mail  could not be delivered upon the last attempt,
              the reason for failure is shown. This mode of oper-
              ation  is implemented by connecting to the showq(8)
              daemon.

       newaliases
              Initialize the alias database. If no alias database
              type is specified, the program uses the type speci-
              fied in the database_type configuration  parameter;
              if  no  input  file  is specified, the program pro-
              cesses   the    file(s)    specified    with    the
              alias_database  configuration  parameter. This mode
              of operation is implemented by running the  postal-
              ias(1) command.

              Note:  it  may  take a minute or so before an alias
              database update becomes visible.  Use  the  postfix
              reload command to eliminate this delay.

       These and other features can be selected by specifying the
       appropriate combination of command-line options. Some fea-
       tures are controlled by parameters in the main.cf configu-
       ration file.



                                                                1





SENDMAIL(1)                                           SENDMAIL(1)


       The following options are recognized:

       -B body_type (ignored)
              The message  body  MIME  type.  Currently,  Postfix
              implements just-send-eight.

       -C config_file (ignored :-)
              The path name of the sendmail.cf file. Postfix con-
              figuration files are kept in /etc/postfix.

       -F full_name
              Set the sender full name. This is  used  only  with
              messages that have no From: message header.

       -I     Initialize  alias database. See the newaliases com-
              mand above.

       -N dsn (ignored)
              Delivery status  notification  control.  Currently,
              Postfix does not implement DSN.

       -R return_limit (ignored)
              Limit   the   size   of   bounced   mail.  Use  the
              bounce_size_limit configuration parameter  instead.

       -X log_file (ignored)
              Log  mailer  traffic.  Use  the debug_peer_list and
              debug_peer_level configuration parameters  instead.

       -bd    Go  into  daemon  mode.  This  mode of operation is
              implemented by executing the postfix start command.

       -bi    Initialize  alias database. See the newaliases com-
              mand above.

       -bm    Read mail  from  standard  input  and  arrange  for
              delivery.  This is the default mode of operation.

       -bp    List the mail queue. See the mailq command above.

       -bs    Stand-alone  SMTP  server  mode. Read SMTP commands
              from standard input, and write responses  to  stan-
              dard output.  This mode of operation is implemented
              by running the smtpd(8) daemon.

       -f sender
              Set  the  envelope  sender  address.  This  is  the
              address where delivery problems are sent to, unless
              the message contains an Errors-To: message  header.

       -h hop_count (ignored)
              Hop  count limit. Use the hopcount_limit configura-
              tion parameter instead.




                                                                2





SENDMAIL(1)                                           SENDMAIL(1)


       -i (ignored)
              Lines beginning with "." get special treatment only
              with -bs.

       -m (ignored)
              Backwards compatibility.

       -n (ignored)
              Backwards compatibility.

       -oAalias_database
              Non-default  alias  database.  Specify  pathname or
              type:pathname. See postalias(1) for details.

       -o7 (ignored)

       -o8 (ignored)
              The message body type.  Currently,  Postfix  imple-
              ments just-send-eight.

       -om (ignored)
              The  sender  is  never  eliminated  from alias etc.
              expansions.

       -o x value (ignored)
              Set option x to value. Use the equivalent  configu-
              ration parameter in main.cf instead.

       -r sender
              Set  the  envelope  sender  address.  This  is  the
              address where delivery problems are sent to, unless
              the  message contains an Errors-To: message header.

       -q     Flush the mail queue. This is implemented by  kick-
              ing the qmgr(8) daemon.

       -qinterval (ignored)
              The   interval   between   queue   runs.   Use  the
              queue_run_delay configuration parameter instead.

       -t     Extract  recipients  from  message  headers.   This
              requires  that  no  recipients  be specified on the
              command line.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

SECURITY
       By design, this program is not  set-user  (or  group)  id.
       However,  it  must  handle  data  from  untrusted users or
       untrusted machines.  Thus, the usual precautions  need  to
       be taken against malicious inputs.




                                                                3





SENDMAIL(1)                                           SENDMAIL(1)


DIAGNOSTICS
       Problems  are  logged  to  syslogd(8)  and to the standard
       error stream.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

       MAIL_DEBUG
              Enable debugging with an external command, as spec-
              ified   with   the  debugger_command  configuration
              parameter.

FILES
       /var/spool/postfix, mail queue
       /etc/postfix, configuration files

CONFIGURATION PARAMETERS
       See the Postfix main.cf file for syntax  details  and  for
       default  values.  Use  the  postfix reload command after a
       configuration change.

       alias_database
              Default  alias  database(s)  for  newaliases.   The
              default  value  for  this  parameter is system-spe-
              cific.

       bounce_size_limit
              The amount of original message context that is sent
              along with a non-delivery notification.

       database_type
              Default alias etc. database type. On many UNIX sys-
              tems the default type is either dbm or hash.

       debugger_command
              Command that is executed after a Postfix daemon has
              initialized.

       debug_peer_level
              Increment  in  verbose  logging level when a remote
              host  matches  a  pattern  in  the  debug_peer_list
              parameter.

       debug_peer_list
              List  of  domain or network patterns. When a remote
              host matches a pattern, increase the  verbose  log-
              ging   level   by   the  amount  specified  in  the
              debug_peer_level parameter.





                                                                4





SENDMAIL(1)                                           SENDMAIL(1)


       fork_attempts
              Number of attempts to fork() a process before  giv-
              ing up.

       fork_delay
              Delay   in   seconds   between   successive  fork()
              attempts.

       hopcount_limit
              Limit the number of Received: message headers.

       mail_owner
              The owner of the mail queue  and  of  most  Postfix
              processes.

       command_directory
              Directory  with  Postfix support commands (default:
              $program_directory).

       daemon_directory
              Directory with Postfix  daemon  programs  (default:
              $program_directory).

       queue_directory
              Top-level  directory  of the Postfix queue. This is
              also the root directory of Postfix daemons that run
              chrooted.

       queue_run_delay
              The  time  between successive scans of the deferred
              queue.

SEE ALSO
       pickup(8) mail pickup daemon
       postalias(1) maintain alias database
       postdrop(1) privileged posting agent
       postfix(1) mail system control
       postkick(1) kick a Postfix daemon
       qmgr(8) queue manager
       showq(8) list mail queue
       smtpd(8) SMTP server
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA





                                                                5


postfix/doc/motivation.html100664 1751 146 3241 7017475557 15361 0ustar thivillowww Postfix Overview - Introduction

Postfix Overview - Introduction


Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security

Postfix is the freeware project that I started during my sabattical year in the USA while visiting IBM T.J. Watson Research. I am grateful to IBM for the opportunity to write this software and for their permission to give it away.

Postfix is my attempt to provide an alternative to the widely-used Sendmail program. Postfix attempts to be fast, easy to administer, and hopefully secure, while at the same time being sendmail compatible enough to not upset your users.

The original plan was to release this software under a different name, VMailer. With the release in sight, IBM's lawyers discovered that VMailer was too similar to an existing trade mark. So, the program will go through its life as Postfix instead.

Postfix is a direct competitor to the qmail by Dan Bernstein. That's competitor, not enemy. I'm sure that friendly competition will help to improve both programs.


Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security postfix/doc/master.8.html100664 1751 146 13762 7017475557 14662 0ustar thivillowww



MASTER(8)                                               MASTER(8)


NAME
       master - Postfix master process

SYNOPSIS
       master [-c config_dir] [-D] [-t] [-v]

DESCRIPTION
       The  master daemon is the resident process that runs Post-
       fix daemons on demand: daemons to send or receive messages
       via  the  network,  daemons  to deliver mail locally, etc.
       These daemons are created on demand up to  a  configurable
       maximum number per service.

       Postfix  daemons terminate voluntarily, either after being
       idle for a configurable amount of time,  or  after  having
       serviced  a configurable number of requests. The exception
       to this rule is the resident Postfix queue manager.

       The behavior of the master daemon  is  controlled  by  the
       master.cf  configuration file. The table specifies zero or
       more servers in the UNIX or INET domain, or  servers  that
       take  requests  from a FIFO. Precise configuration details
       are given in the master.cf file, and in the  manual  pages
       of the respective daemons.

       Options:

       -c config_dir
              Read  the main.cf and master.cf configuration files
              in the named directory.

       -D     After initialization, run a debugger on the  master
              process.  The  debugging  command is specified with
              the debugger_command in the main.cf global configu-
              ration file.

       -t     Test  mode. Return a zero exit status when the mas-
              ter.pid lock file does not exist or when that  file
              is  not  locked.   This is evidence that the master
              daemon is not running.

       -v     Enable verbose logging for debugging purposes. This
              option is passed on to child processes. Multiple -v
              options make the software increasingly verbose.

       Signals:

       SIGHUP Upon receipt of a HUP signal (e.g.,  after  postfix
              reload), the master process re-reads its configura-
              tion files. If a service has been removed from  the
              master.cf  file,  its  running processes are termi-
              nated immediately.   Otherwise,  running  processes
              are  allowed to terminate as soon as is convenient,
              so that changes in  configuration  settings  affect



                                                                1





MASTER(8)                                               MASTER(8)


              only new service requests.

       SIGTERM
              Upon  receipt of a TERM signal (e.g., after postfix
              abort), the master process passes the signal on  to
              its child processes and terminates.  This is useful
              for an emergency shutdown. Normally one would  ter-
              minate  only  the  master  (postfix stop) and allow
              running processes to finish what they are doing.

DIAGNOSTICS
       Problems are reported to syslogd(8).

BUGS
ENVIRONMENT
       MAIL_DEBUG
              After initialization, start a debugger as specified
              with  the  debugger_command configuration parameter
              in the main.cf configuration file.

       MAIL_CONFIG
              Directory with Postfix configuration files.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

Miscellaneous
       mail_owner
              The  owner  of  the  mail queue and of most Postfix
              processes.

       command_directory
              Directory with Postfix support programs.

       daemon_directory
              Directory with Postfix daemon programs.

       queue_directory
              Top-level directory of the Postfix queue.  This  is
              also the root directory of Postfix daemons that run
              chrooted.

Resource controls
       default_process_limit
              Default limit for the number of simultaneous  child
              processes that provide a given service.

       max_idle
              Limit  the  time  in  seconds  that a child process
              waits between service requests.




                                                                2





MASTER(8)                                               MASTER(8)


       max_use
              Limit the number of service requests handled  by  a
              child process.

       service_throttle_time
              Time  to  avoid forking a server that appears to be
              broken.

FILES
       /etc/postfix/main.cf: global configuration file.
       /etc/postfix/master.cf: master process configuration file.
       /var/spool/postfix/pid/master.pid: master lock file.

SEE ALSO
       qmgr(8) queue manager
       pickup(8) local mail pickup
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA






























                                                                3


postfix/doc/mailq.1.html100664 1751 146 27415 7017475557 14463 0ustar thivillowww



SENDMAIL(1)                                           SENDMAIL(1)


NAME
       sendmail - Postfix to Sendmail compatibility interface

SYNOPSIS
       sendmail [option ...] [recipient ...]

       mailq
       sendmail -bp

       newaliases
       sendmail -I

DESCRIPTION
       The  sendmail  program  implements the Postfix to Sendmail
       compatibility interface.  For the  sake  of  compatibility
       with  existing  applications,  some  Sendmail command-line
       options are recognized but silently ignored.

       By default, sendmail reads a message from  standard  input
       and  arranges for delivery.  sendmail attempts to create a
       queue file in the maildrop directory. If that directory is
       not world-writable, the message is piped through the post-
       drop(1) command, which is expected to execute  with  suit-
       able privileges.

       Specific  command  aliases  are  provided for other common
       modes of operation:

       mailq  List the mail queue. Each  entry  shows  the  queue
              file  ID,  message  size, arrival time, sender, and
              the recipients that still need to be delivered.  If
              mail  could not be delivered upon the last attempt,
              the reason for failure is shown. This mode of oper-
              ation  is implemented by connecting to the showq(8)
              daemon.

       newaliases
              Initialize the alias database. If no alias database
              type is specified, the program uses the type speci-
              fied in the database_type configuration  parameter;
              if  no  input  file  is specified, the program pro-
              cesses   the    file(s)    specified    with    the
              alias_database  configuration  parameter. This mode
              of operation is implemented by running the  postal-
              ias(1) command.

              Note:  it  may  take a minute or so before an alias
              database update becomes visible.  Use  the  postfix
              reload command to eliminate this delay.

       These and other features can be selected by specifying the
       appropriate combination of command-line options. Some fea-
       tures are controlled by parameters in the main.cf configu-
       ration file.



                                                                1





SENDMAIL(1)                                           SENDMAIL(1)


       The following options are recognized:

       -B body_type (ignored)
              The message  body  MIME  type.  Currently,  Postfix
              implements just-send-eight.

       -C config_file (ignored :-)
              The path name of the sendmail.cf file. Postfix con-
              figuration files are kept in /etc/postfix.

       -F full_name
              Set the sender full name. This is  used  only  with
              messages that have no From: message header.

       -I     Initialize  alias database. See the newaliases com-
              mand above.

       -N dsn (ignored)
              Delivery status  notification  control.  Currently,
              Postfix does not implement DSN.

       -R return_limit (ignored)
              Limit   the   size   of   bounced   mail.  Use  the
              bounce_size_limit configuration parameter  instead.

       -X log_file (ignored)
              Log  mailer  traffic.  Use  the debug_peer_list and
              debug_peer_level configuration parameters  instead.

       -bd    Go  into  daemon  mode.  This  mode of operation is
              implemented by executing the postfix start command.

       -bi    Initialize  alias database. See the newaliases com-
              mand above.

       -bm    Read mail  from  standard  input  and  arrange  for
              delivery.  This is the default mode of operation.

       -bp    List the mail queue. See the mailq command above.

       -bs    Stand-alone  SMTP  server  mode. Read SMTP commands
              from standard input, and write responses  to  stan-
              dard output.  This mode of operation is implemented
              by running the smtpd(8) daemon.

       -f sender
              Set  the  envelope  sender  address.  This  is  the
              address where delivery problems are sent to, unless
              the message contains an Errors-To: message  header.

       -h hop_count (ignored)
              Hop  count limit. Use the hopcount_limit configura-
              tion parameter instead.




                                                                2





SENDMAIL(1)                                           SENDMAIL(1)


       -i (ignored)
              Lines beginning with "." get special treatment only
              with -bs.

       -m (ignored)
              Backwards compatibility.

       -n (ignored)
              Backwards compatibility.

       -oAalias_database
              Non-default  alias  database.  Specify  pathname or
              type:pathname. See postalias(1) for details.

       -o7 (ignored)

       -o8 (ignored)
              The message body type.  Currently,  Postfix  imple-
              ments just-send-eight.

       -om (ignored)
              The  sender  is  never  eliminated  from alias etc.
              expansions.

       -o x value (ignored)
              Set option x to value. Use the equivalent  configu-
              ration parameter in main.cf instead.

       -r sender
              Set  the  envelope  sender  address.  This  is  the
              address where delivery problems are sent to, unless
              the  message contains an Errors-To: message header.

       -q     Flush the mail queue. This is implemented by  kick-
              ing the qmgr(8) daemon.

       -qinterval (ignored)
              The   interval   between   queue   runs.   Use  the
              queue_run_delay configuration parameter instead.

       -t     Extract  recipients  from  message  headers.   This
              requires  that  no  recipients  be specified on the
              command line.

       -v     Enable verbose logging for debugging purposes. Mul-
              tiple  -v  options  make  the software increasingly
              verbose.

SECURITY
       By design, this program is not  set-user  (or  group)  id.
       However,  it  must  handle  data  from  untrusted users or
       untrusted machines.  Thus, the usual precautions  need  to
       be taken against malicious inputs.




                                                                3





SENDMAIL(1)                                           SENDMAIL(1)


DIAGNOSTICS
       Problems  are  logged  to  syslogd(8)  and to the standard
       error stream.

ENVIRONMENT
       MAIL_CONFIG
              Directory with Postfix configuration files.

       MAIL_VERBOSE
              Enable verbose logging for debugging purposes.

       MAIL_DEBUG
              Enable debugging with an external command, as spec-
              ified   with   the  debugger_command  configuration
              parameter.

FILES
       /var/spool/postfix, mail queue
       /etc/postfix, configuration files

CONFIGURATION PARAMETERS
       See the Postfix main.cf file for syntax  details  and  for
       default  values.  Use  the  postfix reload command after a
       configuration change.

       alias_database
              Default  alias  database(s)  for  newaliases.   The
              default  value  for  this  parameter is system-spe-
              cific.

       bounce_size_limit
              The amount of original message context that is sent
              along with a non-delivery notification.

       database_type
              Default alias etc. database type. On many UNIX sys-
              tems the default type is either dbm or hash.

       debugger_command
              Command that is executed after a Postfix daemon has
              initialized.

       debug_peer_level
              Increment  in  verbose  logging level when a remote
              host  matches  a  pattern  in  the  debug_peer_list
              parameter.

       debug_peer_list
              List  of  domain or network patterns. When a remote
              host matches a pattern, increase the  verbose  log-
              ging   level   by   the  amount  specified  in  the
              debug_peer_level parameter.





                                                                4





SENDMAIL(1)                                           SENDMAIL(1)


       fork_attempts
              Number of attempts to fork() a process before  giv-
              ing up.

       fork_delay
              Delay   in   seconds   between   successive  fork()
              attempts.

       hopcount_limit
              Limit the number of Received: message headers.

       mail_owner
              The owner of the mail queue  and  of  most  Postfix
              processes.

       command_directory
              Directory  with  Postfix support commands (default:
              $program_directory).

       daemon_directory
              Directory with Postfix  daemon  programs  (default:
              $program_directory).

       queue_directory
              Top-level  directory  of the Postfix queue. This is
              also the root directory of Postfix daemons that run
              chrooted.

       queue_run_delay
              The  time  between successive scans of the deferred
              queue.

SEE ALSO
       pickup(8) mail pickup daemon
       postalias(1) maintain alias database
       postdrop(1) privileged posting agent
       postfix(1) mail system control
       postkick(1) kick a Postfix daemon
       qmgr(8) queue manager
       showq(8) list mail queue
       smtpd(8) SMTP server
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA





                                                                5


postfix/doc/local.8.html100664 1751 146 51363 7017475557 14460 0ustar thivillowww



LOCAL(8)                                                 LOCAL(8)


NAME
       local - Postfix local mail delivery

SYNOPSIS
       local [generic Postfix daemon options]

DESCRIPTION
       The  local  daemon  processes  delivery  requests from the
       Postfix queue manager to deliver mail to local recipients.
       Each  delivery  request  specifies  a queue file, a sender
       address, a domain or host to deliver to, and one  or  more
       recipients.   This program expects to be run from the mas-
       ter(8) process manager.

       The local daemon updates queue files and marks  recipients
       as finished, or it informs the queue manager that delivery
       should be tried again at a later  time.  Delivery  problem
       reports  are  sent  to the bounce(8) or defer(8) daemon as
       appropriate.

SYSTEM-WIDE AND USER-LEVEL ALIASING
       The system adminstrator can set up one or more system-wide
       sendmail-style  alias databases.  Users can have sendmail-
       style ~/.forward files.  Mail for name is delivered to the
       alias  name,  to  destinations  in  ~name/.forward, to the
       mailbox owned by the user name, or  it  is  sent  back  as
       undeliverable.

       The  system  administrator can specify a comma/space sepa-
       rated list of  ~/.forward  like  files  through  the  for-
       ward_path  configuration  parameter.  Upon  delivery,  the
       local delivery agent tries each pathname in the list until
       a file is found.  The forward_path parameter is subject to
       interpolation of $user (recipient username), $home (recip-
       ient home directory), $shell (recipient shell), $recipient
       (complete  recipient   address),   $extension   (recipient
       address  extension),  $domain  (recipient  domain),  local
       (entire recipient address localpart) and $recipient_delim-
       iter.  The  forms  ${name?value}  and ${name:value} expand
       conditionally to value when $name  is  (is  not)  defined.
       Characters  that  may have special meaning to the shell or
       file system are replaced  by  underscores.   The  list  of
       acceptable characters is specified with the forward_expan-
       sion_filter configuration parameter.

       An alias or ~/.forward file may list  any  combination  of
       external   commands,  destination  file  names,  :include:
       directives, or mail addresses.  See aliases(5) for a  pre-
       cise  description. Each line in a user's .forward file has
       the same syntax as the right-hand part of an alias.

       When an address is  found  in  its  own  alias  expansion,
       delivery  is  made  to  the  user  instead. When a user is
       listed in the user's own ~/.forward file, delivery is made



                                                                1





LOCAL(8)                                                 LOCAL(8)


       to  the  user's mailbox instead.  An empty ~/.forward file
       means do not forward mail.

       In order to prevent the mail system from using  up  unrea-
       sonable   amounts  of  memory,  input  records  read  from
       :include: or from ~/.forward  files  are  broken  up  into
       chunks of length line_length_limit.

       While  expanding aliases, ~/.forward files, and so on, the
       program attempts to avoid duplicate deliveries. The dupli-
       cate_filter_limit  configuration parameter limits the num-
       ber of remembered recipients.

MAIL FORWARDING
       For the sake of reliability, forwarded mail is  re-submit-
       ted  as  a new message, so that each recipient has a sepa-
       rate on-file delivery status record.

       In order to stop mail forwarding loops early, the software
       adds  an  optional  Delivered-To: header with the envelope
       recipient address. If mail arrives for a recipient that is
       already  listed  in a Delivered-To: header, the message is
       bounced.

MAILBOX DELIVERY
       The default per-user mailbox is a file in  the  UNIX  mail
       spool  directory (/var/mail/user or /var/spool/mail/user);
       the location can be specified with  the  mail_spool_direc-
       tory configuration parameter.

       Alternatively,  the  per-user mailbox can be a file in the
       user's home  directory  with  a  name  specified  via  the
       home_mailbox  configuration  parameter. Specify a relative
       path name. Specify a name ending in / for qmail-compatible
       maildir delivery.

       Mailbox  delivery  can be delegated to an external command
       specified with the mailbox_command  configuration  parame-
       ter.  The  command  executes  with  the  privileges of the
       recipient user (exception: in case of  delivery  as  root,
       the    command    executes    with   the   privileges   of
       default_privs).

       Mailbox delivery can be delegated to  alternative  message
       transports  specified  in  the  master.cf file.  The mail-
       box_transport configuration parameter specifies a  message
       transport  that  is  to  be used for all local recipients,
       regardless of whether they are found in  the  UNIX  passwd
       database.   The  fallback_transport  parameter specifies a
       message transport for recipients that are not found in the
       UNIX passwd database.

       In the case of UNIX-style mailbox delivery, the local dae-
       mon prepends a "From sender time_stamp" envelope header to



                                                                2





LOCAL(8)                                                 LOCAL(8)


       each  message,  prepends  an optional Delivered-To: header
       with the envelope recipient address,  prepends  a  Return-
       Path:  header with the envelope sender address, prepends a
       > character to lines beginning with "From ",  and  appends
       an empty line.  The mailbox is locked for exclusive access
       while delivery is in progress. In  case  of  problems,  an
       attempt  is  made  to truncate the mailbox to its original
       length.

       In the case of maildir delivery, the local daemon prepends
       an optional Delivered-To: header with the envelope recipi-
       ent address and prepends a Return-Path:  header  with  the
       envelope sender address.

EXTERNAL COMMAND DELIVERY
       The    allow_mail_to_commands    configuration   parameter
       restricts delivery to external commands. The default  set-
       ting  (alias,  forward)  forbids  command  destinations in
       :include: files.

       The command is executed directly  where  possible.  Assis-
       tance  by the shell (/bin/sh on UNIX systems) is used only
       when the command contains shell magic characters, or  when
       the command invokes a shell built-in command.

       A  limited  amount  of command output (standard output and
       standard error) is captured for inclusion with  non-deliv-
       ery  status  reports.  A command is forcibly terminated if
       it does not complete  within  command_time_limit  seconds.
       Command  exit status codes are expected to follow the con-
       ventions defined in <sysexits.h>.

       A limited amount of message context is exported via  envi-
       ronment  variables. Characters that may have special mean-
       ing to the shell are replaced by underscores.  The list of
       acceptable characters is specified with the command_expan-
       sion_filter configuration parameter.

       SHELL  The recipient user's login shell.

       HOME   The recipient user's home directory.

       USER   The bare recipient name.

       EXTENSION
              The optional recipient address extension.

       DOMAIN The recipient address domain part.

       LOGNAME
              The bare recipient name.

       LOCAL  The entire recipient address localpart (text to the
              left of the rightmost @ character).



                                                                3





LOCAL(8)                                                 LOCAL(8)


       RECIPIENT
              The entire recipient address.

       The PATH environment variable is always reset to a system-
       dependent default path, and the TZ (time zone) environment
       variable is always passed on without change.

       The current working directory is the mail queue directory.

       The local daemon prepends a "From sender time_stamp" enve-
       lope  header  to each message, prepends an optional Deliv-
       ered-To:  header  with  the  recipient  envelope  address,
       prepends  a  Return-Path:  header with the sender envelope
       address, and appends an empty line.

EXTERNAL FILE DELIVERY
       The allow_mail_to_files configuration parameter  restricts
       delivery  to  external  files. The default setting (alias,
       forward) forbids file  destinations  in  :include:  files.
       Specify  a  pathname  ending  in  /  for  qmail-compatible
       maildir delivery.

       The local daemon prepends a "From sender time_stamp" enve-
       lope  header  to each message, prepends an optional Deliv-
       ered-To:  header  with  the  recipient  envelope  address,
       prepends  a  >  character to lines beginning with "From ",
       and appends an empty line.  The envelope sender address is
       available  in  the Return-Path: header.  When the destina-
       tion is a regular file, it is locked for exclusive  access
       while  delivery  is  in  progress. In case of problems, an
       attempt is made to truncate a regular file to its original
       length.

       In the case of maildir delivery, the local daemon prepends
       an optional Delivered-To: header with the envelope recipi-
       ent  address.  The envelope sender address is available in
       the Return-Path: header.

ADDRESS EXTENSION
       The optional recipient_delimiter  configuration  parameter
       specifies  how  to  separate address extensions from local
       recipient names.

       For example, with  "recipient_delimiter  =  +",  mail  for
       name+foo  is  delivered  to  the  alias name+foo or to the
       alias name, to  the  destinations  listed  in  ~name/.for-
       ward+foo or in ~name/.forward, to the mailbox owned by the
       user name, or it is sent back as undeliverable.

       In all cases the local daemon prepends an opional  `Deliv-
       ered-To: name+foo' header line.

DELIVERY RIGHTS
       Deliveries  to  external  files  and external commands are



                                                                4





LOCAL(8)                                                 LOCAL(8)


       made with the rights of the receiving user on whose behalf
       the  delivery  is made.  In the absence of a user context,
       the local daemon uses the owner rights  of  the  :include:
       file or alias database.  When those files are owned by the
       superuser, delivery is made with the rights specified with
       the default_privs configuration parameter.

STANDARDS
       RFC 822 (ARPA Internet Text Messages)

DIAGNOSTICS
       Problems  and transactions are logged to syslogd(8).  Cor-
       rupted message files are marked so that the queue  manager
       can move them to the corrupt queue afterwards.

       Depending  on the setting of the notify_classes parameter,
       the postmaster is notified of bounces and of  other  trou-
       ble.

BUGS
       For  security  reasons,  the  message  delivery  status of
       external commands or of external  files  is  never  check-
       pointed to file. As a result, the program may occasionally
       deliver more than once to a command or external file. Bet-
       ter safe than sorry.

       Mutually-recursive  aliases  or  ~/.forward  files are not
       detected early.  The resulting  mail  forwarding  loop  is
       broken by the use of the Delivered-To: message header.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

Miscellaneous
       alias_maps
              List of alias databases.

       expand_owner_alias
              When delivering to an alias that has an owner- com-
              panion  alias,  set  the envelope sender address to
              the right-hand side of  the  owner  alias,  instead
              using of the left-hand side address.

       forward_path
              Search list for .forward files.  The names are sub-
              ject to $name expansion.

       local_command_shell
              Shell to use for external  command  execution  (for
              example,  /some/where/smrsh  -c).   When a shell is
              specified, it is  invoked  even  when  the  command



                                                                5





LOCAL(8)                                                 LOCAL(8)


              contains no shell built-in commands or meta charac-
              ters.

       owner_request_special
              Give special treatment to owner-xxx and xxx-request
              addresses.

       prepend_delivered_header
              Prepend   an  optional  Delivered-To:  header  upon
              external forwarding, delivery to command  or  file.
              Specify  zero  or  more of: command, file, forward.
              Turning off Delivered-To: when forwarding  mail  is
              not recommended.

       recipient_delimiter
              Separator between username and address extension.

Mailbox delivery
       fallback_transport
              Message transport for recipients that are not found
              in the UNIX passwd database.  This parameter  over-
              rides luser_relay.

       home_mailbox
              Pathname  of  a  mailbox  relative to a user's home
              directory.  Specify a path ending in / for maildir-
              style delivery.

       luser_relay
              Destination  (@domain  or address) for non-existent
              users.  The address is subjected  to  $name  expan-
              sion.

       mail_spool_directory
              Directory  with  UNIX-style  mailboxes. The default
              pathname is system dependent.

       mailbox_command
              External command to use for mailbox  delivery.  The
              command  executes  with  the  recipient  privileges
              (exception: root). The string is subject  to  $name
              expansions.

       mailbox_transport
              Message  transport  to  use for mailbox delivery to
              all local recipients, whether or not they are found
              in  the UNIX passwd database.  This parameter over-
              rides all other configuration parameters that  con-
              trol mailbox delivery, including luser_relay.

Locking controls
       deliver_lock_attempts
              Limit  the  number of attempts to acquire an exclu-
              sive lock on a mailbox or external file.



                                                                6





LOCAL(8)                                                 LOCAL(8)


       deliver_lock_delay
              Time in  seconds  between  successive  attempts  to
              acquire an exclusive lock.

       stale_lock_time
              Limit the time after which a stale lock is removed.

Resource controls
       command_time_limit
              Limit the amount of time for delivery  to  external
              command.

       duplicate_filter_limit
              Limit  the size of the duplicate filter for results
              from alias etc. expansion.

       line_length_limit
              Limit the amount of memory used  for  processing  a
              partial input line.

       local_destination_concurrency_limit
              Limit the number of parallel deliveries to the same
              user.   The  default  limit  is  taken   from   the
              default_destination_concurrency_limit parameter.

       local_destination_recipient_limit
              Limit  the  number of recipients per message deliv-
              ery.   The  default  limit  is   taken   from   the
              default_destination_recipient_limit parameter.

Security controls
       allow_mail_to_commands
              Restrict  the  usage  of  mail delivery to external
              command.

       allow_mail_to_files
              Restrict the usage of  mail  delivery  to  external
              file.

       command_expansion_filter
              What  characters  are  allowed  to  appear in $name
              expansions of mailbox_command.  Illegal  characters
              are replaced by underscores.

       default_privs
              Default  rights  for  delivery  to external file or
              command.

       forward_expansion_filter
              What characters are  allowed  to  appear  in  $name
              expansions  of forward_path. Illegal characters are
              replaced by underscores.





                                                                7





LOCAL(8)                                                 LOCAL(8)


HISTORY
       The Delivered-To: header appears in the  qmail  system  by
       Daniel Bernstein.

       The  maildir  structure  appears  in  the  qmail system by
       Daniel Bernstein.

SEE ALSO
       aliases(5) format of alias database
       bounce(8) non-delivery status reports
       postalias(1) create/update alias database
       syslogd(8) system logging
       qmgr(8) queue manager

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA


































                                                                8


postfix/doc/index.html100664 1751 146 2334 7017475557 14301 0ustar thivillowww Wietse's Postfix Project

Wietse's Postfix Project


Postfix Overview | Postfix Anatomy | Postfix Configuration | Postfix FAQ

All programmers are optimists -- Frederick P. Brooks, Jr.

First of all, thank you for your interest in the Postfix project.

What is Postfix? It is Wietse Venema's attempt to provide an alternative to the widely-used Sendmail program. Sendmail is responsible for an estimated 70% of all e-mail delivered on the Internet. With an estimated 100 million users, that's billions of messages daily. A stunning number.

Postfix attempts to be fast, easy to administer, and secure, while at the same time being sendmail compatible enough to not upset existing users.


Postfix Overview | Postfix Anatomy | Postfix Configuration | Postfix FAQ postfix/doc/inbound.gif100664 1751 146 6563 7017475560 14433 0ustar thivillowwwGIF89a!,ڋ޼H扦ʶ L ĢL*̦ JԪjܮ dN ?'8hRxh)YYAiٹz)JZpZ+[J[kx멻k ,6Lh|앬HW|¬%M&s 8ܙ.Q]~Uu~֢/ zQ)xڙx0bqB'f4cD>^lb ,e\R䰔'\2Drd3͚G"e5IeN0JgMu2cZ㭩Qp5֊bcZ ahmCe] M[fںf/7^yX0:Y͜aT4 D/_87%h1f۞mk{ \x`G6̍qGZcῩ_.q0m(ݰ񹧋㽯v}I>sx`i=|FBǙ}eGlMhffdv_ 9b :݆ 畤HwEY4"X8e[=A;6dUAeSSdFNdCtbYZdUdg]9sG!fƦYE% hjp&Ks>_VV(CQY!çV~>@ԥpF<R)GXԪbF~ޢhꙋVIOX䫤e?$[± T¾z :qض9;mJ]^ĶtH- rŻ$ۥ݋/ˣ lupv"6@Ǝ.S8ž`i\_!NFč [ ˮT,^@sb({psn?_Jr֥M8.Һ xorc,,*=wmU<4{~~af_t}Ȃѩtnx(_=»8"O9 8U܍ &:U vF(g9.D< y\-Ikol}kxlw~?9\~_O csl)ZW2OS=H\F'?A"ndyLw5!Mf=zK1 c''p,">͐ *9k6B$ QlOܒCt H2]iM5\}9<2jF{V,Hr vUlKLjHMKNo6Bή"|3Tmrtd%1,IJ|PV'\1rq*:bR"YRmU0)"/iG.i)2V%=y- Z"œxyf>J eM[FY0p+8{تNMcJW1iO $q٧7)N~se>9M&"ԟ\T@jBÜNAn yJrŗ%&=)E#|džɓhKPnPH*Q\nJ@E!i!C8*?w+᭩z럀˰Mj?i`-kU?E `ǟ OӊS~5v䕎y^P\Wl/:aѻd)&hSVٚ}Il!0k+*OJ}ɔĪ^6 L ƨ ucv$V'N;TŊWb̘ L8/>W< L0kѕe4ډ].җ=fd.sdkaH0R"nDǽnq zV]fB?R4xIP|C^MMHWn=K_fzkx^X1'>숟x*`yc>*%G_IţF:kÞ~H'{>JA̪wo7? Q?g mB-ϽԇOy.07 L?%|rvGt{~5sl'uHhP|hxxtշBB)ݗ(2ht"8rqX<(wEG x|=@x-~'h80XJ˦/g8/؁bc}1ih7 ~]/_H~'I8t({wWu[H}\8h^W凣Nz6hR:cLw'ȉ5}Fq<؈8Q|Gex𡋤ȋUȊXB\X~ø0ӈ¨Lᨉ؍HxsCOhYָ}ب xz_9nDH؎]| 8)vm(zYmh{n4h{9; yX7 yOhb/9)IVhh3(`{gxh`瑦RYȇi] (iz*Y(,5[Nw'x9}:9:b=y^il^YrJi-(ȔυBYb93Y,9~{+yhxŖi5(R教pF֒83%W8i֔ yi ٔYɘ])㨛|ɛ蛹 \i[NY{iYُ(fW8`Yz)I99ٝ 칞QY2!鞛w})ɟ   *Jjʡ !*%P;postfix/doc/inbound.fig100664 1751 146 6256 7017475560 14432 0ustar thivillowww#FIG 3.1 Landscape Center Inches 1200 2 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 5850 2775 600 300 5250 2475 6450 3075 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 5850 3825 600 300 5250 3525 6450 4125 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7500 3300 600 300 6900 3000 8100 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7500 2250 600 300 6900 1950 8100 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 9000 2250 600 300 8400 1950 9600 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 2850 2775 600 300 2250 2475 3450 3075 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6375 3675 6975 3450 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8100 3300 8550 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6375 2925 6975 3150 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3450 2775 3900 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 1800 2775 2250 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4800 2775 5250 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4800 3825 5250 3825 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 3900 3525 4800 3525 4800 4125 3900 4125 3900 3525 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 5850 4125 5850 4500 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4650 4650 5400 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 7500 2550 7500 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 7500 3600 7500 4050 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8700 4200 7950 3525 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 900 2475 1800 2475 1800 3075 900 3075 900 2475 2 2 0 1 -1 6 1 0 20 0.000 0 0 -1 0 0 5 3900 2475 4800 2475 4800 3075 3900 3075 3900 2475 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 8550 3000 9450 3000 9450 3600 8550 3600 8550 3000 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 3900 4500 4800 4500 4800 5100 3900 5100 3900 4500 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 5400 4500 6300 4500 6300 5100 5400 5100 5400 4500 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 7050 4050 7950 4050 7950 4650 7050 4650 7050 4050 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 8550 4050 9450 4050 9450 4650 8550 4650 8550 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8550 2475 7875 3075 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 5025 1725 9825 1725 9825 5325 5025 5325 5025 1725 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 3 0 0 1.00 60.00 120.00 8025 3150 8550 2775 9525 2775 4 0 -1 0 0 0 15 0.0000 4 150 690 3990 3892 Internet\001 4 0 -1 0 0 0 15 0.0000 4 150 405 1102 2850 local\001 4 0 -1 0 0 0 15 0.0000 4 195 750 3945 2827 maildrop\001 4 0 -1 0 0 0 15 0.0000 4 195 570 5545 2827 pickup\001 4 0 -1 0 0 0 15 0.0000 4 195 675 7122 3352 cleanup\001 4 0 -1 0 0 0 15 0.0000 4 150 630 7165 2325 rewrite\001 4 0 -1 0 0 0 15 0.0000 4 195 780 8580 3352 incoming\001 4 0 -1 0 0 0 15 0.0000 4 150 540 8710 4425 virtual\001 4 0 -1 0 0 0 15 0.0000 4 150 825 7055 4425 canonical\001 4 0 -1 0 0 0 15 0.0000 4 105 600 5500 4875 access\001 4 0 -1 0 0 0 15 0.0000 4 150 405 4147 4875 RBL\001 4 0 -1 0 0 0 15 0.0000 4 150 630 8685 2325 bounce\001 4 0 -1 0 0 0 15 0.0000 4 150 945 2347 2850 "sendmail"\001 4 0 -1 0 0 0 15 0.0000 4 195 525 5557 3877 smtpd\001 postfix/doc/goals.html100664 1751 146 11001 7017475560 14300 0ustar thivillowww Postfix Overview - Goals and Features

Postfix Overview - Goals and Features


Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security

Primary goals

The goal of the Postfix project is to implement a viable alternative to the UNIX Sendmail program. Specific goals, and the ways that Postfix attempts to achieve them are:
  • Wide dissemination. Postfix must be adopted by lots of people in order to make a significant impact on Internet mail performance and security. Therefore the software is given away for free, with no strings attached to it.

  • Performance. Postfix is up to three times as fast as its nearest competitor. A desktop PC running Postfix can receive and deliver a million different messages per day. Postfix uses web server tricks to reduce process creation overhead and uses other tricks to reduce file system overhead, without compromising reliability.

  • Compatibility. Postfix is designed to be sendmail-compatible to make migration easy. Postfix supports /var[/spool]/mail, /etc/aliases, NIS, and ~/.forward files. However, Postfix also attempts to be easy to administer, and therefore it does not use sendmail.cf.

  • Safety and robustness. Postfix is designed to behave rationally under stress. When the local system runs out of disk space or memory, the Postfix software backs off, instead of making the problem worse. By design, no Postfix program keeps growing as the number of messages etc. increases. Postfix is designed to stay in control.

  • Flexibility. Postfix is built from over a dozen little programs that each perform only one specific task: receive a message via SMTP, deliver a message via SMTP, deliver a message locally, rewrite an address, and so on. Sites with specific requirements can replace one or more little programs by alternative versions. And it is easy to disable functionality, too: firewalls and client workstations don't need local delivery at all.

  • Security. Postfix uses multiple layers of defense to protect the local system against intruders. Almost every Postfix daemon can run in a chroot jail with fixed low privileges. There is no direct path from the network to the security-sensitive local delivery programs - an intruder has to break through several other programs first. Postfix does not even trust the contents of its own queue files, or the contents of its own IPC messages. Postfix filters sender-provided information before exporting it via environment variables. Last but not least, no Postfix program is set-uid.

Other significant features of interest

  • Multiple transports. In the past the author has configured Sendmail systems that could relay between Internet, DECnet, X.400 and UUCP. Postfix is designed to be flexible enough that it can operate in such environments without requiring virtual domain or alias kludges. However, the initial release only talks SMTP, and has only limited support for UUCP.

  • Virtual domains. In the most common case, adding support for a virtual domain requires change to only a single Postfix lookup table. Other mailers usually need multiple levels of aliasing or redirection to achieve the same result.

  • UCE control. Postfix can restrict what hosts can relay their mail through a Postfix system, and supports restrictions on what mail is allowed to come in. Postfix implements the usual suspects: blacklists, RBL lookups, HELO/sender DNS lookups. Content filtering hasn't been implemented yet.

  • Table lookups. Postfix does not yet implement an address rewriting language. Instead it makes extensive use of table lookups. Tables can be local dbm or db files, or networked NIS or NetInfo maps. Adding support for other lookup mechanisms is relatively easy.

Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security postfix/doc/flow.fig100664 1751 146 11655 7017475560 13762 0ustar thivillowww#FIG 3.1 Landscape Center Inches 1200 2 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 3000 1725 600 300 2400 1425 3600 2025 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6000 1725 600 300 5400 1425 6600 2025 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6000 2775 600 300 5400 2475 6600 3075 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7650 2250 600 300 7050 1950 8250 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7650 3300 600 300 7050 3000 8250 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 4650 6900 600 300 4050 6600 5250 7200 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6300 6900 600 300 5700 6600 6900 7200 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6300 5850 600 300 5700 5550 6900 6150 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 6300 7950 600 300 5700 7650 6900 8250 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 2250 6900 2700 6900 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 3150 7200 3150 7650 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3600 6900 4050 6900 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 5250 6900 5700 6900 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 5025 6675 5925 6075 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4938 7142 5838 7742 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6900 5850 7350 5850 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6900 6900 7350 6900 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6900 7950 7350 7950 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 3 0 0 1.00 60.00 120.00 4650 7200 4650 7950 3600 7950 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 1125 5325 7125 5325 7125 8475 1125 8475 1125 5325 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 2250 5850 5700 5850 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6525 2625 7125 2400 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8250 2250 8700 2250 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8700 3300 8250 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6525 1875 7125 2100 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 7650 3000 7650 2550 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 5175 675 9825 675 9825 3825 5175 3825 5175 675 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 3 0 0 1.00 60.00 120.00 7650 1950 7650 1200 8700 1200 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3600 1725 4050 1725 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 1950 1725 2400 1725 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4950 1725 5400 1725 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4950 2775 5400 2775 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 1050 1425 1950 1425 1950 2025 1050 2025 1050 1425 2 2 0 1 -1 6 1 0 20 0.000 0 0 -1 0 0 5 4050 1425 4950 1425 4950 2025 4050 2025 4050 1425 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 4050 2475 4950 2475 4950 3075 4050 3075 4050 2475 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 8700 900 9600 900 9600 1500 8700 1500 8700 900 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 8700 1950 9600 1950 9600 2550 8700 2550 8700 1950 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 8700 3000 9600 3000 9600 3600 8700 3600 8700 3000 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 1350 5550 2250 5550 2250 6150 1350 6150 1350 5550 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 1350 6600 2250 6600 2250 7200 1350 7200 1350 6600 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 2700 6600 3600 6600 3600 7200 2700 7200 2700 6600 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 2700 7650 3600 7650 3600 8250 2700 8250 2700 7650 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 7387 7650 8287 7650 8287 8250 7387 8250 7387 7650 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 7350 6600 8250 6600 8250 7200 7350 7200 7350 6600 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 7350 5550 8250 5550 8250 6150 7350 6150 7350 5550 4 0 -1 0 0 0 15 0.0000 4 150 495 1252 1800 Local\001 4 0 -1 0 0 0 15 0.0000 4 150 795 2602 1800 Sendmail\001 4 0 -1 0 0 0 15 0.0000 4 195 780 4110 1777 Maildrop\001 4 0 -1 0 0 0 15 0.0000 4 150 690 4140 2842 Internet\001 4 0 -1 0 0 0 15 0.0000 4 195 585 5707 1777 Pickup\001 4 0 -1 0 0 0 15 0.0000 4 195 555 5722 2827 Smtpd\001 4 0 -1 0 0 0 15 0.0000 4 195 720 7290 2302 Cleanup\001 4 0 -1 0 0 0 15 0.0000 4 150 750 8775 1275 Forward\001 4 0 -1 0 0 0 15 0.0000 4 195 810 8745 2302 Incoming\001 4 0 -1 0 0 0 15 0.0000 4 150 660 7320 3375 Bounce\001 4 0 -1 0 0 0 15 0.0000 4 150 675 8812 3375 Internal\001 4 0 -1 0 0 0 15 0.0000 4 150 750 1425 5925 Forward\001 4 0 -1 0 0 0 15 0.0000 4 195 810 1395 6952 Incoming\001 4 0 -1 0 0 0 15 0.0000 4 150 585 2857 6975 Active\001 4 0 -1 0 0 0 15 0.0000 4 195 495 4402 6952 Qmgr\001 4 0 -1 0 0 0 15 0.0000 4 150 780 2760 8025 Deferred\001 4 0 -1 0 0 0 15 0.0000 4 195 450 6075 6952 Smtp\001 4 0 -1 0 0 0 15 0.0000 4 150 495 6052 5925 Local\001 4 0 -1 0 0 0 15 0.0000 4 195 375 6120 8002 Pipe\001 4 0 -1 0 0 0 15 0.0000 4 150 930 7372 8025 UUCP etc.\001 4 0 -1 0 0 0 15 0.0000 4 150 690 7455 6975 Internet\001 4 0 -1 0 0 0 15 0.0000 4 150 705 7447 5925 Mailbox\001 postfix/doc/faq.html100664 1751 146 57614 7017475562 13770 0ustar thivillowww Postfix Frequently Asked Questions

Postfix Frequently Asked Questions


Up one level | Postfix FAQ

Table of contents


Running Postfix inside an intranet

The simplest way to set up Postfix on a host inside a firewalled network is to send all your mail to the intranet mail gateway, and to let that gateway take care of forwarding.

  • Edit the main.cf file and specify:

    relayhost = $mydomain

    This assumes that your organization has set up multiple internal MX hosts for the local domain.

    If your intranet does not use MX records internally, you have to specify the gateway host itself:

    relayhost = gateway.my.domain

  • If you want to deliver internal mail directly without going through the intranet mail gateway, there are two possibilities.

    1. Specify the intranet mail gateway as the fall-back relay for all mail with an unknown or unreachable destination:

      main.cf:
      fallback_relay = $mydomain

      This assumes that your organization has set up multiple internal MX hosts for the local domain.

      If your intranet does not use MX records internally, you have to specify the gateway host itself:

      main.cf:
      fallback_relay = gateway.my.domain

    2. Specify routing information for the local domain in the transport table, and enable transport table lookups.

      main.cf:
      transport_maps = hash:/etc/postfix/transport

      /etc/postfix/transport:
      my.domain   smtp:
      .my.domain   smtp:

      Specify dbm:/etc/postfix/transport if your system uses dbm files instead of db.

  • Execute the command postfix reload to make the changes effective.

Running Postfix on a firewall

Note: this section depends on accidental properties of the implementation so this information is subject to change.

How to set up Postfix on the firewall machine so that it relays mail for my.domain to a gateway machine on the inside, and so that it refuses mail for *.my.domain? The problem is that the standard relay_domains mail relaying restriction allows mail to *.my.domain when you specify my.domain.

  • Specify a null relay_domains parameter plus a virtual table to route mail for my.domain to the inside machine:

    /etc/postfix/main.cf:
    mydestination = $myhostname, my.domain, localhost.my.domain
    relay_domains =
    virtual_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
    @my.domain   @inside-gateway.my.domain

    Specify dbm:/etc/postfix/virtual if your system uses dbm files instead of db.

  • Execute the command postfix reload after a configuration change.

Unfortunately, the solution cannot use the transport table, because that table is ignored for destinations that match $mydestination. That's an implementation error, and it will be removed.


Running Postfix on a dialup machine

  • Route all outgoing mail to your provider.

    If your machine is disconnected most of the time, there isn't a lot of opportunity for Postfix to deliver mail to hard-to-reach corners of the Internet. It's better to drop the mail to a machine that is connected all the time.

    /etc/postfix/main.cf:
    relayhost = smtprelay.someprovider.com

  • Disable spontaneous SMTP mail delivery.

    Normally, Postfix attempts to deliver outbound mail at its convenience. If your machine uses on-demand dialup IP, this causes your system to place a telephone call whenever you submit new mail, and whenever Postfix retries to deliver delayed mail. To prevent such telephone calls from being placed, disable spontaneous SMTP mail deliveries.

    /etc/postfix/main.cf:
    defer_transports = smtp (Only for systems that use on-demand dialup IP)

  • Disable SMTP client DNS lookups.

    Some people use Postfix to deliver mail across a LAN that is disconnected most of the time. Under such conditions, mail delivery can suffer from delays while the Postfix SMTP client performs sender and recipient domain DNS lookups in order to be standards-compliant. To prevent these delays, disable all SMTP client DNS lookups.

    /etc/postfix/main.cf:
    disable_dns_lookups = yes (Only for delivery across LANs that are disconnected most of the time)

    When you disable DNS lookups, you must specify the relayhost as either a numeric IP address, or as a hostname that resolves to one or more IP addresses (with DNS lookup disabled, Postfix does no MX lookup).

  • Flush the mail queue whenever the Internet link is established.

    Put the following command into your PPP or SLIP dialup scripts:

    /usr/sbin/sendmail -q (whenever the Internet link is up)

    The exact location of the sendmail command is system-specific. With some UNIX versions, use /usr/lib/sendmail. If you have disabled spontaneous SMTP mail delivery, you also need to run the above command every now and then while the dialup link is up, so that newly-posted mail is flushed from the queue.


Delivering some users locally while sending mail as user@domain

  • In order to send mail as user@domain, edit /etc/postfix/main.cf and specify what domain is to be appended to addresses that do not have a domain:

    myorigin = domain

  • In order to receive some users locally, such as root or postmaster,

    • edit /etc/postfix/main.cf and specify a virtual lookup table:

      virtual_maps = hash:/etc/postfix/virtual

    • edit /etc/postfix/virtual and specify non-default destinations:

      root   root@localhost
      postmaster   postmaster@localhost

  • Execute the command postmap /etc/postfix/virtual to update the table, and postfix reload to make the changes effective.

Address masquerading with exceptions

For people outside your organization it can be desirable to only see addresses of the form user@company.com rather than addresses with individual internal host names. This can be achieved with address masquerading.

Address masquerading is intended for use only on mail gateways.

  • In order to have all mail through the gateway host appear as coming from user@my.domain, edit /etc/postfix/main.cf and specify:

    masquerade_domains = $mydomain

    Note that the gateway should have append_dot_domain and append_myorigin turned on (which is the default setting) so that all addresses are fully qualified before they are subjected to address masquerading.

In some cases, you may wish to have certain users or hosts exempted from masquerading.

  • To exempt certain users from masquerading, such as root, add:

    masquerade_exceptions = root

  • To exempt certain hosts from masquerading, write masquerade_domains as:

    masquerade_domains = somehost.my.domain otherhost.my.domain $mydomain

    Note that the order above is crucial: exemptions such as somehost.my.domain must precede $mydomain in the statement.

    It should go without saying that if a particular host you wish to exempt this way is originating mail as user@my.domain in the first place, you can hardly exempt it.

As usual, execute the command postfix reload to make the changes effective.


Support for virus scanning

Would not it be great if operating systems and applications actually worked the way they are supposed to, instead of being as fragile as today's products? Well, we can solve only one problem at a time.

Currently, Postfix has no hooks to let other programs inspect every message, so the scanning has to be done before mail enters Postfix or while mail leaves Postfix, for example at mailbox delivery time.

Examples:
mailbox_command = /some/program ...
specifies a command that runs whenever mail is delivered to mailbox. See the sample main.cf file for examples. In /etc/aliases, you must specify an alias for root that directs mail to a real person, otherwise funny things happen with mail sent to root.

mailbox_transport = foo
delegates local mailbox delivery to the transport foo as configured in /etc/postfix/master.cf. If you follow this route you will build something around the pipe mailer. See examples in master.cf.

Support for maildir-style mailboxes

Maildir is a specific one-file-per-message organization that was introduced with the qmail system by Daniel Bernstein.

Postfix supports the maildir mailbox format. Edit main.cf and specify a line with: home_mailbox = Maildir/ (any relative pathname that ends in / will do).

The maildir format is also supported for delivery from aliases or .forward files. Specify /file/name/ as destination. The trailing / turns on maildir delivery.


Using Procmail for local delivery

  • Edit /etc/postfix/main.cf, and specify procmail as the command for mailbox delivery:

    mailbox_command = /path/to/procmail

    mailbox_command = /path/to/procmail   -a   "$EXTENSION"

    If you can, avoid using any shell meta characters or built-ins such as $ or " or IFS or &&, because they force Postfix to run an expensive shell process.

  • Execute the command postfix reload to make the changes effective.
Postfix exports information via environment variables. The contents are censored. Any characters that may have special meaning to the shell are replaced by underscores.

DOMAIN
The text to the right-hand side of the @ in the recipient address.
EXTENSION
Optional address extension part.
HOME
The recipient's home directory.
LOCAL
The text to the left-hand side of the @ in the recipient address, for example, $USER+$EXTENSION.
LOGNAME
The recipient username.
RECIPIENT
The entire recipient address, $LOCAL@$DOMAIN.
SHELL
The recipient's login shell.
USER
The recipient username.

Postfix breaks "sendmail -v"

Some people will complain that sendmail -v no longer shows the actual mail delivery.

With a distributed mail system such as Postfix, this is difficult to implement. Postfix does not run any mail delivery process under control by a user. Instead, mail delivery is done by daemon processes that have no parental relationship with user processes. This eliminates a large variety of potential security exploits with environment variables, signal handlers, and with other process attributes that UNIX passes on from parent to child.

In addition, Postfix uses multiple processes in order to insulate subsystems from each other. Making the delivery agents talk directly to user processes would defeat a lot of the effort that went into making Postfix more secure than ordinary mailers.


Getting rid of Delivered-To:

Some people will complain about the ugly Delivered-To: message header that Postfix prepends to their mail. By default, Postfix prepends this header when forwarding mail, and when delivering to file (mailbox) or command. The purpose is to stop mail forwarding loops as early as possible, that is, before they have a chance to happen. But the header is ugly, no question about it.

Solutions, ranging from fighting symptoms to turning off the Delivered-To: header:

  • Fortunately, many mail user agents have per-user or even system-wide configuration files that can be set up to suppress specific message headers (for example ~/.mailrc and /usr/lib/Mail.rc).

  • With mailing lists, Delivered-To: can get in the way when the list exploder uses a "secret" alias that should not be shown in outbound mail. The recommended solution is to use a regular expression-based filter at the SMTP port:

    /etc/postfix/main.cf:
    smtpd_recipient_restrictions = ... regexp:/etc/postfix/access_regexp ...
    smtpd_recipient_restrictions = ... pcre:/etc/postfix/access_regexp ...

    /etc/postfix/access_regexp:
    /^(.*)-outgoing@(.*)/ 554 Use $1@$2 instead

    POSIX regular expression support (regexp) is enabled by default on modern UNIX systems. Perl-compatible regular expression support (pcre) is optional; see the PCRE_README file in the top-level Postfix source directory.

  • The prepend_delivered_header configuration parameter controls when Delivered-To: is prepended. The default setting is command, file, forward. Turning off Delivered-To: when forwarding mail is not recommended.

See also the FAQ item for problems with the majordomo approve command.


Postfix breaks the majordomo "approve" command

The Postfix local delivery agent prepends a Delivered-To: message header to prevent mail forwarding loops. With majordomo mailing lists, Delivered-To: gets in the way when the moderator wants to approve postings that were sent to the list. The Postfix system claims that the mail is looping.

Currently, the workaround is to edit the approve script to strip any header lines that match:

/delivered-to/i

Yes, this assumes that the moderator knows what she is doing.


Setting up an Internet to UUCP gateway

Here is how to set up a machine that sends some but not all mail via UUCP. See the UUCP-only FAQ entry for setting a UUCP-only host.

  • Make an entry in /etc/postfix/transport:

    some.domain   uucp:uucp-host

    This causes all mail for the some.domain (and subdomains thereof) to be sent via UUCP to the host uucp-host.

  • Execute the command postmap /etc/postfix/transport whenever you change the transport file.

  • You need an entry in /etc/postfix/master.cf:
        uucp      unix  -       n       n       -       -       pipe
          flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
    

    This runs the uux command, and substitutes the next-hop hostname (uucp-host) and the recipients before executing the command. The uux command is executed without assistance from the shell, so there are no problems with shell meta characters.

  • Edit /etc/postfix/main.cf and enable transport table lookups:

    transport_maps = hash:/etc/postfix/transport

    Specify dbm instead of hash if your system has no db support.

  • Edit /etc/postfix/main.cf and add some.domain to the list of domains that your site is willing to relay mail for. See the relay_domains configuration parameter.

  • Execute the command postfix reload to make the changes effective.

Using UUCP as the default transport

Here is how to relay all your mail over a UUCP link. See the Internet to UUCP FAQ entry for setting up a machine that gateways between UUCP and SMTP.

  • There is no need for a transport table.

  • In /etc/postfix/main.cf, specify the name of your UUCP gateway host, and specify that all mail must be sent via the uucp message transport:

    relayhost = uucp-gateway
    default_transport = uucp

  • You need an entry in /etc/postfix/master.cf:
        uucp      unix  -       n       n       -       -       pipe
          flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
    
    This runs the uux command, and substitutes the next-hop hostname (uucp-gateway, or whatever you specified) and the recipients before executing the command. The uux command is executed without assistance from the shell, so there are no problems with shell meta characters.

  • Execute the command postfix reload to make the changes effective.

Sending mail to a FAX machine

The following information is by Joerg Henne:

Over here we are using the scheme @fax.our.domain with Postfix and HylaFax. Here's the setup used:

In master.cf:

    fax       unix  -       n       n       -       -       pipe
	flags= user=fax argv=/usr/bin/faxmail -d -n ${user}

In the transports map:

    fax.your.domain   fax:localhost

Note: be sure to not advertise fax.your.domain in the DNS...


Mail fails with timeout or lost connection

Occasionally, mail fails with "timed out while sending end of data -- message may be sent more than once", or with: "lost connection after DATA". Network outages happen, systems crash. There isn't much you can do about it.

However, when you see mail deliveries fail consistently, you may have a different problem: broken path MTU discovery.

A little background is in order. With the SMTP protocol, the HELO, MAIL FROM and RCPT TO commands and responses are relatively short. When you're talking to sendmail, every command and every response is sent as a separate packet, because sendmail cannot implement ESMTP command pipelining.

The message content, however, is sent as a few datagrams, each datagram typically a kbyte large or even bigger, depending on your local network MTU.

When mail fails consistently due to a timeout, I suspect that the sending machine runs a modern UNIX which implements path MTU discovery. That causes the machine to send packets as large as it would send over the LAN, with the IP DONT'T FRAGMENT bit set, preventing intermediate routers from fragmenting the packets that are too big for their networks.

Depending on what network path a message follows, some router on the way responds with an ICMP MUST FRAGMENT message saying the packet is too big. Normally, the sending machine will re-send the data after chopping it up into smaller pieces.

However, things break when some router closer to the sending system is dropping such ICMP feedback messages, in a mistaken attempt to protect systems against certain attacks. In that case, the ICMP feedback message never reaches the sending machine, and the connection times out.

This is the same configuration problem that causes trouble with web servers behind a misconfigured packet filter: small images/files are sent intact, large images/files time out because the server does not see the MUST FRAGMENT ICMP feedback messages.

Workaround: disable path MTU discovery at the sending machine. Mail will get out, but of course everyone else will still suffer. How to disable path MTU discovery? It depends. Solaris has an ndd command; other systems use different means such as sysctl to control kernel parameters on a running system.

Fix: find the router that drops the ICMP MUST FRAGMENT messages, and convince the person responsible for it to fix the configuration.


Undefined symbols: ___dn_expand, ___res_init etc.

Question: When I build Postfix I get the following errors:

    ld: Undefined symbol
       ___dn_expand
       ___res_init
       ___res_search
    *** Error code 1

Answer: you're mixing BIND version 8 include files with a different version of the resolver library.

Fix: use the right include files. For example:

    make makefiles CCARGS="-I/usr/include".

Using DB libraries on Solaris etc.

The old dbm UNIX database has severe limitations when you try to store lots of information. It breaks when the number of hash collisions becomes so large that the entries no longer fit together in a single disk block. The more modern db database does not suffer these limitations. It is standard on 4.4BSD and Linux systems.

In order to build Postfix with db support on UNIX systems that do not have db support out of the box, you need the db-1.85 release, or the current version which has a db-1.85 compatible interface.

Use the following commands in the Postfix top-level directory. The LD_LIBRARY_PATH unset commands may be required to avoid linking in the wrong libraries.

% LD_LIBRARY_PATH=   (Bourne-shell syntax)
% unsetenv LD_LIBRARY_PATH   (C-shell syntax)
% make tidy
% make makefiles CCARGS="-DHAS_DB -DPATH_DB_H='<db_185.h>' -I/some/where/include" AUXLIBS=/some/where/libdb.a
% make

Of course you will have to specify the actual location of the include directory and of the object library.

One problem: older DB versions install a file /usr/include/ndbm.h that is incompatible with the one in /usr/include. Be sure to get rid of the bogus file, or the linker will fail to find dbm_dirfno.


Up one level | Postfix FAQ postfix/doc/error.8.html100664 1751 146 5676 7017475562 14501 0ustar thivillowww



ERROR(8)                                                 ERROR(8)


NAME
       error - Postfix error mailer

SYNOPSIS
       error [generic Postfix daemon options]

DESCRIPTION
       The   Postfix  error  mailer  processes  message  delivery
       requests from the queue manager. Each request specifies  a
       queue  file,  a sender address, a domain or host name that
       is treated as the reason for non-delivery,  and  recipient
       information.  This program expects to be run from the mas-
       ter(8) process manager.

       The error mailer client forces all recipients  to  bounce,
       using  the  domain  or  host information as the reason for
       non-delivery, updates the queue file and marks  recipients
       as finished, or it informs the queue manager that delivery
       should be tried again at a later time.

       Delivery problem reports are  sent  to  the  bounce(8)  or
       defer(8) daemon as appropriate.

SECURITY
       The  error  mailer  is not security-sensitive. It does not
       talk to the network, and can be run chrooted at fixed  low
       privilege.

STANDARDS
       None.

DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

       Depending  on the setting of the notify_classes parameter,
       the postmaster is notified of bounces and of  other  trou-
       ble.

BUGS
CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

Miscellaneous
       bounce_notice_recipient
              Postmaster for bounce error notices.

       notify_classes
              When this parameter includes the bounce class, send
              mail to the postmaster with with the headers of the
              bounced mail.




                                                                1





ERROR(8)                                                 ERROR(8)


SEE ALSO
       bounce(8) non-delivery status reports
       master(8) process manager
       qmgr(8) queue manager
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA










































                                                                2


postfix/doc/delivering.html100664 1751 146 10535 7017475562 15340 0ustar thivillowww Postfix Anatomy - Delivering Mail

Postfix Anatomy - Delivering Mail


Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities

Once a message has reached the incoming queue the next step is to deliver it. The figure shows the main components of the Postfix mail delivery apparatus. For an explanation of the symbols, click on the icon in the upper left-hand corner of this page.

  • The queue manager is the heart of the Postfix mail system. It contacts the local, smtp, or pipe delivery agents, and sends a delivery request with queue file pathname information, the message sender address, the host to deliver to if the destination is remote, and one or more message recipient addresses.

    The queue manager maintains a separate deferred queue for mail that cannot be delivered, so that a large mail backlog will not slow down normal queue accesses.

    The queue manager maintains a small active queue with just the few messages that it has opened for delivery. The active queue acts as a limited window on the potentially much larger incoming or deferred queues. The small active queue prevents the queue manager from running out of memory under heavy load.

    Optionally, the queue manager bounces mail for recipients that are listed in the relocated table. This table contains contact information for users or even entire domains that no longer exist.

  • On request by the queue manager, the trivial-rewrite daemon resolves destinations. By default, it only distinguishes between local and remote destinations. Additional routing information can be specified with the optional transport table.

  • On request by the queue manager, the bounce or defer daemon generates non-delivery reports when mail cannot be delivered, either due to an unrecoverable error or because the destination is unreachable for an extended period of time.

  • The local delivery agent understands UNIX-style mailboxes, sendmail-style system-wide alias databases, and sendmail-style per-user .forward files. Multiple local delivery agents can be run in parallel, but parallel delivery to the same user is usually limited.

    Together with the sendmail mail posting agent, the local delivery agent implements the familiar Sendmail user interface.

    The local delivery agent has hooks for alternative forms of local delivery: you can configure it to deliver to mailbox files in user home directories, and you can even configure it to delegate mailbox delivery to an external command such as the popular procmail program.

  • The SMTP client looks up a list of mail exchangers for the destination host, sorts the list by preference, and tries each address in turn until it finds a server that responds. On a busy Postfix system you will see several SMTP client processes running in parallel.

  • The pipe mailer is the outbound interface to other mail transports (the sendmail program is the inbound interface). The Postfix mail system comes with examples for delivery via the UUCP protocol. At the time of writing, this venerable protocol is still widely used. By default, Postfix understands bang path style addresses.

Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities postfix/doc/defer.8.html100664 1751 146 7372 7017475562 14430 0ustar thivillowww



BOUNCE(8)                                               BOUNCE(8)


NAME
       bounce - Postfix message bounce or defer daemon

SYNOPSIS
       bounce [generic Postfix daemon options]

DESCRIPTION
       The  bounce  daemon  maintains  per-message log files with
       non-delivery status information. Each log  file  is  named
       after  the  queue file that it corresponds to, and is kept
       in a queue subdirectory named after the  service  name  in
       the master.cf file (either bounce or defer).  This program
       expects to be run from the master(8) process manager.

       The bounce daemon processes two types of service requests:

       o      Append  a  recipient status record to a per-message
              log file.

       o      Post a bounce message, with a copy of  a  log  file
              and  of  the corresponding message. When the bounce
              is posted successfully, the log file is deleted.

       The software does a best effort to notify the sender  that
       there  was a problem. A notification is sent even when the
       log file or original message cannot be read.

       Optionally, a client can request that the per-message  log
       file  be deleted when the requested operation fails.  This
       is used by clients that cannot retry transactions by them-
       selves,  and  that  depend  on  retry  logic  in their own
       client.

STANDARDS
       RFC 822 (ARPA Internet Text Messages)

DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

BUGS
       The log files use an  ad-hoc,  unstructured  format.  This
       will  have  to  change in order to easily support standard
       delivery status notifications.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

       bounce_notice_recipient
              The  recipient of single bounce postmaster notices.





                                                                1





BOUNCE(8)                                               BOUNCE(8)


       2bounce_notice_recipient
              The recipient of double bounce postmaster  notices.

       delay_notice_recipient
              The recipient of "delayed mail" postmaster notices.

       bounce_size_limit
              Limit the amount of original message  context  that
              is sent in a non-delivery notification.

       mail_name
              Use  this mail system name in the introductory text
              at the start of a bounce message.

       notify_classes
              Notify the postmaster of  bounced  mail  when  this
              parameter  includes  the  bounce class. For privacy
              reasons, the message body is not included.

SEE ALSO
       master(8) process manager
       qmgr(8) queue manager
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA
























                                                                2


postfix/doc/commands.html100664 1751 146 6420 7017475562 14767 0ustar thivillowww Postfix Anatomy - Command-line Utilities

Postfix Anatomy - Command-line Utilities


Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities

Enough daemon talk. The anatomy lesson ends with an introduction to command-line utilities for day-to-day use of the Postfix mail system. Besides the sendmail, mailq, and newaliases commands that were already introduced, the Postfix system comes with it own collection of utilities. For consistency, these are all named postsomething.

  • The postfix command controls the operation of the mail system. It is the interface for starting and stopping the mail system, and for some other administrative operations. This command is reserved to the super-user.

  • The postalias command maintains Postfix alias databases. This is the program behind the newaliases command.

  • The postcat command displays the contents of Postfix queue files. This is a limited, preliminary utility. This program is likely to be superseded by something more powerful that can also edit Postfix queue files.

  • The postconf command displays Postfix main.cf parameters: actual values, default values, or parameters that have non-default settings. This is a limited, preliminary utility. This program is likely to be superseded by something more powerful that can not only list but also edit the main.cf file.

  • The postdrop command is the mail posting agent that is run by the sendmail command on systems that have no world-writable maildrop queue directory.

  • The postkick command makes some internal communication channels available for use in, for example, shell scripts.

  • The postlock command provides Postfix-compatible mailbox locking for use in, for example, shell scripts.

  • The postlog command provides Postfix-compatible logging for shell scripts.

  • The postmap command maintains Postfix lookup tables such as canonical, virtual and others. It is a cousin of the UNIX makemap command.

  • The postsuper command maintains the Postfix queue. It removes old temporary files, and moves queue files into the right directory after a change in the hashing depth of queue directories. This command is run at mail system startup time.

Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities postfix/doc/cleanup.8.html100664 1751 146 13750 7017475562 15007 0ustar thivillowww



CLEANUP(8)                                             CLEANUP(8)


NAME
       cleanup - canonicalize and enqueue Postfix message

SYNOPSIS
       cleanup [generic Postfix daemon options]

DESCRIPTION
       The cleanup daemon processes inbound mail, inserts it into
       the incoming mail queue, and informs the queue manager  of
       its arrival.

       The cleanup daemon always performs the following transfor-
       mations:

       o      Insert missing message  headers:  (Resent-)  From:,
              Message-Id:, and Date:.

       o      Extract envelope recipient addresses from (Resent-)
              To:, Cc: and Bcc: message headers when  no  recipi-
              ents are specified in the message envelope.

       o      Transform  envelope  and  header  addresses  to the
              standard user@fully-qualified-domain form  that  is
              expected  by  other Postfix programs.  This task is
              delegated to the trivial-rewrite(8) daemon.

       o      Eliminate duplicate envelope recipient addresses.

       The following address transformations are optional:

       o      Optionally,  rewrite  all   envelope   and   header
              addresses  according  to  the mappings specified in
              the canonical(5) lookup tables.

       o      Optionally, masquerade  envelope  sender  addresses
              and  message  header  addresses (i.e. strip host or
              domain information below all domains listed in  the
              masquerade_domains parameter, except for user names
              listed  in  masquerade_exceptions).   Address  mas-
              querading does not affect envelope recipients.

       o      Optionally, expand envelope recipients according to
              information found in the virtual(5) lookup  tables.

       The  cleanup  daemon performs sanity checks on the content
       of each message. When it finds a problem,  by  default  it
       returns  a  diagnostic status to the client, and leaves it
       up to the client to deal with the problem.  Alternatively,
       the  client  can  request the cleanup daemon to bounce the
       message back to the sender in case of trouble.

STANDARDS
       RFC 822 (ARPA Internet Text Messages)




                                                                1





CLEANUP(8)                                             CLEANUP(8)


DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

BUGS
       Table-driven rewriting rules make it hard  to  express  if
       then else and other logical relationships.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

Miscellaneous
       always_bcc
              Address to send a copy of each message that  enters
              the system.

       hopcount_limit
              Limit the number of Received: message headers.

Address transformations
       empty_address_recipient
              The  destination  for  undeliverable  mail from <>.
              This substitution is done before all other  address
              rewriting.

       canonical_maps
              Address mapping lookup table for sender and recipi-
              ent addresses in envelopes and headers.

       recipient_canonical_maps
              Address  mapping  lookup  table  for  envelope  and
              header recipient addresses.

       sender_canonical_maps
              Address  mapping  lookup  table  for  envelope  and
              header sender addresses.

       masquerade_domains
              List of domains that hide  their  subdomain  struc-
              ture.

       masquerade_exceptions
              List  of user names that are not subject to address
              masquerading.

       virtual_maps
              Address mapping lookup table for envelope recipient
              addresses.

Resource controls
       duplicate_filter_limit
              Limit  the  number  of envelope recipients that are



                                                                2





CLEANUP(8)                                             CLEANUP(8)


              remembered.

       header_size_limit
              Limit the amount of memory in bytes used to process
              a message header.

SEE ALSO
       canonical(5) canonical address lookup table format
       qmgr(8) queue manager daemon
       syslogd(8) system logging
       trivial-rewrite(8) address rewriting
       virtual(5) virtual address lookup table format

FILES
       /etc/postfix/canonical*, canonical mapping table
       /etc/postfix/virtual*, virtual mapping table

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA































                                                                3


postfix/doc/canonical.5.html100664 1751 146 14164 7017475562 15304 0ustar thivillowww



CANONICAL(5)                                         CANONICAL(5)


NAME
       canonical - format of Postfix canonical table

SYNOPSIS
       postmap /etc/postfix/canonical

DESCRIPTION
       The  optional  canonical file specifies an address mapping
       for local and non-local addresses. The mapping is used  by
       the  cleanup(8) daemon.  The address mapping is recursive.

       The file serves as input to the  postmap(1)  command.  The
       result,  an  indexed file in dbm or db format, is used for
       fast searching by the mail system. After an update it  may
       take  a  minute  or  so before the change becomes visible.
       Issue a postfix reload command to eliminate the delay.

       The  canonical  mapping  affects   both   message   header
       addresses (i.e. addresses that appear inside messages) and
       message envelope addresses  (for  example,  the  addresses
       that  are  used in SMTP protocol commands). Think Sendmail
       rule set S3, if you like.

       Typically, one would use the canonical  table  to  replace
       login   names   by  Firstname.Lastname,  or  to  clean  up
       addresses produced by legacy mail systems.

       The canonical mapping is not to be confused  with  virtual
       domain support. Use the virtual(5) map for that purpose.

       The  canonical  mapping  is  not to be confused with local
       aliasing.  Use the aliases(5) map for that purpose.

       The format of the canonical table is as follows,  mappings
       being tried in the order as listed in this manual page:

       blanks and comments
              Blank  lines  are  ignored,  as are lines beginning
              with `#'.

       user@domain address
              user@domain is replaced by address. This  form  has
              the highest precedence.

              This  form useful to clean up addresses produced by
              legacy mail systems.  It can also be used  to  pro-
              duce  Firstname.Lastname  style  addresses, but see
              below for a simpler solution.

       user address
              user@site is replaced by address when site is equal
              to  $myorigin,  when  site is listed in $mydestina-
              tion, or when it is listed in $inet_interfaces.




                                                                1





CANONICAL(5)                                         CANONICAL(5)


              This form is useful for replacing  login  names  by
              Firstname.Lastname.

       @domain address
              Every  address  in  domain  is replaced by address.
              This form has the lowest precedence.

       In all the above forms, when address has the form  @other-
       domain, the result is the same user in otherdomain.

ADDRESS EXTENSION
       When  table  lookup  fails, and the address localpart con-
       tains   the   optional    recipient    delimiter    (e.g.,
       user+foo@domain),  the  search  is  repeated for the unex-
       tended address  (e.g.   user@domain),  and  the  unmatched
       extension is propagated to the result of table lookup. The
       matching order is: user+foo@domain, user@domain, user+foo,
       user, and @domain.

BUGS
       The  table format does not understand quoting conventions.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  topic.  See  the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

       canonical_maps
              List of canonical mapping tables.

       recipient_canonical_maps
              Address  mapping  lookup  table  for  envelope  and
              header recipient addresses.

       sender_canonical_maps
              Address  mapping  lookup  table  for  envelope  and
              header sender addresses.

       Other parameters of interest:

       inet_interfaces
              The  network  interface  addresses that this system
              receives mail on.

       masquerade_domains
              List of domains that hide  their  subdomain  struc-
              ture.

       masquerade_exceptions
              List  of user names that are not subject to address
              masquerading.





                                                                2





CANONICAL(5)                                         CANONICAL(5)


       mydestination
              List of domains that  this  mail  system  considers
              local.

       myorigin
              The domain that is appended to locally-posted mail.

       owner_request_special
              Give special treatment to owner-xxx and xxx-request
              addresses.

SEE ALSO
       cleanup(8) canonicalize and enqueue mail
       postmap(1) create mapping table
       virtual(5) virtual domain mapping

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA
































                                                                3


postfix/doc/bounce.8.html100664 1751 146 7372 7017475562 14616 0ustar thivillowww



BOUNCE(8)                                               BOUNCE(8)


NAME
       bounce - Postfix message bounce or defer daemon

SYNOPSIS
       bounce [generic Postfix daemon options]

DESCRIPTION
       The  bounce  daemon  maintains  per-message log files with
       non-delivery status information. Each log  file  is  named
       after  the  queue file that it corresponds to, and is kept
       in a queue subdirectory named after the  service  name  in
       the master.cf file (either bounce or defer).  This program
       expects to be run from the master(8) process manager.

       The bounce daemon processes two types of service requests:

       o      Append  a  recipient status record to a per-message
              log file.

       o      Post a bounce message, with a copy of  a  log  file
              and  of  the corresponding message. When the bounce
              is posted successfully, the log file is deleted.

       The software does a best effort to notify the sender  that
       there  was a problem. A notification is sent even when the
       log file or original message cannot be read.

       Optionally, a client can request that the per-message  log
       file  be deleted when the requested operation fails.  This
       is used by clients that cannot retry transactions by them-
       selves,  and  that  depend  on  retry  logic  in their own
       client.

STANDARDS
       RFC 822 (ARPA Internet Text Messages)

DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

BUGS
       The log files use an  ad-hoc,  unstructured  format.  This
       will  have  to  change in order to easily support standard
       delivery status notifications.

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  program. See the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

       bounce_notice_recipient
              The  recipient of single bounce postmaster notices.





                                                                1





BOUNCE(8)                                               BOUNCE(8)


       2bounce_notice_recipient
              The recipient of double bounce postmaster  notices.

       delay_notice_recipient
              The recipient of "delayed mail" postmaster notices.

       bounce_size_limit
              Limit the amount of original message  context  that
              is sent in a non-delivery notification.

       mail_name
              Use  this mail system name in the introductory text
              at the start of a bounce message.

       notify_classes
              Notify the postmaster of  bounced  mail  when  this
              parameter  includes  the  bounce class. For privacy
              reasons, the message body is not included.

SEE ALSO
       master(8) process manager
       qmgr(8) queue manager
       syslogd(8) system logging

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA
























                                                                2


postfix/doc/big-picture.html100664 1751 146 3303 7017475562 15375 0ustar thivillowww Postfix - the Big Picture

Postfix - the Big Picture


The figure shows the main Postfix system components, and the main information flows between them. Postfix system components are introduced in the Postfix anatomy documentation.

  • Yellow ellipsoids are mail programs.
  • Yellow boxes are mail queues or files.
  • Blue boxes are lookup tables.
  • Programs in the large box run under control by the Postfix resident master daemon.
  • Data in the large box is property of the Postfix mail system.
In order to keep the big picture readable the following elements were omitted:

  • The Postfix command-line utilities.
  • The Postfix resident master daemon.
  • The DNS lookups by the SMTP server and client daemons
  • The bounce or defer daemon and the flow of bounced mail.
  • The address rewriting and resolving requests by the SMTP server and by the local delivery agent.
  • The flow of mail forwarded by the local delivery agent.
  • The flow of postmaster notices for protocol errors, policy violations, etc.
  • Triggers to alert the pickup daemon and queue manager that new mail has arrived in the maildrop and incoming queues, respectively.

postfix/doc/big-picture.gif100664 1751 146 14275 7017475563 15231 0ustar thivillowwwGIF89a* !,* ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy Zj*Jz: ;{"K{e˻ +\@l܃-=\m}.>>Zn /G_|o?ъ-@#_ 1ĉ+Z!9;zǑ$36\񤲇%[rL˙CS"L.v3O2δI(Ρ?S0mҒOH:iX=VJ+W\hi"m+=@D xW.HaV-< 8;Xe%ns]˗-fN mgXoKtkoΦu`]t7˧ -Wյ笳y <$R@:*1Cg;3=L9!!# J|fU DKDƇA` BXpĠzQB|M?NpU WHC*̡fq Q-F! yD%D4C,vqءx5x8SHr'Lqf x:jx@%r | d=SHC)QE DId${HI/e%9)B ,d>IR SX zn+$WK"OxKt#̤3`J'Tã\)/LU2S| ӗҤng'5HwiQfq)~VS #5"{1T@9l0 CShE/;$<FE>nr*&jQΐ3-H?:C!h0Ӓ5=D}T&C/RԨ25 });ȥjU>iVurT/j  kOmՒ1(V%^g%k\ԜDZjؾ !m LĮSoPjVϺ {,dصb},Q#+ٮt-iQ{Wթ(ug]UKUmiKѷ֔ *Sv'}*8)Б&4r1XCHw])X M6.{9[R:{]ٔUk9󢷿'ɮo%}K?8 /Z%EC 9a#%)~؍zTIZc7ƨ;;aCf_ bxrocpұ=Xªd(^56 s{yx \ '7 <3fyqgjatn|;5M)<z9~{WF3IJ5q<ff5W.RllPh~2}YZ PG_[R6!@f2\F2ΦMmJWis߂gnIule tДC]8pJέN[񆚽m6ql>Y{ڵr=aKnT Wd 8,o pBڞUM9Gʝ1鑘ٶ6=KfT5mznj욖4][oVxaH6-+_Wp%u5 8 (Ovna{Z]-~}|b!Ͳ }xlÙz7<`+KL\񘧼] K7^V<9[O=g=sqJ#MO|ս`&EJ]Js:xs?V ^UW7~a|HXȘziN׎XD:8j>fV3Gl!(E%W좊85 y]z@BghƐ+ihgǒ%mʆhxhK94]fn)i4ɆI8ib->!'@UF<Ɉoj`Eih ɔP%fEED MS9Wp!OIKROH`\XQhy<ĵs[ t`i )r@peifyWEvl^ezZ]8VT&OEyT$ovuC9e})e]w}\ՙ]ɀ_&iPXW%}yP y@9hfuyzvuliwW>Y}(y♖5Roygxnwh~zg)*Y)rf He\PUoVW9|qf0hG}iz3dzgY#lgzrX}wDžZĆ:&]0YYiך_i|Dh8٘ㅝ~gE\Q~ɠw7RxȥR? RJYIȥVQ8eU4f lqcULqJzVdJ~2jmM)$W#=v.xIMzا_)z]ad bʚ9sY cIO~{t *kő' Z/(cH~[sIƪ3:ʪT$^vNؖZB6@z9D8Zڪ˚ꑼbeX}3dFۨt_u  ʝ+fnb:8غ_a۱7Y 4۲,{JhZu%˯M8|?gvB[8xʗP;L[ZY|pȍ!C+*~珛ᩏ&{shze;lq[f:136od >{}S6??IH{ JLHa?mҪCHzDZ$Fk$_^{>K<8ø:hk{F+'+Cgw;U`׈[Jx izɠTP=|ȿZNyq˻Qh:I|j@J:s,؂+k%̮s{ze/'?` ;tZYˣKԥ16!\ pD*m:ĭ&٘'S<59C5E|IJ7Ka Ƣ˒xZV3쇧;xeH7v[ŻpM 0W9x⳻|\fgaŅ,EʂӪĚwָllv “ܴ*ɐɏ;ȡw˩ʬ۰ ïʅKL!1l4 9\K̊z~K{t4kL˵V23Δ\ɷɵ2,8L^+vPѷTYWLOr<l:\>y;RۼḪ:S{ +m- CzvgK6⫭{7"Ѡl2ŠjM=$4L -8 LB]ͿfQӛMAެ&SԀpԕ6ZC ^Xq"3bTSeR=\a!d=ɧipmPշk7m1s=nr:k냏^!R٠}ئ13Aרzisנ(Ԭ26c\ݮv^I'~[^s֛ )P2*.ߚrM)c|)O潾s}'ЎGޮוe-jљώ؃[F]ebƣp9Rx.?&/9./d9j\(/l)4*?A/?8GC0S*y=.;33Yq5m+ 6 3W_UR_ ,N*?c8X^MM,~-9nsӶ}"nO]}roOht{nJ ')Mٛ&Op/Pi 8I??:9fdį/O|Տٯׯ/?O kxɏ߷n|oO`ǟpq@wPI;T]}Xھ\uAᐸ&L^ -^Y~`\V Y}Αe>O /"LP,21-=?ACE&GMO8/[$B_Y%Pwy{}OK;T]_lKe)4W瞉yCYҚ?ΠՕԫioq`E %T=41 $RtbGip9FFS9;I/a9I#RS$M?:NU(thS>YTiKtIn밨]GR@ YUKZVe,Eoݦi\s֝xoaakp<Gw27̒peφ;*Xk,QV)kWfڟk۫Cwo߿/8xqV^9͝Gxrձgp]{S;xqm^}{~ǿ~OЛ L$!/Bx*p8A QI,QLQYl3PiqQy R!,#LR%l'R)+R-(;postfix/doc/big-picture.fig100664 1751 146 14201 7017475563 15216 0ustar thivillowww#FIG 3.1 Landscape Center Inches 1200 2 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 11850 3300 600 300 11250 3000 12450 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 11850 2250 600 300 11250 1950 12450 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 13500 4350 600 300 12900 4050 14100 4650 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 13500 3300 600 300 12900 3000 14100 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 13500 2250 600 300 12900 1950 14100 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 5700 2775 600 300 5100 2475 6300 3075 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 5700 3825 600 300 5100 3525 6300 4125 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7350 3300 600 300 6750 3000 7950 3600 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 7350 2250 600 300 6750 1950 7950 2550 1 2 0 1 -1 6 1 0 20 0.000 1 0.0000 2700 2775 600 300 2100 2475 3300 3075 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 10800 3300 11250 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 12450 3300 12900 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 12225 3075 13125 2475 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 12138 3542 13038 4142 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 14100 2250 14550 2250 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 14100 3300 14550 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 14100 4350 14550 4350 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 14587 4050 15487 4050 15487 4650 14587 4650 14587 4050 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 14550 3000 15450 3000 15450 3600 14550 3600 14550 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 11850 1500 11850 1950 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 11850 2550 11850 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 13500 1500 13500 1950 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 14700 1350 13950 2025 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 11850 3600 11850 4050 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 14550 1950 15450 1950 15450 2550 14550 2550 14550 1950 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 11400 900 12300 900 12300 1500 11400 1500 11400 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 13050 900 13950 900 13950 1500 13050 1500 13050 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 14550 900 15450 900 15450 1500 14550 1500 14550 900 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 11400 4050 12300 4050 12300 4650 11400 4650 11400 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4 0 0 1.00 60.00 120.00 10800 3450 11100 3450 11100 4350 10800 4350 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 9900 3000 10800 3000 10800 3600 9900 3600 9900 3000 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 9900 4050 10800 4050 10800 4650 9900 4650 9900 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 9300 3300 9900 3300 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 4 0 0 1.00 60.00 120.00 9900 3450 9600 3450 9600 4350 9900 4350 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 7950 3300 8400 3300 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 8550 4200 7800 3525 2 2 0 1 -1 6 1 0 20 0.000 0 0 7 0 0 5 8400 3000 9300 3000 9300 3600 8400 3600 8400 3000 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 8400 4050 9300 4050 9300 4650 8400 4650 8400 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6225 3675 6825 3450 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 6225 2925 6825 3150 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 3300 2775 3750 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 1650 2775 2100 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4650 2775 5100 2775 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4650 3825 5100 3825 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 3750 3525 4650 3525 4650 4125 3750 4125 3750 3525 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 5700 4125 5700 4500 2 1 0 1 -1 7 2 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 4500 4650 5250 4050 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 1.00 60.00 120.00 7350 2550 7350 3000 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2 0 0 1.00 60.00 120.00 7350 3600 7350 4050 2 2 0 0 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 750 2475 1650 2475 1650 3075 750 3075 750 2475 2 2 0 1 -1 6 1 0 20 0.000 0 0 -1 0 0 5 3750 2475 4650 2475 4650 3075 3750 3075 3750 2475 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 3750 4500 4650 4500 4650 5100 3750 5100 3750 4500 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 5250 4500 6150 4500 6150 5100 5250 5100 5250 4500 2 2 0 1 -1 3 1 0 20 0.000 0 0 -1 0 0 5 6900 4050 7800 4050 7800 4650 6900 4650 6900 4050 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 4875 675 14325 675 14325 5325 4875 5325 4875 675 4 0 -1 0 0 0 15 0.0000 4 150 450 11625 3330 qmgr\001 4 0 -1 0 0 0 15 0.0000 4 150 630 11515 2325 resolve\001 4 0 -1 0 0 0 15 0.0000 4 150 810 11415 4425 relocated\001 4 0 -1 0 0 0 15 0.0000 4 195 360 13320 4402 pipe\001 4 0 -1 0 0 0 15 0.0000 4 180 420 13290 3345 smtp\001 4 0 -1 0 0 0 15 0.0000 4 150 405 13297 2325 local\001 4 0 -1 0 0 0 15 0.0000 4 150 585 13187 1275 aliases\001 4 0 -1 0 0 0 15 0.0000 4 180 780 11425 1245 transport\001 4 0 -1 0 0 0 15 0.0000 4 150 735 14602 1275 .forward\001 4 0 -1 0 0 0 15 0.0000 4 150 690 14635 3375 Internet\001 4 0 -1 0 0 0 15 0.0000 4 150 930 14607 4425 UUCP etc.\001 4 0 -1 0 0 0 15 0.0000 4 150 675 14632 2325 mailbox\001 4 0 -1 0 0 0 15 0.0000 4 150 525 10067 3375 active\001 4 0 -1 0 0 0 15 0.0000 4 150 735 9952 4425 deferred\001 4 0 -1 0 0 0 15 0.0000 4 195 780 8430 3352 incoming\001 4 0 -1 0 0 0 15 0.0000 4 150 540 8560 4425 virtual\001 4 0 -1 0 0 0 15 0.0000 4 150 690 3840 3892 Internet\001 4 0 -1 0 0 0 15 0.0000 4 150 405 952 2850 local\001 4 0 -1 0 0 0 15 0.0000 4 195 750 3795 2827 maildrop\001 4 0 -1 0 0 0 15 0.0000 4 195 570 5395 2827 pickup\001 4 0 -1 0 0 0 15 0.0000 4 195 525 5437 3877 smtpd\001 4 0 -1 0 0 0 15 0.0000 4 195 675 7012 3352 cleanup\001 4 0 -1 0 0 0 15 0.0000 4 150 630 7035 2325 rewrite\001 4 0 -1 0 0 0 15 0.0000 4 150 825 6902 4425 canonical\001 4 0 -1 0 0 0 15 0.0000 4 105 600 5375 4875 access\001 4 0 -1 0 0 0 15 0.0000 4 150 405 3997 4875 RBL\001 4 0 -1 0 0 0 15 0.0000 4 150 945 2197 2850 "sendmail"\001 postfix/doc/basic.html100664 1751 146 21017 7017475563 14267 0ustar thivillowww Postfix Configuration - Basics

Postfix Configuration - Basics


Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation

Introduction

Postfix has about 100 configuration parameters that are controlled via the main.cf file. Fortunately, they have sensible default values. In most cases, you need to configure only two or three parameters before you can use the Postfix mail system: The default values for many other configuration parameters are derived from just these two.

The third parameter of interest controls the amount of mail sent to the local postmaster:

By the way, if you change parameters of a running Postfix system, don't forget to issue a postfix reload command.

If you run Postfix on a virtual network interface, or if your machine runs other mailers on virtual interfaces, you'll have to look at the other parameters listed here as well:

What domain to use in outbound mail

The myorigin parameter specifies the domain that appears in mail that is posted on this machine. The default is to use the local machine name, $myhostname, which defaults to the name of the machine. Unless you are running a really small site, you probably want to change that into $mydomain, which defaults to the parent domain of the machine name.

Examples:

myorigin = $myhostname (default)
myorigin = $mydomain (probably desirable)

What domains to receive mail for

The mydestination parameter specifies what domains this machine will deliver locally, instead of forwarding to another machine. The default is to receive mail for the machine itself.

You can specify zero or more domain names, /file/name patterns and/or type:name lookup tables, separated by whitespace and/or commas. A /file/name is replaced by its contents; type:name requests that a table lookup is done, typically from a virtual database.

If your machine is a mail server for its entire domain, you must list $mydomain as well.

Examples:

Default setting:
mydestination = $myhostname localhost.$mydomain

Domain-wide mail server:
mydestination = $myhostname localhost.$mydomain $mydomain

Host with multiple DNS A records:
mydestination = $myhostname localhost.$mydomain www.$mydomain ftp.$mydomain

Caution: in order to avoid mail delivery loops, you must list all hostnames of the machine, including $myhostname, and localhost.$mydomain.

What trouble to report to the postmaster

You should set up a postmaster alias that points to a human person. This alias is required to exist, so that people can report mail delivery problems.

The Postfix system itself also reports problems to the postmaster alias. You may not be interested in all types of trouble reports, so this reporting mechanism is configurable. The default is to report only serious problems (resource, software) to postmaster:

Default:
notify_classes = resource, software

The meaning of the classes is as follows:

bounce
Send postmaster copies of undeliverable mail. If mail is undeliverable, a so-called single bounce message is sent, with a copy of the message that was not delivered. For privacy reasons, the postmaster copy of a single bounce message is truncated after the original message headers. If a single bounce message is undeliverable, the postmaster receives a double bounce message with a copy of the entire single bounce message. See also the luser_relay feature.

2bounce
Send double bounces to the postmaster.

delay
Inform the postmaster of delayed mail. In this case, the postmaster receives message headers only.

policy
Inform the postmaster of client requests that were rejected because of (UCE) policy restrictions. The postmaster receives a transcript of the entire SMTP session.

protocol
Inform the postmaster of protocol errors (client or server side) or attempts by a client to execute unimplemented commands. The postmaster receives a transcript of the entire SMTP session.

resource
Inform the postmaster of mail not delivered due to resource problems (for example, queue file write errors).

software
Inform the postmaster of mail not delivered due to software problems.

My own hostname

The myhostname parameter describes the fully-qualified domain name of the machine running the Postfix system. $myhostname appears as the default value in many other Postfix configuration parameters.

By default, myhostname is set to the local machine name. If your machine name is not in fully-qualified domain name form, or if you run Postfix on a virtual interface, you will have to specify the fully-qualified domain name that the mail system should use.

Examples:

myhostname = host.local.domain (local hostname is not FQDN)
myhostname = host.virtual.domain (virtual interface)
myhostname = virtual.domain (virtual interface)

My own domain name

The mydomain parameter specifies the parent domain of $myhostname. By default it is derived from $myhostname by stripping off the first part (unless the result would be a top-level domain).
Examples:

mydomain = local.domain
mydomain = virtual.domain (virtual interface)

My own networks

The mynetworks parameter lists all networks that this machine is attached to. This information can be used by the anti-UCE features to distinguish between local systems and strangers.

By default, mynetworks is set to the class A, B or C networks that the machine is attached to. For example, for my machines at home, the result is: 168.100.0.0/16 127.0.0.0/8. However, network 168.100 is owned by my ISP. Of course I do not want to consider all their customer systems as local, so I use instead:

mynetworks = 168.100.189.0/28, 127.0.0.0/8

My own network addresses

The inet_interfaces parameter specifies all network interface addresses that the Postfix system should listen on; mail addressed to user@[network address] will be delivered locally, as if it is addressed to a domain listed in $mydestination.

The default is to listen on all active interfaces. If you run mailers on virtual interfaces, you will have to specify what interfaces to listen on. This includes the non-virtual mailer that receives mail for the machine itself as well: it should never listen on the virtual interfaces or you would have a mailer loop.

Examples:

Default:
inet_interfaces = all

Host running virtual mailers:
inet_interfaces = virtual.host.name (virtual domain)
inet_interfaces = $myhostname localhost.$mydomain (non-virtual mailer)

Up one level | Basic Configuration | UCE Controls | Rate Controls | Resource Controls | Address Manipulation postfix/doc/backstage.html100664 1751 146 4210 7017475563 15106 0ustar thivillowww Postfix Anatomy - Behind the Scenes

Postfix Anatomy - Behind the Scenes


Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities

The previous sections gave a simplified overview of how the Postfix system sends and receives mail. Several other things happen behind the scenes. Unfortunately, this is hard to visualize on a two-dimensional display, so this document has no illustration.

  • The master daemon is the supervisor process that keeps an eye on the well-being of the mail system. It is typically started at system boot time by the postfix command, and keeps running until the system goes down. The master daemon is responsible for starting all other Postfix daemon processes on demand, and for restarting daemons that terminated prematurely because of some problem. The master daemon is also responsible for enforcing the daemon process count limits as specified in the master.cf configuration file.

  • The bounce or defer daemon is called upon left and right by other daemon processes, in order to maintain per-message log files with non-delivery status information.

  • The trivial-rewrite daemon is called upon left and right by other daemon processes, in order to rewrite an address to user@fully.qualified.domain form, or in order to resolve a destination.

  • The showq daemon lists the Postfix queue status. This is the program behind the mailq command.

Up one level | Receiving Mail | Delivering Mail | Behind the Scenes | Command-line Utilities postfix/doc/architecture.html100664 1751 146 10671 7017475563 15674 0ustar thivillowww Postfix Overview - Global Architecture

Postfix Overview - Global Architecture


Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security

Introduction

Some mail systems such as Sendmail are implemented as one large monolithic program that does everything. One large program certainly makes it easy to share data between different parts of the system. Unfortunately, one large program also makes it easy to make fatal mistakes. Other mailers such as qmail use a rigid hierarchy of programs that run other programs in a fixed order and throw them away after use. This approach gives better insulation, at the cost of some process creation overhead and inter-process communication. The additional cost can be kept within acceptable limits by partitioning the work in a sensible manner.

Postfix architecture

Postfix is based on semi-resident, mutually-cooperating, processes that perform specific tasks for each other, without any particular parent-child relationship. Again, doing work in separate processes gives better insulation than using one big program. In addition, the Postfix approach has the advantage that a service such as address rewriting is available to every Postfix component program, without incurring the cost of process creation just to rewrite one address. By the way: I do not claim that Postfix is the only (mail) program using this approach. Even in this relatively young discipline it is hard to come up something new that no-one ever did before.

Postfix is implemented as a resident master server that runs Postfix daemon processes on demand: daemon processes to send or receive network mail messages, daemon processes to deliver mail locally, etc. These processes are created up to a configurable number, are re-used for a configurable number of times, and go away after a configurable amount of idle time. This approach drastically reduces process creation overhead while still providing the good insulation from separate processes.

Postfix is intended to be a Sendmail replacement. For this reason it tries to be compatible with existing infrastructure. However, many parts of the Postfix system, such as the local delivery program, are easily replaced by editing an inetd-like configuration file. For example, the plan is to provide an alternate local delivery program that runs at a fixed low privilege, for POP/IMAP users that never log into the shell, and that may not even have a UNIX account.

As a result of this architecture, Postfix is easy to strip down to the bare minimum. Subsystems that are turned off cannot be exploited. Firewalls do not need local delivery. On client workstations, one disables both the smtp listener and local delivery subsystems; or the client mounts the maildrop directory from a file server, and runs no resident Postfix processes at all.

Communication between Postfix processes

The core of the Postfix system is implemented by a dozen semi-resident programs. For privacy reasons, these Postfix processes communicate via UNIX-domain sockets or FIFOs that live in a protected directory. Despite this privacy, Postfix processes do not really trust the data that they receive in this manner; just like the contents of Postfix queue files, they merely treat it as gossip.

The amount of information passed on between Postfix processes is limited. In many cases, the only information exchanged between Postfix processes is a queue file name and a list of recipients or some status information. Once an email message is saved to file it stays there until it is read by a mail delivery program.

Postfix takes the usual precautions to avoid loss of information: flush and fsync() all data before acknowledging receipt, and check all system call results for error conditions. This style of programming may be new to some people, but I can assure you that it has been standard practice for years in many places.


Up one level | Introduction | Goals and features | Global architecture | Queue Management | Security postfix/doc/aliases.5.html100664 1751 146 14440 7017475563 14774 0ustar thivillowww



ALIASES(5)                                             ALIASES(5)


NAME
       aliases - format of the Postfix alias database

SYNOPSIS
       postalias [-c config_dir] [-v] [file_type:]input_file

DESCRIPTION
       The aliases file provides a system-wide mechanism to redi-
       rect mail for local recipients.

       The file serves as input to the postalias(1) command.  The
       result,  an  indexed file in dbm or db format, is used for
       fast lookup by the mail system. After  an  update  it  may
       take  a  minute  or  so before the change becomes visible.
       Issue a postfix reload command to eliminate the delay.

       The input and output file formats are expected to be  com-
       patible  with  Sendmail  version 8, and are expected to be
       suitable for the use as NIS maps.

       Users can control delivery of their own mail by setting up
       .forward files in their home directory.  Lines in per-user
       .forward files have the same syntax as the right-hand side
       of aliases entries.

       The format of the alias database input file is as follows:

       o      An alias definition has the form

                   name: value1, value2, ...

       o      Lines that begin with whitespace continue the  pre-
              vious line.

       o      Blank  lines  are  ignored,  as are lines beginning
              with `#'.

       The name is a local address (no domain part).  Use  double
       quotes  when the name contains any special characters such
       as whitespace, `#', `:', or `@'. The  name  is  folded  to
       lowercase, in order to make database lookups case insensi-
       tive.

       In addition, when an alias exists for owner-name, delivery
       diagnostics  are  directed  to that address, instead of to
       the originator.  This is typically used to direct delivery
       errors  to the owner of a mailing list, who is in a better
       position to deal with mailing list delivery problems  than
       the originator of the undelivered mail.

       The value contains one or more of the following:

       address
              Mail  is  forwarded to address, which is compatible



                                                                1





ALIASES(5)                                             ALIASES(5)


              with the RFC 822 standard.

       /file/name
              Mail is appended to /file/name.  See  local(8)  for
              details  of delivery to file.  Delivery is not lim-
              ited to regular files.  For example, to dispose  of
              unwanted mail, deflect it to /dev/null.

       |command
              Mail  is  piped into command. Commands that contain
              special characters, such as whitespace,  should  be
              enclosed  between  double  quotes. See local(8) for
              details of delivery to command.

              When the command fails, a limited amount of command
              output  is  mailed  back  to  the sender.  The file
              /usr/include/sysexits.h defines the  expected  exit
              status  codes. For example, use |"exit 67" to simu-
              late a "user  unknown"  error,  and  |"exit  0"  to
              implement an expensive black hole.

       :include:/file/name
              Mail  is  sent  to  the  destinations listed in the
              named file.  Lines in :include: files have the same
              syntax as the right-hand side of alias entries.

              A  destination  can  be  any  destination  that  is
              described in this manual page. However, delivery to
              "|command" and /file/name is disallowed by default.
              To  enable,  edit  the  allow_mail_to_commands  and
              allow_mail_to_files configuration parameters.

ADDRESS EXTENSION
       When alias database search fails, and the recipient local-
       part contains  the  optional  recipient  delimiter  (e.g.,
       user+foo),  the  search  is  repeated  for  the unextended
       address (e.g., user).

CONFIGURATION PARAMETERS
       The following main.cf parameters are  especially  relevant
       to  this  topic.  See  the Postfix main.cf file for syntax
       details and for default values.  Use  the  postfix  reload
       command after a configuration change.

       alias_maps
              List of alias databases.

       allow_mail_to_commands
              Restrict  the  usage  of  mail delivery to external
              command.

       allow_mail_to_files
              Restrict the usage of  mail  delivery  to  external
              file.



                                                                2





ALIASES(5)                                             ALIASES(5)


       owner_request_special
              Give special treatment to owner-xxx and xxx-request
              addresses.

       recipient_delimiter
              Delimiter that separates  recipients  from  address
              extensions.

STANDARDS
       RFC 822 (ARPA Internet Text Messages)

SEE ALSO
       local(8) local delivery agent
       postalias(1) alias database management

LICENSE
       The  Secure  Mailer  license must be distributed with this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA

































                                                                3


postfix/doc/access.5.html100664 1751 146 6043 7017475563 14574 0ustar thivillowww



ACCESS(5)                                               ACCESS(5)


NAME
       access - format of Postfix access table

SYNOPSIS
       postmap /etc/postfix/access

DESCRIPTION
       The  optional access table directs the Postfix SMTP server
       to selectively reject or accept mail from or  to  specific
       hosts,   domains,   networks,   host   addresses  or  mail
       addresses.

       The table serves as input to the postmap(1)  command.  The
       result,  an  indexed file in dbm or db format, is used for
       fast searching by the mail system. After an update it  may
       take  a  minute  or  so before the change becomes visible.
       Issue a postfix reload command to eliminate the delay.

       The format of the access table is as follows:

       blanks and comments
              Blank lines are ignored,  as  are  lines  beginning
              with `#'.

       pattern action
              When pattern matches a mail address, domain or host
              address, perform the corresponding action.

PATTERNS
       Patterns are tried in the order as listed below:

       user@domain
              Matches the specified mail address.

       domain.name
              Matches the domain.name itself  and  any  subdomain
              thereof,  either in hostnames or in mail addresses.
              Top-level domains will never be matched.

       user@  Matches all mail addresses with the specified  user
              part.

       net.work.addr.ess

       net.work.addr

       net.work

       net    Matches  any host address in the specified network.
              A network address is a  sequence  of  one  or  more
              octets separated by ".".

ACTIONS




                                                                1





ACCESS(5)                                               ACCESS(5)


       [45]XX text
              Reject  the  address etc. that matches the pattern,
              and respond with the numerical code and text.

       REJECT Reject the address etc. that matches the pattern. A
              generic error response message is generated.

       OK

       Any other text
              Accept the address etc. that matches the pattern.

BUGS
       The  table format does not understand quoting conventions.

SEE ALSO
       postmap(1) create mapping table
       smtpd(8) smtp server

LICENSE
       The Secure Mailer license must  be  distributed  with
       this software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA





























                                                                2


postfix/doc/virtual.5.html100664 1751 146 13061 7017475564 15040 0ustar thivillowww



VIRTUAL(5)                                             VIRTUAL(5)


NAME
       virtual - format of Postfix virtual table

SYNOPSIS
       postmap /etc/postfix/virtual

DESCRIPTION
       The  optional  virtual  table  specifies  redirections for
       local and non-local recipients or  domains.  The  redirec-
       tions  are used by the cleanup(8) daemon. The redirections
       are recursive.

       The virtual redirection is applied only to  the  recipient
       envelope  address,  and  does  not affect message headers.
       Think Sendmail rule set S0, if you like. Use  canonical(5)
       mapping  to  rewrite header and envelope addresses in gen-
       eral.

       The file serves as input to the  postmap(1)  command.  The
       result,  an  indexed file in dbm or db format, is used for
       fast searching by the mail system. After an update it  may
       take  a  minute  or  so before the change becomes visible.
       Issue a postfix reload command to eliminate the delay.

       Typical support for a virtual domain looks like  the  fol-
       lowing:

           virtual.domain       anything (right-hand content does not matter)
           user1@virtual.domain address1
           user2@virtual.domain address2, address3

       With this, the SMTP server accepts mail for virtual.domain
       (provided that the relay_domains parameter includes  $vir-
       tual_maps), and mail for unknown@virtual.domain is bounced
       as undeliverable.

       The format of the virtual table is  as  follows,  mappings
       being tried in the order as listed in this manual page:

       blanks and comments
              Blank  lines  are  ignored,  as are lines beginning
              with `#'.

       user@domain address, address, ...
              Mail for  user@domain  is  redirected  to  address.
              This form has the highest precedence.

       user address, address, ...
              Mail  for  user@site  is redirected to address when
              site is equal to $myorigin, when site is listed  in
              $mydestination,   or   when   it   is   listed   in
              $inet_interfaces.

              This functionality overlaps with  functionality  of



                                                                1





VIRTUAL(5)                                             VIRTUAL(5)


              the local alias(5) database. The difference is that
              virtual  mapping  can  be  applied   to   non-local
              addresses.

       @domain address, address, ...
              Mail  for  any  user  in  domain  is  redirected to
              address.  This form has the lowest precedence.

       In all the above forms, when address has the form  @other-
       domain,  the result is the same user in otherdomain.  This
       works for the first address in the expansion only.

ADDRESS EXTENSION
       When the search fails, and the address localpart  contains
       the  optional recipient delimiter (e.g., user+foo@domain),
       the search is repeated for the  unextended  address  (e.g.
       user@domain), and the unmatched address extension is prop-
       agated to the result of expansion. The matching order  is:
       user+foo@domain, user@domain, user+foo, user, and @domain.

BUGS
       The table format does not understand quoting  conventions.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this topic. See the Postfix  main.cf  file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

       virtual_maps
              List of virtual mapping tables.

       Other parameters of interest:

       inet_interfaces
              The network interface addresses  that  this  system
              receives mail on.

       mydestination
              List  of  domains  that  this mail system considers
              local.

       myorigin
              The domain that is appended to locally-posted mail.

       owner_request_special
              Give special treatment to owner-xxx and xxx-request
              addresses.

SEE ALSO
       cleanup(8) canonicalize and enqueue mail
       postmap(1) create mapping table





                                                                2





VIRTUAL(5)                                             VIRTUAL(5)


LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA
















































                                                                3


postfix/doc/main.cf.fr100664 1751 146 17146 7017475564 14175 0ustar thivillowww# Qui prend les bounces de bounces 2bounce_notice_recipient = postmaster # Erreur renvoye si REJECT dans les ACLs (450=temporaire, 550=permanent) access_map_reject_code = 550 # La base reconstruite par newaliases alias_database = hash:/etc/postfix/aliases # L'ensemble des aliases alias_maps = hash:/etc/postfix/aliases # Limitation des "|" dans les .forward allow_mail_to_commands = alias,forward # Idem pour les fichiers allow_mail_to_files = alias,forward # Reecriture user%domaine@domaine2 allow_percent_hack = yes # Recopie de tous les messages always_bcc = # Ajoute @myorigin aux adresses non qualifiees append_at_myorigin = yes # Ajoute .domaine aux adresses user@host append_dot_mydomain = yes # YES si on veut eviter le "mail loopback to myself" si MX = lamachine et # pas liste dans mydestination ou virtual best_mx_transport = # Biff sur local biff = no # Qui recoit les bounces si notify=bounce bounce_notice_recipient = postmaster # Taille limite des bounces bounce_size_limit = 50000 # Reecriture en entree et en sortie canonical_maps = # Ou sont les post* command_directory = /usr/local/postfix/sbin # ? command_time_limit = 1000 # Ou sont les dameons (qmgr, ...) daemon_directory = /usr/local/postfix/libexec daemon_timeout = 18000 # Debug vers certaines destinations debug_peer_level = 2 # Liste des destinations debug_peer_list = # hash ou dbm default_database_type = hash # Combien de demons vers une seule destination. # On peut avoir aussi smtp_destination.... default_destination_concurrency_limit = 10 # Combien de recipients max (idem) default_destination_recipient_limit = 50 # Privilges tombent default_privs = nobody # Combien de process max par dmon (local,qmgr,bounce, ...) default_process_limit = 50 default_transport = smtp # Pour retarder l'envoi par smtp par exemple defer_transports = # Qui recoit les warning en plus de l'utilisateur delay_notice_recipient = postmaster # En heures, temps de warning (0=dsactiv) delay_warning_time = 0 # Gestion des verrous deliver_lock_attempts = 5 deliver_lock_delay = 1 # Pas document, pas sur que a marche. Dsactive DNS disable_dns_lookups = no dont_remove = 0 # Qui envoie les doubles bounces ... double_bounce_sender = double-bounce duplicate_filter_limit = 1000 # Ca parle de soi ... empty_address_recipient = MAILER-DAEMON error_notice_recipient = postmaster # Si on arrive pas a y aller en direct, on passe sur ... fallback_relay = fallback_transport = # Quand les dmons forkent .... fork_attempts = 5 fork_delay = 1 # Recherche des .forward forward_path = $home/.forward${recipient_delimiter}${extension},$home/.forward # Hashing de /var/spool/postfix/defer hash_queue_depth = 2 hash_queue_names = defer # Table ou regexp pour la rejection sur les headers. header_checks = # Taille max des headers header_size_limit = 102400 # Pour dlivrer dans $HOME home_mailbox = # Nb de receive hopcount_limit = 50 # Pour dlivrer sur les A plutot que les MX (viole un RFC) ignore_mx_lookup_error = no # Interfaces qui coutent inet_interfaces = all # Nb de session initiales initial_destination_concurrency = 2 # invalid_hostname_reject_code = 501 # ? ipc_idle = 100 ipc_timeout = 3600 # Longueur max des lignes. line_length_limit = 2048 # Pour le mailer local local_command_shell = local_destination_concurrency_limit = 2 local_destination_recipient_limit = $default_destination_recipient_limit # voir luser dans sendmail (qui recoit tous les unknown, ex smtp:[ailleurs]) luser_relay = # Nom affiche mail_name = Postfix # Identit postfiw mail_owner = postfix # mailbox locales mail_spool_directory = /var/mail # La version mail_version = Snapshot-19990410 # pour procmail mailbox_command = /usr/local/bin/procmail # ? mailbox_transport = # RBL et ORBL maps_rbl_domains = rbl.maps.vix.com maps_rbl_reject_code = 550 # *.$mydomain ===> $mydomain masquerade_domains = $mydomain masquerade_exceptions = root # Apres combien de temps on ferme les dmons max_idle = 100 max_use = 100 # Temps max entre les runs pour une dest. maximal_backoff_time = 4000 # En jour, combien de temps on garde les mails en attente maximal_queue_lifetime = 13 # Taille max des messages message_size_limit = 8000000 # temps mini entre deux runs pour une meme destinations minimal_backoff_time = 1000 # Les noms locaux mydestination = $myhostname, localhost.$mydomain, $mydomain, www.$mydomain, news.$mydomain # Le domaine mydomain = hsc.fr # Le nom de la machine myhostname = itesec.hsc.fr # Les rseaux Internes mynetworks = 192.70.106.32/27, 192.70.106.64/27, 192.70.106.96/27, 192.70.106.128/27, 127.0.0.0/8 # Quell orginie pour les mails posts localement myorigin = $mydomain # Code de rejet sur le MAIL FROM: non qualifi non_fqdn_reject_code = 504 # Qu'envoie t'on au postmaster (policy en + de ci dessous) notify_classes = resource, software,protocol # Traitement des owner- et -owner ala sendmail owner_request_special = yes # Ou on stocke les PIDS process_id_directory = pid # Les programmes (pas utilis si command_directory et daemon_directory) program_directory = /usr/local/postfix/bin # qmgr_message_active_limit = 1000 qmgr_message_recipient_limit = 10000 queue_directory = /var/spool/postfix queue_minfree = 0 # Intervalle queue_run_delay = 1000 # Pour rcrire seulement les recipients recipient_canonical_maps = # at+toto=at (ala sendmail) recipient_delimiter = + # ? recipient_feature_delimiter = # Code de rejet global reject_code = 550 # Qui relaye-t'on ? (virtual_maps est donn par virtual=) relay_domains = $mydestination, $virtual_maps, /etc/postfix/RelayTo relay_domains_reject_code = 550 # A qui on envoie le mail. par exmple : smtp:[mailhost:port] relayhost = # Pour les relogs ;) relocated_maps = # Reecriture des emmetteurs sender_canonical_maps = hash:/etc/postfix/sender_canonical # ? service_throttle_time = 60 # Pour changer le dfaut timeout sur connect() (indispensable sur Linux 2.2) smtp_connect_timeout = 0 # Autres timeouts smtp_data_done_timeout = 600 smtp_data_init_timeout = 120 smtp_data_xfer_timeout = 180 # Nb de sessions smtp vers la meme dest. smtp_destination_concurrency_limit = $default_destination_concurrency_limit smtp_destination_recipient_limit = $default_destination_recipient_limit # autres timeout smtp_helo_timeout = 300 smtp_mail_timeout = 300 smtp_quit_timeout = 300 smtp_rcpt_timeout = 300 # Broken software ... smtp_skip_4xx_greeting = no smtp_skip_quit_response = yes # Banniere SMTP smtpd_banner = $myhostname ESMTP $mail_name # Qui on jette sur la connexion smtpd_client_restrictions = hash:/etc/postfix/access # Sleep apres une erreur smtpd_error_sleep_time = 5 # Qui peut lancer ETRN ? smtpd_etrn_restrictions = permit_mynetworks, reject # Apres hard_error, on ferme smtpd_hard_error_limit = 10 # Demande un helo smtpd_helo_required = yes # Voir doc sur ce qui peut etre envoye dans le helo smtpd_helo_restrictions = # Nb de recipients accepts par session SMTP smtpd_recipient_limit = 1000 # test sur le RCPT TO: (anti relayage) smtpd_recipient_restrictions = permit_mynetworks,check_relay_domains # test sur le MAIL FROM: smtpd_sender_restrictions = reject_unknown_address, reject_non_fqdn_sender, hash:/etc/postfix/access # smtpd_soft_error_limit = 10 # ? smtpd_timeout = 300 # pas de bounces gnrs localement : les messages restent dans la file soft_bounce = no stale_lock_time = 500 # Broken software sun_mailtool_compatibility = no # pour debangifier les @ UUCP. swap_bangpath = yes # Transport = mailertable transport_maps = hash:/etc/postfix/transport # ? transport_retry_time = 60 # ? trigger_timeout = 10 # Pour les rejets sur le DNS (450=temp,550=permanent) unknown_address_reject_code = 450 unknown_client_reject_code = 450 unknown_hostname_reject_code = 450 # Domaines virtuels virtual_maps = hash:/etc/postfix/virtual # postfix/doc/LDAP_README100664 1751 146 20007 7017475564 13777 0ustar thivillowwwBUILDING WITH LDAP SUPPORT ========================== You need to have LDAP libraries and include files installed somewhere on your system, and you need to configure the Postfix Makefiles accordingly. If you're using the libraries from the UM distribution (http://www.umich.edu/~dirsvcs/ldap/ldap.html) or OpenLDAP (http://www.openldap.org), something like this should work: % make tidy % make makefiles CCARGS="-I/some/where/include -DHAS_LDAP" \ AUXLIBS="/some/where/libldap.a /some/where/liblber.a" The `make tidy' command is needed only if you have previously built Postfix without LDAP support. If your LDAP libraries were built with Kerberos support, you'll also need to include your Kerberos libraries in this line. Note that the KTH Kerberos IV libraries might conflict with Postfix's lib/libdns.a, which defines dns_lookup. If that happens, you'll probably want to link with LDAP libraries that lack Kerberos support just to build Postfix, as it doesn't yet support Kerberos binds to the LDAP server anyway. Sorry about the bother. If you're using one of the Netscape LDAP SDKs, you'll need to change the AUXLIBS line to point to libldap10.so or libldapssl30.so or whatever you have, and you may need to use the -R option so the executables can find it at runtime. USING LDAP LOOKUPS ================== In order to use LDAP lookups, define at least one LDAP source as a table lookup in main.cf, for example: alias_maps = hash:/etc/aliases, ldap:ldapsource Each LDAP source can have the following parameters, which should be prefixed in main.cf with the name you've given the source in its definition. To continue the example, the first parameter below, "server_host", would be defined in main.cf as "ldapsource_server_host". Defaults are given in parentheses: server_host (localhost) The name of the host running the LDAP server, e.g. ldapsource_server_host = ldap.your.com It should be possible with all the libraries mentioned above to specify multiple servers separated by spaces, with the libraries trying them in order should the first one fail. server_port (389) The port the LDAP server listens on, e.g. ldapsource_server_port = 778 search_base (no default) The base at which to conduct the search, e.g. ldapsource_search_base = dc=your, dc=com timeout (10 seconds) The number of seconds a search can take before timing out, e.g. ldapsource_timeout = 5 query_filter (mailacceptinggeneralid=%s) The RFC2254 filter used to search the directory, where %s is a substitute for the address Postfix is trying to resolve, e.g. ldapsource_query_filter = (&(mail=%s)(paid_up=true)) lookup_wildcards (no) Whether to search for addresses containing '*'. This has huge potential for spammers, so by default, any address containing '*' will cause the lookup to return nothing. Unless another dictionary returns a valid lookup for it, the mail will bounce with an 'unknown user' message. result_attribute (maildrop) The attribute Postfix will read from any directory entries returned by the lookup, to be resolved to an email address. ldapsource_result_attribute = mailbox bind (yes) Whether or not to bind to the LDAP server. Newer LDAP implementations don't require clients to bind, which saves time. Example: ldapsource_bind = no bind_dn ("") If you do have to bind, do it with this distinguished name. Example: ldapsource_bind_dn = uid=postfix, dc=your, dc=com bind_pw ("") The password for the distinguished name above. If you have to have this, you probably want to make main.cf readable only by the Postfix user. Example: ldapsource_bind_pw = postfixpw Don't use quotes in these variables; at least, not until the Postfix configuration routines understand how to deal with quoted strings. EXAMPLE ======= Here's a basic example. In main.cf, you have these configuration parameters defined: alias_maps = hash:/etc/aliases, ldap:ldapsource ldapsource_server_host = ldap.my.com ldapsource_search_base = dc=my, dc=com Upon receiving mail for a local address "ldapuser" that isn't found in the /etc/aliases database, Postfix will search the LDAP server listening at port 389 on ldap.my.com. It will bind anonymously, search for any directory entries whose mailacceptinggeneralid attribute is "ldapuser", read the "maildrop" attributes of those found, and build a list of their maildrops, which will be treated as RFC822 addresses to which the message will be delivered. NOTES AND THINGS TO THINK ABOUT =============================== - You probably want to make sure that mailacceptinggeneralids are unique, and that not just anyone can specify theirs as postmaster or root, say. - An entry can have an arbitrary number of maildrops. Maildrops can also be comma-separated lists of addresses. For example, you could define an entry intended for use as a mailing list that looks like this (Warning! Schema made up just for this example): dn: cn=Accounting Staff List, dc=my, dc=com cn: Accounting Staff List o: my.com objectclass: maillist mailacceptinggeneralid: accountingstaff mailacceptinggeneralid: accounting-staff maildrop: mylist-owner maildrop: an-accountant maildrop: some-other-accountant maildrop: this, that, theother - If you use an LDAP map for lookups other than aliases, you may have to make sure the lookup makes sense. In the case of virtual lookups, maildrops like "|/some/program" are pretty useless. Your query_filter should probably look something like this: virtual_query_filter = (&(mailacceptinggeneralid=%s)(!(|(maildrop="*|*")(maildrop="*:*")))) - And for that matter, you may not want users able to specify their maildrops as programs, particularly if they'd be executed on the server. A safer local query_filter could look something like: local_query_filter = (&(mailacceptinggeneralid=%s)(|(!(maildrop="*|*"))(owner=cn=root, dc=your, dc=com))) So that if the object had a program as its maildrop and weren't owned by "cn=root" it wouldn't be returned as a valid local user. This will probably require some thought on your part to implement safely, considering the ramifications of includes and programs. You may decide it's not worth the bother to allow any of that nonsense in LDAP lookups, ban it in the query_filter, and keep things like majordomo lists in local alias databases. - It's not yet known how all this scales, but LDAP lookups are much more expensive than checking a DB file. If you anticipate a lot of lookups, it may pay to plan your directory to reduce the number of lookups. For instance, rather than having a bunch of objects that serve as aliases to just one object, you could simply add their mailacceptinggeneralids to the target object. This: dn: uid=firstlast, dc=your, dc=com maildrop: firstlast@mailbox.your.com mailacceptinggeneralid: firstlast mailacceptinggeneralid: First.Last mailacceptinggeneralid: F.Last Not this: dn: uid=firstlast, dc=your, dc=com maildrop: firstlast@mailbox.your.com mailacceptinggeneralid: firstlast dn: cn=First.Last, dc=your, dc=com maildrop: firstlast mailacceptinggeneralid: First.Last dn: cn=F.Last, dc=your, dc=com maildrop: firstlast mailacceptinggeneralid: F.Last Any performance reports will be much appreciated on the postfix-users list. UPDATE: At Merit, I've seen over 150000 deliveries per day with no noticeable delay from our OpenLDAP server. I'd now recommend not resorting to the above unless you anticipate much more traffic than that. It makes management of your directory less intuitive, which is probably not worth the reduction in lookups. CREDITS ======= Support for LDAP was initially written by Prabhat K Singh of VSNL, Bombay, India, and then hideously bloated by John Hensley to support multiple sources and more configurable attributes. The caching bits were initially worked out by Prabhat, then munged to support the multiple sources. Other contributions have been submitted to move toward better support of Netscape/LDAPv3 libraries, and any other improvements are of course welcome. postfix/main.cf100664 1751 146 10647 7017475566 13023 0ustar thivillowww2bounce_notice_recipient = postmaster access_map_reject_code = 550 alias_database = hash:/etc/aliases alias_maps = hash:/etc/postfix/aliases allow_mail_to_commands = alias,forward allow_mail_to_files = alias,forward allow_percent_hack = yes always_bcc = append_at_myorigin = yes append_dot_mydomain = yes best_mx_transport = biff = no bounce_notice_recipient = postmaster bounce_size_limit = 50000 canonical_maps = command_directory = /usr/local/postfix/sbin command_expansion_filter = 1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ command_time_limit = 1000 daemon_directory = /usr/local/postfix/libexec daemon_timeout = 18000 debug_peer_level = 2 debug_peer_list = default_database_type = hash default_destination_concurrency_limit = 10 default_destination_recipient_limit = 50 default_privs = nobody default_process_limit = 50 default_transport = smtp defer_transports = smtp delay_notice_recipient = postmaster delay_warning_time = 8 deliver_lock_attempts = 5 deliver_lock_delay = 1 disable_dns_lookups = yes dont_remove = 0 double_bounce_sender = double-bounce duplicate_filter_limit = 1000 empty_address_recipient = MAILER-DAEMON error_notice_recipient = postmaster fallback_relay = fallback_transport = cyrus fork_attempts = 5 fork_delay = 1 forward_path = $home/.forward${recipient_delimiter}${extension},$home/.forward hash_queue_depth = 2 hash_queue_names = defer header_checks = regexp:/etc/postfix/headreject header_size_limit = 102400 home_mailbox = hopcount_limit = 50 ignore_mx_lookup_error = no inet_interfaces = all initial_destination_concurrency = 2 invalid_hostname_reject_code = 501 ipc_idle = 100 ipc_timeout = 3600 line_length_limit = 2048 local_command_shell = local_destination_concurrency_limit = 2 local_destination_recipient_limit = $default_destination_recipient_limit luser_relay = mail_name = Postfix release-19990601 mail_owner = postfix mail_spool_directory = /var/mail mail_version = Beta-19990601 mailbox_command = /usr/local/bin/procmail -Y mailbox_transport = maps_rbl_domains = rbl.maps.vix.com maps_rbl_reject_code = 550 masquerade_domains = masquerade_exceptions = max_idle = 300 max_use = 100 maximal_backoff_time = 500 maximal_queue_lifetime = 5 message_size_limit = 6000000 minimal_backoff_time = 500 mydestination = $myhostname, localhost.$mydomain mydomain = hsc.fr myhostname = yoko.hsc.fr mynetworks = 192.168.230.0/24,127.0.0.0/8 myorigin = $myhostname non_fqdn_reject_code = 504 notify_classes = resource,software,bounce,policy,protocol,delay owner_request_special = yes process_id_directory = pid program_directory = /usr/local/postfix/sbin propagate_unmatched_extensions = alias, forward, canonical, virtual, include qmgr_message_active_limit = 1000 qmgr_message_recipient_limit = 1000 queue_directory = /var/spool/postfix queue_minfree = 0 queue_run_delay = 6000 recipient_canonical_maps = regexp:/etc/postfix/reecriture recipient_delimiter = + recipient_feature_delimiter = reject_code = 550 relay_domains = $mydestination, $virtual_domains relay_domains_reject_code = 550 relayhost = [192.70.106.33:25] relocated_maps = sender_canonical_maps = hash:/etc/postfix/canonical service_throttle_time = 60 smtp_connect_timeout = 0 smtp_data_done_timeout = 600 smtp_data_init_timeout = 120 smtp_data_xfer_timeout = 180 smtp_destination_concurrency_limit = $default_destination_concurrency_limit smtp_destination_recipient_limit = $default_destination_recipient_limit smtp_helo_timeout = 300 smtp_mail_timeout = 300 smtp_quit_timeout = 300 smtp_rcpt_timeout = 300 smtp_skip_4xx_greeting = no smtp_skip_quit_response = yes smtpd_banner = yoko.hsc.fr ESMTP Server (Microsoft Exchange Internet Mail Service 5.5.2524.0) ready smtpd_client_restrictions = smtpd_delay_reject = no smtpd_error_sleep_time = 5 smtpd_etrn_restrictions = smtpd_hard_error_limit = 10 smtpd_helo_required = yes smtpd_helo_restrictions = smtpd_recipient_limit = 1000 smtpd_recipient_restrictions = permit_mynetworks,check_relay_domains smtpd_sender_restrictions = hash:/etc/postfix/Access, reject_non_fqdn_sender, reject_unknown_address, reject_maps_rbl smtpd_soft_error_limit = 10 smtpd_timeout = 300 soft_bounce = no stale_lock_time = 500 sun_mailtool_compatibility = no swap_bangpath = yes transport_maps = hash:/etc/postfix/transport transport_retry_time = 60 trigger_timeout = 10 unknown_address_reject_code = 450 unknown_client_reject_code = 450 unknown_hostname_reject_code = 450 virtual_maps = regexp:/etc/postfix/regvirtual,hash:/etc/postfix/virtual postfix/postfix001.html100664 1751 146 4173 7020551562 14326 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Introduction [precedent] [suivant]




Tutorial Postfix


12 Octobre 1999


- Comit Rseau des Universits
- Alain Thivillon / Herv Schauer Consultants -



Reproduction strictement interdite



HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 1 -
postfix/postfix002.html100664 1751 146 4014 7020550426 14317 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Agenda:Matin [precedent] [suivant]
* Pourquoi Postfix

* Prsentation de l'architecture logicielle

* Compilation

* Installation

* Configuration de base

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 2 -
postfix/postfix003.html100664 1751 146 3666 7020550426 14334 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Agenda:Aprs Midi [precedent] [suivant]

* Configuration avance

* Maintenance

* Exemple de migrations depuis sendmail

* Applications, Questions, rponses
HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 3 -
postfix/postfix004.html100664 1751 146 4047 7020550426 14327 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Buts - 1 [precedent] [suivant]
* Buts premiers : un nouveau MTA sous Unix
 o sr : bnficier de l'exprience Sendmail...
 o facile administrer : ce qui est facile comprendre est facile scuriser.
 o rapide & volutif : le trafic SMTP de 1999 n'est pas celui de 1980. Il faut pouvoir faire un logiciel supportant les sites normes (ISP, Accs des grosses entreprises, ...)

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 4 -
postfix/postfix005.html100664 1751 146 4303 7020550426 14323 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Buts - 2 [precedent] [suivant]

* Compatibilit sendmail maximale
 o avec les MUA existants (pine,mutt,mail, ...)
 o avec les gestionnaires de liste (majordomo, sympa, ...)
 o avec les formats de bote aux lettres (mh, mbox, qmail-dir, ...)
 o avec les agents d'acheminement local (procmail, deliver, cyrus, ...)
 o avec les configurations (UUCP, rcriture, mailertable, ...)
 o avec les utilisateurs (alias, .forward, ...)

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 5 -
postfix/postfix006.html100664 1751 146 3531 7020550426 14326 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Buts - 3 [precedent] [suivant]

* Respect ...
 o ... des RFCs
 o ... des machines locales
 o ... des sites distants
 o ... des administrateurs

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 6 -
postfix/postfix007.html100664 1751 146 3046 7020550426 14330 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Schema de principe [precedent] [suivant]

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 7 -
postfix/postfix008.html100664 1751 146 4111 7020550426 14323 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Architecture - 1 [precedent] [suivant]
* Une fonction / un programme (the Unix way)
 o Lecture des messages locaux
 o Rception SMTP
 o Rcriture
 o Envoi SMTP
 o Dlivrance locale
 o Traitement des erreurs (bounces)
 o Gestion des files

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 8 -
postfix/postfix009.html100664 1751 146 3741 7020550426 14334 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Architecture - 2 [precedent] [suivant]
* Apports en termes de scurit:
 o Dcomposition = programmes plus petits et plus lisibles
 o Plus difficile casser ou circonvenir
 o Chroot plus facile
 o Les programmes ne se font pas confiance : isolation de chaque fonction

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 9 -
postfix/postfix010.html100664 1751 146 3562 7020550426 14325 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Architecture - 3 [precedent] [suivant]
* Communication interprocessus par sockets Unix ou file (FIFO)
 o Portabilit aise
 o Messages courts dans les sockets
 o Ne pas faire confiance aux donnes

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 10 -
postfix/postfix011.html100664 1751 146 4011 7020550426 14314 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Architecture - 4 [precedent] [suivant]
* Semi rsidence
 o Les dmons sont rutiliss et contrls par master qui les cre la demande.
 o Nombre maximum pour chaque fonction : contrle prcis du fonctionnement
 o Cot d'un nouveau message rduit (plus de fork)
 o Temps d'inactivit paramtrable

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 11 -
postfix/postfix012.html100664 1751 146 4175 7020550426 14330 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Architecture - 5 [precedent] [suivant]
* Files d'attente multiples
 o maildrop : messages locaux posts par sendmail
 o incoming : messages en cours de rcriture et de nettoyage
 o active : messages en cours ou en attente de transport
 o deferred : messages en attente
 o defer : arborescence d'attente (hache pour viter les trop gros rpertoires -- problme dans Sendmail)

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 12 -
postfix/postfix013.html100664 1751 146 4174 7020550427 14331 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Compilation-1 [precedent] [suivant]
* Rcuprer les sources sur http://www.postfix.org/

 o ftp://ftp.porcupine.org/mirrors/postfix-release/index.html

 o Vrifier la signature PGP

* tar xvfz postfix-<version>.tar.gz

* cd postfix-<version> puis make
 o Voir la liste des plateformes

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 13 -
postfix/postfix014.html100664 1751 146 3715 7020550427 14332 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Compilation-2 [precedent] [suivant]
* Purger : make tidy
* Changer les options:
% make makefiles CC=/opt/SUNWspro/bin/cc
% make

% make makefiles CCARGS="-DHAS_DB -DPATH_DB_H='' \
  -I/some/where/include" AUXLIBS=/some/where/libdb.a 
% make 
* Portage
Voir makedefs et util/sys_defs.h

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 14 -
postfix/postfix015.html100664 1751 146 6366 7020550427 14340 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Compilation-3 [precedent] [suivant]
* Les commandes sont dans bin/
-rwxr-xr-x  1 thivillo  thivillo  206293 Sep 14 17:30 postalias
-rwxr-xr-x  1 thivillo  thivillo   69893 Sep 14 17:30 postcat
-rwxr-xr-x  1 thivillo  thivillo  175568 Sep 14 17:31 postconf
-rwxr-xr-x  1 thivillo  thivillo  259807 Sep 14 17:31 postdrop
-rwxr-xr-x  1 thivillo  thivillo  157987 Sep 14 17:30 postfix
-rwxr-xr-x  1 thivillo  thivillo  175056 Sep 14 17:31 postkick
-rwxr-xr-x  1 thivillo  thivillo  160974 Sep 14 17:31 postlock
-rwxr-xr-x  1 thivillo  thivillo   71422 Sep 14 17:31 postlog
-rwxr-xr-x  1 thivillo  thivillo  185495 Sep 14 17:31 postmap
-rwxr-xr-x  1 thivillo  thivillo  195837 Sep 14 17:31 postsuper
-rwxr-xr-x  1 thivillo  thivillo  296176 Sep 14 17:30 sendmail
-rwxr-xr-x  1 thivillo  thivillo  116069 Sep 14 17:30 smtp-sink
-rwxr-xr-x  1 thivillo  thivillo  124378 Sep 14 17:30 smtp-source
* Les dmons sont dans libexec/
-rwxr-xr-x  1 thivillo  thivillo  391034 Sep 14 17:30 bounce
-rwxr-xr-x  1 thivillo  thivillo  496274 Sep 14 17:30 cleanup
-rwxr-xr-x  1 thivillo  thivillo  357009 Sep 14 17:30 error
-rwxr-xr-x  1 thivillo  thivillo  575378 Sep 14 17:30 local
-rwxr-xr-x  1 thivillo  thivillo  297706 Sep 14 17:30 master
-rwxr-xr-x  1 thivillo  thivillo  346448 Sep 14 17:30 pickup
-rwxr-xr-x  1 thivillo  thivillo  415171 Sep 14 17:30 pipe
-rwxr-xr-x  1 thivillo  thivillo  464115 Sep 14 17:30 qmgr
-rwxr-xr-x  1 thivillo  thivillo  327297 Sep 14 17:30 showq
-rwxr-xr-x  1 thivillo  thivillo  510917 Sep 14 17:30 smtp
-rwxr-xr-x  1 thivillo  thivillo  535152 Sep 14 17:30 smtpd
-rwxr-xr-x  1 thivillo  thivillo  341580 Sep 14 17:30 trivial-rewrite

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 15 -
postfix/postfix016.html100664 1751 146 4225 7020550660 14330 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Installation-1 [precedent] [suivant]
* Arrter sendmail !
# cd /usr/sbin
# mv sendmail sendmail.OFF
# chmod 755 sendmail.OFF
# /usr/sbin/sendmail.OFF -q30m
# rm /usr/bin/newaliases /usr/sbin/purgestat /usr/sbin/hoststat /usr/bin/mailq

* Crer un utilisateur et un groupe postfix, compte bloqu, pas de shell, pas de home

* Crer les arborescences:
# umask 022
# mkdir /etc/postfix
# mkdir /var/spool/postfix
# mkdir /usr/local/postfix
# mkdir /usr/local/postfix/sbin
# mkdir /usr/local/postfix/libexec

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 16 -
postfix/postfix017.html100664 1751 146 4144 7020550427 14332 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Installation-2 [precedent] [suivant]
* Copie des binaires et dmons
# umask 022
# cp bin/* /usr/local/postfix/sbin
# cp libexec/* /usr/local/postfix/libexec
# ln -s /usr/local/postfix/sbin/* /usr/sbin
# ln -s /usr/local/postfix/sbin/sendmail /usr/bin/mailq
# ln -s /usr/local/postfix/sbin/sendmail /usr/bin/newaliases
* Copie des squelettes de configuration
# cp conf/main.cf /etc/postfix
# cp conf/master.cf /etc/postfix
# cp conf/postfix-script-nosgid /etc/postfix/postfix-script

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 17 -
postfix/postfix018.html100664 1751 146 4766 7020550755 14351 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Installation-3 [precedent] [suivant]
* Alternative : utiliser INSTALL.sh
Moins de contrle sur les rpertoires
Il vaut mieux connaitre l'architecture :)

* Attention aux distributions Linux et au bit Set-Uid sur /usr/sbin/sendmail !

 o Debian: suid-manager (diter /etc/suid.conf et supprimer l'entre sendmail)

 o RedHat: linuxconf : supprimer le module mail de /etc/conf.linuxconf et supprimer /usr/sbin/sendmail de /usr/lib/linuxconf/redhat/perm/mail

 o Autres systmes : voir

* Dmarrage :
 o /usr/sbin/postfix {start|stop|reload}

 o OU : /usr/sbin/sendmail -bd

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 18 -
postfix/postfix019.html100664 1751 146 4770 7020550427 14341 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Mise en place du chroot [precedent] [suivant]
* Les dmons peuvent tre chroots par master dans /var/spool/postfix
 o Crer /var/spool/postfix/{etc,usr/lib}
 o Dpend beaucoup du systme
 o Il faut au minimum:
$ ls -lR /var/spool/postfix/etc
total 132
-rw-r--r--  1 root  wheel    195 Mar 26  1999 host.conf
-r--r--r--  1 root  wheel   1088 Apr 13 12:53 localtime
-rw-r--r--  1 root  bin    61960 Mar 16  1999 services

* Librairies dynamiques de la glibc sur Linux, /dev/tcp, etc... sous Solaris

* Regarder examples/chroot-setup:
AIX42      FREEBSD3   HPUX9      LINUX2     OPENSTEP4  
BSDI2      FreeBSD2   IRIX5      NETBSD1    OSF1       
BSDI3      HPUX10     IRIX6      NEXTSTEP3  Solaris2   

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 19 -
postfix/postfix020.html100664 1751 146 4773 7020550427 14334 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration de base [precedent] [suivant]
* master.cf

 o dfinit les dmons lancer, leur nombre et les "transports"
# ==========================================================================
# service type	private	unpriv	chroot	wakeup	maxproc	command + args
# 		(yes)	(yes)	(yes)	(never)	(50)
# ==========================================================================
smtp	  inet	n	-	y	-	-	smtpd
pickup	  fifo	n	n	y	60	1	pickup
cleanup	  unix	-	-	y	-	0	cleanup
qmgr	  fifo	n	-	y	300	1	qmgr
rewrite	  unix	-	-	y	-	-	trivial-rewrite
bounce	  unix	-	-	y	-	0	bounce
defer	  unix	-	-	y	-	0	bounce
smtp	  unix	-	-	y	-	-	smtp
showq     unix	n	-	y	-	-	showq
local	  unix	-	n	n	-	-	local
cyrus	  unix	-	n	n	-	-	pipe
    flags=R user=cyrus argv=/usr/cyrus/bin/deliver -e -q -m ${extension} ${user}
#uucp	  unix	-	n	n	-	-	pipe
    flags=F user=uucp argv=uux -n -z -a$sender - $nexthop!rmail ($recipient)

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 20 -
postfix/postfix021.html100664 1751 146 4312 7020550427 14322 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration de base 2 [precedent] [suivant]
* main.cf
 o Dfinit toute la configuration
 o parametre = valeur
 o paramtres multilignes
 o version francise

* Utilitaire postconf
 o -d : donne les paramtres par dfaut
 o -n : donne les paramtres changs

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 21 -
postfix/postfix022.html100664 1751 146 4411 7020550427 14323 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration de base 3 [precedent] [suivant]

* Configuration initiale

 o Rpertoires de base:
command_directory = /usr/local/postfix/sbin
daemon_directory = /usr/local/postfix/libexec
 o remplir myhostname, mydomain, myorigin, mydestination, relayhost

* Dlivrance locale
 o Soit directe (voir mail_spool_directory = /var/spool/mail)
 o Soit via un agent externe : mailbox_command = /usr/bin/procmail

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 22 -
postfix/postfix023.html100664 1751 146 5210 7020550427 14322 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration de base 4 [precedent] [suivant]
* Anti-relayage:
 o Remplir mynetworks = 192.168.0.0/24, ... (ou via /etc/postfix/fichier)
 o Remplir relay_domains = (idem)
 o smtpd_recipient_restrictions = permit_mynetworks,check_relay_domains
 o Eventuellement, ajouter "permit_mx_backup" si on ne connait pas tous les domaines dont on est MX secondaire.

* Gestion de la file
 o maximal_queue_lifetime = 4 (jours)
 o delay_warning_time = (heures)
 o queue_run_delay = 1000 (secondes)
 o maximal_backoff_time = 4000 (secondes)
 o transport_destination_concurrency_limit=10

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 23 -
postfix/postfix024.html100664 1751 146 4405 7020550427 14330 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance [precedent] [suivant]
* Configuration anti-spam : utilisation de liste noire

 o Dans la connexion:
# Ne pas accepter les machines sans DNS inverse (stupide et dangereux)
# Spammers a mettre dehors  la connexion
smtpd_client_restrictions = reject_unkown_client,
      hash:/etc/postfix/Access
 o Dans le MAIL FROM:
smtpd_sender_restrictions = hash:/etc/postfix/Access,
        reject_non_fqdn_sender,
        reject_unknown_address,
        reject_maps_rbl
 o Refaire la table : postmap /etc/postfix/Access

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 24 -
postfix/postfix025.html100664 1751 146 4370 7020550427 14332 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance 2 [precedent] [suivant]
 o Dans le RCPT TO:
smtpd_recipient_restrictions = permit_mynetworks, 
     check_recipient_access hash:/etc/postfix/accesseveryone, 
     check_relay_domains

 o Par dfaut, les erreurs sont renvoyes la fin de la phase (cf smtpd_delay_reject)

 o Autres paramtres: smtpd_helo_required, smtpd_etrn_restrictions, ...

 o Recevoir les messages rejets :
notify_classes = resource,software,bounce,policy,protocol,delay
error_notice_recipient =  (postmaster par dfaut)

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 25 -
postfix/postfix026.html100664 1751 146 4347 7020550427 14337 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance 3 [precedent] [suivant]
 o Filtrage dans les headers : utilisation de regexp
header_checks = regexp:/etc/postfix/headreject

/^From: .*\s+friend\@/          REJECT
/^To: .*\s+friend\@/            REJECT
/^X-Spanska/			554 Happy99 Virus
 o Liste blanche dans le Mail FROM:
smtpd_recipient_restrictions = permit_mynetworks,
         check_sender_access hash:/etc/postfix/Access,
         check_relay_domains,

at@hsc.fr       OK
 o Possibilit de POP avant SMTP

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 26 -
postfix/postfix027.html100664 1751 146 4703 7020550427 14334 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance 4 : transports [precedent] [suivant]
* La table des transports est comparer la mailertable de sendmail.

 o Utilisation d'une table standard:
transport_maps = hash:/etc/postfix/transport

domaine.com	smtp:[interne.domaine.com]
pauvre.domaine.com	uucp:pauvre
.domaine.com	smtp:[interne.domaine.com]
 o Utilisation de regexp:
transport_maps = regexp:/etc/postfix/regtrans

/(.*)\.anciendomaine\.com/	smtp:[$1.nouveaudomaine.com]
* On peut dupliquer des transports dans master.cf (par exemple pour avoir un nombre fix de dmons SMTP pour les machines internes).
smtpint   unix  -       -       y       -       10      smtp

yoko.hsc.fr     smtpint:[yoko.hsc.fr]

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 27 -
postfix/postfix028.html100664 1751 146 5031 7020550430 14322 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance 5 : rcriture [precedent] [suivant]
* Masquerading:

 o masquerade_domains = domaine.fr : rcrit tout user@machine.domaine.fr en user@domaine.fr

 o masquerade_exceptions = root : permet de spcifier que root n'est pas rcrit (comportement par dfaut de sendmail).

* Canonical:

 o canonical_maps = hash:/etc/postfix/canonical
user		autreuser
user@domaine1.fr	autreutilisateur@domaine5.fr
@domaine1.fr	@domaine2.fr
@domaine3.fr	user@domaine4.fr

 o Variantes : sender_canonical_maps et recipient_canonical_maps

 o On peut aussi utiliser les regexp, mysql, ...

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 28 -
postfix/postfix029.html100664 1751 146 4377 7020550430 14337 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance 6 : utilisateurs virtuels [precedent] [suivant]
* Permet d'hberger plusieurs domaines sur la mme machine sans rcrire les headers (ne rcrit que l'enveloppe):

 o virtual_maps = hash:/etc/postfix/virtual
domaine0		nimportequoi
user1@domaine1  	adresse1,adresse2,...
user2          		adresse3,adresse4, .... (comme les alias) 
@domaine3.fr		adresse5,adresse6,...
@domaine4.fr		@domaine5.fr            (pas de changement 
                                               de la partie gauche)

 o La aussi, on peut aussi utiliser les regexp, mysql, ...

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 29 -
postfix/postfix030.html100664 1751 146 4646 7020550430 14326 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance 7 : LDAP [precedent] [suivant]
* Intgration avec OpenLDAP : rechercher le maildrop d'un utilisateur.

* Compilation
% make tidy
% make makefiles CCARGS="-I/some/where/include -DHAS_LDAP" \
      AUXLIBS="/some/where/libldap.a /some/where/liblber.a"

* Intgration dans les aliases
alias_maps = hash:/etc/aliases, ldap:hsc

* Dfinir la source (il peut y en avoir plusieurs):
hsc_server_host = ldap.hsc.fr
hsc_search_base = dc=hsc, dc=fr
hsc_bind_dn= uid=postfix, dc=hsc, dc=fr
hsc_bind_pw= Argh-J-ai-Mis-le-Password-Dans-Le-Cours

* Paramtres supplmentaires : voir LDAP_README

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 30 -
postfix/postfix031.html100664 1751 146 5047 7020550430 14323 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Configuration avance 8 : Cyrus [precedent] [suivant]
* Serveur Imap et POP3 Cyrus
 o Gestion des utilisateurs indpendante de /etc/passwd
 o Mailboxes indexes
 o Tourne en identit non privilgie

* Dans postfix, dclarer le transport cyrus dans master.cf:
  cyrus     unix  -       n       n       -       -       pipe
    flags=R user=cyrus argv=/usr/cyrus/bin/deliver -e -q -m ${extension} ${user}

  mailbox_transport = cyrus
          ou 
  fallback_transport = cyrus
* Utilisation du transport de type "pipe"
 o Pas d'utilisation du shell
 o Filtrage des caractres (command_expansion_filter= ...)

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 31 -
postfix/postfix032.html100664 1751 146 5062 7020550430 14321 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Maintenance de postfix [precedent] [suivant]
* mailq : affichage de la file
47 [15:56] thivillo@yoko:~> mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
E1DCB12FF82      332 Fri Oct  8 15:56:21  Alain.Thivillon@hsc.fr
                                         camarchepas@jesais.paou

-- 0 Kbytes in 1 Request.

* postcat: affichage d'un message dans la file
2 [15:57] thivillo@yoko:~# postcat /var/spool/postfix/deferred/E1DCB12FF82
*** ENVELOPE RECORDS /var/spool/postfix/deferred/E1DCB12FF82 ***
...

* postmap, postalias: reconstruction des tables et de l'ensemble des aliases

* postsuper : nettoyage des files, vrification d'intgrit.

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 32 -
postfix/postfix033.html100664 1751 146 5602 7020550430 14322 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Maintenance de postfix 2 [precedent] [suivant]
* Penser syslog !
Oct  8 15:56:21 yoko postfix/pickup[36587]: E1DCB12FF82: uid=1001 from=<thivillo>
Oct  8 15:56:21 yoko postfix/cleanup[36731]: E1DCB12FF82: message-id=<19991008135621.E1DCB12FF82@yoko.hsc.fr>
Oct  8 15:56:21 yoko postfix/qmgr[35821]: E1DCB12FF82: from=<Alain.Thivillon@hsc.fr>, size=332 (queue active)
Oct  8 15:56:21 yoko postfix/qmgr[35821]: E1DCB12FF82: to=<camarchepas@jesais.paou>, relay=none, delay=0, status=deferred (deferred transport)
Oct  8 15:59:20 yoko postfix/smtpd[36790]: connect from itesec.hsc.fr[192.70.106.33]
Oct  8 15:59:20 yoko postfix/smtpd[36790]: E776C12FF83: client=itesec.hsc.fr[192.70.106.33]
Oct  8 15:59:20 yoko postfix/cleanup[36791]: E776C12FF83: message-id=<19991008135911.53165AF0A5@ns2.freenix.org>
Oct  8 15:59:21 yoko postfix/qmgr[35821]: E776C12FF83: from=<stump@ns2.freenix.org>, size=4896 (queue active)
Oct  8 15:59:21 yoko postfix/smtpd[36790]: disconnect from itesec.hsc.fr[192.70.106.33]
Oct  8 15:59:21 yoko postfix/local[36732]: E776C12FF83: to=<thivillo@yoko.hsc.fr>, relay=local, delay=1, status=sent ("|/usr/local/bin/procmail -Y")
* Outil de statistiques : pflogsumm

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 33 -
postfix/postfix034.html100664 1751 146 4312 7020550430 14320 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Migration depuis sendmail [precedent] [suivant]
* Faire un bilan de l'existant sendmail
 o Pour qui je reois le mail ?
 o Pour qui je l'envoie ?
 o Rcritures, mailertable ?
 o Modifications directes sendmail.cf ?

* Manquent dans postfix:
 o Pas de grammaire gnralise
 o Pas de rcriture 8bits/7bits et inversement
 o ?

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 34 -
postfix/postfix035.html100664 1751 146 4512 7020550430 14323 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Migration depuis sendmail : M4 [precedent] [suivant]
* Features ...
FEATURE(mailertable)utiliser les transports
FEATURE(generics)utiliser canonical_map
FEATURE(virtusertable)utiliser virtual_maps
FEATURE(bestmx_is_local)best_mx_transport = local
* Quelques paramtres:
MaxMessageSize bounce_size_limit = 50000
header_size_limit = 102400
message_size_limit = 10240000
HoldExpensivedeferred_transports=smtp,...
FallbackMXhostfallback_relay=
SmtpGreetingMessagesmtpd_banner = $myhostname ESMTP $mail_name

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 35 -
postfix/postfix036.html100664 1751 146 4412 7020550430 14323 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Migration depuis sendmail : Kit Jussieu [precedent] [suivant]
* Attention : je ne connais pas bien ! :)
* Variables
ListeDomaines et AdressesLocalesmydestination=
AdressesInternerelay_domains
RelaisExterieurrelayhost=
TableRoutagesUtiliser les transports
ListeNoiresmtpd_sender_restrictions=, voir aussi mynetworks et relay_domains
RevAliasesutiliser sender_canonical_maps=
SansCanonisationdisable_dns_lookups=yes mais impose un relais
MailerLocalmailbox_command

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 36 -
postfix/postfix037.html100664 1751 146 4671 7020610347 14337 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Migration depuis sendmail : problmes ventuels [precedent] [suivant]
* Bouclage d'aliases
 o www:www,postmaster donne une erreur dans postfix
 o Difficile dterminer

* Pas de dduplication des aliases car ceux-ci ne sont consults qu' la fin.
 o un message unalias,uneadressedansaliase donne deux messages
 o ->utiliser "virtual"

* Pas de priorit dans la file
 o Mais les multiples connexions par destination rglent plus ou moins le problme
 o ETRN lance toute la file (pour le moment).

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 37 -
postfix/postfix038.html100664 1751 146 4631 7020550430 14330 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Exemple 1 : Configuration sur un firewall [precedent] [suivant]
* La machine est MX record de domaine.fr et envoie sur un domaine interne
mydestination = firewall.domaine.fr
myorigin = domaine.fr
transport_maps = hash:/etc/postfix/transport

* Dans la table transport, on indique domaine.fr smtp:[interne.domaine.fr]

* On ne met pas de dlivrance locale, aliaser root et les autres comptes vers postmaster@domaine.fr

* rglage strict du relayage :
mynetwork=<adresseipdumailinterne>
relay_domains = domaine.fr
smtp_rcpt_restrictions=permit_mynetworks, check_relay_domains
smtpd_sender_restrictions = hash:/etc/postfix/Access,
        reject_non_fqdn_sender,
        reject_unknown_address

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 38 -
postfix/postfix039.html100664 1751 146 3764 7020550430 14337 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Exemple 2 : "NullClient" [precedent] [suivant]
* NullClient : ne fait qu'envoyer un relais, pas d'utilisateur local

* On arrete la partie SMTP et la partie dlivrance locale dans master.cf

* Configuration:
mydestination=host.domaine.fr
myorigin=domaine.fr
masquerade_domains=domaine.fr
relayhost=smtp:[mailhost.domaine.fr]
disable_dns_lookups=yes

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 39 -
postfix/postfix040.html100664 1751 146 5041 7020550430 14315 0ustar thivillowww Postfix
[Introduction] [Buts] [Architecture] [Compilation] [Installation] [Configuration-base] [Configuration-avance] [Maintenance] [Migration] [Exemples]
[debut] Exemple 3 : Utilisateur en dialup-ip [precedent] [suivant]
* Contraintes:
 o Envoie tout au serveur de son FAI
 o A un domaine non existant cacher
 o Reoit par fetchmail
 o a un rseau interne pour le reste de la famille.

* Configuration:
mydestination=machine.domaine.maison,localhost.domaine.maison,domaine.maison
myorigin=machine.domaine.maison
relayhost=smtp:[mailhost.fai.fr]
disable_dns_lookups=yes
deferred_transport=smtp
sender_canonical_maps=hash:/etc/postfix/canonical
mynetworks=192.168.3.0/24,127.0.0.1

* La table /etc/postfix/canonical contient:
monlogin		monadresse@fai.fr
papa		adressedepapa@fai.fr
maman           adressedemaman@fai.fr
# Pour inn et les groupes modrs
news            monadresse@fai.fr

HSC Herv SCHAUER Consultants 1999 - 142, rue de Rivoli - 75039 PARIS CEDEX 01
- Page 40 -
postfix/stats.txt100664 1751 146 23036 7017475577 13462 0ustar thivillowww Grand Totals ------------ messages 433 received 436 delivered 0 forwarded 24 deferred (29 deferrals) 2 bounced 2 rejected 3355k bytes received 3363k bytes delivered 51 senders 32 sending hosts/domains 20 recipients 15 recipient hosts/domains Per-Day Traffic Summary date received delivered deferred bounced rejected -------------------------------------------------------------------- Oct 7 1999 44 44 Oct 8 1999 389 392 29 2 2 Per-Hour Traffic Daily Average time received delivered deferred bounced rejected -------------------------------------------------------------------- 0000-0100 0 0 0 0 0 0100-0200 0 0 0 0 0 0200-0300 0 0 0 0 0 0300-0400 0 0 0 0 0 0400-0500 0 0 0 0 0 0500-0600 0 0 0 0 0 0600-0700 57 56 1 0 0 0700-0800 2 2 0 0 0 0800-0900 8 8 1 0 0 0900-1000 11 11 1 0 0 1000-1100 13 12 2 0 0 1100-1200 25 26 2 0 0 1200-1300 17 18 4 0 1 1300-1400 23 24 6 1 0 1400-1500 17 17 0 0 0 1500-1600 21 21 1 0 0 1600-1700 4 4 0 0 0 1700-1800 0 0 0 0 0 1800-1900 0 0 0 0 0 1900-2000 10 10 0 0 0 2000-2100 13 13 0 0 0 2100-2200 0 0 0 0 0 2200-2300 0 0 0 0 0 2300-2400 0 0 0 0 0 Host/Domain Summary: Message Delivery sent cnt bytes defers avg dly max dly host/domain -------- ------- ------- ------- ------- ----------- 410 2972k 0 3.3 s 3.5 m yoko.hsc.fr 7 231903 7 22.1 s 1.9 m xxxxxxxxxxxxx 4 2770 4 3.5 s 5.0 s xxxxxxxxxxxxx 3 155484 3 13.2 m 39.5 m xxxxxxxxxxxxx 2 651 3 9.5 m 15.9 m xxxxxxxxxxxxx 1 1416 2 2.1 h 2.1 h xxxxxxxxxxxxx 1 1244 1 2.0 s 2.0 s xxxxxxxxxxxxx 1 1045 1 2.0 s 2.0 s xxxxxxxxxxxxx 1 1026 1 3.0 s 3.0 s xxxxxxxxxxxxx 1 960 1 3.0 s 3.0 s xxxxxxxxxxxxx 1 941 1 3.0 s 3.0 s xxxxxxxxxxxxx 1 712 1 3.0 s 3.0 s xxxxxxxxxxxxx 1 712 1 3.0 s 3.0 s xxxxxxxxxxxxx 1 476 1 2.0 s 2.0 s xxxxxxxxxxxxx 1 340 1 0.0 s 0.0 s xxxxxxxxxxxxx 0 0 1 0.0 s 0.0 s jesais.paou Host/Domain Summary: Messages Received msg cnt bytes host/domain -------- ------- ----------- 94 249926 freebsd.org 76 225511 xxxxxxxxxxxxx 63 233037 xxxxxxxxxxxxx 51 658k xxxxxxxxxxxxx 29 99923 xxxxxxxxxxxxx 28 67940 xxxxxxxxxxxxx 14 59190 xxxxxxxxxxxxx 12 1068k xxxxxxxxxxxxx 12 60933 xxxxxxxxxxxxx 9 44709 xxxxxxxxxxxxx 5 359752 xxxxxxxxxxxxx 5 22141 xxxxxxxxxxxxx 4 12690 xxxxxxxxxxxxx 3 25062 xxxxxxxxxxxxx 3 5650 xxxxxxxxxxxxx 2 44713 xxxxxxxxxxxxx 2 7503 xxxxxxxxxxxxx 2 6096 xxxxxxxxxxxxx 2 4483 xxxxxxxxxxxxx 2 3506 xxxxxxxxxxxxx 2 2388 xxxxxxxxxxxxx 1 65514 xxxxxxxxxxxxx 1 17578 xxxxxxxxxxxxx 1 15155 xxxxxxxxxxxxx 1 14217 xxxxxxxxxxxxx 1 4890 xxxxxxxxxxxxx 1 2778 xxxxxxxxxxxxx 1 2719 xxxxxxxxxxxxx 1 2482 xxxxxxxxxxxxx 1 2391 xxxxxxxxxxxxx 1 2267 xxxxxxxxxxxxx 1 2194 xxxxxxxxxxxxx Senders by message count ------------------------ 73 owner-cvs-all@freebsd.org 73 xxxxxxxxxxxxx 63 xxxxxxxxxxxxx 26 xxxxxxxxxxxxx 26 xxxxxxxxxxxxx 24 xxxxxxxxxxxxx 14 xxxxxxxxxxxxx 11 xxxxxxxxxxxxx 11 xxxxxxxxxxxxx 9 xxxxxxxxxxxxx 8 xxxxxxxxxxxxx 7 xxxxxxxxxxxxx 6 xxxxxxxxxxxxx 5 xxxxxxxxxxxxx 5 xxxxxxxxxxxxx 5 xxxxxxxxxxxxx 5 xxxxxxxxxxxxx 4 xxxxxxxxxxxxx 4 xxxxxxxxxxxxx 3 xxxxxxxxxxxxx 3 xxxxxxxxxxxxx 3 xxxxxxxxxxxxx 3 xxxxxxxxxxxxx 3 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 sans@sans.org Recipients by message count --------------------------- 410 thivillo@yoko.hsc.fr 3 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 2 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx 1 xxxxxxxxxxxxx Senders by message size ----------------------- 1024k news@ns2.freenix.org 428429 Alain.Thivillon@hsc.fr 359752 xxxxxxxxxxxxx 233037 xxxxxxxxxxxxx 215198 xxxxxxxxxxxxx 181014 xxxxxxxxxxxxx 104158 xxxxxxxxxxxxx 82787 xxxxxxxxxxxxx 71286 xxxxxxxxxxxxx 65738 xxxxxxxxxxxxx 65514 xxxxxxxxxxxxx 59190 xxxxxxxxxxxxx 47267 xxxxxxxxxxxxx 46014 xxxxxxxxxxxxx 44713 xxxxxxxxxxxxx 44709 xxxxxxxxxxxxx 35756 xxxxxxxxxxxxx 26610 xxxxxxxxxxxxx 25062 xxxxxxxxxxxxx 22141 xxxxxxxxxxxxx 19608 xxxxxxxxxxxxx 17578 xxxxxxxxxxxxx 17136 xxxxxxxxxxxxx 16389 xxxxxxxxxxxxx 15408 xxxxxxxxxxxxx 15155 xxxxxxxxxxxxx 14217 xxxxxxxxxxxxx 13666 xxxxxxxxxxxxx 12690 xxxxxxxxxxxxx 10313 xxxxxxxxxxxxx 7503 xxxxxxxxxxxxx 6546 xxxxxxxxxxxxx 6096 xxxxxxxxxxxxx 5650 xxxxxxxxxxxxx 5057 xxxxxxxxxxxxx 4890 xxxxxxxxxxxxx 4483 xxxxxxxxxxxxx 3919 xxxxxxxxxxxxx 3680 xxxxxxxxxxxxx 3312 xxxxxxxxxxxxx 2915 xxxxxxxxxxxxx 2778 xxxxxxxxxxxxx 2719 xxxxxxxxxxxxx 2482 xxxxxxxxxxxxx 2391 xxxxxxxxxxxxx 2388 xxxxxxxxxxxxx 2267 xxxxxxxxxxxxx 2202 xxxxxxxxxxxxx 2194 xxxxxxxxxxxxx 1904 xxxxxxxxxxxxx 1602 serge.aumont@cru.fr Recipients by message size -------------------------- 2972k thivillo@yoko.hsc.fr 176748 xxxxxxxxxxxxx 155484 xxxxxxxxxxxxx 47172 xxxxxxxxxxxxx 4856 xxxxxxxxxxxxx 3127 xxxxxxxxxxxxx 1416 xxxxxxxxxxxxx 1244 xxxxxxxxxxxxx 1098 xxxxxxxxxxxxx 1045 xxxxxxxxxxxxx 1026 xxxxxxxxxxxxx 960 xxxxxxxxxxxxx 960 xxxxxxxxxxxxx 941 xxxxxxxxxxxxx 712 xxxxxxxxxxxxx 712 xxxxxxxxxxxxx 712 xxxxxxxxxxxxx 651 xxxxxxxxxxxxx 476 xxxxxxxxxxxxx 340 xxxxxxxxxxxxx message deferral detail ----------------------- qmgr 29 deferred transport message bounce detail (by relay) -------------------------------- cyrus 1 user unknown. Command output: at: Mailbox does not exist _ yoko.hsc.fr[192.70.106.76] 1 mail for [yoko.hsc.fr] loops back to myself message reject detail --------------------- RCPT from= to= 2 rivolihsc.hsc.fr Warnings -------- master 3 /usr/local/postfix/libexec/smtpd: bad command startup -- thrott... 1 process /usr/local/postfix/libexec/smtpd pid 35621 exit status 1 1 process /usr/local/postfix/libexec/smtpd pid 35602 exit status 1 1 process /usr/local/postfix/libexec/smtpd pid 34663 exit status 1 smtp 1 host yoko.hsc.fr[192.70.106.76] greeted me with my own hostname... 1 host yoko.hsc.fr[192.70.106.76] replied to HELO/EHLO with my ow... smtpd 1 restriction `check_sender_access' after `check_relay_domains' i... trivial-rewrite 1 /etc/postfix/regtrans, line 1: no closing regexp delimiter: ( Fatal Errors ------------ 3 smtpd Master daemon messages ---------------------- 10 reload configuration 2 terminating on signal 15 2 daemon started