1 /* $NetBSD: mail_params.h,v 1.1.1.1 2009/06/23 10:08:46 tron Exp $ */
3 #ifndef _MAIL_PARAMS_H_INCLUDED_
4 #define _MAIL_PARAMS_H_INCLUDED_
10 /* globally configurable parameters
12 /* #include <mail_params.h>
17 * This is to make it easier to auto-generate tables.
22 * Name used when this mail system announces itself.
24 #define VAR_MAIL_NAME "mail_name"
25 #define DEF_MAIL_NAME "Postfix"
26 extern char *var_mail_name
;
29 * You want to be helped or not.
31 #define VAR_HELPFUL_WARNINGS "helpful_warnings"
32 #define DEF_HELPFUL_WARNINGS 1
33 extern bool var_helpful_warnings
;
36 * You want to be helped or not.
38 #define VAR_SHOW_UNK_RCPT_TABLE "show_user_unknown_table_name"
39 #define DEF_SHOW_UNK_RCPT_TABLE 1
40 extern bool var_show_unk_rcpt_table
;
43 * What problem classes should be reported to the postmaster via email.
44 * Default is bad problems only. See mail_error(3). Even when mail notices
45 * are disabled, problems are still logged to the syslog daemon.
47 * Do not add "protocol" to the default setting. It gives Postfix a bad
48 * reputation: people get mail whenever spam software makes a mistake.
50 #define VAR_NOTIFY_CLASSES "notify_classes"
51 #define DEF_NOTIFY_CLASSES "resource, software" /* Not: "protocol" */
52 extern char *var_notify_classes
;
55 * What do I turn <> into? Sendmail defaults to mailer-daemon.
57 #define VAR_EMPTY_ADDR "empty_address_recipient"
58 #define DEF_EMPTY_ADDR MAIL_ADDR_MAIL_DAEMON
59 extern char *var_empty_addr
;
62 * Privileges used by the mail system: the owner of files and commands, and
63 * the rights to be used when running external commands.
65 #define VAR_MAIL_OWNER "mail_owner"
66 #define DEF_MAIL_OWNER "postfix"
67 extern char *var_mail_owner
;
68 extern uid_t var_owner_uid
;
69 extern gid_t var_owner_gid
;
71 #define VAR_SGID_GROUP "setgid_group"
72 #define DEF_SGID_GROUP "maildrop"
73 extern char *var_sgid_group
;
74 extern gid_t var_sgid_gid
;
76 #define VAR_DEFAULT_PRIVS "default_privs"
77 #define DEF_DEFAULT_PRIVS "nobody"
78 extern char *var_default_privs
;
79 extern uid_t var_default_uid
;
80 extern gid_t var_default_gid
;
83 * Access control for local privileged operations:
85 #define STATIC_ANYONE_ACL "static:anyone"
87 #define VAR_FLUSH_ACL "authorized_flush_users"
88 #define DEF_FLUSH_ACL STATIC_ANYONE_ACL
89 extern char *var_flush_acl
;
91 #define VAR_SHOWQ_ACL "authorized_mailq_users"
92 #define DEF_SHOWQ_ACL STATIC_ANYONE_ACL
93 extern char *var_showq_acl
;
95 #define VAR_SUBMIT_ACL "authorized_submit_users"
96 #define DEF_SUBMIT_ACL STATIC_ANYONE_ACL
97 extern char *var_submit_acl
;
100 * What goes on the right-hand side of addresses of mail sent from this
103 #define VAR_MYORIGIN "myorigin"
104 #define DEF_MYORIGIN "$myhostname"
105 extern char *var_myorigin
;
108 * What domains I will receive mail for. Not to be confused with transit
109 * mail to other destinations.
111 #define VAR_MYDEST "mydestination"
112 #define DEF_MYDEST "$myhostname, localhost.$mydomain, localhost"
113 extern char *var_mydest
;
116 * These are by default taken from the name service.
118 #define VAR_MYHOSTNAME "myhostname" /* my hostname (fqdn) */
119 extern char *var_myhostname
;
121 #define VAR_MYDOMAIN "mydomain" /* my domain name */
122 #define DEF_MYDOMAIN "localdomain"
123 extern char *var_mydomain
;
126 * The default local delivery transport.
128 #define VAR_LOCAL_TRANSPORT "local_transport"
129 #define DEF_LOCAL_TRANSPORT MAIL_SERVICE_LOCAL ":$myhostname"
130 extern char *var_local_transport
;
133 * Where to send postmaster copies of bounced mail, and other notices.
135 #define VAR_BOUNCE_RCPT "bounce_notice_recipient"
136 #define DEF_BOUNCE_RCPT "postmaster"
137 extern char *var_bounce_rcpt
;
139 #define VAR_2BOUNCE_RCPT "2bounce_notice_recipient"
140 #define DEF_2BOUNCE_RCPT "postmaster"
141 extern char *var_2bounce_rcpt
;
143 #define VAR_DELAY_RCPT "delay_notice_recipient"
144 #define DEF_DELAY_RCPT "postmaster"
145 extern char *var_delay_rcpt
;
147 #define VAR_ERROR_RCPT "error_notice_recipient"
148 #define DEF_ERROR_RCPT "postmaster"
149 extern char *var_error_rcpt
;
152 * Virtual host support. Default is to listen on all machine interfaces.
154 #define VAR_INET_INTERFACES "inet_interfaces" /* listen addresses */
155 #define INET_INTERFACES_ALL "all"
156 #define INET_INTERFACES_LOCAL "loopback-only"
157 #define DEF_INET_INTERFACES INET_INTERFACES_ALL
158 extern char *var_inet_interfaces
;
160 #define VAR_PROXY_INTERFACES "proxy_interfaces" /* proxies, NATs */
161 #define DEF_PROXY_INTERFACES ""
162 extern char *var_proxy_interfaces
;
165 * Masquerading (i.e. subdomain stripping).
167 #define VAR_MASQ_DOMAINS "masquerade_domains"
168 #define DEF_MASQ_DOMAINS ""
169 extern char *var_masq_domains
;
171 #define VAR_MASQ_EXCEPTIONS "masquerade_exceptions"
172 #define DEF_MASQ_EXCEPTIONS ""
173 extern char *var_masq_exceptions
;
175 #define MASQ_CLASS_ENV_FROM "envelope_sender"
176 #define MASQ_CLASS_ENV_RCPT "envelope_recipient"
177 #define MASQ_CLASS_HDR_FROM "header_sender"
178 #define MASQ_CLASS_HDR_RCPT "header_recipient"
180 #define VAR_MASQ_CLASSES "masquerade_classes"
181 #define DEF_MASQ_CLASSES MASQ_CLASS_ENV_FROM ", " \
182 MASQ_CLASS_HDR_FROM ", " \
184 extern char *var_masq_classes
;
187 * Intranet versus internet.
189 #define VAR_RELAYHOST "relayhost"
190 #define DEF_RELAYHOST ""
191 extern char *var_relayhost
;
193 #define VAR_SND_RELAY_MAPS "sender_dependent_relayhost_maps"
194 #define DEF_SND_RELAY_MAPS ""
195 extern char *var_snd_relay_maps
;
197 #define VAR_NULL_RELAY_MAPS_KEY "empty_address_relayhost_maps_lookup_key"
198 #define DEF_NULL_RELAY_MAPS_KEY "<>"
199 extern char *var_null_relay_maps_key
;
201 #define VAR_SMTP_FALLBACK "smtp_fallback_relay"
202 #define DEF_SMTP_FALLBACK "$fallback_relay"
203 #define VAR_LMTP_FALLBACK "smtp_fallback_relay"
204 #define DEF_FALLBACK_RELAY ""
205 extern char *var_fallback_relay
;
207 #define VAR_DISABLE_DNS "disable_dns_lookups"
208 #define DEF_DISABLE_DNS 0
209 extern bool var_disable_dns
;
211 #define SMTP_HOST_LOOKUP_DNS "dns"
212 #define SMTP_HOST_LOOKUP_NATIVE "native"
214 #define VAR_SMTP_HOST_LOOKUP "smtp_host_lookup"
215 #define DEF_SMTP_HOST_LOOKUP SMTP_HOST_LOOKUP_DNS
216 #define VAR_LMTP_HOST_LOOKUP "lmtp_host_lookup"
217 #define DEF_LMTP_HOST_LOOKUP SMTP_HOST_LOOKUP_DNS
218 extern int var_smtp_dns_lookup
;
220 #define VAR_SMTP_MXADDR_LIMIT "smtp_mx_address_limit"
221 #define DEF_SMTP_MXADDR_LIMIT 5
222 #define VAR_LMTP_MXADDR_LIMIT "lmtp_mx_address_limit"
223 #define DEF_LMTP_MXADDR_LIMIT 5
224 extern int var_smtp_mxaddr_limit
;
226 #define VAR_SMTP_MXSESS_LIMIT "smtp_mx_session_limit"
227 #define DEF_SMTP_MXSESS_LIMIT 2
228 #define VAR_LMTP_MXSESS_LIMIT "lmtp_mx_session_limit"
229 #define DEF_LMTP_MXSESS_LIMIT 2
230 extern int var_smtp_mxsess_limit
;
233 * Location of the mail queue directory tree.
235 #define VAR_QUEUE_DIR "queue_directory"
236 #ifndef DEF_QUEUE_DIR
237 #define DEF_QUEUE_DIR "/var/spool/postfix"
239 extern char *var_queue_dir
;
242 * Location of command and daemon programs.
244 #define VAR_DAEMON_DIR "daemon_directory"
245 #ifndef DEF_DAEMON_DIR
246 #define DEF_DAEMON_DIR "/usr/libexec/postfix"
248 extern char *var_daemon_dir
;
250 #define VAR_COMMAND_DIR "command_directory"
251 #ifndef DEF_COMMAND_DIR
252 #define DEF_COMMAND_DIR "/usr/sbin"
254 extern char *var_command_dir
;
257 * Location of PID files.
259 #define VAR_PID_DIR "process_id_directory"
261 #define DEF_PID_DIR "pid"
263 extern char *var_pid_dir
;
266 * Location of writable data files.
268 #define VAR_DATA_DIR "data_directory"
270 #define DEF_DATA_DIR "/var/db/postfix"
272 extern char *var_data_dir
;
275 * Program startup time.
277 extern time_t var_starttime
;
280 * Location of configuration files.
282 #define VAR_CONFIG_DIR "config_directory"
283 #ifndef DEF_CONFIG_DIR
284 #define DEF_CONFIG_DIR "/etc/postfix"
286 extern char *var_config_dir
;
288 #define VAR_CONFIG_DIRS "alternate_config_directories"
289 #define DEF_CONFIG_DIRS ""
290 extern char *var_config_dirs
;
292 #define MAIN_CONF_FILE "main.cf"
293 #define MASTER_CONF_FILE "master.cf"
296 * Preferred type of indexed files. The DEF_DB_TYPE macro value is system
297 * dependent. It is defined in <sys_defs.h>.
299 #define VAR_DB_TYPE "default_database_type"
300 extern char *var_db_type
;
303 * What syslog facility to use. Unfortunately, something may have to be
304 * logged before parameters are read from the main.cf file. This logging
305 * will go the LOG_FACILITY facility specified below.
307 #define VAR_SYSLOG_FACILITY "syslog_facility"
308 extern char *var_syslog_facility
;
310 #ifndef DEF_SYSLOG_FACILITY
311 #define DEF_SYSLOG_FACILITY "mail"
315 #define LOG_FACILITY LOG_MAIL
319 * Big brother: who receives a blank-carbon copy of all mail that enters
322 #define VAR_ALWAYS_BCC "always_bcc"
323 #define DEF_ALWAYS_BCC ""
324 extern char *var_always_bcc
;
327 * What to put in the To: header when no recipients were disclosed.
329 * XXX 2822: When no recipient headers remain, a system should insert a Bcc:
330 * header without additional information. That is not so great given that
331 * MTAs routinely strip Bcc: headers from message headers.
333 #define VAR_RCPT_WITHELD "undisclosed_recipients_header"
334 #define DEF_RCPT_WITHELD "To: undisclosed-recipients:;"
335 extern char *var_rcpt_witheld
;
338 * Add missing headers. Postfix 2.6 no longer adds headers to remote mail by
341 #define VAR_ALWAYS_ADD_HDRS "always_add_missing_headers"
342 #define DEF_ALWAYS_ADD_HDRS 0
343 extern bool var_always_add_hdrs
;
346 * Standards violation: allow/permit RFC 822-style addresses in SMTP
349 #define VAR_STRICT_RFC821_ENV "strict_rfc821_envelopes"
350 #define DEF_STRICT_RFC821_ENV 0
351 extern bool var_strict_rfc821_env
;
354 * Standards violation: send "250 AUTH=list" in order to accomodate clients
355 * that implement an old version of the protocol.
357 #define VAR_BROKEN_AUTH_CLNTS "broken_sasl_auth_clients"
358 #define DEF_BROKEN_AUTH_CLNTS 0
359 extern bool var_broken_auth_clients
;
362 * Standards violation: disable VRFY.
364 #define VAR_DISABLE_VRFY_CMD "disable_vrfy_command"
365 #define DEF_DISABLE_VRFY_CMD 0
366 extern bool var_disable_vrfy_cmd
;
369 * trivial rewrite/resolve service: mapping tables.
371 #define VAR_VIRT_ALIAS_MAPS "virtual_alias_maps"
372 #define DEF_VIRT_ALIAS_MAPS "$virtual_maps" /* Compatibility! */
373 extern char *var_virt_alias_maps
;
375 #define VAR_VIRT_ALIAS_DOMS "virtual_alias_domains"
376 #define DEF_VIRT_ALIAS_DOMS "$virtual_alias_maps"
377 extern char *var_virt_alias_doms
;
379 #define VAR_VIRT_ALIAS_CODE "unknown_virtual_alias_reject_code"
380 #define DEF_VIRT_ALIAS_CODE 550
381 extern int var_virt_alias_code
;
383 #define VAR_CANONICAL_MAPS "canonical_maps"
384 #define DEF_CANONICAL_MAPS ""
385 extern char *var_canonical_maps
;
387 #define VAR_SEND_CANON_MAPS "sender_canonical_maps"
388 #define DEF_SEND_CANON_MAPS ""
389 extern char *var_send_canon_maps
;
391 #define VAR_RCPT_CANON_MAPS "recipient_canonical_maps"
392 #define DEF_RCPT_CANON_MAPS ""
393 extern char *var_rcpt_canon_maps
;
395 #define CANON_CLASS_ENV_FROM "envelope_sender"
396 #define CANON_CLASS_ENV_RCPT "envelope_recipient"
397 #define CANON_CLASS_HDR_FROM "header_sender"
398 #define CANON_CLASS_HDR_RCPT "header_recipient"
400 #define VAR_CANON_CLASSES "canonical_classes"
401 #define DEF_CANON_CLASSES CANON_CLASS_ENV_FROM ", " \
402 CANON_CLASS_ENV_RCPT ", " \
403 CANON_CLASS_HDR_FROM ", " \
405 extern char *var_canon_classes
;
407 #define VAR_SEND_CANON_CLASSES "sender_canonical_classes"
408 #define DEF_SEND_CANON_CLASSES CANON_CLASS_ENV_FROM ", " \
410 extern char *var_send_canon_classes
;
412 #define VAR_RCPT_CANON_CLASSES "recipient_canonical_classes"
413 #define DEF_RCPT_CANON_CLASSES CANON_CLASS_ENV_RCPT ", " \
415 extern char *var_rcpt_canon_classes
;
417 #define VAR_SEND_BCC_MAPS "sender_bcc_maps"
418 #define DEF_SEND_BCC_MAPS ""
419 extern char *var_send_bcc_maps
;
421 #define VAR_RCPT_BCC_MAPS "recipient_bcc_maps"
422 #define DEF_RCPT_BCC_MAPS ""
423 extern char *var_rcpt_bcc_maps
;
425 #define VAR_TRANSPORT_MAPS "transport_maps"
426 #define DEF_TRANSPORT_MAPS ""
427 extern char *var_transport_maps
;
429 #define VAR_DEF_TRANSPORT "default_transport"
430 #define DEF_DEF_TRANSPORT MAIL_SERVICE_SMTP
431 extern char *var_def_transport
;
434 * trivial rewrite/resolve service: rewriting controls.
436 #define VAR_SWAP_BANGPATH "swap_bangpath"
437 #define DEF_SWAP_BANGPATH 1
438 extern bool var_swap_bangpath
;
440 #define VAR_APP_AT_MYORIGIN "append_at_myorigin"
441 #define DEF_APP_AT_MYORIGIN 1
442 extern bool var_append_at_myorigin
;
444 #define VAR_APP_DOT_MYDOMAIN "append_dot_mydomain"
445 #define DEF_APP_DOT_MYDOMAIN 1
446 extern bool var_append_dot_mydomain
;
448 #define VAR_PERCENT_HACK "allow_percent_hack"
449 #define DEF_PERCENT_HACK 1
450 extern bool var_percent_hack
;
453 * Local delivery: alias databases.
455 #define VAR_ALIAS_MAPS "alias_maps"
457 #define DEF_ALIAS_MAPS ALIAS_DB_MAP ", nis:mail.aliases"
459 #define DEF_ALIAS_MAPS ALIAS_DB_MAP
461 extern char *var_alias_maps
;
464 * Local delivery: to BIFF or not to BIFF.
466 #define VAR_BIFF "biff"
468 extern bool var_biff
;
471 * Local delivery: mail to files/commands.
473 #define VAR_ALLOW_COMMANDS "allow_mail_to_commands"
474 #define DEF_ALLOW_COMMANDS "alias, forward"
475 extern char *var_allow_commands
;
477 #define VAR_COMMAND_MAXTIME "command_time_limit"
478 #define _MAXTIME "_time_limit"
479 #define DEF_COMMAND_MAXTIME "1000s"
480 extern int var_command_maxtime
;
482 #define VAR_ALLOW_FILES "allow_mail_to_files"
483 #define DEF_ALLOW_FILES "alias, forward"
484 extern char *var_allow_files
;
486 #define VAR_LOCAL_CMD_SHELL "local_command_shell"
487 #define DEF_LOCAL_CMD_SHELL ""
488 extern char *var_local_cmd_shell
;
490 #define VAR_ALIAS_DB_MAP "alias_database"
491 #define DEF_ALIAS_DB_MAP ALIAS_DB_MAP /* sys_defs.h */
492 extern char *var_alias_db_map
;
494 #define VAR_LUSER_RELAY "luser_relay"
495 #define DEF_LUSER_RELAY ""
496 extern char *var_luser_relay
;
499 * Local delivery: mailbox delivery.
501 #define VAR_MAIL_SPOOL_DIR "mail_spool_directory"
502 #define DEF_MAIL_SPOOL_DIR _PATH_MAILDIR
503 extern char *var_mail_spool_dir
;
505 #define VAR_HOME_MAILBOX "home_mailbox"
506 #define DEF_HOME_MAILBOX ""
507 extern char *var_home_mailbox
;
509 #define VAR_MAILBOX_COMMAND "mailbox_command"
510 #define DEF_MAILBOX_COMMAND ""
511 extern char *var_mailbox_command
;
513 #define VAR_MAILBOX_CMD_MAPS "mailbox_command_maps"
514 #define DEF_MAILBOX_CMD_MAPS ""
515 extern char *var_mailbox_cmd_maps
;
517 #define VAR_MAILBOX_TRANSP "mailbox_transport"
518 #define DEF_MAILBOX_TRANSP ""
519 extern char *var_mailbox_transport
;
521 #define VAR_MBOX_TRANSP_MAPS "mailbox_transport_maps"
522 #define DEF_MBOX_TRANSP_MAPS ""
523 extern char *var_mbox_transp_maps
;
525 #define VAR_FALLBACK_TRANSP "fallback_transport"
526 #define DEF_FALLBACK_TRANSP ""
527 extern char *var_fallback_transport
;
529 #define VAR_FBCK_TRANSP_MAPS "fallback_transport_maps"
530 #define DEF_FBCK_TRANSP_MAPS ""
531 extern char *var_fbck_transp_maps
;
534 * Local delivery: path to per-user forwarding file.
536 #define VAR_FORWARD_PATH "forward_path"
537 #define DEF_FORWARD_PATH "$home/.forward${recipient_delimiter}${extension}, $home/.forward"
538 extern char *var_forward_path
;
541 * Local delivery: external command execution directory.
543 #define VAR_EXEC_DIRECTORY "command_execution_directory"
544 #define DEF_EXEC_DIRECTORY ""
545 extern char *var_exec_directory
;
547 #define VAR_EXEC_EXP_FILTER "execution_directory_expansion_filter"
548 #define DEF_EXEC_EXP_FILTER "1234567890!@%-_=+:,./\
549 abcdefghijklmnopqrstuvwxyz\
550 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
551 extern char *var_exec_exp_filter
;
554 * Mailbox locking. DEF_MAILBOX_LOCK is defined in sys_defs.h.
556 #define VAR_MAILBOX_LOCK "mailbox_delivery_lock"
557 extern char *var_mailbox_lock
;
560 * Mailbox size limit. This used to be enforced as a side effect of the way
561 * the message size limit is implemented, but that is not clean.
563 #define VAR_MAILBOX_LIMIT "mailbox_size_limit"
564 #define DEF_MAILBOX_LIMIT (DEF_MESSAGE_LIMIT * 5)
565 extern int var_mailbox_limit
;
570 #define VAR_PROP_EXTENSION "propagate_unmatched_extensions"
571 #define DEF_PROP_EXTENSION "canonical, virtual"
572 extern char *var_prop_extension
;
574 #define VAR_RCPT_DELIM "recipient_delimiter"
575 #define DEF_RCPT_DELIM ""
576 extern char *var_rcpt_delim
;
578 #define VAR_CMD_EXP_FILTER "command_expansion_filter"
579 #define DEF_CMD_EXP_FILTER "1234567890!@%-_=+:,./\
580 abcdefghijklmnopqrstuvwxyz\
581 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
582 extern char *var_cmd_exp_filter
;
584 #define VAR_FWD_EXP_FILTER "forward_expansion_filter"
585 #define DEF_FWD_EXP_FILTER "1234567890!@%-_=+:,./\
586 abcdefghijklmnopqrstuvwxyz\
587 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
588 extern char *var_fwd_exp_filter
;
590 #define VAR_DELIVER_HDR "prepend_delivered_header"
591 #define DEF_DELIVER_HDR "command, file, forward"
592 extern char *var_deliver_hdr
;
595 * Cleanup: enable support for X-Original-To message headers, which are
596 * needed for multi-recipient mailboxes. When this is turned on, perform
597 * duplicate elimination on (original rcpt, rewritten rcpt) pairs, and
598 * generating non-empty original recipient records in the queue file.
600 #define VAR_ENABLE_ORCPT "enable_original_recipient"
601 #define DEF_ENABLE_ORCPT 1
602 extern bool var_enable_orcpt
;
604 #define VAR_EXP_OWN_ALIAS "expand_owner_alias"
605 #define DEF_EXP_OWN_ALIAS 0
606 extern bool var_exp_own_alias
;
608 #define VAR_STAT_HOME_DIR "require_home_directory"
609 #define DEF_STAT_HOME_DIR 0
610 extern bool var_stat_home_dir
;
613 * Queue manager: maximal size of the duplicate expansion filter. By
614 * default, we do graceful degradation with huge mailing lists.
616 #define VAR_DUP_FILTER_LIMIT "duplicate_filter_limit"
617 #define DEF_DUP_FILTER_LIMIT 1000
618 extern int var_dup_filter_limit
;
620 #define VAR_TLS_RAND_EXCH_NAME "tls_random_exchange_name"
621 #define DEF_TLS_RAND_EXCH_NAME "${data_directory}/prng_exch"
622 extern char *var_tls_rand_exch_name
;
624 #define VAR_TLS_RAND_SOURCE "tls_random_source"
625 #ifdef PREFERRED_RAND_SOURCE
626 #define DEF_TLS_RAND_SOURCE PREFERRED_RAND_SOURCE
628 #define DEF_TLS_RAND_SOURCE ""
630 extern char *var_tls_rand_source
;
632 #define VAR_TLS_RAND_BYTES "tls_random_bytes"
633 #define DEF_TLS_RAND_BYTES 32
634 extern int var_tls_rand_bytes
;
636 #define VAR_TLS_DAEMON_RAND_BYTES "tls_daemon_random_bytes"
637 #define DEF_TLS_DAEMON_RAND_BYTES 32
638 extern int var_tls_daemon_rand_bytes
;
640 #define VAR_TLS_RESEED_PERIOD "tls_random_reseed_period"
641 #define DEF_TLS_RESEED_PERIOD "3600s"
642 extern int var_tls_reseed_period
;
644 #define VAR_TLS_PRNG_UPD_PERIOD "tls_random_prng_update_period"
645 #define DEF_TLS_PRNG_UPD_PERIOD "3600s"
646 extern int var_tls_prng_upd_period
;
649 * Queue manager: relocated databases.
651 #define VAR_RELOCATED_MAPS "relocated_maps"
652 #define DEF_RELOCATED_MAPS ""
653 extern char *var_relocated_maps
;
656 * Queue manager: after each failed attempt the backoff time (how long we
657 * won't try this host in seconds) is doubled until it reaches the maximum.
658 * MAX_QUEUE_TIME limits the amount of time a message may spend in the mail
659 * queue before it is sent back.
661 #define VAR_QUEUE_RUN_DELAY "queue_run_delay"
662 #define DEF_QUEUE_RUN_DELAY "300s"
664 #define VAR_MIN_BACKOFF_TIME "minimal_backoff_time"
665 #define DEF_MIN_BACKOFF_TIME DEF_QUEUE_RUN_DELAY
666 extern int var_min_backoff_time
;
668 #define VAR_MAX_BACKOFF_TIME "maximal_backoff_time"
669 #define DEF_MAX_BACKOFF_TIME "4000s"
670 extern int var_max_backoff_time
;
672 #define VAR_MAX_QUEUE_TIME "maximal_queue_lifetime"
673 #define DEF_MAX_QUEUE_TIME "5d"
674 extern int var_max_queue_time
;
677 * XXX The default can't be $maximal_queue_lifetime, because that panics
678 * when a non-default maximal_queue_lifetime setting contains no time unit.
680 #define VAR_DSN_QUEUE_TIME "bounce_queue_lifetime"
681 #define DEF_DSN_QUEUE_TIME "5d"
682 extern int var_dsn_queue_time
;
684 #define VAR_DELAY_WARN_TIME "delay_warning_time"
685 #define DEF_DELAY_WARN_TIME "0h"
686 extern int var_delay_warn_time
;
689 * Queue manager: various in-core message and recipient limits.
691 #define VAR_QMGR_ACT_LIMIT "qmgr_message_active_limit"
692 #define DEF_QMGR_ACT_LIMIT 20000
693 extern int var_qmgr_active_limit
;
695 #define VAR_QMGR_RCPT_LIMIT "qmgr_message_recipient_limit"
696 #define DEF_QMGR_RCPT_LIMIT 20000
697 extern int var_qmgr_rcpt_limit
;
699 #define VAR_QMGR_MSG_RCPT_LIMIT "qmgr_message_recipient_minimum"
700 #define DEF_QMGR_MSG_RCPT_LIMIT 10
701 extern int var_qmgr_msg_rcpt_limit
;
703 #define VAR_XPORT_RCPT_LIMIT "default_recipient_limit"
704 #define _XPORT_RCPT_LIMIT "_recipient_limit"
705 #define DEF_XPORT_RCPT_LIMIT 20000
706 extern int var_xport_rcpt_limit
;
708 #define VAR_STACK_RCPT_LIMIT "default_extra_recipient_limit"
709 #define _STACK_RCPT_LIMIT "_extra_recipient_limit"
710 #define DEF_STACK_RCPT_LIMIT 1000
711 extern int var_stack_rcpt_limit
;
713 #define VAR_XPORT_REFILL_LIMIT "default_recipient_refill_limit"
714 #define _XPORT_REFILL_LIMIT "_recipient_refill_limit"
715 #define DEF_XPORT_REFILL_LIMIT 100
716 extern int var_xport_refill_limit
;
718 #define VAR_XPORT_REFILL_DELAY "default_recipient_refill_delay"
719 #define _XPORT_REFILL_DELAY "_recipient_refill_delay"
720 #define DEF_XPORT_REFILL_DELAY "5s"
721 extern int var_xport_refill_delay
;
724 * Queue manager: default job scheduler parameters.
726 #define VAR_DELIVERY_SLOT_COST "default_delivery_slot_cost"
727 #define _DELIVERY_SLOT_COST "_delivery_slot_cost"
728 #define DEF_DELIVERY_SLOT_COST 5
729 extern int var_delivery_slot_cost
;
731 #define VAR_DELIVERY_SLOT_LOAN "default_delivery_slot_loan"
732 #define _DELIVERY_SLOT_LOAN "_delivery_slot_loan"
733 #define DEF_DELIVERY_SLOT_LOAN 3
734 extern int var_delivery_slot_loan
;
736 #define VAR_DELIVERY_SLOT_DISCOUNT "default_delivery_slot_discount"
737 #define _DELIVERY_SLOT_DISCOUNT "_delivery_slot_discount"
738 #define DEF_DELIVERY_SLOT_DISCOUNT 50
739 extern int var_delivery_slot_discount
;
741 #define VAR_MIN_DELIVERY_SLOTS "default_minimum_delivery_slots"
742 #define _MIN_DELIVERY_SLOTS "_minimum_delivery_slots"
743 #define DEF_MIN_DELIVERY_SLOTS 3
744 extern int var_min_delivery_slots
;
746 #define VAR_QMGR_FUDGE "qmgr_fudge_factor"
747 #define DEF_QMGR_FUDGE 100
748 extern int var_qmgr_fudge
;
751 * Queue manager: default destination concurrency levels.
753 #define VAR_INIT_DEST_CON "initial_destination_concurrency"
754 #define _INIT_DEST_CON "_initial_destination_concurrency"
755 #define DEF_INIT_DEST_CON 5
756 extern int var_init_dest_concurrency
;
758 #define VAR_DEST_CON_LIMIT "default_destination_concurrency_limit"
759 #define _DEST_CON_LIMIT "_destination_concurrency_limit"
760 #define DEF_DEST_CON_LIMIT 20
761 extern int var_dest_con_limit
;
763 #define VAR_LOCAL_CON_LIMIT "local" _DEST_CON_LIMIT
764 #define DEF_LOCAL_CON_LIMIT 2
765 extern int var_local_con_lim
;
768 * Queue manager: default number of recipients per transaction.
770 #define VAR_DEST_RCPT_LIMIT "default_destination_recipient_limit"
771 #define _DEST_RCPT_LIMIT "_destination_recipient_limit"
772 #define DEF_DEST_RCPT_LIMIT 50
773 extern int var_dest_rcpt_limit
;
775 #define VAR_LOCAL_RCPT_LIMIT "local" _DEST_RCPT_LIMIT /* XXX */
776 #define DEF_LOCAL_RCPT_LIMIT 1 /* XXX */
777 extern int var_local_rcpt_lim
;
780 * Queue manager: default delay before retrying a dead transport.
782 #define VAR_XPORT_RETRY_TIME "transport_retry_time"
783 #define DEF_XPORT_RETRY_TIME "60s"
784 extern int var_transport_retry_time
;
787 * Queue manager: what transports to defer delivery to.
789 #define VAR_DEFER_XPORTS "defer_transports"
790 #define DEF_DEFER_XPORTS ""
791 extern char *var_defer_xports
;
794 * Queue manager: how often to warn that a destination is clogging the
797 #define VAR_QMGR_CLOG_WARN_TIME "qmgr_clog_warn_time"
798 #define DEF_QMGR_CLOG_WARN_TIME "300s"
799 extern int var_qmgr_clog_warn_time
;
802 * Master: default process count limit per mail subsystem.
804 #define VAR_PROC_LIMIT "default_process_limit"
805 #define DEF_PROC_LIMIT 100
806 extern int var_proc_limit
;
809 * Master: default time to wait after service is throttled.
811 #define VAR_THROTTLE_TIME "service_throttle_time"
812 #define DEF_THROTTLE_TIME "60s"
813 extern int var_throttle_time
;
816 * Master: what master.cf services are turned off.
818 #define VAR_MASTER_DISABLE "master_service_disable"
819 #define DEF_MASTER_DISABLE ""
820 extern char *var_master_disable
;
823 * Any subsystem: default maximum number of clients serviced before a mail
824 * subsystem terminates (except queue manager).
826 #define VAR_MAX_USE "max_use"
827 #define DEF_MAX_USE 100
828 extern int var_use_limit
;
831 * Any subsystem: default amount of time a mail subsystem waits for a client
832 * connection (except queue manager).
834 #define VAR_MAX_IDLE "max_idle"
835 #define DEF_MAX_IDLE "100s"
836 extern int var_idle_limit
;
839 * Any subsystem: default amount of time a mail subsystem waits for
840 * application events to drain.
842 #define VAR_EVENT_DRAIN "application_event_drain_time"
843 #define DEF_EVENT_DRAIN "100s"
844 extern int var_event_drain
;
847 * Any subsystem: default amount of time a mail subsystem keeps an internal
848 * IPC connection before closing it because it is idle for too much time.
850 #define VAR_IPC_IDLE "ipc_idle"
851 #define DEF_IPC_IDLE "5s"
852 extern int var_ipc_idle_limit
;
855 * Any subsystem: default amount of time a mail subsystem keeps an internal
856 * IPC connection before closing it because the connection has existed for
859 #define VAR_IPC_TTL "ipc_ttl"
860 #define DEF_IPC_TTL "1000s"
861 extern int var_ipc_ttl_limit
;
864 * Any front-end subsystem: avoid running out of memory when someone sends
865 * infinitely-long requests or replies.
867 #define VAR_LINE_LIMIT "line_length_limit"
868 #define DEF_LINE_LIMIT 2048
869 extern int var_line_limit
;
872 * Specify what SMTP peers need verbose logging.
874 #define VAR_DEBUG_PEER_LIST "debug_peer_list"
875 #define DEF_DEBUG_PEER_LIST ""
876 extern char *var_debug_peer_list
;
878 #define VAR_DEBUG_PEER_LEVEL "debug_peer_level"
879 #define DEF_DEBUG_PEER_LEVEL 2
880 extern int var_debug_peer_level
;
883 * Queue management: what queues are hashed behind a forest of
884 * subdirectories, and how deep the forest is.
886 #define VAR_HASH_QUEUE_NAMES "hash_queue_names"
887 #define DEF_HASH_QUEUE_NAMES "deferred, defer"
888 extern char *var_hash_queue_names
;
890 #define VAR_HASH_QUEUE_DEPTH "hash_queue_depth"
891 #define DEF_HASH_QUEUE_DEPTH 1
892 extern int var_hash_queue_depth
;
895 * Multi-protocol support.
897 #define INET_PROTO_NAME_IPV4 "ipv4"
898 #define INET_PROTO_NAME_IPV6 "ipv6"
899 #define INET_PROTO_NAME_ALL "all"
900 #define VAR_INET_PROTOCOLS "inet_protocols"
901 extern char *var_inet_protocols
;
904 * SMTP client. Timeouts inspired by RFC 1123. The SMTP recipient limit
905 * determines how many recipient addresses the SMTP client sends along with
906 * each message. Unfortunately, some mailers misbehave and disconnect (smap)
907 * when given more recipients than they are willing to handle.
909 * XXX 2821: A mail system is supposed to use EHLO instead of HELO, and to fall
910 * back to HELO if EHLO is not supported.
912 #define VAR_BESTMX_TRANSP "best_mx_transport"
913 #define DEF_BESTMX_TRANSP ""
914 extern char *var_bestmx_transp
;
916 #define VAR_SMTP_CACHE_CONNT "smtp_connection_cache_time_limit"
917 #define DEF_SMTP_CACHE_CONNT "2s"
918 #define VAR_LMTP_CACHE_CONNT "lmtp_connection_cache_time_limit"
919 #define DEF_LMTP_CACHE_CONNT "2s"
920 extern int var_smtp_cache_conn
;
922 #define VAR_SMTP_REUSE_TIME "smtp_connection_reuse_time_limit"
923 #define DEF_SMTP_REUSE_TIME "300s"
924 #define VAR_LMTP_REUSE_TIME "lmtp_connection_reuse_time_limit"
925 #define DEF_LMTP_REUSE_TIME "300s"
926 extern int var_smtp_reuse_time
;
928 #define VAR_SMTP_CACHE_DEST "smtp_connection_cache_destinations"
929 #define DEF_SMTP_CACHE_DEST ""
930 #define VAR_LMTP_CACHE_DEST "lmtp_connection_cache_destinations"
931 #define DEF_LMTP_CACHE_DEST ""
932 extern char *var_smtp_cache_dest
;
934 #define VAR_SMTP_CACHE_DEMAND "smtp_connection_cache_on_demand"
935 #ifndef DEF_SMTP_CACHE_DEMAND
936 #define DEF_SMTP_CACHE_DEMAND 1
938 #define VAR_LMTP_CACHE_DEMAND "lmtp_connection_cache_on_demand"
939 #ifndef DEF_LMTP_CACHE_DEMAND
940 #define DEF_LMTP_CACHE_DEMAND 1
942 extern bool var_smtp_cache_demand
;
944 #define VAR_SMTP_CONN_TMOUT "smtp_connect_timeout"
945 #define DEF_SMTP_CONN_TMOUT "30s"
946 extern int var_smtp_conn_tmout
;
948 #define VAR_SMTP_HELO_TMOUT "smtp_helo_timeout"
949 #define DEF_SMTP_HELO_TMOUT "300s"
950 #define VAR_LMTP_HELO_TMOUT "lmtp_lhlo_timeout"
951 #define DEF_LMTP_HELO_TMOUT "300s"
952 extern int var_smtp_helo_tmout
;
954 #define VAR_SMTP_XFWD_TMOUT "smtp_xforward_timeout"
955 #define DEF_SMTP_XFWD_TMOUT "300s"
956 extern int var_smtp_xfwd_tmout
;
958 #define VAR_SMTP_STARTTLS_TMOUT "smtp_starttls_timeout"
959 #define DEF_SMTP_STARTTLS_TMOUT "300s"
960 #define VAR_LMTP_STARTTLS_TMOUT "lmtp_starttls_timeout"
961 #define DEF_LMTP_STARTTLS_TMOUT "300s"
962 extern int var_smtp_starttls_tmout
;
964 #define VAR_SMTP_MAIL_TMOUT "smtp_mail_timeout"
965 #define DEF_SMTP_MAIL_TMOUT "300s"
966 extern int var_smtp_mail_tmout
;
968 #define VAR_SMTP_RCPT_TMOUT "smtp_rcpt_timeout"
969 #define DEF_SMTP_RCPT_TMOUT "300s"
970 extern int var_smtp_rcpt_tmout
;
972 #define VAR_SMTP_DATA0_TMOUT "smtp_data_init_timeout"
973 #define DEF_SMTP_DATA0_TMOUT "120s"
974 extern int var_smtp_data0_tmout
;
976 #define VAR_SMTP_DATA1_TMOUT "smtp_data_xfer_timeout"
977 #define DEF_SMTP_DATA1_TMOUT "180s"
978 extern int var_smtp_data1_tmout
;
980 #define VAR_SMTP_DATA2_TMOUT "smtp_data_done_timeout"
981 #define DEF_SMTP_DATA2_TMOUT "600s"
982 extern int var_smtp_data2_tmout
;
984 #define VAR_SMTP_RSET_TMOUT "smtp_rset_timeout"
985 #define DEF_SMTP_RSET_TMOUT "20s"
986 extern int var_smtp_rset_tmout
;
988 #define VAR_SMTP_QUIT_TMOUT "smtp_quit_timeout"
989 #define DEF_SMTP_QUIT_TMOUT "300s"
990 extern int var_smtp_quit_tmout
;
992 #define VAR_SMTP_QUOTE_821_ENV "smtp_quote_rfc821_envelope"
993 #define DEF_SMTP_QUOTE_821_ENV 1
994 #define VAR_LMTP_QUOTE_821_ENV "lmtp_quote_rfc821_envelope"
995 #define DEF_LMTP_QUOTE_821_ENV 1
996 extern int var_smtp_quote_821_env
;
998 #define VAR_SMTP_SKIP_5XX "smtp_skip_5xx_greeting"
999 #define DEF_SMTP_SKIP_5XX 1
1000 #define VAR_LMTP_SKIP_5XX "lmtp_skip_5xx_greeting"
1001 #define DEF_LMTP_SKIP_5XX 1
1002 extern bool var_smtp_skip_5xx_greeting
;
1004 #define VAR_IGN_MX_LOOKUP_ERR "ignore_mx_lookup_error"
1005 #define DEF_IGN_MX_LOOKUP_ERR 0
1006 extern bool var_ign_mx_lookup_err
;
1008 #define VAR_SMTP_SKIP_QUIT_RESP "smtp_skip_quit_response"
1009 #define DEF_SMTP_SKIP_QUIT_RESP 1
1010 extern bool var_skip_quit_resp
;
1012 #define VAR_SMTP_ALWAYS_EHLO "smtp_always_send_ehlo"
1013 #ifdef RFC821_SYNTAX
1014 #define DEF_SMTP_ALWAYS_EHLO 0
1016 #define DEF_SMTP_ALWAYS_EHLO 1
1018 extern bool var_smtp_always_ehlo
;
1020 #define VAR_SMTP_NEVER_EHLO "smtp_never_send_ehlo"
1021 #define DEF_SMTP_NEVER_EHLO 0
1022 extern bool var_smtp_never_ehlo
;
1024 #define VAR_SMTP_BIND_ADDR "smtp_bind_address"
1025 #define DEF_SMTP_BIND_ADDR ""
1026 #define VAR_LMTP_BIND_ADDR "lmtp_bind_address"
1027 #define DEF_LMTP_BIND_ADDR ""
1028 extern char *var_smtp_bind_addr
;
1030 #define VAR_SMTP_BIND_ADDR6 "smtp_bind_address6"
1031 #define DEF_SMTP_BIND_ADDR6 ""
1032 #define VAR_LMTP_BIND_ADDR6 "lmtp_bind_address6"
1033 #define DEF_LMTP_BIND_ADDR6 ""
1034 extern char *var_smtp_bind_addr6
;
1036 #define VAR_SMTP_HELO_NAME "smtp_helo_name"
1037 #define DEF_SMTP_HELO_NAME "$myhostname"
1038 #define VAR_LMTP_HELO_NAME "lmtp_lhlo_name"
1039 #define DEF_LMTP_HELO_NAME "$myhostname"
1040 extern char *var_smtp_helo_name
;
1042 #define VAR_SMTP_RAND_ADDR "smtp_randomize_addresses"
1043 #define DEF_SMTP_RAND_ADDR 1
1044 #define VAR_LMTP_RAND_ADDR "lmtp_randomize_addresses"
1045 #define DEF_LMTP_RAND_ADDR 1
1046 extern bool var_smtp_rand_addr
;
1048 #define VAR_SMTP_LINE_LIMIT "smtp_line_length_limit"
1049 #define DEF_SMTP_LINE_LIMIT 990
1050 #define VAR_LMTP_LINE_LIMIT "lmtp_line_length_limit"
1051 #define DEF_LMTP_LINE_LIMIT 990
1052 extern int var_smtp_line_limit
;
1054 #define VAR_SMTP_PIX_THRESH "smtp_pix_workaround_threshold_time"
1055 #define DEF_SMTP_PIX_THRESH "500s"
1056 #define VAR_LMTP_PIX_THRESH "lmtp_pix_workaround_threshold_time"
1057 #define DEF_LMTP_PIX_THRESH "500s"
1058 extern int var_smtp_pix_thresh
;
1060 #define VAR_SMTP_PIX_DELAY "smtp_pix_workaround_delay_time"
1061 #define DEF_SMTP_PIX_DELAY "10s"
1062 #define VAR_LMTP_PIX_DELAY "lmtp_pix_workaround_delay_time"
1063 #define DEF_LMTP_PIX_DELAY "10s"
1064 extern int var_smtp_pix_delay
;
1067 * Courageous people may want to turn off PIX bug workarounds.
1069 #define PIX_BUG_DISABLE_ESMTP "disable_esmtp"
1070 #define PIX_BUG_DELAY_DOTCRLF "delay_dotcrlf"
1071 #define VAR_SMTP_PIX_BUG_WORDS "smtp_pix_workarounds"
1072 #define DEF_SMTP_PIX_BUG_WORDS PIX_BUG_DISABLE_ESMTP "," \
1073 PIX_BUG_DELAY_DOTCRLF
1074 #define VAR_LMTP_PIX_BUG_WORDS "lmtp_pix_workarounds"
1075 #define DEF_LMTP_PIX_BUG_WORDS DEF_SMTP_PIX_BUG_WORDS
1076 extern char *var_smtp_pix_bug_words
;
1078 #define VAR_SMTP_PIX_BUG_MAPS "smtp_pix_workaround_maps"
1079 #define DEF_SMTP_PIX_BUG_MAPS ""
1080 #define VAR_LMTP_PIX_BUG_MAPS "lmtp_pix_workaround_maps"
1081 #define DEF_LMTP_PIX_BUG_MAPS ""
1082 extern char *var_smtp_pix_bug_maps
;
1084 #define VAR_SMTP_DEFER_MXADDR "smtp_defer_if_no_mx_address_found"
1085 #define DEF_SMTP_DEFER_MXADDR 0
1086 #define VAR_LMTP_DEFER_MXADDR "lmtp_defer_if_no_mx_address_found"
1087 #define DEF_LMTP_DEFER_MXADDR 0
1088 extern bool var_smtp_defer_mxaddr
;
1090 #define VAR_SMTP_SEND_XFORWARD "smtp_send_xforward_command"
1091 #define DEF_SMTP_SEND_XFORWARD 0
1092 extern bool var_smtp_send_xforward
;
1094 #define VAR_SMTP_GENERIC_MAPS "smtp_generic_maps"
1095 #define DEF_SMTP_GENERIC_MAPS ""
1096 #define VAR_LMTP_GENERIC_MAPS "lmtp_generic_maps"
1097 #define DEF_LMTP_GENERIC_MAPS ""
1098 extern char *var_smtp_generic_maps
;
1101 * SMTP server. The soft error limit determines how many errors an SMTP
1102 * client may make before we start to slow down; the hard error limit
1103 * determines after how many client errors we disconnect.
1105 #define VAR_SMTPD_BANNER "smtpd_banner"
1106 #define DEF_SMTPD_BANNER "$myhostname ESMTP $mail_name"
1107 extern char *var_smtpd_banner
;
1109 #define VAR_SMTPD_TMOUT "smtpd_timeout"
1110 #define DEF_SMTPD_TMOUT "${stress?10}${stress:300}s"
1111 extern int var_smtpd_tmout
;
1113 #define VAR_SMTPD_STARTTLS_TMOUT "smtpd_starttls_timeout"
1114 #define DEF_SMTPD_STARTTLS_TMOUT "300s"
1115 extern int var_smtpd_starttls_tmout
;
1117 #define VAR_SMTPD_RCPT_LIMIT "smtpd_recipient_limit"
1118 #define DEF_SMTPD_RCPT_LIMIT 1000
1119 extern int var_smtpd_rcpt_limit
;
1121 #define VAR_SMTPD_SOFT_ERLIM "smtpd_soft_error_limit"
1122 #define DEF_SMTPD_SOFT_ERLIM "10"
1123 extern int var_smtpd_soft_erlim
;
1125 #define VAR_SMTPD_HARD_ERLIM "smtpd_hard_error_limit"
1126 #define DEF_SMTPD_HARD_ERLIM "${stress?1}${stress:20}"
1127 extern int var_smtpd_hard_erlim
;
1129 #define VAR_SMTPD_ERR_SLEEP "smtpd_error_sleep_time"
1130 #define DEF_SMTPD_ERR_SLEEP "1s"
1131 extern int var_smtpd_err_sleep
;
1133 #define VAR_SMTPD_JUNK_CMD "smtpd_junk_command_limit"
1134 #define DEF_SMTPD_JUNK_CMD "${stress?1}${stress:100}"
1135 extern int var_smtpd_junk_cmd_limit
;
1137 #define VAR_SMTPD_RCPT_OVERLIM "smtpd_recipient_overshoot_limit"
1138 #define DEF_SMTPD_RCPT_OVERLIM 1000
1139 extern int var_smtpd_rcpt_overlim
;
1141 #define VAR_SMTPD_HIST_THRSH "smtpd_history_flush_threshold"
1142 #define DEF_SMTPD_HIST_THRSH 100
1143 extern int var_smtpd_hist_thrsh
;
1145 #define VAR_SMTPD_NOOP_CMDS "smtpd_noop_commands"
1146 #define DEF_SMTPD_NOOP_CMDS ""
1147 extern char *var_smtpd_noop_cmds
;
1149 #define VAR_SMTPD_FORBID_CMDS "smtpd_forbidden_commands"
1150 #define DEF_SMTPD_FORBID_CMDS "CONNECT GET POST"
1151 extern char *var_smtpd_forbid_cmds
;
1153 #define VAR_SMTPD_TLS_WRAPPER "smtpd_tls_wrappermode"
1154 #define DEF_SMTPD_TLS_WRAPPER 0
1155 extern bool var_smtpd_tls_wrappermode
;
1157 #define VAR_SMTPD_TLS_LEVEL "smtpd_tls_security_level"
1158 #define DEF_SMTPD_TLS_LEVEL ""
1159 extern char *var_smtpd_tls_level
;
1161 #define VAR_SMTPD_USE_TLS "smtpd_use_tls"
1162 #define DEF_SMTPD_USE_TLS 0
1163 extern bool var_smtpd_use_tls
;
1165 #define VAR_SMTPD_ENFORCE_TLS "smtpd_enforce_tls"
1166 #define DEF_SMTPD_ENFORCE_TLS 0
1167 extern bool var_smtpd_enforce_tls
;
1169 #define VAR_SMTPD_TLS_AUTH_ONLY "smtpd_tls_auth_only"
1170 #define DEF_SMTPD_TLS_AUTH_ONLY 0
1171 extern bool var_smtpd_tls_auth_only
;
1173 #define VAR_SMTPD_TLS_ACERT "smtpd_tls_ask_ccert"
1174 #define DEF_SMTPD_TLS_ACERT 0
1175 extern bool var_smtpd_tls_ask_ccert
;
1177 #define VAR_SMTPD_TLS_RCERT "smtpd_tls_req_ccert"
1178 #define DEF_SMTPD_TLS_RCERT 0
1179 extern bool var_smtpd_tls_req_ccert
;
1181 #define VAR_SMTPD_TLS_CCERT_VD "smtpd_tls_ccert_verifydepth"
1182 #define DEF_SMTPD_TLS_CCERT_VD 9
1183 extern int var_smtpd_tls_ccert_vd
;
1185 #define VAR_SMTPD_TLS_CERT_FILE "smtpd_tls_cert_file"
1186 #define DEF_SMTPD_TLS_CERT_FILE ""
1187 extern char *var_smtpd_tls_cert_file
;
1189 #define VAR_SMTPD_TLS_KEY_FILE "smtpd_tls_key_file"
1190 #define DEF_SMTPD_TLS_KEY_FILE "$smtpd_tls_cert_file"
1191 extern char *var_smtpd_tls_key_file
;
1193 #define VAR_SMTPD_TLS_DCERT_FILE "smtpd_tls_dcert_file"
1194 #define DEF_SMTPD_TLS_DCERT_FILE ""
1195 extern char *var_smtpd_tls_dcert_file
;
1197 #define VAR_SMTPD_TLS_DKEY_FILE "smtpd_tls_dkey_file"
1198 #define DEF_SMTPD_TLS_DKEY_FILE "$smtpd_tls_dcert_file"
1199 extern char *var_smtpd_tls_dkey_file
;
1201 #define VAR_SMTPD_TLS_ECCERT_FILE "smtpd_tls_eccert_file"
1202 #define DEF_SMTPD_TLS_ECCERT_FILE ""
1203 extern char *var_smtpd_tls_eccert_file
;
1205 #define VAR_SMTPD_TLS_ECKEY_FILE "smtpd_tls_eckey_file"
1206 #define DEF_SMTPD_TLS_ECKEY_FILE "$smtpd_tls_eccert_file"
1207 extern char *var_smtpd_tls_eckey_file
;
1209 #define VAR_SMTPD_TLS_CA_FILE "smtpd_tls_CAfile"
1210 #define DEF_SMTPD_TLS_CA_FILE ""
1211 extern char *var_smtpd_tls_CAfile
;
1213 #define VAR_SMTPD_TLS_CA_PATH "smtpd_tls_CApath"
1214 #define DEF_SMTPD_TLS_CA_PATH ""
1215 extern char *var_smtpd_tls_CApath
;
1217 #define VAR_SMTPD_TLS_PROTO "smtpd_tls_protocols"
1218 #define DEF_SMTPD_TLS_PROTO ""
1219 extern char *var_smtpd_tls_proto
;
1221 #define VAR_SMTPD_TLS_MAND_PROTO "smtpd_tls_mandatory_protocols"
1222 #define DEF_SMTPD_TLS_MAND_PROTO "SSLv3, TLSv1"
1223 extern char *var_smtpd_tls_mand_proto
;
1225 #define VAR_SMTPD_TLS_CIPH "smtpd_tls_ciphers"
1226 #define DEF_SMTPD_TLS_CIPH "export"
1227 extern char *var_smtpd_tls_ciph
;
1229 #define VAR_SMTPD_TLS_MAND_CIPH "smtpd_tls_mandatory_ciphers"
1230 #define DEF_SMTPD_TLS_MAND_CIPH "medium"
1231 extern char *var_smtpd_tls_mand_ciph
;
1233 #define VAR_SMTPD_TLS_EXCL_CIPH "smtpd_tls_exclude_ciphers"
1234 #define DEF_SMTPD_TLS_EXCL_CIPH ""
1235 extern char *var_smtpd_tls_excl_ciph
;
1237 #define VAR_SMTPD_TLS_MAND_EXCL "smtpd_tls_mandatory_exclude_ciphers"
1238 #define DEF_SMTPD_TLS_MAND_EXCL ""
1239 extern char *var_smtpd_tls_mand_excl
;
1241 #define VAR_SMTPD_TLS_FPT_DGST "smtpd_tls_fingerprint_digest"
1242 #define DEF_SMTPD_TLS_FPT_DGST "md5"
1243 extern char *var_smtpd_tls_fpt_dgst
;
1245 #define VAR_SMTPD_TLS_512_FILE "smtpd_tls_dh512_param_file"
1246 #define DEF_SMTPD_TLS_512_FILE ""
1247 extern char *var_smtpd_tls_dh512_param_file
;
1249 #define VAR_SMTPD_TLS_1024_FILE "smtpd_tls_dh1024_param_file"
1250 #define DEF_SMTPD_TLS_1024_FILE ""
1251 extern char *var_smtpd_tls_dh1024_param_file
;
1253 #define VAR_SMTPD_TLS_EECDH "smtpd_tls_eecdh_grade"
1255 #define DEF_SMTPD_TLS_EECDH "strong"
1257 #define DEF_SMTPD_TLS_EECDH "none"
1259 extern char *var_smtpd_tls_eecdh
;
1261 #define VAR_SMTPD_TLS_LOGLEVEL "smtpd_tls_loglevel"
1262 #define DEF_SMTPD_TLS_LOGLEVEL 0
1263 extern int var_smtpd_tls_loglevel
;
1265 #define VAR_SMTPD_TLS_RECHEAD "smtpd_tls_received_header"
1266 #define DEF_SMTPD_TLS_RECHEAD 0
1267 extern bool var_smtpd_tls_received_header
;
1269 #define VAR_SMTPD_TLS_SCACHE_DB "smtpd_tls_session_cache_database"
1270 #define DEF_SMTPD_TLS_SCACHE_DB ""
1271 extern char *var_smtpd_tls_scache_db
;
1273 #define VAR_SMTPD_TLS_SCACHTIME "smtpd_tls_session_cache_timeout"
1274 #define DEF_SMTPD_TLS_SCACHTIME "3600s"
1275 extern int var_smtpd_tls_scache_timeout
;
1277 #define VAR_SMTPD_TLS_SET_SESSID "smtpd_tls_always_issue_session_ids"
1278 #define DEF_SMTPD_TLS_SET_SESSID 1
1279 extern bool var_smtpd_tls_set_sessid
;
1281 #define VAR_SMTPD_DELAY_OPEN "smtpd_delay_open_until_valid_rcpt"
1282 #define DEF_SMTPD_DELAY_OPEN 1
1283 extern bool var_smtpd_delay_open
;
1285 #define VAR_SMTP_TLS_PER_SITE "smtp_tls_per_site"
1286 #define DEF_SMTP_TLS_PER_SITE ""
1287 #define VAR_LMTP_TLS_PER_SITE "lmtp_tls_per_site"
1288 #define DEF_LMTP_TLS_PER_SITE ""
1289 extern char *var_smtp_tls_per_site
;
1291 #define VAR_SMTP_USE_TLS "smtp_use_tls"
1292 #define DEF_SMTP_USE_TLS 0
1293 #define VAR_LMTP_USE_TLS "lmtp_use_tls"
1294 #define DEF_LMTP_USE_TLS 0
1295 extern bool var_smtp_use_tls
;
1297 #define VAR_SMTP_ENFORCE_TLS "smtp_enforce_tls"
1298 #define DEF_SMTP_ENFORCE_TLS 0
1299 #define VAR_LMTP_ENFORCE_TLS "lmtp_enforce_tls"
1300 #define DEF_LMTP_ENFORCE_TLS 0
1301 extern bool var_smtp_enforce_tls
;
1303 #define VAR_SMTP_TLS_ENFORCE_PN "smtp_tls_enforce_peername"
1304 #define DEF_SMTP_TLS_ENFORCE_PN 1
1305 #define VAR_LMTP_TLS_ENFORCE_PN "lmtp_tls_enforce_peername"
1306 #define DEF_LMTP_TLS_ENFORCE_PN 1
1307 extern bool var_smtp_tls_enforce_peername
;
1309 #define VAR_SMTP_TLS_LEVEL "smtp_tls_security_level"
1310 #define DEF_SMTP_TLS_LEVEL ""
1311 #define VAR_LMTP_TLS_LEVEL "lmtp_tls_security_level"
1312 #define DEF_LMTP_TLS_LEVEL ""
1313 extern char *var_smtp_tls_level
;
1315 #define VAR_SMTP_TLS_SCERT_VD "smtp_tls_scert_verifydepth"
1316 #define DEF_SMTP_TLS_SCERT_VD 9
1317 #define VAR_LMTP_TLS_SCERT_VD "lmtp_tls_scert_verifydepth"
1318 #define DEF_LMTP_TLS_SCERT_VD 9
1319 extern int var_smtp_tls_scert_vd
;
1321 #define VAR_SMTP_TLS_CERT_FILE "smtp_tls_cert_file"
1322 #define DEF_SMTP_TLS_CERT_FILE ""
1323 #define VAR_LMTP_TLS_CERT_FILE "lmtp_tls_cert_file"
1324 #define DEF_LMTP_TLS_CERT_FILE ""
1325 extern char *var_smtp_tls_cert_file
;
1327 #define VAR_SMTP_TLS_KEY_FILE "smtp_tls_key_file"
1328 #define DEF_SMTP_TLS_KEY_FILE "$smtp_tls_cert_file"
1329 #define VAR_LMTP_TLS_KEY_FILE "lmtp_tls_key_file"
1330 #define DEF_LMTP_TLS_KEY_FILE "$lmtp_tls_cert_file"
1331 extern char *var_smtp_tls_key_file
;
1333 #define VAR_SMTP_TLS_DCERT_FILE "smtp_tls_dcert_file"
1334 #define DEF_SMTP_TLS_DCERT_FILE ""
1335 #define VAR_LMTP_TLS_DCERT_FILE "lmtp_tls_dcert_file"
1336 #define DEF_LMTP_TLS_DCERT_FILE ""
1337 extern char *var_smtp_tls_dcert_file
;
1339 #define VAR_SMTP_TLS_DKEY_FILE "smtp_tls_dkey_file"
1340 #define DEF_SMTP_TLS_DKEY_FILE "$smtp_tls_dcert_file"
1341 #define VAR_LMTP_TLS_DKEY_FILE "lmtp_tls_dkey_file"
1342 #define DEF_LMTP_TLS_DKEY_FILE "$lmtp_tls_dcert_file"
1343 extern char *var_smtp_tls_dkey_file
;
1345 #define VAR_SMTP_TLS_ECCERT_FILE "smtp_tls_eccert_file"
1346 #define DEF_SMTP_TLS_ECCERT_FILE ""
1347 #define VAR_LMTP_TLS_ECCERT_FILE "lmtp_tls_eccert_file"
1348 #define DEF_LMTP_TLS_ECCERT_FILE ""
1349 extern char *var_smtp_tls_eccert_file
;
1351 #define VAR_SMTP_TLS_ECKEY_FILE "smtp_tls_eckey_file"
1352 #define DEF_SMTP_TLS_ECKEY_FILE "$smtp_tls_eccert_file"
1353 #define VAR_LMTP_TLS_ECKEY_FILE "lmtp_tls_eckey_file"
1354 #define DEF_LMTP_TLS_ECKEY_FILE "$lmtp_tls_eccert_file"
1355 extern char *var_smtp_tls_eckey_file
;
1357 #define VAR_SMTP_TLS_CA_FILE "smtp_tls_CAfile"
1358 #define DEF_SMTP_TLS_CA_FILE ""
1359 #define VAR_LMTP_TLS_CA_FILE "lmtp_tls_CAfile"
1360 #define DEF_LMTP_TLS_CA_FILE ""
1361 extern char *var_smtp_tls_CAfile
;
1363 #define VAR_SMTP_TLS_CA_PATH "smtp_tls_CApath"
1364 #define DEF_SMTP_TLS_CA_PATH ""
1365 #define VAR_LMTP_TLS_CA_PATH "lmtp_tls_CApath"
1366 #define DEF_LMTP_TLS_CA_PATH ""
1367 extern char *var_smtp_tls_CApath
;
1369 #define VAR_SMTP_TLS_CIPH "smtp_tls_ciphers"
1370 #define DEF_SMTP_TLS_CIPH "export"
1371 #define VAR_LMTP_TLS_CIPH "lmtp_tls_ciphers"
1372 #define DEF_LMTP_TLS_CIPH "export"
1373 extern char *var_smtp_tls_ciph
;
1375 #define VAR_SMTP_TLS_MAND_CIPH "smtp_tls_mandatory_ciphers"
1376 #define DEF_SMTP_TLS_MAND_CIPH "medium"
1377 #define VAR_LMTP_TLS_MAND_CIPH "lmtp_tls_mandatory_ciphers"
1378 #define DEF_LMTP_TLS_MAND_CIPH "medium"
1379 extern char *var_smtp_tls_mand_ciph
;
1381 #define VAR_SMTP_TLS_EXCL_CIPH "smtp_tls_exclude_ciphers"
1382 #define DEF_SMTP_TLS_EXCL_CIPH ""
1383 #define VAR_LMTP_TLS_EXCL_CIPH "lmtp_tls_exclude_ciphers"
1384 #define DEF_LMTP_TLS_EXCL_CIPH ""
1385 extern char *var_smtp_tls_excl_ciph
;
1387 #define VAR_SMTP_TLS_MAND_EXCL "smtp_tls_mandatory_exclude_ciphers"
1388 #define DEF_SMTP_TLS_MAND_EXCL ""
1389 #define VAR_LMTP_TLS_MAND_EXCL "lmtp_tls_mandatory_exclude_ciphers"
1390 #define DEF_LMTP_TLS_MAND_EXCL ""
1391 extern char *var_smtp_tls_mand_excl
;
1393 #define VAR_SMTP_TLS_FPT_DGST "smtp_tls_fingerprint_digest"
1394 #define DEF_SMTP_TLS_FPT_DGST "md5"
1395 #define VAR_LMTP_TLS_FPT_DGST "lmtp_tls_fingerprint_digest"
1396 #define DEF_LMTP_TLS_FPT_DGST "md5"
1397 extern char *var_smtp_tls_fpt_dgst
;
1399 #define VAR_SMTP_TLS_LOGLEVEL "smtp_tls_loglevel"
1400 #define DEF_SMTP_TLS_LOGLEVEL 0
1401 #define VAR_LMTP_TLS_LOGLEVEL "lmtp_tls_loglevel"
1402 #define DEF_LMTP_TLS_LOGLEVEL 0
1403 extern int var_smtp_tls_loglevel
; /* In smtp(8) and tlsmgr(8) */
1404 extern int var_lmtp_tls_loglevel
; /* In tlsmgr(8) */
1406 #define VAR_SMTP_TLS_NOTEOFFER "smtp_tls_note_starttls_offer"
1407 #define DEF_SMTP_TLS_NOTEOFFER 0
1408 #define VAR_LMTP_TLS_NOTEOFFER "lmtp_tls_note_starttls_offer"
1409 #define DEF_LMTP_TLS_NOTEOFFER 0
1410 extern bool var_smtp_tls_note_starttls_offer
;
1412 #define VAR_SMTP_TLS_SCACHE_DB "smtp_tls_session_cache_database"
1413 #define DEF_SMTP_TLS_SCACHE_DB ""
1414 #define VAR_LMTP_TLS_SCACHE_DB "lmtp_tls_session_cache_database"
1415 #define DEF_LMTP_TLS_SCACHE_DB ""
1416 extern char *var_smtp_tls_scache_db
;
1417 extern char *var_lmtp_tls_scache_db
;
1419 #define VAR_SMTP_TLS_SCACHTIME "smtp_tls_session_cache_timeout"
1420 #define DEF_SMTP_TLS_SCACHTIME "3600s"
1421 #define VAR_LMTP_TLS_SCACHTIME "lmtp_tls_session_cache_timeout"
1422 #define DEF_LMTP_TLS_SCACHTIME "3600s"
1423 extern int var_smtp_tls_scache_timeout
;
1424 extern int var_lmtp_tls_scache_timeout
;
1426 #define VAR_SMTP_TLS_POLICY "smtp_tls_policy_maps"
1427 #define DEF_SMTP_TLS_POLICY ""
1428 #define VAR_LMTP_TLS_POLICY "lmtp_tls_policy_maps"
1429 #define DEF_LMTP_TLS_POLICY ""
1430 extern char *var_smtp_tls_policy
;
1432 #define VAR_SMTP_TLS_PROTO "smtp_tls_protocols"
1433 #define DEF_SMTP_TLS_PROTO "!SSLv2"
1434 #define VAR_LMTP_TLS_PROTO "lmtp_tls_protocols"
1435 #define DEF_LMTP_TLS_PROTO "!SSLv2"
1436 extern char *var_smtp_tls_proto
;
1438 #define VAR_SMTP_TLS_MAND_PROTO "smtp_tls_mandatory_protocols"
1439 #define DEF_SMTP_TLS_MAND_PROTO "SSLv3, TLSv1"
1440 #define VAR_LMTP_TLS_MAND_PROTO "lmtp_tls_mandatory_protocols"
1441 #define DEF_LMTP_TLS_MAND_PROTO "SSLv3, TLSv1"
1442 extern char *var_smtp_tls_mand_proto
;
1444 #define VAR_SMTP_TLS_VFY_CMATCH "smtp_tls_verify_cert_match"
1445 #define DEF_SMTP_TLS_VFY_CMATCH "hostname"
1446 #define VAR_LMTP_TLS_VFY_CMATCH "lmtp_tls_verify_cert_match"
1447 #define DEF_LMTP_TLS_VFY_CMATCH "hostname"
1448 extern char *var_smtp_tls_vfy_cmatch
;
1451 * There are no MX lookups for LMTP, so verify == secure
1453 #define VAR_SMTP_TLS_SEC_CMATCH "smtp_tls_secure_cert_match"
1454 #define DEF_SMTP_TLS_SEC_CMATCH "nexthop, dot-nexthop"
1455 #define VAR_LMTP_TLS_SEC_CMATCH "lmtp_tls_secure_cert_match"
1456 #define DEF_LMTP_TLS_SEC_CMATCH "nexthop"
1457 extern char *var_smtp_tls_sec_cmatch
;
1460 #define VAR_SMTP_TLS_FPT_CMATCH "smtp_tls_fingerprint_cert_match"
1461 #define DEF_SMTP_TLS_FPT_CMATCH ""
1462 #define VAR_LMTP_TLS_FPT_CMATCH "lmtp_tls_fingerprint_cert_match"
1463 #define DEF_LMTP_TLS_FPT_CMATCH ""
1464 extern char *var_smtp_tls_fpt_cmatch
;
1467 * SASL authentication support, SMTP server side.
1469 #define VAR_SMTPD_SASL_ENABLE "smtpd_sasl_auth_enable"
1470 #define DEF_SMTPD_SASL_ENABLE 0
1471 extern bool var_smtpd_sasl_enable
;
1473 #define VAR_SMTPD_SASL_AUTH_HDR "smtpd_sasl_authenticated_header"
1474 #define DEF_SMTPD_SASL_AUTH_HDR 0
1475 extern bool var_smtpd_sasl_auth_hdr
;
1477 #define VAR_SMTPD_SASL_OPTS "smtpd_sasl_security_options"
1478 #define DEF_SMTPD_SASL_OPTS "noanonymous"
1479 extern char *var_smtpd_sasl_opts
;
1481 #define VAR_SMTPD_SASL_PATH "smtpd_sasl_path"
1482 #define DEF_SMTPD_SASL_PATH "smtpd"
1483 extern char *var_smtpd_sasl_path
;
1485 #define VAR_CYRUS_CONF_PATH "cyrus_sasl_config_path"
1486 #define DEF_CYRUS_CONF_PATH ""
1487 extern char *var_cyrus_conf_path
;
1489 #define VAR_SMTPD_SASL_TLS_OPTS "smtpd_sasl_tls_security_options"
1490 #define DEF_SMTPD_SASL_TLS_OPTS "$" VAR_SMTPD_SASL_OPTS
1491 extern char *var_smtpd_sasl_tls_opts
;
1493 #define VAR_SMTPD_SASL_REALM "smtpd_sasl_local_domain"
1494 #define DEF_SMTPD_SASL_REALM ""
1495 extern char *var_smtpd_sasl_realm
;
1497 #define VAR_SMTPD_SASL_EXCEPTIONS_NETWORKS "smtpd_sasl_exceptions_networks"
1498 #define DEF_SMTPD_SASL_EXCEPTIONS_NETWORKS ""
1499 extern char *var_smtpd_sasl_exceptions_networks
;
1501 #ifndef DEF_SERVER_SASL_TYPE
1502 #define DEF_SERVER_SASL_TYPE "cyrus"
1505 #define VAR_SMTPD_SASL_TYPE "smtpd_sasl_type"
1506 #define DEF_SMTPD_SASL_TYPE DEF_SERVER_SASL_TYPE
1507 extern char *var_smtpd_sasl_type
;
1509 #define VAR_SMTPD_SND_AUTH_MAPS "smtpd_sender_login_maps"
1510 #define DEF_SMTPD_SND_AUTH_MAPS ""
1511 extern char *var_smtpd_snd_auth_maps
;
1513 #define REJECT_SENDER_LOGIN_MISMATCH "reject_sender_login_mismatch"
1514 #define REJECT_AUTH_SENDER_LOGIN_MISMATCH \
1515 "reject_authenticated_sender_login_mismatch"
1516 #define REJECT_UNAUTH_SENDER_LOGIN_MISMATCH \
1517 "reject_unauthenticated_sender_login_mismatch"
1520 * SASL authentication support, SMTP client side.
1522 #define VAR_SMTP_SASL_ENABLE "smtp_sasl_auth_enable"
1523 #define DEF_SMTP_SASL_ENABLE 0
1524 extern bool var_smtp_sasl_enable
;
1526 #define VAR_SMTP_SASL_PASSWD "smtp_sasl_password_maps"
1527 #define DEF_SMTP_SASL_PASSWD ""
1528 extern char *var_smtp_sasl_passwd
;
1530 #define VAR_SMTP_SASL_OPTS "smtp_sasl_security_options"
1531 #define DEF_SMTP_SASL_OPTS "noplaintext, noanonymous"
1532 extern char *var_smtp_sasl_opts
;
1534 #define VAR_SMTP_SASL_PATH "smtp_sasl_path"
1535 #define DEF_SMTP_SASL_PATH ""
1536 extern char *var_smtp_sasl_path
;
1538 #define VAR_SMTP_SASL_MECHS "smtp_sasl_mechanism_filter"
1539 #define DEF_SMTP_SASL_MECHS ""
1540 #define VAR_LMTP_SASL_MECHS "lmtp_sasl_mechanism_filter"
1541 #define DEF_LMTP_SASL_MECHS ""
1542 extern char *var_smtp_sasl_mechs
;
1544 #ifndef DEF_CLIENT_SASL_TYPE
1545 #define DEF_CLIENT_SASL_TYPE "cyrus"
1548 #define VAR_SMTP_SASL_TYPE "smtp_sasl_type"
1549 #define DEF_SMTP_SASL_TYPE DEF_CLIENT_SASL_TYPE
1550 #define VAR_LMTP_SASL_TYPE "lmtp_sasl_type"
1551 #define DEF_LMTP_SASL_TYPE DEF_CLIENT_SASL_TYPE
1552 extern char *var_smtp_sasl_type
;
1554 #define VAR_SMTP_SASL_TLS_OPTS "smtp_sasl_tls_security_options"
1555 #define DEF_SMTP_SASL_TLS_OPTS "$" VAR_SMTP_SASL_OPTS
1556 #define VAR_LMTP_SASL_TLS_OPTS "lmtp_sasl_tls_security_options"
1557 #define DEF_LMTP_SASL_TLS_OPTS "$" VAR_LMTP_SASL_OPTS
1558 extern char *var_smtp_sasl_tls_opts
;
1560 #define VAR_SMTP_SASL_TLSV_OPTS "smtp_sasl_tls_verified_security_options"
1561 #define DEF_SMTP_SASL_TLSV_OPTS "$" VAR_SMTP_SASL_TLS_OPTS
1562 #define VAR_LMTP_SASL_TLSV_OPTS "lmtp_sasl_tls_verified_security_options"
1563 #define DEF_LMTP_SASL_TLSV_OPTS "$" VAR_LMTP_SASL_TLS_OPTS
1564 extern char *var_smtp_sasl_tlsv_opts
;
1567 * LMTP server. The soft error limit determines how many errors an LMTP
1568 * client may make before we start to slow down; the hard error limit
1569 * determines after how many client errors we disconnect.
1571 #define VAR_LMTPD_BANNER "lmtpd_banner"
1572 #define DEF_LMTPD_BANNER "$myhostname $mail_name"
1573 extern char *var_lmtpd_banner
;
1575 #define VAR_LMTPD_TMOUT "lmtpd_timeout"
1576 #define DEF_LMTPD_TMOUT "300s"
1577 extern int var_lmtpd_tmout
;
1579 #define VAR_LMTPD_RCPT_LIMIT "lmtpd_recipient_limit"
1580 #define DEF_LMTPD_RCPT_LIMIT 1000
1581 extern int var_lmtpd_rcpt_limit
;
1583 #define VAR_LMTPD_SOFT_ERLIM "lmtpd_soft_error_limit"
1584 #define DEF_LMTPD_SOFT_ERLIM 10
1585 extern int var_lmtpd_soft_erlim
;
1587 #define VAR_LMTPD_HARD_ERLIM "lmtpd_hard_error_limit"
1588 #define DEF_LMTPD_HARD_ERLIM 100
1589 extern int var_lmtpd_hard_erlim
;
1591 #define VAR_LMTPD_ERR_SLEEP "lmtpd_error_sleep_time"
1592 #define DEF_LMTPD_ERR_SLEEP "5s"
1593 extern int var_lmtpd_err_sleep
;
1595 #define VAR_LMTPD_JUNK_CMD "lmtpd_junk_command_limit"
1596 #define DEF_LMTPD_JUNK_CMD 1000
1597 extern int var_lmtpd_junk_cmd_limit
;
1600 * SASL authentication support, LMTP server side.
1602 #define VAR_LMTPD_SASL_ENABLE "lmtpd_sasl_auth_enable"
1603 #define DEF_LMTPD_SASL_ENABLE 0
1604 extern bool var_lmtpd_sasl_enable
;
1606 #define VAR_LMTPD_SASL_OPTS "lmtpd_sasl_security_options"
1607 #define DEF_LMTPD_SASL_OPTS "noanonymous"
1608 extern char *var_lmtpd_sasl_opts
;
1610 #define VAR_LMTPD_SASL_REALM "lmtpd_sasl_local_domain"
1611 #define DEF_LMTPD_SASL_REALM "$myhostname"
1612 extern char *var_lmtpd_sasl_realm
;
1615 * SASL authentication support, LMTP client side.
1617 #define VAR_LMTP_SASL_ENABLE "lmtp_sasl_auth_enable"
1618 #define DEF_LMTP_SASL_ENABLE 0
1619 extern bool var_lmtp_sasl_enable
;
1621 #define VAR_LMTP_SASL_PASSWD "lmtp_sasl_password_maps"
1622 #define DEF_LMTP_SASL_PASSWD ""
1623 extern char *var_lmtp_sasl_passwd
;
1625 #define VAR_LMTP_SASL_OPTS "lmtp_sasl_security_options"
1626 #define DEF_LMTP_SASL_OPTS "noplaintext, noanonymous"
1627 extern char *var_lmtp_sasl_opts
;
1629 #define VAR_LMTP_SASL_PATH "lmtp_sasl_path"
1630 #define DEF_LMTP_SASL_PATH ""
1631 extern char *var_lmtp_sasl_path
;
1634 * SASL-based relay etc. control.
1636 #define PERMIT_SASL_AUTH "permit_sasl_authenticated"
1638 #define VAR_CYRUS_SASL_AUTHZID "send_cyrus_sasl_authzid"
1639 #define DEF_CYRUS_SASL_AUTHZID 0
1640 extern int var_cyrus_sasl_authzid
;
1643 * Special handling of AUTH 535 failures.
1645 #define VAR_SMTP_SASL_AUTH_SOFT_BOUNCE "smtp_sasl_auth_soft_bounce"
1646 #define DEF_SMTP_SASL_AUTH_SOFT_BOUNCE 1
1647 #define VAR_LMTP_SASL_AUTH_SOFT_BOUNCE "lmtp_sasl_auth_soft_bounce"
1648 #define DEF_LMTP_SASL_AUTH_SOFT_BOUNCE 1
1649 extern bool var_smtp_sasl_auth_soft_bounce
;
1651 #define VAR_SMTP_SASL_AUTH_CACHE_NAME "smtp_sasl_auth_cache_name"
1652 #define DEF_SMTP_SASL_AUTH_CACHE_NAME ""
1653 #define VAR_LMTP_SASL_AUTH_CACHE_NAME "lmtp_sasl_auth_cache_name"
1654 #define DEF_LMTP_SASL_AUTH_CACHE_NAME ""
1655 extern char *var_smtp_sasl_auth_cache_name
;
1657 #define VAR_SMTP_SASL_AUTH_CACHE_TIME "smtp_sasl_auth_cache_time"
1658 #define DEF_SMTP_SASL_AUTH_CACHE_TIME "90d"
1659 #define VAR_LMTP_SASL_AUTH_CACHE_TIME "lmtp_sasl_auth_cache_time"
1660 #define DEF_LMTP_SASL_AUTH_CACHE_TIME "90d"
1661 extern int var_smtp_sasl_auth_cache_time
;
1664 * LMTP client. Timeouts inspired by RFC 1123. The LMTP recipient limit
1665 * determines how many recipient addresses the LMTP client sends along with
1666 * each message. Unfortunately, some mailers misbehave and disconnect (smap)
1667 * when given more recipients than they are willing to handle.
1669 #define VAR_LMTP_TCP_PORT "lmtp_tcp_port"
1670 #define DEF_LMTP_TCP_PORT "24"
1671 extern char *var_lmtp_tcp_port
;
1673 #define VAR_LMTP_ASSUME_FINAL "lmtp_assume_final"
1674 #define DEF_LMTP_ASSUME_FINAL 0
1675 extern bool var_lmtp_assume_final
;
1677 #define VAR_LMTP_CACHE_CONN "lmtp_cache_connection"
1678 #define DEF_LMTP_CACHE_CONN 1
1679 extern bool var_lmtp_cache_conn
;
1681 #define VAR_LMTP_SKIP_QUIT_RESP "lmtp_skip_quit_response"
1682 #define DEF_LMTP_SKIP_QUIT_RESP 0
1683 extern bool var_lmtp_skip_quit_resp
;
1685 #define VAR_LMTP_CONN_TMOUT "lmtp_connect_timeout"
1686 #define DEF_LMTP_CONN_TMOUT "0s"
1687 extern int var_lmtp_conn_tmout
;
1689 #define VAR_LMTP_RSET_TMOUT "lmtp_rset_timeout"
1690 #define DEF_LMTP_RSET_TMOUT "20s"
1691 extern int var_lmtp_rset_tmout
;
1693 #define VAR_LMTP_LHLO_TMOUT "lmtp_lhlo_timeout"
1694 #define DEF_LMTP_LHLO_TMOUT "300s"
1695 extern int var_lmtp_lhlo_tmout
;
1697 #define VAR_LMTP_XFWD_TMOUT "lmtp_xforward_timeout"
1698 #define DEF_LMTP_XFWD_TMOUT "300s"
1699 extern int var_lmtp_xfwd_tmout
;
1701 #define VAR_LMTP_MAIL_TMOUT "lmtp_mail_timeout"
1702 #define DEF_LMTP_MAIL_TMOUT "300s"
1703 extern int var_lmtp_mail_tmout
;
1705 #define VAR_LMTP_RCPT_TMOUT "lmtp_rcpt_timeout"
1706 #define DEF_LMTP_RCPT_TMOUT "300s"
1707 extern int var_lmtp_rcpt_tmout
;
1709 #define VAR_LMTP_DATA0_TMOUT "lmtp_data_init_timeout"
1710 #define DEF_LMTP_DATA0_TMOUT "120s"
1711 extern int var_lmtp_data0_tmout
;
1713 #define VAR_LMTP_DATA1_TMOUT "lmtp_data_xfer_timeout"
1714 #define DEF_LMTP_DATA1_TMOUT "180s"
1715 extern int var_lmtp_data1_tmout
;
1717 #define VAR_LMTP_DATA2_TMOUT "lmtp_data_done_timeout"
1718 #define DEF_LMTP_DATA2_TMOUT "600s"
1719 extern int var_lmtp_data2_tmout
;
1721 #define VAR_LMTP_QUIT_TMOUT "lmtp_quit_timeout"
1722 #define DEF_LMTP_QUIT_TMOUT "300s"
1723 extern int var_lmtp_quit_tmout
;
1725 #define VAR_LMTP_SEND_XFORWARD "lmtp_send_xforward_command"
1726 #define DEF_LMTP_SEND_XFORWARD 0
1727 extern bool var_lmtp_send_xforward
;
1730 * Cleanup service. Header info that exceeds $header_size_limit bytes or
1731 * $header_address_token_limit tokens is discarded.
1733 #define VAR_HOPCOUNT_LIMIT "hopcount_limit"
1734 #define DEF_HOPCOUNT_LIMIT 50
1735 extern int var_hopcount_limit
;
1737 #define VAR_HEADER_LIMIT "header_size_limit"
1738 #define DEF_HEADER_LIMIT 102400
1739 extern int var_header_limit
;
1741 #define VAR_TOKEN_LIMIT "header_address_token_limit"
1742 #define DEF_TOKEN_LIMIT 10240
1743 extern int var_token_limit
;
1745 #define VAR_VIRT_RECUR_LIMIT "virtual_alias_recursion_limit"
1746 #define DEF_VIRT_RECUR_LIMIT 1000
1747 extern int var_virt_recur_limit
;
1749 #define VAR_VIRT_EXPAN_LIMIT "virtual_alias_expansion_limit"
1750 #define DEF_VIRT_EXPAN_LIMIT 1000
1751 extern int var_virt_expan_limit
;
1754 * Message/queue size limits.
1756 #define VAR_MESSAGE_LIMIT "message_size_limit"
1757 #define DEF_MESSAGE_LIMIT 10240000
1758 extern int var_message_limit
;
1760 #define VAR_QUEUE_MINFREE "queue_minfree"
1761 #define DEF_QUEUE_MINFREE 0
1762 extern int var_queue_minfree
;
1764 #define VAR_HEADER_CHECKS "header_checks"
1765 #define DEF_HEADER_CHECKS ""
1766 extern char *var_header_checks
;
1768 #define VAR_MIMEHDR_CHECKS "mime_header_checks"
1769 #define DEF_MIMEHDR_CHECKS "$header_checks"
1770 extern char *var_mimehdr_checks
;
1772 #define VAR_NESTHDR_CHECKS "nested_header_checks"
1773 #define DEF_NESTHDR_CHECKS "$header_checks"
1774 extern char *var_nesthdr_checks
;
1776 #define VAR_BODY_CHECKS "body_checks"
1777 #define DEF_BODY_CHECKS ""
1778 extern char *var_body_checks
;
1780 #define VAR_BODY_CHECK_LEN "body_checks_size_limit"
1781 #define DEF_BODY_CHECK_LEN (50*1024)
1782 extern int var_body_check_len
;
1785 * Bounce service: truncate bounce message that exceed $bounce_size_limit.
1787 #define VAR_BOUNCE_LIMIT "bounce_size_limit"
1788 #define DEF_BOUNCE_LIMIT 50000
1789 extern int var_bounce_limit
;
1792 * Bounce service: reserved sender address for double bounces. The local
1793 * delivery service discards undeliverable double bounces.
1795 #define VAR_DOUBLE_BOUNCE "double_bounce_sender"
1796 #define DEF_DOUBLE_BOUNCE "double-bounce"
1797 extern char *var_double_bounce_sender
;
1800 * When forking a process, how often to try and how long to wait.
1802 #define VAR_FORK_TRIES "fork_attempts"
1803 #define DEF_FORK_TRIES 5
1804 extern int var_fork_tries
;
1806 #define VAR_FORK_DELAY "fork_delay"
1807 #define DEF_FORK_DELAY "1s"
1808 extern int var_fork_delay
;
1811 * When locking a mailbox, how often to try and how long to wait.
1813 #define VAR_FLOCK_TRIES "deliver_lock_attempts"
1814 #define DEF_FLOCK_TRIES 20
1815 extern int var_flock_tries
;
1817 #define VAR_FLOCK_DELAY "deliver_lock_delay"
1818 #define DEF_FLOCK_DELAY "1s"
1819 extern int var_flock_delay
;
1821 #define VAR_FLOCK_STALE "stale_lock_time"
1822 #define DEF_FLOCK_STALE "500s"
1823 extern int var_flock_stale
;
1825 #define VAR_MAILTOOL_COMPAT "sun_mailtool_compatibility"
1826 #define DEF_MAILTOOL_COMPAT 0
1827 extern int var_mailtool_compat
;
1830 * How long a daemon command may take to receive or deliver a message etc.
1831 * before we assume it is wegded (should never happen).
1833 #define VAR_DAEMON_TIMEOUT "daemon_timeout"
1834 #define DEF_DAEMON_TIMEOUT "18000s"
1835 extern int var_daemon_timeout
;
1838 * How long an intra-mail command may take before we assume the mail system
1839 * is in deadlock (should never happen).
1841 #define VAR_IPC_TIMEOUT "ipc_timeout"
1842 #define DEF_IPC_TIMEOUT "3600s"
1843 extern int var_ipc_timeout
;
1846 * Time limit on intra-mail triggers.
1848 #define VAR_TRIGGER_TIMEOUT "trigger_timeout"
1849 #define DEF_TRIGGER_TIMEOUT "10s"
1850 extern int var_trigger_timeout
;
1853 * SMTP server restrictions. What networks I am willing to relay from, what
1854 * domains I am willing to forward mail from or to, what clients I refuse to
1855 * talk to, and what domains I never want to see in the sender address.
1857 #define VAR_MYNETWORKS "mynetworks"
1858 extern char *var_mynetworks
;
1860 #define VAR_MYNETWORKS_STYLE "mynetworks_style"
1861 #define DEF_MYNETWORKS_STYLE MYNETWORKS_STYLE_SUBNET
1862 extern char *var_mynetworks_style
;
1864 #define MYNETWORKS_STYLE_CLASS "class"
1865 #define MYNETWORKS_STYLE_SUBNET "subnet"
1866 #define MYNETWORKS_STYLE_HOST "host"
1868 #define VAR_RELAY_DOMAINS "relay_domains"
1869 #define DEF_RELAY_DOMAINS "$mydestination"
1870 extern char *var_relay_domains
;
1872 #define VAR_RELAY_TRANSPORT "relay_transport"
1873 #define DEF_RELAY_TRANSPORT MAIL_SERVICE_RELAY
1874 extern char *var_relay_transport
;
1876 #define VAR_RELAY_RCPT_MAPS "relay_recipient_maps"
1877 #define DEF_RELAY_RCPT_MAPS ""
1878 extern char *var_relay_rcpt_maps
;
1880 #define VAR_RELAY_RCPT_CODE "unknown_relay_recipient_reject_code"
1881 #define DEF_RELAY_RCPT_CODE 550
1882 extern int var_relay_rcpt_code
;
1884 #define VAR_RELAY_CCERTS "relay_clientcerts"
1885 #define DEF_RELAY_CCERTS ""
1886 extern char *var_smtpd_relay_ccerts
;
1888 #define VAR_CLIENT_CHECKS "smtpd_client_restrictions"
1889 #define DEF_CLIENT_CHECKS ""
1890 extern char *var_client_checks
;
1892 #define VAR_HELO_REQUIRED "smtpd_helo_required"
1893 #define DEF_HELO_REQUIRED 0
1894 extern bool var_helo_required
;
1896 #define VAR_HELO_CHECKS "smtpd_helo_restrictions"
1897 #define DEF_HELO_CHECKS ""
1898 extern char *var_helo_checks
;
1900 #define VAR_MAIL_CHECKS "smtpd_sender_restrictions"
1901 #define DEF_MAIL_CHECKS ""
1902 extern char *var_mail_checks
;
1904 #define VAR_RCPT_CHECKS "smtpd_recipient_restrictions"
1905 #define DEF_RCPT_CHECKS PERMIT_MYNETWORKS ", " REJECT_UNAUTH_DEST
1906 extern char *var_rcpt_checks
;
1908 #define VAR_ETRN_CHECKS "smtpd_etrn_restrictions"
1909 #define DEF_ETRN_CHECKS ""
1910 extern char *var_etrn_checks
;
1912 #define VAR_DATA_CHECKS "smtpd_data_restrictions"
1913 #define DEF_DATA_CHECKS ""
1914 extern char *var_data_checks
;
1916 #define VAR_EOD_CHECKS "smtpd_end_of_data_restrictions"
1917 #define DEF_EOD_CHECKS ""
1918 extern char *var_eod_checks
;
1920 #define VAR_REST_CLASSES "smtpd_restriction_classes"
1921 #define DEF_REST_CLASSES ""
1922 extern char *var_rest_classes
;
1924 #define VAR_ALLOW_UNTRUST_ROUTE "allow_untrusted_routing"
1925 #define DEF_ALLOW_UNTRUST_ROUTE 0
1926 extern bool var_allow_untrust_route
;
1929 * Names of specific restrictions, and the corresponding configuration
1930 * parameters that control the status codes sent in response to rejected
1933 #define PERMIT_ALL "permit"
1934 #define REJECT_ALL "reject"
1935 #define VAR_REJECT_CODE "reject_code"
1936 #define DEF_REJECT_CODE 554
1937 extern int var_reject_code
;
1939 #define DEFER_ALL "defer"
1940 #define VAR_DEFER_CODE "defer_code"
1941 #define DEF_DEFER_CODE 450
1942 extern int var_defer_code
;
1944 #define DEFER_IF_PERMIT "defer_if_permit"
1945 #define DEFER_IF_REJECT "defer_if_reject"
1947 #define VAR_REJECT_TMPF_ACT "reject_tempfail_action"
1948 #define DEF_REJECT_TMPF_ACT DEFER_IF_PERMIT
1949 extern char *var_reject_tmpf_act
;
1951 #define SLEEP "sleep"
1953 #define REJECT_PLAINTEXT_SESSION "reject_plaintext_session"
1954 #define VAR_PLAINTEXT_CODE "plaintext_reject_code"
1955 #define DEF_PLAINTEXT_CODE 450
1956 extern int var_plaintext_code
;
1958 #define REJECT_UNKNOWN_CLIENT "reject_unknown_client"
1959 #define REJECT_UNKNOWN_CLIENT_HOSTNAME "reject_unknown_client_hostname"
1960 #define REJECT_UNKNOWN_REVERSE_HOSTNAME "reject_unknown_reverse_client_hostname"
1961 #define REJECT_UNKNOWN_FORWARD_HOSTNAME "reject_unknown_forward_client_hostname"
1962 #define VAR_UNK_CLIENT_CODE "unknown_client_reject_code"
1963 #define DEF_UNK_CLIENT_CODE 450
1964 extern int var_unk_client_code
;
1966 #define PERMIT_INET_INTERFACES "permit_inet_interfaces"
1968 #define PERMIT_MYNETWORKS "permit_mynetworks"
1970 #define PERMIT_NAKED_IP_ADDR "permit_naked_ip_address"
1972 #define REJECT_INVALID_HELO_HOSTNAME "reject_invalid_helo_hostname"
1973 #define REJECT_INVALID_HOSTNAME "reject_invalid_hostname"
1974 #define VAR_BAD_NAME_CODE "invalid_hostname_reject_code"
1975 #define DEF_BAD_NAME_CODE 501 /* SYNTAX */
1976 extern int var_bad_name_code
;
1978 #define REJECT_UNKNOWN_HELO_HOSTNAME "reject_unknown_helo_hostname"
1979 #define REJECT_UNKNOWN_HOSTNAME "reject_unknown_hostname"
1980 #define VAR_UNK_NAME_CODE "unknown_hostname_reject_code"
1981 #define DEF_UNK_NAME_CODE 450
1982 extern int var_unk_name_code
;
1984 #define VAR_UNK_NAME_TF_ACT "unknown_helo_hostname_tempfail_action"
1985 #define DEF_UNK_NAME_TF_ACT "$" VAR_REJECT_TMPF_ACT
1986 extern char *var_unk_name_tf_act
;
1988 #define REJECT_NON_FQDN_HELO_HOSTNAME "reject_non_fqdn_helo_hostname"
1989 #define REJECT_NON_FQDN_HOSTNAME "reject_non_fqdn_hostname"
1990 #define REJECT_NON_FQDN_SENDER "reject_non_fqdn_sender"
1991 #define REJECT_NON_FQDN_RCPT "reject_non_fqdn_recipient"
1992 #define VAR_NON_FQDN_CODE "non_fqdn_reject_code"
1993 #define DEF_NON_FQDN_CODE 504 /* POLICY */
1994 extern int var_non_fqdn_code
;
1996 #define REJECT_UNKNOWN_SENDDOM "reject_unknown_sender_domain"
1997 #define REJECT_UNKNOWN_RCPTDOM "reject_unknown_recipient_domain"
1998 #define REJECT_UNKNOWN_ADDRESS "reject_unknown_address"
1999 #define REJECT_UNLISTED_SENDER "reject_unlisted_sender"
2000 #define REJECT_UNLISTED_RCPT "reject_unlisted_recipient"
2001 #define CHECK_RCPT_MAPS "check_recipient_maps"
2003 #define VAR_UNK_ADDR_CODE "unknown_address_reject_code"
2004 #define DEF_UNK_ADDR_CODE 450
2005 extern int var_unk_addr_code
;
2007 #define VAR_UNK_ADDR_TF_ACT "unknown_address_tempfail_action"
2008 #define DEF_UNK_ADDR_TF_ACT "$" VAR_REJECT_TMPF_ACT
2009 extern char *var_unk_addr_tf_act
;
2011 #define VAR_SMTPD_REJ_UNL_FROM "smtpd_reject_unlisted_sender"
2012 #define DEF_SMTPD_REJ_UNL_FROM 0
2013 extern bool var_smtpd_rej_unl_from
;
2015 #define VAR_SMTPD_REJ_UNL_RCPT "smtpd_reject_unlisted_recipient"
2016 #define DEF_SMTPD_REJ_UNL_RCPT 1
2017 extern bool var_smtpd_rej_unl_rcpt
;
2019 #define REJECT_UNVERIFIED_RECIP "reject_unverified_recipient"
2020 #define VAR_UNV_RCPT_RCODE "unverified_recipient_reject_code"
2021 #define DEF_UNV_RCPT_RCODE 450
2022 extern int var_unv_rcpt_rcode
;
2024 #define REJECT_UNVERIFIED_SENDER "reject_unverified_sender"
2025 #define VAR_UNV_FROM_RCODE "unverified_sender_reject_code"
2026 #define DEF_UNV_FROM_RCODE 450
2027 extern int var_unv_from_rcode
;
2029 #define VAR_UNV_RCPT_DCODE "unverified_recipient_defer_code"
2030 #define DEF_UNV_RCPT_DCODE 450
2031 extern int var_unv_rcpt_dcode
;
2033 #define VAR_UNV_FROM_DCODE "unverified_sender_defer_code"
2034 #define DEF_UNV_FROM_DCODE 450
2035 extern int var_unv_from_dcode
;
2037 #define VAR_UNV_RCPT_TF_ACT "unverified_recipient_tempfail_action"
2038 #define DEF_UNV_RCPT_TF_ACT "$" VAR_REJECT_TMPF_ACT
2039 extern char *var_unv_rcpt_tf_act
;
2041 #define VAR_UNV_FROM_TF_ACT "unverified_sender_tempfail_action"
2042 #define DEF_UNV_FROM_TF_ACT "$" VAR_REJECT_TMPF_ACT
2043 extern char *var_unv_from_tf_act
;
2045 #define VAR_UNV_RCPT_WHY "unverified_recipient_reject_reason"
2046 #define DEF_UNV_RCPT_WHY ""
2047 extern char *var_unv_rcpt_why
;
2049 #define VAR_UNV_FROM_WHY "unverified_sender_reject_reason"
2050 #define DEF_UNV_FROM_WHY ""
2051 extern char *var_unv_from_why
;
2053 #define REJECT_MUL_RCPT_BOUNCE "reject_multi_recipient_bounce"
2054 #define VAR_MUL_RCPT_CODE "multi_recipient_bounce_reject_code"
2055 #define DEF_MUL_RCPT_CODE 550
2056 extern int var_mul_rcpt_code
;
2058 #define PERMIT_AUTH_DEST "permit_auth_destination"
2059 #define REJECT_UNAUTH_DEST "reject_unauth_destination"
2060 #define CHECK_RELAY_DOMAINS "check_relay_domains"
2061 #define PERMIT_TLS_CLIENTCERTS "permit_tls_clientcerts"
2062 #define PERMIT_TLS_ALL_CLIENTCERTS "permit_tls_all_clientcerts"
2063 #define VAR_RELAY_CODE "relay_domains_reject_code"
2064 #define DEF_RELAY_CODE 554
2065 extern int var_relay_code
;
2067 #define PERMIT_MX_BACKUP "permit_mx_backup"
2069 #define VAR_PERM_MX_NETWORKS "permit_mx_backup_networks"
2070 #define DEF_PERM_MX_NETWORKS ""
2071 extern char *var_perm_mx_networks
;
2073 #define VAR_MAP_REJECT_CODE "access_map_reject_code"
2074 #define DEF_MAP_REJECT_CODE 554
2075 extern int var_map_reject_code
;
2077 #define VAR_MAP_DEFER_CODE "access_map_defer_code"
2078 #define DEF_MAP_DEFER_CODE 450
2079 extern int var_map_defer_code
;
2081 #define CHECK_CLIENT_ACL "check_client_access"
2082 #define CHECK_REVERSE_CLIENT_ACL "check_reverse_client_hostname_access"
2083 #define CHECK_CCERT_ACL "check_ccert_access"
2084 #define CHECK_HELO_ACL "check_helo_access"
2085 #define CHECK_SENDER_ACL "check_sender_access"
2086 #define CHECK_RECIP_ACL "check_recipient_access"
2087 #define CHECK_ETRN_ACL "check_etrn_access"
2089 #define CHECK_HELO_MX_ACL "check_helo_mx_access"
2090 #define CHECK_SENDER_MX_ACL "check_sender_mx_access"
2091 #define CHECK_RECIP_MX_ACL "check_recipient_mx_access"
2092 #define CHECK_HELO_NS_ACL "check_helo_ns_access"
2093 #define CHECK_SENDER_NS_ACL "check_sender_ns_access"
2094 #define CHECK_RECIP_NS_ACL "check_recipient_ns_access"
2096 #define WARN_IF_REJECT "warn_if_reject"
2098 #define REJECT_RBL "reject_rbl" /* LaMont compatibility */
2099 #define REJECT_RBL_CLIENT "reject_rbl_client"
2100 #define REJECT_RHSBL_CLIENT "reject_rhsbl_client"
2101 #define REJECT_RHSBL_HELO "reject_rhsbl_helo"
2102 #define REJECT_RHSBL_SENDER "reject_rhsbl_sender"
2103 #define REJECT_RHSBL_RECIPIENT "reject_rhsbl_recipient"
2105 #define VAR_RBL_REPLY_MAPS "rbl_reply_maps"
2106 #define DEF_RBL_REPLY_MAPS ""
2107 extern char *var_rbl_reply_maps
;
2109 #define VAR_DEF_RBL_REPLY "default_rbl_reply"
2110 #define DEF_DEF_RBL_REPLY "$rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}"
2111 extern char *var_def_rbl_reply
;
2113 #define REJECT_MAPS_RBL "reject_maps_rbl" /* backwards compat */
2114 #define VAR_MAPS_RBL_CODE "maps_rbl_reject_code"
2115 #define DEF_MAPS_RBL_CODE 554
2116 extern int var_maps_rbl_code
;
2118 #define VAR_MAPS_RBL_DOMAINS "maps_rbl_domains" /* backwards compat */
2119 #define DEF_MAPS_RBL_DOMAINS ""
2120 extern char *var_maps_rbl_domains
;
2122 #define VAR_SMTPD_DELAY_REJECT "smtpd_delay_reject"
2123 #define DEF_SMTPD_DELAY_REJECT 1
2124 extern int var_smtpd_delay_reject
;
2126 #define REJECT_UNAUTH_PIPE "reject_unauth_pipelining"
2128 #define VAR_SMTPD_NULL_KEY "smtpd_null_access_lookup_key"
2129 #define DEF_SMTPD_NULL_KEY "<>"
2130 extern char *var_smtpd_null_key
;
2132 #define VAR_SMTPD_EXP_FILTER "smtpd_expansion_filter"
2133 #define DEF_SMTPD_EXP_FILTER "\\t\\40!\"#$%&'()*+,-./0123456789:;<=>?@\
2134 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`\
2135 abcdefghijklmnopqrstuvwxyz{|}~"
2136 extern char *var_smtpd_exp_filter
;
2138 #define VAR_SMTPD_PEERNAME_LOOKUP "smtpd_peername_lookup"
2139 #define DEF_SMTPD_PEERNAME_LOOKUP 1
2140 extern bool var_smtpd_peername_lookup
;
2143 * Heuristic to reject unknown local recipients at the SMTP port.
2145 #define VAR_LOCAL_RCPT_MAPS "local_recipient_maps"
2146 #define DEF_LOCAL_RCPT_MAPS "proxy:unix:passwd.byname $" VAR_ALIAS_MAPS
2147 extern char *var_local_rcpt_maps
;
2149 #define VAR_LOCAL_RCPT_CODE "unknown_local_recipient_reject_code"
2150 #define DEF_LOCAL_RCPT_CODE 550
2151 extern int var_local_rcpt_code
;
2154 * List of pre-approved maps that are OK to open with the proxymap service.
2156 #define VAR_PROXY_READ_MAPS "proxy_read_maps"
2157 #define DEF_PROXY_READ_MAPS "$" VAR_LOCAL_RCPT_MAPS \
2159 " $" VAR_VIRT_ALIAS_MAPS \
2160 " $" VAR_VIRT_ALIAS_DOMS \
2161 " $" VAR_VIRT_MAILBOX_MAPS \
2162 " $" VAR_VIRT_MAILBOX_DOMS \
2163 " $" VAR_RELAY_RCPT_MAPS \
2164 " $" VAR_RELAY_DOMAINS \
2165 " $" VAR_CANONICAL_MAPS \
2166 " $" VAR_SEND_CANON_MAPS \
2167 " $" VAR_RCPT_CANON_MAPS \
2168 " $" VAR_RELOCATED_MAPS \
2169 " $" VAR_TRANSPORT_MAPS \
2170 " $" VAR_MYNETWORKS \
2171 " $" VAR_SEND_BCC_MAPS \
2172 " $" VAR_RCPT_BCC_MAPS \
2173 " $" VAR_SMTP_GENERIC_MAPS \
2174 " $" VAR_LMTP_GENERIC_MAPS
2175 extern char *var_proxy_read_maps
;
2177 #define VAR_PROXY_WRITE_MAPS "proxy_write_maps"
2178 #define DEF_PROXY_WRITE_MAPS "$" VAR_SMTP_SASL_AUTH_CACHE_NAME \
2179 " $" VAR_LMTP_SASL_AUTH_CACHE_NAME
2180 extern char *var_proxy_write_maps
;
2185 #define VAR_PROCNAME "process_name"
2186 extern char *var_procname
;
2188 #define VAR_PID "process_id"
2191 #define VAR_DEBUG_COMMAND "debugger_command"
2194 * Paranoia: save files instead of deleting them.
2196 #define VAR_DONT_REMOVE "dont_remove"
2197 #define DEF_DONT_REMOVE 0
2198 extern bool var_dont_remove
;
2201 * Paranoia: defer messages instead of bouncing them.
2203 #define VAR_SOFT_BOUNCE "soft_bounce"
2204 #define DEF_SOFT_BOUNCE 0
2205 extern bool var_soft_bounce
;
2208 * Give special treatment to owner- and -request.
2210 #define VAR_OWNREQ_SPECIAL "owner_request_special"
2211 #define DEF_OWNREQ_SPECIAL 1
2212 extern bool var_ownreq_special
;
2215 * Allow/disallow recipient addresses starting with `-'.
2217 #define VAR_ALLOW_MIN_USER "allow_min_user"
2218 #define DEF_ALLOW_MIN_USER 0
2219 extern bool var_allow_min_user
;
2221 extern void mail_params_init(void);
2224 * Content inspection and filtering.
2226 #define VAR_FILTER_XPORT "content_filter"
2227 #define DEF_FILTER_XPORT ""
2228 extern char *var_filter_xport
;
2231 * Fast flush service support.
2233 #define VAR_FFLUSH_DOMAINS "fast_flush_domains"
2234 #define DEF_FFLUSH_DOMAINS "$relay_domains"
2235 extern char *var_fflush_domains
;
2237 #define VAR_FFLUSH_PURGE "fast_flush_purge_time"
2238 #define DEF_FFLUSH_PURGE "7d"
2239 extern int var_fflush_purge
;
2241 #define VAR_FFLUSH_REFRESH "fast_flush_refresh_time"
2242 #define DEF_FFLUSH_REFRESH "12h"
2243 extern int var_fflush_refresh
;
2246 * Environmental management - what Postfix imports from the external world,
2247 * and what Postfix exports to the external world.
2249 #define VAR_IMPORT_ENVIRON "import_environment"
2250 #define DEF_IMPORT_ENVIRON "MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C"
2251 extern char *var_import_environ
;
2253 #define VAR_EXPORT_ENVIRON "export_environment"
2254 #define DEF_EXPORT_ENVIRON "TZ MAIL_CONFIG LANG"
2255 extern char *var_export_environ
;
2258 * Tunables for the "virtual" local delivery agent
2260 #define VAR_VIRT_TRANSPORT "virtual_transport"
2261 #define DEF_VIRT_TRANSPORT MAIL_SERVICE_VIRTUAL
2262 extern char *var_virt_transport
;
2264 #define VAR_VIRT_MAILBOX_MAPS "virtual_mailbox_maps"
2265 #define DEF_VIRT_MAILBOX_MAPS ""
2266 extern char *var_virt_mailbox_maps
;
2268 #define VAR_VIRT_MAILBOX_DOMS "virtual_mailbox_domains"
2269 #define DEF_VIRT_MAILBOX_DOMS "$virtual_mailbox_maps"
2270 extern char *var_virt_mailbox_doms
;
2272 #define VAR_VIRT_MAILBOX_CODE "unknown_virtual_mailbox_reject_code"
2273 #define DEF_VIRT_MAILBOX_CODE 550
2274 extern int var_virt_mailbox_code
;
2276 #define VAR_VIRT_UID_MAPS "virtual_uid_maps"
2277 #define DEF_VIRT_UID_MAPS ""
2278 extern char *var_virt_uid_maps
;
2280 #define VAR_VIRT_GID_MAPS "virtual_gid_maps"
2281 #define DEF_VIRT_GID_MAPS ""
2282 extern char *var_virt_gid_maps
;
2284 #define VAR_VIRT_MINUID "virtual_minimum_uid"
2285 #define DEF_VIRT_MINUID 100
2286 extern int var_virt_minimum_uid
;
2288 #define VAR_VIRT_MAILBOX_BASE "virtual_mailbox_base"
2289 #define DEF_VIRT_MAILBOX_BASE ""
2290 extern char *var_virt_mailbox_base
;
2292 #define VAR_VIRT_MAILBOX_LIMIT "virtual_mailbox_limit"
2293 #define DEF_VIRT_MAILBOX_LIMIT (5 * DEF_MESSAGE_LIMIT)
2294 extern int var_virt_mailbox_limit
;
2296 #define VAR_VIRT_MAILBOX_LOCK "virtual_mailbox_lock"
2297 #define DEF_VIRT_MAILBOX_LOCK "fcntl, dotlock"
2298 extern char *var_virt_mailbox_lock
;
2301 * Distinct logging tag for multiple Postfix instances.
2303 #define VAR_SYSLOG_NAME "syslog_name"
2305 #define DEF_SYSLOG_NAME \
2306 "${" VAR_MULTI_NAME ":postfix}${" VAR_MULTI_NAME "?$" VAR_MULTI_NAME "}"
2308 #define DEF_SYSLOG_NAME "postfix"
2310 extern char *var_syslog_name
;
2315 #define VAR_QMQPD_CLIENTS "qmqpd_authorized_clients"
2316 #define DEF_QMQPD_CLIENTS ""
2317 extern char *var_qmqpd_clients
;
2319 #define VAR_QMTPD_TMOUT "qmqpd_timeout"
2320 #define DEF_QMTPD_TMOUT "300s"
2321 extern int var_qmqpd_timeout
;
2323 #define VAR_QMTPD_ERR_SLEEP "qmqpd_error_delay"
2324 #define DEF_QMTPD_ERR_SLEEP "1s"
2325 extern int var_qmqpd_err_sleep
;
2328 * VERP, more DJB intellectual cross-pollination. However, we prefer + as
2329 * the default recipient delimiter.
2331 #define VAR_VERP_DELIMS "default_verp_delimiters"
2332 #define DEF_VERP_DELIMS "+="
2333 extern char *var_verp_delims
;
2335 #define VAR_VERP_FILTER "verp_delimiter_filter"
2336 #define DEF_VERP_FILTER "-=+"
2337 extern char *var_verp_filter
;
2339 #define VAR_VERP_BOUNCE_OFF "disable_verp_bounces"
2340 #define DEF_VERP_BOUNCE_OFF 0
2341 extern bool var_verp_bounce_off
;
2343 #define VAR_VERP_CLIENTS "smtpd_authorized_verp_clients"
2344 #define DEF_VERP_CLIENTS "$authorized_verp_clients"
2345 extern char *var_verp_clients
;
2348 * XCLIENT, for rule testing and fetchmail like apps.
2350 #define VAR_XCLIENT_HOSTS "smtpd_authorized_xclient_hosts"
2351 #define DEF_XCLIENT_HOSTS ""
2352 extern char *var_xclient_hosts
;
2355 * XFORWARD, for improved post-filter logging.
2357 #define VAR_XFORWARD_HOSTS "smtpd_authorized_xforward_hosts"
2358 #define DEF_XFORWARD_HOSTS ""
2359 extern char *var_xforward_hosts
;
2362 * Inbound mail flow control. This allows for a stiffer coupling between
2363 * receiving mail and sending mail. A sending process produces one token for
2364 * each message that it takes from the incoming queue; a receiving process
2365 * consumes one token for each message that it adds to the incoming queue.
2366 * When no token is available (Postfix receives more mail than it is able to
2367 * deliver) a receiving process pauses for $in_flow_delay seconds so that
2368 * the sending processes get a chance to access the disk.
2370 #define VAR_IN_FLOW_DELAY "in_flow_delay"
2371 #ifdef PIPES_CANT_FIONREAD
2372 #define DEF_IN_FLOW_DELAY "0s"
2374 #define DEF_IN_FLOW_DELAY "1s"
2376 extern int var_in_flow_delay
;
2379 * Backwards compatibility: foo.com matches itself and names below foo.com.
2381 #define VAR_PAR_DOM_MATCH "parent_domain_matches_subdomains"
2382 #define DEF_PAR_DOM_MATCH VAR_DEBUG_PEER_LIST "," \
2383 VAR_FFLUSH_DOMAINS "," \
2384 VAR_MYNETWORKS "," \
2385 VAR_PERM_MX_NETWORKS "," \
2386 VAR_QMQPD_CLIENTS "," \
2387 VAR_RELAY_DOMAINS "," \
2389 extern char *var_par_dom_match
;
2391 #define SMTPD_ACCESS_MAPS "smtpd_access_maps"
2394 * Run-time fault injection.
2396 #define VAR_FAULT_INJ_CODE "fault_injection_code"
2397 #define DEF_FAULT_INJ_CODE 0
2398 extern int var_fault_inj_code
;
2401 * Install/upgrade information.
2403 #define VAR_SENDMAIL_PATH "sendmail_path"
2404 #ifndef DEF_SENDMAIL_PATH
2405 #define DEF_SENDMAIL_PATH "/usr/sbin/sendmail"
2408 #define VAR_MAILQ_PATH "mailq_path"
2409 #ifndef DEF_MAILQ_PATH
2410 #define DEF_MAILQ_PATH "/usr/bin/mailq"
2413 #define VAR_NEWALIAS_PATH "newaliases_path"
2414 #ifndef DEF_NEWALIAS_PATH
2415 #define DEF_NEWALIAS_PATH "/usr/bin/newaliases"
2418 #define VAR_MANPAGE_DIR "manpage_directory"
2419 #ifndef DEF_MANPAGE_DIR
2420 #define DEF_MANPAGE_DIR "/usr/local/man"
2423 #define VAR_SAMPLE_DIR "sample_directory"
2424 #ifndef DEF_SAMPLE_DIR
2425 #define DEF_SAMPLE_DIR DEF_CONFIG_DIR
2428 #define VAR_README_DIR "readme_directory"
2429 #ifndef DEF_README_DIR
2430 #define DEF_README_DIR "no"
2433 #define VAR_HTML_DIR "html_directory"
2434 #ifndef DEF_HTML_DIR
2435 #define DEF_HTML_DIR "no"
2439 * Safety: resolve the address with unquoted localpart (default, but
2440 * technically incorrect), instead of resolving the address with quoted
2441 * localpart (technically correct, but unsafe). The default prevents mail
2442 * relay loopholes with "user@domain"@domain when relaying mail to a
2445 #define VAR_RESOLVE_DEQUOTED "resolve_dequoted_address"
2446 #define DEF_RESOLVE_DEQUOTED 1
2447 extern bool var_resolve_dequoted
;
2449 #define VAR_RESOLVE_NULLDOM "resolve_null_domain"
2450 #define DEF_RESOLVE_NULLDOM 0
2451 extern bool var_resolve_nulldom
;
2453 #define VAR_RESOLVE_NUM_DOM "resolve_numeric_domain"
2454 #define DEF_RESOLVE_NUM_DOM 0
2455 extern bool var_resolve_num_dom
;
2458 * Service names. The transport (TCP, FIFO or UNIX-domain) type is frozen
2459 * because you cannot simply mix them, and accessibility (private/public) is
2460 * frozen for security reasons. We list only the internal services, not the
2461 * externally visible SMTP server, or the delivery agents that can already
2462 * be chosen via transport mappings etc.
2464 #define VAR_BOUNCE_SERVICE "bounce_service_name"
2465 #define DEF_BOUNCE_SERVICE MAIL_SERVICE_BOUNCE
2466 extern char *var_bounce_service
;
2468 #define VAR_CLEANUP_SERVICE "cleanup_service_name"
2469 #define DEF_CLEANUP_SERVICE MAIL_SERVICE_CLEANUP
2470 extern char *var_cleanup_service
;
2472 #define VAR_DEFER_SERVICE "defer_service_name"
2473 #define DEF_DEFER_SERVICE MAIL_SERVICE_DEFER
2474 extern char *var_defer_service
;
2476 #define VAR_PICKUP_SERVICE "pickup_service_name"
2477 #define DEF_PICKUP_SERVICE MAIL_SERVICE_PICKUP
2478 extern char *var_pickup_service
;
2480 #define VAR_QUEUE_SERVICE "queue_service_name"
2481 #define DEF_QUEUE_SERVICE MAIL_SERVICE_QUEUE
2482 extern char *var_queue_service
;
2484 /* XXX resolve does not exist as a separate service */
2486 #define VAR_REWRITE_SERVICE "rewrite_service_name"
2487 #define DEF_REWRITE_SERVICE MAIL_SERVICE_REWRITE
2488 extern char *var_rewrite_service
;
2490 #define VAR_SHOWQ_SERVICE "showq_service_name"
2491 #define DEF_SHOWQ_SERVICE MAIL_SERVICE_SHOWQ
2492 extern char *var_showq_service
;
2494 #define VAR_ERROR_SERVICE "error_service_name"
2495 #define DEF_ERROR_SERVICE MAIL_SERVICE_ERROR
2496 extern char *var_error_service
;
2498 #define VAR_FLUSH_SERVICE "flush_service_name"
2499 #define DEF_FLUSH_SERVICE MAIL_SERVICE_FLUSH
2500 extern char *var_flush_service
;
2503 * Session cache service.
2505 #define VAR_SCACHE_SERVICE "connection_cache_service_name"
2506 #define DEF_SCACHE_SERVICE "scache"
2507 extern char *var_scache_service
;
2509 #define VAR_SCACHE_PROTO_TMOUT "connection_cache_protocol_timeout"
2510 #define DEF_SCACHE_PROTO_TMOUT "5s"
2511 extern int var_scache_proto_tmout
;
2513 #define VAR_SCACHE_TTL_LIM "connection_cache_ttl_limit"
2514 #define DEF_SCACHE_TTL_LIM "2s"
2515 extern int var_scache_ttl_lim
;
2517 #define VAR_SCACHE_STAT_TIME "connection_cache_status_update_time"
2518 #define DEF_SCACHE_STAT_TIME "600s"
2519 extern int var_scache_stat_time
;
2522 * Address verification service.
2524 #define VAR_VERIFY_SERVICE "address_verify_service_name"
2525 #define DEF_VERIFY_SERVICE MAIL_SERVICE_VERIFY
2526 extern char *var_verify_service
;
2528 #define VAR_VERIFY_MAP "address_verify_map"
2529 #define DEF_VERIFY_MAP ""
2530 extern char *var_verify_map
;
2532 #define VAR_VERIFY_POS_EXP "address_verify_positive_expire_time"
2533 #define DEF_VERIFY_POS_EXP "31d"
2534 extern int var_verify_pos_exp
;
2536 #define VAR_VERIFY_POS_TRY "address_verify_positive_refresh_time"
2537 #define DEF_VERIFY_POS_TRY "7d"
2538 extern int var_verify_pos_try
;
2540 #define VAR_VERIFY_NEG_EXP "address_verify_negative_expire_time"
2541 #define DEF_VERIFY_NEG_EXP "3d"
2542 extern int var_verify_neg_exp
;
2544 #define VAR_VERIFY_NEG_TRY "address_verify_negative_refresh_time"
2545 #define DEF_VERIFY_NEG_TRY "3h"
2546 extern int var_verify_neg_try
;
2548 #define VAR_VERIFY_NEG_CACHE "address_verify_negative_cache"
2549 #define DEF_VERIFY_NEG_CACHE 1
2550 extern bool var_verify_neg_cache
;
2552 #define VAR_VERIFY_SENDER "address_verify_sender"
2553 #define DEF_VERIFY_SENDER "$" VAR_DOUBLE_BOUNCE
2554 extern char *var_verify_sender
;
2556 #define VAR_VERIFY_POLL_COUNT "address_verify_poll_count"
2557 #define DEF_VERIFY_POLL_COUNT 3
2558 extern int var_verify_poll_count
;
2560 #define VAR_VERIFY_POLL_DELAY "address_verify_poll_delay"
2561 #define DEF_VERIFY_POLL_DELAY "3s"
2562 extern int var_verify_poll_delay
;
2564 #define VAR_VRFY_LOCAL_XPORT "address_verify_local_transport"
2565 #define DEF_VRFY_LOCAL_XPORT "$" VAR_LOCAL_TRANSPORT
2566 extern char *var_vrfy_local_xport
;
2568 #define VAR_VRFY_VIRT_XPORT "address_verify_virtual_transport"
2569 #define DEF_VRFY_VIRT_XPORT "$" VAR_VIRT_TRANSPORT
2570 extern char *var_vrfy_virt_xport
;
2572 #define VAR_VRFY_RELAY_XPORT "address_verify_relay_transport"
2573 #define DEF_VRFY_RELAY_XPORT "$" VAR_RELAY_TRANSPORT
2574 extern char *var_vrfy_relay_xport
;
2576 #define VAR_VRFY_DEF_XPORT "address_verify_default_transport"
2577 #define DEF_VRFY_DEF_XPORT "$" VAR_DEF_TRANSPORT
2578 extern char *var_vrfy_def_xport
;
2580 #define VAR_VRFY_RELAYHOST "address_verify_relayhost"
2581 #define DEF_VRFY_RELAYHOST "$" VAR_RELAYHOST
2582 extern char *var_vrfy_relayhost
;
2584 #define VAR_VRFY_RELAY_MAPS "address_verify_sender_dependent_relayhost_maps"
2585 #define DEF_VRFY_RELAY_MAPS "$" VAR_SND_RELAY_MAPS
2586 extern char *var_vrfy_relay_maps
;
2588 #define VAR_VRFY_XPORT_MAPS "address_verify_transport_maps"
2589 #define DEF_VRFY_XPORT_MAPS "$" VAR_TRANSPORT_MAPS
2590 extern char *var_vrfy_xport_maps
;
2593 * Message delivery trace service.
2595 #define VAR_TRACE_SERVICE "trace_service_name"
2596 #define DEF_TRACE_SERVICE MAIL_SERVICE_TRACE
2597 extern char *var_trace_service
;
2602 #define VAR_PROXYMAP_SERVICE "proxymap_service_name"
2603 #define DEF_PROXYMAP_SERVICE MAIL_SERVICE_PROXYMAP
2604 extern char *var_proxymap_service
;
2606 #define VAR_PROXYWRITE_SERVICE "proxywrite_service_name"
2607 #define DEF_PROXYWRITE_SERVICE MAIL_SERVICE_PROXYWRITE
2608 extern char *var_proxywrite_service
;
2611 * Mailbox/maildir delivery errors that cause delivery to be tried again.
2613 #define VAR_MBX_DEFER_ERRS "mailbox_defer_errors"
2614 #define DEF_MBX_DEFER_ERRS "eagain, enospc, estale"
2615 extern char *var_mbx_defer_errs
;
2617 #define VAR_MDR_DEFER_ERRS "maildir_defer_errors"
2618 #define DEF_MDR_DEFER_ERRS "enospc, estale"
2619 extern char *var_mdr_defer_errs
;
2622 * Berkeley DB memory pool sizes.
2624 #define VAR_DB_CREATE_BUF "berkeley_db_create_buffer_size"
2625 #define DEF_DB_CREATE_BUF (16 * 1024 *1024)
2626 extern int var_db_create_buf
;
2628 #define VAR_DB_READ_BUF "berkeley_db_read_buffer_size"
2629 #define DEF_DB_READ_BUF (128 *1024)
2630 extern int var_db_read_buf
;
2633 * Named queue file attributes.
2635 #define VAR_QATTR_COUNT_LIMIT "queue_file_attribute_count_limit"
2636 #define DEF_QATTR_COUNT_LIMIT 100
2637 extern int var_qattr_count_limit
;
2642 #define VAR_MIME_MAXDEPTH "mime_nesting_limit"
2643 #define DEF_MIME_MAXDEPTH 100
2644 extern int var_mime_maxdepth
;
2646 #define VAR_MIME_BOUND_LEN "mime_boundary_length_limit"
2647 #define DEF_MIME_BOUND_LEN 2048
2648 extern int var_mime_bound_len
;
2650 #define VAR_DISABLE_MIME_INPUT "disable_mime_input_processing"
2651 #define DEF_DISABLE_MIME_INPUT 0
2652 extern bool var_disable_mime_input
;
2654 #define VAR_DISABLE_MIME_OCONV "disable_mime_output_conversion"
2655 #define DEF_DISABLE_MIME_OCONV 0
2656 extern bool var_disable_mime_oconv
;
2658 #define VAR_STRICT_8BITMIME "strict_8bitmime"
2659 #define DEF_STRICT_8BITMIME 0
2660 extern bool var_strict_8bitmime
;
2662 #define VAR_STRICT_7BIT_HDRS "strict_7bit_headers"
2663 #define DEF_STRICT_7BIT_HDRS 0
2664 extern bool var_strict_7bit_hdrs
;
2666 #define VAR_STRICT_8BIT_BODY "strict_8bitmime_body"
2667 #define DEF_STRICT_8BIT_BODY 0
2668 extern bool var_strict_8bit_body
;
2670 #define VAR_STRICT_ENCODING "strict_mime_encoding_domain"
2671 #define DEF_STRICT_ENCODING 0
2672 extern bool var_strict_encoding
;
2674 #define VAR_AUTO_8BIT_ENC_HDR "detect_8bit_encoding_header"
2675 #define DEF_AUTO_8BIT_ENC_HDR 1
2676 extern int var_auto_8bit_enc_hdr
;
2681 #define VAR_SENDER_ROUTING "sender_based_routing"
2682 #define DEF_SENDER_ROUTING 0
2683 extern bool var_sender_routing
;
2685 #define VAR_XPORT_NULL_KEY "transport_null_address_lookup_key"
2686 #define DEF_XPORT_NULL_KEY "<>"
2687 extern char *var_xport_null_key
;
2690 * Bounce service controls.
2692 #define VAR_OLDLOG_COMPAT "backwards_bounce_logfile_compatibility"
2693 #define DEF_OLDLOG_COMPAT 1
2694 extern bool var_oldlog_compat
;
2697 * SMTPD content proxy.
2699 #define VAR_SMTPD_PROXY_FILT "smtpd_proxy_filter"
2700 #define DEF_SMTPD_PROXY_FILT ""
2701 extern char *var_smtpd_proxy_filt
;
2703 #define VAR_SMTPD_PROXY_EHLO "smtpd_proxy_ehlo"
2704 #define DEF_SMTPD_PROXY_EHLO "$" VAR_MYHOSTNAME
2705 extern char *var_smtpd_proxy_ehlo
;
2707 #define VAR_SMTPD_PROXY_TMOUT "smtpd_proxy_timeout"
2708 #define DEF_SMTPD_PROXY_TMOUT "100s"
2709 extern int var_smtpd_proxy_tmout
;
2712 * Transparency options for mail input interfaces and for the cleanup server
2713 * behind them. These should turn off stuff we don't want to happen, because
2714 * the default is to do a lot of things.
2716 #define VAR_INPUT_TRANSP "receive_override_options"
2717 #define DEF_INPUT_TRANSP ""
2718 extern char *var_smtpd_input_transp
;
2721 * SMTP server policy delegation.
2723 #define VAR_SMTPD_POLICY_TMOUT "smtpd_policy_service_timeout"
2724 #define DEF_SMTPD_POLICY_TMOUT "100s"
2725 extern int var_smtpd_policy_tmout
;
2727 #define VAR_SMTPD_POLICY_IDLE "smtpd_policy_service_max_idle"
2728 #define DEF_SMTPD_POLICY_IDLE "300s"
2729 extern int var_smtpd_policy_idle
;
2731 #define VAR_SMTPD_POLICY_TTL "smtpd_policy_service_max_ttl"
2732 #define DEF_SMTPD_POLICY_TTL "1000s"
2733 extern int var_smtpd_policy_ttl
;
2735 #define CHECK_POLICY_SERVICE "check_policy_service"
2738 * Client rate control.
2740 #define VAR_SMTPD_CRATE_LIMIT "smtpd_client_connection_rate_limit"
2741 #define DEF_SMTPD_CRATE_LIMIT 0
2742 extern int var_smtpd_crate_limit
;
2744 #define VAR_SMTPD_CCONN_LIMIT "smtpd_client_connection_count_limit"
2745 #define DEF_SMTPD_CCONN_LIMIT ((DEF_PROC_LIMIT + 1) / 2)
2746 extern int var_smtpd_cconn_limit
;
2748 #define VAR_SMTPD_CMAIL_LIMIT "smtpd_client_message_rate_limit"
2749 #define DEF_SMTPD_CMAIL_LIMIT 0
2750 extern int var_smtpd_cmail_limit
;
2752 #define VAR_SMTPD_CRCPT_LIMIT "smtpd_client_recipient_rate_limit"
2753 #define DEF_SMTPD_CRCPT_LIMIT 0
2754 extern int var_smtpd_crcpt_limit
;
2756 #define VAR_SMTPD_CNTLS_LIMIT "smtpd_client_new_tls_session_rate_limit"
2757 #define DEF_SMTPD_CNTLS_LIMIT 0
2758 extern int var_smtpd_cntls_limit
;
2760 #define VAR_SMTPD_HOGGERS "smtpd_client_event_limit_exceptions"
2761 #define DEF_SMTPD_HOGGERS "${smtpd_client_connection_limit_exceptions:$" VAR_MYNETWORKS "}"
2762 extern char *var_smtpd_hoggers
;
2764 #define VAR_ANVIL_TIME_UNIT "anvil_rate_time_unit"
2765 #define DEF_ANVIL_TIME_UNIT "60s"
2766 extern int var_anvil_time_unit
;
2768 #define VAR_ANVIL_STAT_TIME "anvil_status_update_time"
2769 #define DEF_ANVIL_STAT_TIME "600s"
2770 extern int var_anvil_stat_time
;
2773 * Temporary stop gap.
2776 #include <anvil_clnt.h>
2778 #define VAR_ANVIL_SERVICE "client_connection_rate_service_name"
2779 #define DEF_ANVIL_SERVICE "local:" ANVIL_CLASS "/" ANVIL_SERVICE
2780 extern char *var_anvil_service
;
2785 * What domain names to assume when no valid domain context exists.
2787 #define VAR_REM_RWR_DOMAIN "remote_header_rewrite_domain"
2788 #define DEF_REM_RWR_DOMAIN ""
2789 extern char *var_remote_rwr_domain
;
2791 #define CHECK_ADDR_MAP "check_address_map"
2793 #define VAR_LOC_RWR_CLIENTS "local_header_rewrite_clients"
2794 #define DEF_LOC_RWR_CLIENTS PERMIT_INET_INTERFACES
2795 extern char *var_local_rwr_clients
;
2798 * EHLO keyword filter.
2800 #define VAR_SMTPD_EHLO_DIS_WORDS "smtpd_discard_ehlo_keywords"
2801 #define DEF_SMTPD_EHLO_DIS_WORDS ""
2802 extern char *var_smtpd_ehlo_dis_words
;
2804 #define VAR_SMTPD_EHLO_DIS_MAPS "smtpd_discard_ehlo_keyword_address_maps"
2805 #define DEF_SMTPD_EHLO_DIS_MAPS ""
2806 extern char *var_smtpd_ehlo_dis_maps
;
2808 #define VAR_SMTP_EHLO_DIS_WORDS "smtp_discard_ehlo_keywords"
2809 #define DEF_SMTP_EHLO_DIS_WORDS ""
2810 #define VAR_LMTP_EHLO_DIS_WORDS "lmtp_discard_lhlo_keywords"
2811 #define DEF_LMTP_EHLO_DIS_WORDS ""
2812 extern char *var_smtp_ehlo_dis_words
;
2814 #define VAR_SMTP_EHLO_DIS_MAPS "smtp_discard_ehlo_keyword_address_maps"
2815 #define DEF_SMTP_EHLO_DIS_MAPS ""
2816 #define VAR_LMTP_EHLO_DIS_MAPS "lmtp_discard_lhlo_keyword_address_maps"
2817 #define DEF_LMTP_EHLO_DIS_MAPS ""
2818 extern char *var_smtp_ehlo_dis_maps
;
2821 * gcc workaround for warnings about empty or null format strings.
2823 extern const char null_format_string
[1];
2826 * Characters to reject or strip.
2828 #define VAR_MSG_REJECT_CHARS "message_reject_characters"
2829 #define DEF_MSG_REJECT_CHARS ""
2830 extern char *var_msg_reject_chars
;
2832 #define VAR_MSG_STRIP_CHARS "message_strip_characters"
2833 #define DEF_MSG_STRIP_CHARS ""
2834 extern char *var_msg_strip_chars
;
2837 * Local forwarding complexity controls.
2839 #define VAR_FROZEN_DELIVERED "frozen_delivered_to"
2840 #define DEF_FROZEN_DELIVERED 1
2841 extern bool var_frozen_delivered
;
2844 * Delay logging time roundup.
2846 #define VAR_DELAY_MAX_RES "delay_logging_resolution_limit"
2847 #define MAX_DELAY_MAX_RES 6
2848 #define DEF_DELAY_MAX_RES 2
2849 #define MIN_DELAY_MAX_RES 0
2850 extern int var_delay_max_res
;
2853 * Bounce message templates.
2855 #define VAR_BOUNCE_TMPL "bounce_template_file"
2856 #define DEF_BOUNCE_TMPL ""
2857 extern char *var_bounce_tmpl
;
2860 * Sender-dependent authentication.
2862 #define VAR_SMTP_SENDER_AUTH "smtp_sender_dependent_authentication"
2863 #define DEF_SMTP_SENDER_AUTH 0
2864 #define VAR_LMTP_SENDER_AUTH "lmtp_sender_dependent_authentication"
2865 #define DEF_LMTP_SENDER_AUTH 0
2866 extern bool var_smtp_sender_auth
;
2869 * Allow CNAME lookup result to override the server hostname.
2871 #define VAR_SMTP_CNAME_OVERR "smtp_cname_overrides_servername"
2872 #define DEF_SMTP_CNAME_OVERR 0
2873 #define VAR_LMTP_CNAME_OVERR "lmtp_cname_overrides_servername"
2874 #define DEF_LMTP_CNAME_OVERR 0
2875 extern bool var_smtp_cname_overr
;
2880 #define VAR_TLS_HIGH_CLIST "tls_high_cipherlist"
2881 #define DEF_TLS_HIGH_CLIST "ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH"
2882 extern char *var_tls_high_clist
;
2884 #define VAR_TLS_MEDIUM_CLIST "tls_medium_cipherlist"
2885 #define DEF_TLS_MEDIUM_CLIST "ALL:!EXPORT:!LOW:+RC4:@STRENGTH"
2886 extern char *var_tls_medium_clist
;
2888 #define VAR_TLS_LOW_CLIST "tls_low_cipherlist"
2889 #define DEF_TLS_LOW_CLIST "ALL:!EXPORT:+RC4:@STRENGTH"
2890 extern char *var_tls_low_clist
;
2892 #define VAR_TLS_EXPORT_CLIST "tls_export_cipherlist"
2893 #define DEF_TLS_EXPORT_CLIST "ALL:+RC4:@STRENGTH"
2894 extern char *var_tls_export_clist
;
2896 #define VAR_TLS_NULL_CLIST "tls_null_cipherlist"
2897 #define DEF_TLS_NULL_CLIST "eNULL:!aNULL"
2898 extern char *var_tls_null_clist
;
2900 #define VAR_TLS_EECDH_STRONG "tls_eecdh_strong_curve"
2901 #define DEF_TLS_EECDH_STRONG "prime256v1"
2902 extern char *var_tls_eecdh_strong
;
2904 #define VAR_TLS_EECDH_ULTRA "tls_eecdh_ultra_curve"
2905 #define DEF_TLS_EECDH_ULTRA "secp384r1"
2906 extern char *var_tls_eecdh_ultra
;
2909 * Sendmail-style mail filter support.
2911 #define VAR_SMTPD_MILTERS "smtpd_milters"
2912 #define DEF_SMTPD_MILTERS ""
2913 extern char *var_smtpd_milters
;
2915 #define VAR_CLEANUP_MILTERS "non_smtpd_milters"
2916 #define DEF_CLEANUP_MILTERS ""
2917 extern char *var_cleanup_milters
;
2919 #define VAR_MILT_DEF_ACTION "milter_default_action"
2920 #define DEF_MILT_DEF_ACTION "tempfail"
2921 extern char *var_milt_def_action
;
2923 #define VAR_MILT_CONN_MACROS "milter_connect_macros"
2924 #define DEF_MILT_CONN_MACROS "j {daemon_name} v"
2925 extern char *var_milt_conn_macros
;
2927 #define VAR_MILT_HELO_MACROS "milter_helo_macros"
2928 #define DEF_MILT_HELO_MACROS "{tls_version} {cipher} {cipher_bits}" \
2929 " {cert_subject} {cert_issuer}"
2930 extern char *var_milt_helo_macros
;
2932 #define VAR_MILT_MAIL_MACROS "milter_mail_macros"
2933 #define DEF_MILT_MAIL_MACROS "i {auth_type} {auth_authen}" \
2934 " {auth_author} {mail_addr}" \
2935 " {mail_host} {mail_mailer}"
2936 extern char *var_milt_mail_macros
;
2938 #define VAR_MILT_RCPT_MACROS "milter_rcpt_macros"
2939 #define DEF_MILT_RCPT_MACROS "i {rcpt_addr} {rcpt_host}" \
2941 extern char *var_milt_rcpt_macros
;
2943 #define VAR_MILT_DATA_MACROS "milter_data_macros"
2944 #define DEF_MILT_DATA_MACROS "i"
2945 extern char *var_milt_data_macros
;
2947 #define VAR_MILT_UNK_MACROS "milter_unknown_command_macros"
2948 #define DEF_MILT_UNK_MACROS ""
2949 extern char *var_milt_unk_macros
;
2951 #define VAR_MILT_EOH_MACROS "milter_end_of_header_macros"
2952 #define DEF_MILT_EOH_MACROS "i"
2953 extern char *var_milt_eoh_macros
;
2955 #define VAR_MILT_EOD_MACROS "milter_end_of_data_macros"
2956 #define DEF_MILT_EOD_MACROS "i"
2957 extern char *var_milt_eod_macros
;
2959 #define VAR_MILT_CONN_TIME "milter_connect_timeout"
2960 #define DEF_MILT_CONN_TIME "30s"
2961 extern int var_milt_conn_time
;
2963 #define VAR_MILT_CMD_TIME "milter_command_timeout"
2964 #define DEF_MILT_CMD_TIME "30s"
2965 extern int var_milt_cmd_time
;
2967 #define VAR_MILT_MSG_TIME "milter_content_timeout"
2968 #define DEF_MILT_MSG_TIME "300s"
2969 extern int var_milt_msg_time
;
2971 #define VAR_MILT_PROTOCOL "milter_protocol"
2972 #define DEF_MILT_PROTOCOL "6"
2973 extern char *var_milt_protocol
;
2975 #define VAR_MILT_DEF_ACTION "milter_default_action"
2976 #define DEF_MILT_DEF_ACTION "tempfail"
2977 extern char *var_milt_def_action
;
2979 #define VAR_MILT_DAEMON_NAME "milter_macro_daemon_name"
2980 #define DEF_MILT_DAEMON_NAME "$" VAR_MYHOSTNAME
2981 extern char *var_milt_daemon_name
;
2983 #define VAR_MILT_V "milter_macro_v"
2984 #define DEF_MILT_V "$" VAR_MAIL_NAME " $" VAR_MAIL_VERSION
2985 extern char *var_milt_v
;
2988 * What internal mail do we inspect/stamp/etc.? This is not yet safe enough
2989 * to enable world-wide.
2991 #define INT_FILT_CLASS_NONE ""
2992 #define INT_FILT_CLASS_NOTIFY "notify"
2993 #define INT_FILT_CLASS_BOUNCE "bounce"
2995 #define VAR_INT_FILT_CLASSES "internal_mail_filter_classes"
2996 #define DEF_INT_FILT_CLASSES INT_FILT_CLASS_NONE
2997 extern char *var_int_filt_classes
;
3000 * This could break logfile processors, so it's off by default.
3002 #define VAR_SMTPD_CLIENT_PORT_LOG "smtpd_client_port_logging"
3003 #define DEF_SMTPD_CLIENT_PORT_LOG 0
3004 extern bool var_smtpd_client_port_log
;
3006 #define VAR_QMQPD_CLIENT_PORT_LOG "qmqpd_client_port_logging"
3007 #define DEF_QMQPD_CLIENT_PORT_LOG 0
3008 extern bool var_qmqpd_client_port_log
;
3011 * Header/body checks in delivery agents.
3013 #define VAR_SMTP_HEAD_CHKS "smtp_header_checks"
3014 #define DEF_SMTP_HEAD_CHKS ""
3015 extern char *var_smtp_head_chks
;
3017 #define VAR_SMTP_MIME_CHKS "smtp_mime_header_checks"
3018 #define DEF_SMTP_MIME_CHKS ""
3019 extern char *var_smtp_mime_chks
;
3021 #define VAR_SMTP_NEST_CHKS "smtp_nested_header_checks"
3022 #define DEF_SMTP_NEST_CHKS ""
3023 extern char *var_smtp_nest_chks
;
3025 #define VAR_SMTP_BODY_CHKS "smtp_body_checks"
3026 #define DEF_SMTP_BODY_CHKS ""
3027 extern char *var_smtp_body_chks
;
3029 #define VAR_LMTP_HEAD_CHKS "lmtp_header_checks"
3030 #define DEF_LMTP_HEAD_CHKS ""
3031 #define VAR_LMTP_MIME_CHKS "lmtp_mime_header_checks"
3032 #define DEF_LMTP_MIME_CHKS ""
3033 #define VAR_LMTP_NEST_CHKS "lmtp_nested_header_checks"
3034 #define DEF_LMTP_NEST_CHKS ""
3035 #define VAR_LMTP_BODY_CHKS "lmtp_body_checks"
3036 #define DEF_LMTP_BODY_CHKS ""
3039 * Scheduler concurrency feedback algorithms.
3041 #define VAR_CONC_POS_FDBACK "default_destination_concurrency_positive_feedback"
3042 #define _CONC_POS_FDBACK "_destination_concurrency_positive_feedback"
3043 #define DEF_CONC_POS_FDBACK "1"
3044 extern char *var_conc_pos_feedback
;
3046 #define VAR_CONC_NEG_FDBACK "default_destination_concurrency_negative_feedback"
3047 #define _CONC_NEG_FDBACK "_destination_concurrency_negative_feedback"
3048 #define DEF_CONC_NEG_FDBACK "1"
3049 extern char *var_conc_neg_feedback
;
3051 #define CONC_FDBACK_NAME_WIN "concurrency"
3052 #define CONC_FDBACK_NAME_SQRT_WIN "sqrt_concurrency"
3054 #define VAR_CONC_COHORT_LIM "default_destination_concurrency_failed_cohort_limit"
3055 #define _CONC_COHORT_LIM "_destination_concurrency_failed_cohort_limit"
3056 #define DEF_CONC_COHORT_LIM 1
3057 extern int var_conc_cohort_limit
;
3059 #define VAR_CONC_FDBACK_DEBUG "destination_concurrency_feedback_debug"
3060 #define DEF_CONC_FDBACK_DEBUG 0
3061 extern bool var_conc_feedback_debug
;
3063 #define VAR_DEST_RATE_DELAY "default_destination_rate_delay"
3064 #define _DEST_RATE_DELAY "_destination_rate_delay"
3065 #define DEF_DEST_RATE_DELAY "0s"
3066 extern int var_dest_rate_delay
;
3071 #define VAR_STRESS "stress"
3072 #define DEF_STRESS ""
3073 extern char *var_stress
;
3076 * Mailbox ownership.
3078 #define VAR_STRICT_MBOX_OWNER "strict_mailbox_ownership"
3079 #define DEF_STRICT_MBOX_OWNER 1
3080 extern bool var_strict_mbox_owner
;
3083 * Window scaling workaround.
3085 #define VAR_INET_WINDOW "tcp_windowsize"
3086 #define DEF_INET_WINDOW 0
3087 extern int var_inet_windowsize
;
3090 * Plug-in multi-instance support. Only the first two paramaters are used by
3091 * Postfix itself; the other ones are reserved for the instance manager.
3093 #define VAR_MULTI_CONF_DIRS "multi_instance_directories"
3094 #define DEF_MULTI_CONF_DIRS ""
3095 extern char *var_multi_conf_dirs
;
3097 #define VAR_MULTI_WRAPPER "multi_instance_wrapper"
3098 #define DEF_MULTI_WRAPPER ""
3099 extern char *var_multi_wrapper
;
3101 #define VAR_MULTI_NAME "multi_instance_name"
3102 #define DEF_MULTI_NAME ""
3103 extern char *var_multi_name
;
3105 #define VAR_MULTI_GROUP "multi_instance_group"
3106 #define DEF_MULTI_GROUP ""
3107 extern char *var_multi_group
;
3109 #define VAR_MULTI_ENABLE "multi_instance_enable"
3110 #define DEF_MULTI_ENABLE 0
3111 extern bool var_multi_enable
;
3114 * postmulti(1) instance manager
3116 #define VAR_MULTI_START_CMDS "postmulti_start_commands"
3117 #define DEF_MULTI_START_CMDS "start"
3118 extern char *var_multi_start_cmds
;
3120 #define VAR_MULTI_STOP_CMDS "postmulti_stop_commands"
3121 #define DEF_MULTI_STOP_CMDS "stop abort drain quick-stop"
3122 extern char *var_multi_stop_cmds
;
3124 #define VAR_MULTI_CNTRL_CMDS "postmulti_control_commands"
3125 #define DEF_MULTI_CNTRL_CMDS "reload flush"
3126 extern char *var_multi_cntrl_cmds
;
3131 /* The Secure Mailer license must be distributed with this software.
3134 /* IBM T.J. Watson Research
3136 /* Yorktown Heights, NY 10598, USA