postfix/postfix.txt

Mon, 28 Mar 2011 19:41:02 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Mar 2011 19:41:02 +0200
changeset 332
2289d64c2123
parent 181
58360ee9c913
child 495
01294b31a79e
permissions
-rw-r--r--

Completely rework package including...
Simpify 64-bit -fPIC logic, instruct make to build in parallel,
force error condition on failed profile dependency, build the
standard 'bootstrap' target as suggested, correct grammar, wording,
and punctuation in general, upgrade to latest upstream vendor version,
rearrange package dependencies mpc, mpfr, and gmp, correct buildconf
thanks to new lto-plugin forced, avoid failed platform specific stage
comparison, adjust patch code to reflect new version update, and most
importantly adjust optimization flags to platform. Please note that
block 'correct hardcoded paths' is likely no yet complete.

michael@146 1 <file name="Makefile">
michael@146 2 ##
michael@146 3 ## @l_prefix@/etc/postfix/Makefile -- maintainance procedures
michael@146 4 ##
michael@146 5
michael@146 6 # path configuration
michael@146 7 PREFIX = @l_prefix@
michael@146 8 SBINDIR = $(PREFIX)/sbin
michael@146 9 ETCDIR = $(PREFIX)/etc
michael@146 10
michael@146 11 # program configuration
michael@146 12 RC = $(ETCDIR)/rc
michael@146 13 POSTALIAS = $(SBINDIR)/postalias
michael@146 14 POSTMAP = $(SBINDIR)/postmap
michael@146 15 POSTFIX = $(SBINDIR)/postfix
michael@146 16
michael@146 17 # table filename configuration
michael@146 18 T_ACCESS = access
michael@146 19 T_CANONICAL = canonical
michael@146 20 T_GENERIC = generic
michael@146 21 T_VIRTUAL = virtual
michael@146 22 T_RELOCATED = relocated
michael@146 23 T_TRANSPORT = transport
michael@146 24 T_ALIASES = aliases
michael@179 25 T_CLIENTS = clients
michael@179 26 T_SENDERS = senders
michael@181 27 T_CLICRT = clicrt
michael@146 28
michael@146 29 # dependency tracking
michael@146 30 TIMESTAMP = .up-to-date
michael@146 31 DEPENDENCIES = Makefile master.cf main.cf $(TABLES)
michael@146 32
michael@146 33 # managed tables:
michael@146 34 # - use extension ".db" for hash tables ("hash")
michael@146 35 # - use no extension for regex tables ("pcre")
michael@146 36 TABLES = \
michael@146 37 $(T_ACCESS).db \
michael@146 38 $(T_CANONICAL).db \
michael@146 39 $(T_GENERIC).db \
michael@146 40 $(T_VIRTUAL).db \
michael@146 41 $(T_RELOCATED).db \
michael@146 42 $(T_TRANSPORT).db \
michael@179 43 $(T_ALIASES).db \
michael@179 44 $(T_CLIENTS).db \
michael@179 45 $(T_SENDERS).db \
michael@181 46 $(T_CLICRT).db
michael@146 47
michael@146 48 # default target
michael@146 49 all: $(TABLES) $(TIMESTAMP)
michael@146 50
michael@146 51 # implicit checking and reloading
michael@146 52 $(TIMESTAMP): $(DEPENDENCIES)
michael@146 53 $(POSTFIX) check
michael@146 54 $(POSTFIX) reload >/dev/null 2>&1 || true
michael@146 55 touch $(TIMESTAMP) && chmod 600 $(TIMESTAMP)
michael@146 56
michael@146 57 # explicit checking
michael@146 58 check:
michael@146 59 $(POSTFIX) check
michael@146 60
michael@146 61 # hash table update targets
michael@146 62 $(T_ACCESS).db: $(T_ACCESS) $(MAKEFILE)
michael@146 63 $(POSTMAP) hash:$(T_ACCESS)
michael@146 64 $(T_CANONICAL).db: $(T_CANONICAL) $(MAKEFILE)
michael@146 65 $(POSTMAP) hash:$(T_CANONICAL)
michael@146 66 $(T_GENERIC).db: $(T_GENERIC) $(MAKEFILE)
michael@146 67 $(POSTMAP) hash:$(T_GENERIC)
michael@146 68 $(T_VIRTUAL).db: $(T_VIRTUAL) $(MAKEFILE)
michael@146 69 $(POSTMAP) hash:$(T_VIRTUAL)
michael@146 70 $(T_RELOCATED).db: $(T_RELOCATED) $(MAKEFILE)
michael@146 71 $(POSTMAP) hash:$(T_RELOCATED)
michael@146 72 $(T_TRANSPORT).db: $(T_TRANSPORT) $(MAKEFILE)
michael@146 73 $(POSTMAP) hash:$(T_TRANSPORT)
michael@146 74 $(T_ALIASES).db: $(T_ALIASES) $(MAKEFILE)
michael@146 75 $(POSTALIAS) hash:$(T_ALIASES)
michael@179 76 $(T_CLIENTS).db: $(T_CLIENTS) $(MAKEFILE)
michael@179 77 $(POSTMAP) hash:$(T_CLIENTS)
michael@179 78 $(T_SENDERS).db: $(T_SENDERS) $(MAKEFILE)
michael@179 79 $(POSTMAP) hash:$(T_SENDERS)
michael@181 80 $(T_CLICRT).db: $(T_CLICRT) $(MAKEFILE)
michael@181 81 $(POSTMAP) hash:$(T_CLICRT)
michael@146 82
michael@146 83 # cleanup target
michael@146 84 clean:
michael@146 85 -rm -f $(TABLES)
michael@146 86 -rm -f $(TIMESTAMP)
michael@146 87
michael@146 88 # process management
michael@146 89 start:
michael@146 90 $(RC) postfix start
michael@146 91 reload:
michael@146 92 $(RC) postfix reload
michael@146 93 stop:
michael@146 94 $(RC) postfix stop
michael@146 95
michael@146 96 </file>
michael@146 97 <file name="master.cf">
michael@146 98 ##
michael@146 99 ## @l_prefix@/etc/postfix/master.cf -- Postfix master process table
michael@146 100 ##
michael@146 101 # ==========================================================================
michael@146 102 # service type private unpriv chroot wakeup maxproc command + args
michael@146 103 # (yes) (yes) (yes) (never) (100)
michael@146 104 # ==========================================================================
michael@146 105 smtp inet n - n - - smtpd
michael@190 106 #smtp inet n - n - - smtpd -o content_filter=spamass
michael@146 107 #628 inet n - n - - qmqpd
michael@146 108 pickup fifo n - n 60 1 pickup
michael@146 109 cleanup unix n - n - 0 cleanup
michael@146 110 qmgr fifo n - n 300 1 qmgr
michael@146 111 tlsmgr unix - - n 1000? 1 tlsmgr
michael@146 112 rewrite unix - - n - - trivial-rewrite
michael@146 113 bounce unix - - n - 0 bounce
michael@146 114 defer unix - - n - 0 bounce
michael@146 115 trace unix - - n - 0 bounce
michael@146 116 verify unix - - n - 1 verify
michael@146 117 flush unix n - n 1000? 0 flush
michael@146 118 proxymap unix - - n - - proxymap
michael@146 119 proxywrite unix - - n - - proxymap
michael@146 120 smtp unix - - n - - smtp
michael@146 121 relay unix - - n - - smtp -o fallback_relay=
michael@146 122 showq unix n - n - - showq
michael@146 123 error unix - - n - - error
michael@146 124 retry unix - - n - - error
michael@146 125 local unix - n n - - local
michael@146 126 virtual unix - n n - - virtual
michael@146 127 lmtp unix - - n - - lmtp
michael@146 128 anvil unix - - n - 1 anvil
michael@146 129 scache unix - - n - 1 scache
michael@146 130 #maildrop unix - n n - - pipe flags=DRhu user=@l_nusr@ argv=@l_prefix@/bin/maildrop -d ${recipient}
michael@146 131 #cyrus unix - n n - - pipe user=@l_nusr@ argv=@l_prefix@/bin/cyrdeliver -e -r ${sender} -m ${extension} ${user}
michael@190 132 #dovecot unix - n n - - pipe flags=DR user=@l_rusr@ argv=@l_prefix@/libexec/dovecot/deliver -f ${sender} -d ${user} -n -m ${extension}
michael@190 133 #spamass unix - n n - - pipe flags=R user=@l_rusr@ argv=@l_prefix@/bin/spamc -f -u ${user} -e @l_prefix@/sbin/sendmail -oi -f ${sender} ${recipient}
michael@146 134 #uucp unix - n n - - pipe flags=Fqhu user=@l_nusr@ argv=@l_prefix@/bin/uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
michael@146 135 #ifmail unix - n n - - pipe flags=F user=@l_nusr@ argv=@l_prefix@/bin/ifmail -r $nexthop ($recipient)
michael@146 136 #bsmtp unix - n n - - pipe flags=Fq. user=@l_nusr@ argv=@l_prefix@/bin/bsmtp -f $sender $nexthop $recipient
michael@146 137 </file>
michael@146 138 <file name="main.cf">
michael@146 139 ##
michael@146 140 ## @l_prefix@/etc/postfix/main.cf -- Postfix main configuration
michael@146 141 ##
michael@146 142 ## Run "@l_prefix@/sbin/postconf -n" to see all parameters overriding
michael@146 143 ## defaults, run "@l_prefix@/sbin/postconf -d" to see all possible
michael@146 144 ## parameters and their defaults and read the following manual
michael@146 145 ## pages for description of each parameter: bounce(8), cleanup(8),
michael@146 146 ## defer(8), error(8), flush(8), lmtp(8), local(8), master(8),
michael@146 147 ## pickup(8), pipe(8), qmgr(8), showq(8), smtp(8), smtpd(8), spawn(8),
michael@146 148 ## trivial-rewrite(8).
michael@146 149 ##
michael@146 150
michael@146 151 # users
michael@146 152 mail_owner = @l_musr@
michael@146 153 setgid_group = @l_rgrp@
michael@146 154 default_privs = @l_nusr@
michael@146 155
michael@146 156 # local host
michael@146 157 myhostname = mail.example.com
michael@146 158 mydomain = example.com
michael@146 159 myorigin = $myhostname
michael@146 160
michael@146 161 # smtp daemon
michael@146 162 #smtpd_banner = $myhostname ESMTP $mail_name
michael@146 163 inet_interfaces = 127.0.0.1
michael@146 164
michael@146 165 # smtp client
michael@146 166 smtp_bind_address = 127.0.0.1
michael@146 167
michael@146 168 # relaying
michael@146 169 mynetworks = 127.0.0.0/8
michael@146 170 #mydestination = $myhostname, localhost.$mydomain
michael@146 171 #relay_domains = $mydestination,
michael@146 172 # hash:@l_prefix@/etc/postfix/access
michael@181 173 #relay_clientcerts = hash:@l_prefix@/etc//postfix/clicrt
michael@146 174 #smtpd_recipient_restrictions = permit_mynetworks,
michael@146 175 # check_client_access hash:@l_prefix@/etc/postfix/access,
michael@146 176 # reject_unauth_destination
michael@146 177
michael@146 178 # maps
michael@146 179 #canonical_maps = hash:@l_prefix@/etc/postfix/canonical
michael@146 180 #smtp_generic_maps = hash:@l_prefix@/etc/postfix/generic
michael@146 181 #virtual_alias_maps = hash:@l_prefix@/etc/postfix/virtual
michael@146 182 #relocated_maps = hash:@l_prefix@/etc/postfix/relocated
michael@146 183 #transport_maps = hash:@l_prefix@/etc/postfix/transport
michael@146 184 alias_maps = hash:@l_prefix@/etc/postfix/aliases
michael@146 185 alias_database = hash:@l_prefix@/etc/postfix/aliases
michael@146 186
michael@146 187 # local delivery
michael@146 188 #local_recipient_maps = proxy:unix:passwd.byname $alias_maps
michael@146 189 recipient_delimiter = +
michael@146 190 mailbox_command = @l_prefix@/bin/procmail -a "$EXTENSION"
michael@146 191
michael@146 192 </file>
michael@146 193 <file name="access">
michael@146 194 ##
michael@146 195 ## @l_prefix@/etc/postfix/access -- access control for relaying
michael@146 196 ##
michael@146 197 ## Searched for both the client (hostname, parent domains, IP address,
michael@146 198 ## networks obtained by stripping least significant octets from IP
michael@146 199 ## address) and destination address (resolved destination address,
michael@146 200 ## parent domain, or localpart@) in order to allow relaying. Rejects
michael@146 201 ## the request if the result is REJECT or "[45]XX text". Permits the
michael@146 202 ## request if the result is OK or RELAY or all-numerical.
michael@146 203 ##
michael@146 204
michael@146 205 # Syntax (see access(5)):
michael@146 206 # | user@domain action
michael@146 207 # | domain action
michael@146 208 # | user@ action
michael@146 209 # | net.work.addr.ess action
michael@146 210 # | net.work.addr action
michael@146 211 # | net.work action
michael@146 212 # | net action
michael@146 213 # where "action" is one of:
michael@146 214 # "[45]NN text", "REJECT", "OK", "restriction..."
michael@146 215 #
michael@146 216 # Examples:
michael@146 217 # | mail.example.com OK
michael@146 218 # | example.com REJECT
michael@146 219 # | 192.168.0.1 OK
michael@146 220 # | 192.168 REJECT
michael@146 221 # | postmaster@ OK
michael@146 222
michael@146 223 </file>
michael@146 224 <file name="virtual">
michael@146 225 ##
michael@146 226 ## @l_prefix@/etc/postfix/virtual -- virtual address translation
michael@146 227 ##
michael@146 228 ## Searched for virtual addresses user@domain, user and @domain
michael@146 229 ## (in this order). It redirect mail for all recipients, local or
michael@146 230 ## remote. The mapping affects only envelope recipients.
michael@146 231 ##
michael@146 232
michael@146 233 # Syntax (see virtual(5)):
michael@146 234 # | user@domain address, address, ...
michael@146 235 # | user address, address, ...
michael@146 236 # | @domain address, address, ...
michael@146 237 #
michael@146 238 # Examples:
michael@146 239 # | @example.com john@example.com
michael@146 240 # | postmaster@example.com postmaster
michael@146 241 # | john@example1.com john1
michael@146 242 # | john@example2.com john2
michael@146 243
michael@146 244 </file>
michael@146 245 <file name="aliases">
michael@146 246 ##
michael@146 247 ## @l_prefix@/etc/postfix/aliases -- local mailbox aliases
michael@146 248 ##
michael@146 249 ## Searched for virtual addresses user@domain, user and @domain
michael@146 250 ## (in this order). It redirect mail for all recipients, local or
michael@146 251 ## remote. The mapping affects only envelope recipients.
michael@146 252 ##
michael@146 253
michael@146 254 # Syntax (see aliases(5)):
michael@146 255 # | name: value, value, ...
michael@146 256 # where value is one of:
michael@146 257 # "address", "/file/name", "|command", ":include:/file/name"
michael@146 258 #
michael@146 259 # Examples:
michael@146 260 # | john.doe: john, doe
michael@146 261 # | robot: |/path/to/robot
michael@146 262 # | archive: /path/to/archive
michael@146 263 # | users: :include:/path/to/users.list
michael@146 264 # | owner-users: john.doe
michael@146 265
michael@146 266 # standard mail targets
michael@146 267 nobody: /dev/null
michael@146 268 MAILER-DAEMON: postmaster
michael@146 269
michael@146 270 # mailbox names for common services, roles and functions
michael@146 271 # (see RFC2142 for more details and expanded list of names)
michael@146 272 postmaster: root
michael@146 273 hostmaster: root
michael@146 274 security: root
michael@146 275 abuse: root
michael@146 276
michael@146 277 # save unprivileged user storage of careless admins
michael@146 278 root: /dev/null
michael@146 279
michael@146 280 </file>
michael@146 281 <file name="canonical">
michael@146 282 ##
michael@146 283 ## @l_prefix@/etc/postfix/canonical -- address canonification on mail receiving
michael@146 284 ##
michael@146 285 ## Searched for canonical addresses for user@domain, user and @domain
michael@146 286 ## (in this order).
michael@146 287 ##
michael@146 288
michael@146 289 # Syntax (see canonical(5)):
michael@146 290 # | user@domain address
michael@146 291 # | user address
michael@146 292 # | @domain address
michael@146 293 #
michael@146 294 # Examples:
michael@146 295 # | postmaster@mail.example.com postmaster@example.com
michael@146 296 # | john John.Doe
michael@146 297 # | @example.com @example.com
michael@146 298
michael@146 299 </file>
michael@146 300 <file name="relocated">
michael@146 301 ##
michael@146 302 ## @l_prefix@/etc/postfix/relocated -- relocate obsolete addresses
michael@146 303 ##
michael@146 304 ## Searched for relocated addresses user@domain, user and @domain
michael@146 305 ## (in this order). It bounces mail for all recipients.
michael@146 306 ##
michael@146 307
michael@146 308 # Syntax (see relocated(5)):
michael@146 309 # | user@domain address
michael@146 310 # | user address
michael@146 311 # | @domain address
michael@146 312 #
michael@146 313 # Examples:
michael@146 314 # | john@invalid john@example.com
michael@146 315 # | john john@example.com
michael@146 316 # | @invalid john@example.com
michael@146 317
michael@146 318 </file>
michael@146 319 <file name="generic">
michael@146 320 ##
michael@146 321 ## @l_prefix@/etc/postfix/generic -- address canonification on mail sending
michael@146 322 ##
michael@146 323 ## Searched for canonical addresses for user@domain, user and @domain
michael@146 324 ## (in this order).
michael@146 325 ##
michael@146 326
michael@146 327 # Syntax (see generic(5)):
michael@146 328 # | user@domain address
michael@146 329 # | user address
michael@146 330 # | @domain address
michael@146 331 #
michael@146 332 # Examples:
michael@146 333 # | postmaster@mail.example.com postmaster@example.com
michael@146 334 # | john John.Doe
michael@146 335 # | @example.com @example.com
michael@146 336
michael@146 337 </file>
michael@146 338 <file name="transport">
michael@146 339 ##
michael@146 340 ## @l_prefix@/etc/postfix/transport -- transport selection
michael@146 341 ##
michael@146 342 ## Searched for domain and .domain (in this order). It selects the
michael@146 343 ## specified transport facility for delivery.
michael@146 344 ##
michael@146 345
michael@146 346 # Syntax (see transport(5)):
michael@146 347 # | domain transport:nexthop
michael@146 348 # | .domain transport:nexthop
michael@146 349 #
michael@146 350 # Examples:
michael@146 351 # | me.example.com local:
michael@146 352 # | you.example.com smtp:mail.example.com:2525
michael@146 353 # | example.com smtp:mail.example.com
michael@146 354 # | .example.com smtp:mail.example.com
michael@146 355
michael@146 356 </file>
michael@181 357 <file name="clients">
michael@179 358 ##
michael@181 359 ## @l_prefix@/etc/postfix/clients -- control for relaying clients
michael@181 360 ##
michael@181 361 ## Searched for both the client (hostname, parent domains, IP address,
michael@181 362 ## networks obtained by stripping least significant octets from IP
michael@181 363 ## address) and destination address (resolved destination address,
michael@181 364 ## parent domain, or localpart@) in order to allow relaying. Rejects
michael@181 365 ## the request if the result is REJECT or "[45]XX text". Permits the
michael@181 366 ## request if the result is OK or RELAY or all-numerical.
michael@181 367 ##
michael@181 368
michael@181 369 # Syntax (see postmap(5)):
michael@181 370 # | user@domain action
michael@181 371 # | domain action
michael@181 372 # | user@ action
michael@181 373 # | net.work.addr.ess action
michael@181 374 # | net.work.addr action
michael@181 375 # | net.work action
michael@181 376 # | net action
michael@181 377 # where "action" is one of:
michael@181 378 # "[45]NN text", "REJECT", "OK", "restriction..."
michael@181 379 #
michael@181 380 # Examples:
michael@181 381 # | mail.example.com OK
michael@181 382 # | example.com REJECT
michael@181 383 # | 192.168.0.1 OK
michael@181 384 # | 192.168 REJECT
michael@181 385 # | postmaster@ OK
michael@181 386
michael@181 387 </file>
michael@181 388 <file name="senders">
michael@181 389 ##
michael@181 390 ## @l_prefix@/etc/postfix/senders -- control for relaying senders
michael@181 391 ##
michael@181 392 ## Searched for both the client (hostname, parent domains, IP address,
michael@181 393 ## networks obtained by stripping least significant octets from IP
michael@181 394 ## address) and destination address (resolved destination address,
michael@181 395 ## parent domain, or localpart@) in order to allow relaying. Rejects
michael@181 396 ## the request if the result is REJECT or "[45]XX text". Permits the
michael@181 397 ## request if the result is OK or RELAY or all-numerical.
michael@181 398 ##
michael@181 399
michael@181 400 # Syntax (see access(5)):
michael@181 401 # | user@domain action
michael@181 402 # | domain action
michael@181 403 # | user@ action
michael@181 404 # | net.work.addr.ess action
michael@181 405 # | net.work.addr action
michael@181 406 # | net.work action
michael@181 407 # | net action
michael@181 408 # where "action" is one of:
michael@181 409 # "[45]NN text", "REJECT", "OK", "restriction..."
michael@181 410 #
michael@181 411 # Examples:
michael@181 412 # | mail.example.com OK
michael@181 413 # | example.com REJECT
michael@181 414 # | 192.168.0.1 OK
michael@181 415 # | 192.168 REJECT
michael@181 416 # | postmaster@ OK
michael@181 417
michael@181 418 </file>
michael@181 419 <file name="clicrt">
michael@181 420 ##
michael@181 421 ## @l_prefix@/etc/postfix/clicrt -- user identity verification
michael@179 422 ##
michael@179 423 ## Searched for user names matching TLS certificate fingerprints
michael@179 424 ## when a client responding to the MTA's client certificate request
michael@179 425 ## presents a valid (signed from proper CA) certificate.
michael@179 426 ##
michael@179 427 ## To find such fingerprints given a valid client certificate:
michael@179 428 ## @l_prefix@/bin/openssl x509 -noout -fingerprint -sha1 -in certfile.pem
michael@179 429 ##
michael@179 430
michael@181 431 # Syntax (fingerprint according to smtpd_tls_fingerprint_digest):
michael@181 432 # | fingerprint arbitrary-value
michael@181 433 #
michael@179 434 # Examples:
michael@181 435 # | B8:B8:A8:AE:B8:2A:2B:74:EC:43:FF:4F:B2:B2:AC:1E:B4:CE:26:1D user1
michael@181 436 # | 18:81:F5:22:18:BA:EB:15:FF:40:30:00:EA:C0:B4:2E:EC:AE:86:8E user2
michael@179 437
michael@179 438 </file>

mercurial