1 /* $NetBSD: mail_params.h,v 1.2 2009/06/23 11:41:06 tron Exp $ */ 2 3 #ifndef _MAIL_PARAMS_H_INCLUDED_ 4 #define _MAIL_PARAMS_H_INCLUDED_ 5 6 /*++ 7 /* NAME 8 /* mail_params 3h 9 /* SUMMARY 10 /* globally configurable parameters 11 /* SYNOPSIS 12 /* #include <mail_params.h> 13 /* DESCRIPTION 14 /* .nf 15 16 /* 17 * This is to make it easier to auto-generate tables. 18 */ 19 typedef int bool; 20 21 /* 22 * Name used when this mail system announces itself. 23 */ 24 #define VAR_MAIL_NAME "mail_name" 25 #define DEF_MAIL_NAME "Postfix" 26 extern char *var_mail_name; 27 28 /* 29 * You want to be helped or not. 30 */ 31 #define VAR_HELPFUL_WARNINGS "helpful_warnings" 32 #define DEF_HELPFUL_WARNINGS 1 33 extern bool var_helpful_warnings; 34 35 /* 36 * You want to be helped or not. 37 */ 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; 41 42 /* 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. 46 * 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. 49 */ 50 #define VAR_NOTIFY_CLASSES "notify_classes" 51 #define DEF_NOTIFY_CLASSES "resource, software" /* Not: "protocol" */ 52 extern char *var_notify_classes; 53 54 /* 55 * What do I turn <> into? Sendmail defaults to mailer-daemon. 56 */ 57 #define VAR_EMPTY_ADDR "empty_address_recipient" 58 #define DEF_EMPTY_ADDR MAIL_ADDR_MAIL_DAEMON 59 extern char *var_empty_addr; 60 61 /* 62 * Privileges used by the mail system: the owner of files and commands, and 63 * the rights to be used when running external commands. 64 */ 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; 70 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; 75 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; 81 82 /* 83 * Access control for local privileged operations: 84 */ 85 #define STATIC_ANYONE_ACL "static:anyone" 86 87 #define VAR_FLUSH_ACL "authorized_flush_users" 88 #define DEF_FLUSH_ACL STATIC_ANYONE_ACL 89 extern char *var_flush_acl; 90 91 #define VAR_SHOWQ_ACL "authorized_mailq_users" 92 #define DEF_SHOWQ_ACL STATIC_ANYONE_ACL 93 extern char *var_showq_acl; 94 95 #define VAR_SUBMIT_ACL "authorized_submit_users" 96 #define DEF_SUBMIT_ACL STATIC_ANYONE_ACL 97 extern char *var_submit_acl; 98 99 /* 100 * What goes on the right-hand side of addresses of mail sent from this 101 * machine. 102 */ 103 #define VAR_MYORIGIN "myorigin" 104 #define DEF_MYORIGIN "$myhostname" 105 extern char *var_myorigin; 106 107 /* 108 * What domains I will receive mail for. Not to be confused with transit 109 * mail to other destinations. 110 */ 111 #define VAR_MYDEST "mydestination" 112 #define DEF_MYDEST "$myhostname, localhost.$mydomain, localhost" 113 extern char *var_mydest; 114 115 /* 116 * These are by default taken from the name service. 117 */ 118 #define VAR_MYHOSTNAME "myhostname" /* my hostname (fqdn) */ 119 extern char *var_myhostname; 120 121 #define VAR_MYDOMAIN "mydomain" /* my domain name */ 122 #define DEF_MYDOMAIN "localdomain" 123 extern char *var_mydomain; 124 125 /* 126 * The default local delivery transport. 127 */ 128 #define VAR_LOCAL_TRANSPORT "local_transport" 129 #define DEF_LOCAL_TRANSPORT MAIL_SERVICE_LOCAL ":$myhostname" 130 extern char *var_local_transport; 131 132 /* 133 * Where to send postmaster copies of bounced mail, and other notices. 134 */ 135 #define VAR_BOUNCE_RCPT "bounce_notice_recipient" 136 #define DEF_BOUNCE_RCPT "postmaster" 137 extern char *var_bounce_rcpt; 138 139 #define VAR_2BOUNCE_RCPT "2bounce_notice_recipient" 140 #define DEF_2BOUNCE_RCPT "postmaster" 141 extern char *var_2bounce_rcpt; 142 143 #define VAR_DELAY_RCPT "delay_notice_recipient" 144 #define DEF_DELAY_RCPT "postmaster" 145 extern char *var_delay_rcpt; 146 147 #define VAR_ERROR_RCPT "error_notice_recipient" 148 #define DEF_ERROR_RCPT "postmaster" 149 extern char *var_error_rcpt; 150 151 /* 152 * Virtual host support. Default is to listen on all machine interfaces. 153 */ 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; 159 160 #define VAR_PROXY_INTERFACES "proxy_interfaces" /* proxies, NATs */ 161 #define DEF_PROXY_INTERFACES "" 162 extern char *var_proxy_interfaces; 163 164 /* 165 * Masquerading (i.e. subdomain stripping). 166 */ 167 #define VAR_MASQ_DOMAINS "masquerade_domains" 168 #define DEF_MASQ_DOMAINS "" 169 extern char *var_masq_domains; 170 171 #define VAR_MASQ_EXCEPTIONS "masquerade_exceptions" 172 #define DEF_MASQ_EXCEPTIONS "" 173 extern char *var_masq_exceptions; 174 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" 179 180 #define VAR_MASQ_CLASSES "masquerade_classes" 181 #define DEF_MASQ_CLASSES MASQ_CLASS_ENV_FROM ", " \ 182 MASQ_CLASS_HDR_FROM ", " \ 183 MASQ_CLASS_HDR_RCPT 184 extern char *var_masq_classes; 185 186 /* 187 * Intranet versus internet. 188 */ 189 #define VAR_RELAYHOST "relayhost" 190 #define DEF_RELAYHOST "" 191 extern char *var_relayhost; 192 193 #define VAR_SND_RELAY_MAPS "sender_dependent_relayhost_maps" 194 #define DEF_SND_RELAY_MAPS "" 195 extern char *var_snd_relay_maps; 196 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; 200 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; 206 207 #define VAR_DISABLE_DNS "disable_dns_lookups" 208 #define DEF_DISABLE_DNS 0 209 extern bool var_disable_dns; 210 211 #define SMTP_HOST_LOOKUP_DNS "dns" 212 #define SMTP_HOST_LOOKUP_NATIVE "native" 213 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; 219 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; 225 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; 231 232 /* 233 * Location of the mail queue directory tree. 234 */ 235 #define VAR_QUEUE_DIR "queue_directory" 236 #ifndef DEF_QUEUE_DIR 237 #define DEF_QUEUE_DIR "/var/spool/postfix" 238 #endif 239 extern char *var_queue_dir; 240 241 /* 242 * Location of command and daemon programs. 243 */ 244 #define VAR_DAEMON_DIR "daemon_directory" 245 #ifndef DEF_DAEMON_DIR 246 #define DEF_DAEMON_DIR "/usr/libexec/postfix" 247 #endif 248 extern char *var_daemon_dir; 249 250 #define VAR_COMMAND_DIR "command_directory" 251 #ifndef DEF_COMMAND_DIR 252 #define DEF_COMMAND_DIR "/usr/sbin" 253 #endif 254 extern char *var_command_dir; 255 256 /* 257 * Location of PID files. 258 */ 259 #define VAR_PID_DIR "process_id_directory" 260 #ifndef DEF_PID_DIR 261 #define DEF_PID_DIR "pid" 262 #endif 263 extern char *var_pid_dir; 264 265 /* 266 * Location of writable data files. 267 */ 268 #define VAR_DATA_DIR "data_directory" 269 #ifndef DEF_DATA_DIR 270 #define DEF_DATA_DIR "/var/db/postfix" 271 #endif 272 extern char *var_data_dir; 273 274 /* 275 * Program startup time. 276 */ 277 extern time_t var_starttime; 278 279 /* 280 * Location of configuration files. 281 */ 282 #define VAR_CONFIG_DIR "config_directory" 283 #ifndef DEF_CONFIG_DIR 284 #define DEF_CONFIG_DIR "/etc/postfix" 285 #endif 286 extern char *var_config_dir; 287 288 #define VAR_CONFIG_DIRS "alternate_config_directories" 289 #define DEF_CONFIG_DIRS "" 290 extern char *var_config_dirs; 291 292 #define MAIN_CONF_FILE "main.cf" 293 #define MASTER_CONF_FILE "master.cf" 294 295 /* 296 * Preferred type of indexed files. The DEF_DB_TYPE macro value is system 297 * dependent. It is defined in <sys_defs.h>. 298 */ 299 #define VAR_DB_TYPE "default_database_type" 300 extern char *var_db_type; 301 302 /* 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. 306 */ 307 #define VAR_SYSLOG_FACILITY "syslog_facility" 308 extern char *var_syslog_facility; 309 310 #ifndef DEF_SYSLOG_FACILITY 311 #define DEF_SYSLOG_FACILITY "mail" 312 #endif 313 314 #ifndef LOG_FACILITY 315 #define LOG_FACILITY LOG_MAIL 316 #endif 317 318 /* 319 * Big brother: who receives a blank-carbon copy of all mail that enters 320 * this mail system. 321 */ 322 #define VAR_ALWAYS_BCC "always_bcc" 323 #define DEF_ALWAYS_BCC "" 324 extern char *var_always_bcc; 325 326 /* 327 * What to put in the To: header when no recipients were disclosed. 328 * 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. 332 */ 333 #define VAR_RCPT_WITHELD "undisclosed_recipients_header" 334 #define DEF_RCPT_WITHELD "To: undisclosed-recipients:;" 335 extern char *var_rcpt_witheld; 336 337 /* 338 * Add missing headers. Postfix 2.6 no longer adds headers to remote mail by 339 * default. 340 */ 341 #define VAR_ALWAYS_ADD_HDRS "always_add_missing_headers" 342 #define DEF_ALWAYS_ADD_HDRS 0 343 extern bool var_always_add_hdrs; 344 345 /* 346 * Standards violation: allow/permit RFC 822-style addresses in SMTP 347 * commands. 348 */ 349 #define VAR_STRICT_RFC821_ENV "strict_rfc821_envelopes" 350 #define DEF_STRICT_RFC821_ENV 0 351 extern bool var_strict_rfc821_env; 352 353 /* 354 * Standards violation: send "250 AUTH=list" in order to accomodate clients 355 * that implement an old version of the protocol. 356 */ 357 #define VAR_BROKEN_AUTH_CLNTS "broken_sasl_auth_clients" 358 #define DEF_BROKEN_AUTH_CLNTS 0 359 extern bool var_broken_auth_clients; 360 361 /* 362 * Standards violation: disable VRFY. 363 */ 364 #define VAR_DISABLE_VRFY_CMD "disable_vrfy_command" 365 #define DEF_DISABLE_VRFY_CMD 0 366 extern bool var_disable_vrfy_cmd; 367 368 /* 369 * trivial rewrite/resolve service: mapping tables. 370 */ 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; 374 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; 378 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; 382 383 #define VAR_CANONICAL_MAPS "canonical_maps" 384 #define DEF_CANONICAL_MAPS "" 385 extern char *var_canonical_maps; 386 387 #define VAR_SEND_CANON_MAPS "sender_canonical_maps" 388 #define DEF_SEND_CANON_MAPS "" 389 extern char *var_send_canon_maps; 390 391 #define VAR_RCPT_CANON_MAPS "recipient_canonical_maps" 392 #define DEF_RCPT_CANON_MAPS "" 393 extern char *var_rcpt_canon_maps; 394 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" 399 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 ", " \ 404 CANON_CLASS_HDR_RCPT 405 extern char *var_canon_classes; 406 407 #define VAR_SEND_CANON_CLASSES "sender_canonical_classes" 408 #define DEF_SEND_CANON_CLASSES CANON_CLASS_ENV_FROM ", " \ 409 CANON_CLASS_HDR_FROM 410 extern char *var_send_canon_classes; 411 412 #define VAR_RCPT_CANON_CLASSES "recipient_canonical_classes" 413 #define DEF_RCPT_CANON_CLASSES CANON_CLASS_ENV_RCPT ", " \ 414 CANON_CLASS_HDR_RCPT 415 extern char *var_rcpt_canon_classes; 416 417 #define VAR_SEND_BCC_MAPS "sender_bcc_maps" 418 #define DEF_SEND_BCC_MAPS "" 419 extern char *var_send_bcc_maps; 420 421 #define VAR_RCPT_BCC_MAPS "recipient_bcc_maps" 422 #define DEF_RCPT_BCC_MAPS "" 423 extern char *var_rcpt_bcc_maps; 424 425 #define VAR_TRANSPORT_MAPS "transport_maps" 426 #define DEF_TRANSPORT_MAPS "" 427 extern char *var_transport_maps; 428 429 #define VAR_DEF_TRANSPORT "default_transport" 430 #define DEF_DEF_TRANSPORT MAIL_SERVICE_SMTP 431 extern char *var_def_transport; 432 433 /* 434 * trivial rewrite/resolve service: rewriting controls. 435 */ 436 #define VAR_SWAP_BANGPATH "swap_bangpath" 437 #define DEF_SWAP_BANGPATH 1 438 extern bool var_swap_bangpath; 439 440 #define VAR_APP_AT_MYORIGIN "append_at_myorigin" 441 #define DEF_APP_AT_MYORIGIN 1 442 extern bool var_append_at_myorigin; 443 444 #define VAR_APP_DOT_MYDOMAIN "append_dot_mydomain" 445 #define DEF_APP_DOT_MYDOMAIN 1 446 extern bool var_append_dot_mydomain; 447 448 #define VAR_PERCENT_HACK "allow_percent_hack" 449 #define DEF_PERCENT_HACK 1 450 extern bool var_percent_hack; 451 452 /* 453 * Local delivery: alias databases. 454 */ 455 #define VAR_ALIAS_MAPS "alias_maps" 456 #ifdef HAS_NIS 457 #define DEF_ALIAS_MAPS ALIAS_DB_MAP ", nis:mail.aliases" 458 #else 459 #define DEF_ALIAS_MAPS ALIAS_DB_MAP 460 #endif 461 extern char *var_alias_maps; 462 463 /* 464 * Local delivery: to BIFF or not to BIFF. 465 */ 466 #define VAR_BIFF "biff" 467 #define DEF_BIFF 1 468 extern bool var_biff; 469 470 /* 471 * Local delivery: mail to files/commands. 472 */ 473 #define VAR_ALLOW_COMMANDS "allow_mail_to_commands" 474 #define DEF_ALLOW_COMMANDS "alias, forward" 475 extern char *var_allow_commands; 476 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; 481 482 #define VAR_ALLOW_FILES "allow_mail_to_files" 483 #define DEF_ALLOW_FILES "alias, forward" 484 extern char *var_allow_files; 485 486 #define VAR_LOCAL_CMD_SHELL "local_command_shell" 487 #define DEF_LOCAL_CMD_SHELL "" 488 extern char *var_local_cmd_shell; 489 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; 493 494 #define VAR_LUSER_RELAY "luser_relay" 495 #define DEF_LUSER_RELAY "" 496 extern char *var_luser_relay; 497 498 /* 499 * Local delivery: mailbox delivery. 500 */ 501 #define VAR_MAIL_SPOOL_DIR "mail_spool_directory" 502 #define DEF_MAIL_SPOOL_DIR _PATH_MAILDIR 503 extern char *var_mail_spool_dir; 504 505 #define VAR_HOME_MAILBOX "home_mailbox" 506 #define DEF_HOME_MAILBOX "" 507 extern char *var_home_mailbox; 508 509 #define VAR_MAILBOX_COMMAND "mailbox_command" 510 #define DEF_MAILBOX_COMMAND "" 511 extern char *var_mailbox_command; 512 513 #define VAR_MAILBOX_CMD_MAPS "mailbox_command_maps" 514 #define DEF_MAILBOX_CMD_MAPS "" 515 extern char *var_mailbox_cmd_maps; 516 517 #define VAR_MAILBOX_TRANSP "mailbox_transport" 518 #define DEF_MAILBOX_TRANSP "" 519 extern char *var_mailbox_transport; 520 521 #define VAR_MBOX_TRANSP_MAPS "mailbox_transport_maps" 522 #define DEF_MBOX_TRANSP_MAPS "" 523 extern char *var_mbox_transp_maps; 524 525 #define VAR_FALLBACK_TRANSP "fallback_transport" 526 #define DEF_FALLBACK_TRANSP "" 527 extern char *var_fallback_transport; 528 529 #define VAR_FBCK_TRANSP_MAPS "fallback_transport_maps" 530 #define DEF_FBCK_TRANSP_MAPS "" 531 extern char *var_fbck_transp_maps; 532 533 /* 534 * Local delivery: path to per-user forwarding file. 535 */ 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; 539 540 /* 541 * Local delivery: external command execution directory. 542 */ 543 #define VAR_EXEC_DIRECTORY "command_execution_directory" 544 #define DEF_EXEC_DIRECTORY "" 545 extern char *var_exec_directory; 546 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; 552 553 /* 554 * Mailbox locking. DEF_MAILBOX_LOCK is defined in sys_defs.h. 555 */ 556 #define VAR_MAILBOX_LOCK "mailbox_delivery_lock" 557 extern char *var_mailbox_lock; 558 559 /* 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. 562 */ 563 #define VAR_MAILBOX_LIMIT "mailbox_size_limit" 564 #define DEF_MAILBOX_LIMIT (DEF_MESSAGE_LIMIT * 5) 565 extern int var_mailbox_limit; 566 567 /* 568 * Miscellaneous. 569 */ 570 #define VAR_PROP_EXTENSION "propagate_unmatched_extensions" 571 #define DEF_PROP_EXTENSION "canonical, virtual" 572 extern char *var_prop_extension; 573 574 #define VAR_RCPT_DELIM "recipient_delimiter" 575 #define DEF_RCPT_DELIM "" 576 extern char *var_rcpt_delim; 577 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; 583 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; 589 590 #define VAR_DELIVER_HDR "prepend_delivered_header" 591 #define DEF_DELIVER_HDR "command, file, forward" 592 extern char *var_deliver_hdr; 593 594 /* 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. 599 */ 600 #define VAR_ENABLE_ORCPT "enable_original_recipient" 601 #define DEF_ENABLE_ORCPT 1 602 extern bool var_enable_orcpt; 603 604 #define VAR_EXP_OWN_ALIAS "expand_owner_alias" 605 #define DEF_EXP_OWN_ALIAS 0 606 extern bool var_exp_own_alias; 607 608 #define VAR_STAT_HOME_DIR "require_home_directory" 609 #define DEF_STAT_HOME_DIR 0 610 extern bool var_stat_home_dir; 611 612 /* 613 * Queue manager: maximal size of the duplicate expansion filter. By 614 * default, we do graceful degradation with huge mailing lists. 615 */ 616 #define VAR_DUP_FILTER_LIMIT "duplicate_filter_limit" 617 #define DEF_DUP_FILTER_LIMIT 1000 618 extern int var_dup_filter_limit; 619 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; 623 624 #define VAR_TLS_RAND_SOURCE "tls_random_source" 625 #ifdef PREFERRED_RAND_SOURCE 626 #define DEF_TLS_RAND_SOURCE PREFERRED_RAND_SOURCE 627 #else 628 #define DEF_TLS_RAND_SOURCE "" 629 #endif 630 extern char *var_tls_rand_source; 631 632 #define VAR_TLS_RAND_BYTES "tls_random_bytes" 633 #define DEF_TLS_RAND_BYTES 32 634 extern int var_tls_rand_bytes; 635 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; 639 640 #define VAR_TLS_RESEED_PERIOD "tls_random_reseed_period" 641 #define DEF_TLS_RESEED_PERIOD "3600s" 642 extern int var_tls_reseed_period; 643 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; 647 648 /* 649 * Queue manager: relocated databases. 650 */ 651 #define VAR_RELOCATED_MAPS "relocated_maps" 652 #define DEF_RELOCATED_MAPS "" 653 extern char *var_relocated_maps; 654 655 /* 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. 660 */ 661 #define VAR_QUEUE_RUN_DELAY "queue_run_delay" 662 #define DEF_QUEUE_RUN_DELAY "300s" 663 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; 667 668 #define VAR_MAX_BACKOFF_TIME "maximal_backoff_time" 669 #define DEF_MAX_BACKOFF_TIME "4000s" 670 extern int var_max_backoff_time; 671 672 #define VAR_MAX_QUEUE_TIME "maximal_queue_lifetime" 673 #define DEF_MAX_QUEUE_TIME "5d" 674 extern int var_max_queue_time; 675 676 /* 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. 679 */ 680 #define VAR_DSN_QUEUE_TIME "bounce_queue_lifetime" 681 #define DEF_DSN_QUEUE_TIME "5d" 682 extern int var_dsn_queue_time; 683 684 #define VAR_DELAY_WARN_TIME "delay_warning_time" 685 #define DEF_DELAY_WARN_TIME "0h" 686 extern int var_delay_warn_time; 687 688 /* 689 * Queue manager: various in-core message and recipient limits. 690 */ 691 #define VAR_QMGR_ACT_LIMIT "qmgr_message_active_limit" 692 #define DEF_QMGR_ACT_LIMIT 20000 693 extern int var_qmgr_active_limit; 694 695 #define VAR_QMGR_RCPT_LIMIT "qmgr_message_recipient_limit" 696 #define DEF_QMGR_RCPT_LIMIT 20000 697 extern int var_qmgr_rcpt_limit; 698 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; 702 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; 707 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; 712 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; 717 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; 722 723 /* 724 * Queue manager: default job scheduler parameters. 725 */ 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; 730 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; 735 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; 740 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; 745 746 #define VAR_QMGR_FUDGE "qmgr_fudge_factor" 747 #define DEF_QMGR_FUDGE 100 748 extern int var_qmgr_fudge; 749 750 /* 751 * Queue manager: default destination concurrency levels. 752 */ 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; 757 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; 762 763 #define VAR_LOCAL_CON_LIMIT "local" _DEST_CON_LIMIT 764 #define DEF_LOCAL_CON_LIMIT 2 765 extern int var_local_con_lim; 766 767 /* 768 * Queue manager: default number of recipients per transaction. 769 */ 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; 774 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; 778 779 /* 780 * Queue manager: default delay before retrying a dead transport. 781 */ 782 #define VAR_XPORT_RETRY_TIME "transport_retry_time" 783 #define DEF_XPORT_RETRY_TIME "60s" 784 extern int var_transport_retry_time; 785 786 /* 787 * Queue manager: what transports to defer delivery to. 788 */ 789 #define VAR_DEFER_XPORTS "defer_transports" 790 #define DEF_DEFER_XPORTS "" 791 extern char *var_defer_xports; 792 793 /* 794 * Queue manager: how often to warn that a destination is clogging the 795 * active queue. 796 */ 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; 800 801 /* 802 * Master: default process count limit per mail subsystem. 803 */ 804 #define VAR_PROC_LIMIT "default_process_limit" 805 #define DEF_PROC_LIMIT 100 806 extern int var_proc_limit; 807 808 /* 809 * Master: default time to wait after service is throttled. 810 */ 811 #define VAR_THROTTLE_TIME "service_throttle_time" 812 #define DEF_THROTTLE_TIME "60s" 813 extern int var_throttle_time; 814 815 /* 816 * Master: what master.cf services are turned off. 817 */ 818 #define VAR_MASTER_DISABLE "master_service_disable" 819 #define DEF_MASTER_DISABLE "" 820 extern char *var_master_disable; 821 822 /* 823 * Any subsystem: default maximum number of clients serviced before a mail 824 * subsystem terminates (except queue manager). 825 */ 826 #define VAR_MAX_USE "max_use" 827 #define DEF_MAX_USE 100 828 extern int var_use_limit; 829 830 /* 831 * Any subsystem: default amount of time a mail subsystem waits for a client 832 * connection (except queue manager). 833 */ 834 #define VAR_MAX_IDLE "max_idle" 835 #define DEF_MAX_IDLE "100s" 836 extern int var_idle_limit; 837 838 /* 839 * Any subsystem: default amount of time a mail subsystem waits for 840 * application events to drain. 841 */ 842 #define VAR_EVENT_DRAIN "application_event_drain_time" 843 #define DEF_EVENT_DRAIN "100s" 844 extern int var_event_drain; 845 846 /* 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. 849 */ 850 #define VAR_IPC_IDLE "ipc_idle" 851 #define DEF_IPC_IDLE "5s" 852 extern int var_ipc_idle_limit; 853 854 /* 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 857 * too much time. 858 */ 859 #define VAR_IPC_TTL "ipc_ttl" 860 #define DEF_IPC_TTL "1000s" 861 extern int var_ipc_ttl_limit; 862 863 /* 864 * Any front-end subsystem: avoid running out of memory when someone sends 865 * infinitely-long requests or replies. 866 */ 867 #define VAR_LINE_LIMIT "line_length_limit" 868 #define DEF_LINE_LIMIT 2048 869 extern int var_line_limit; 870 871 /* 872 * Specify what SMTP peers need verbose logging. 873 */ 874 #define VAR_DEBUG_PEER_LIST "debug_peer_list" 875 #define DEF_DEBUG_PEER_LIST "" 876 extern char *var_debug_peer_list; 877 878 #define VAR_DEBUG_PEER_LEVEL "debug_peer_level" 879 #define DEF_DEBUG_PEER_LEVEL 2 880 extern int var_debug_peer_level; 881 882 /* 883 * Queue management: what queues are hashed behind a forest of 884 * subdirectories, and how deep the forest is. 885 */ 886 #define VAR_HASH_QUEUE_NAMES "hash_queue_names" 887 #define DEF_HASH_QUEUE_NAMES "deferred, defer" 888 extern char *var_hash_queue_names; 889 890 #define VAR_HASH_QUEUE_DEPTH "hash_queue_depth" 891 #define DEF_HASH_QUEUE_DEPTH 1 892 extern int var_hash_queue_depth; 893 894 /* 895 * Multi-protocol support. 896 */ 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; 902 903 /* 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. 908 * 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. 911 */ 912 #define VAR_BESTMX_TRANSP "best_mx_transport" 913 #define DEF_BESTMX_TRANSP "" 914 extern char *var_bestmx_transp; 915 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; 921 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; 927 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; 933 934 #define VAR_SMTP_CACHE_DEMAND "smtp_connection_cache_on_demand" 935 #ifndef DEF_SMTP_CACHE_DEMAND 936 #define DEF_SMTP_CACHE_DEMAND 1 937 #endif 938 #define VAR_LMTP_CACHE_DEMAND "lmtp_connection_cache_on_demand" 939 #ifndef DEF_LMTP_CACHE_DEMAND 940 #define DEF_LMTP_CACHE_DEMAND 1 941 #endif 942 extern bool var_smtp_cache_demand; 943 944 #define VAR_SMTP_CONN_TMOUT "smtp_connect_timeout" 945 #define DEF_SMTP_CONN_TMOUT "30s" 946 extern int var_smtp_conn_tmout; 947 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; 953 954 #define VAR_SMTP_XFWD_TMOUT "smtp_xforward_timeout" 955 #define DEF_SMTP_XFWD_TMOUT "300s" 956 extern int var_smtp_xfwd_tmout; 957 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; 963 964 #define VAR_SMTP_MAIL_TMOUT "smtp_mail_timeout" 965 #define DEF_SMTP_MAIL_TMOUT "300s" 966 extern int var_smtp_mail_tmout; 967 968 #define VAR_SMTP_RCPT_TMOUT "smtp_rcpt_timeout" 969 #define DEF_SMTP_RCPT_TMOUT "300s" 970 extern int var_smtp_rcpt_tmout; 971 972 #define VAR_SMTP_DATA0_TMOUT "smtp_data_init_timeout" 973 #define DEF_SMTP_DATA0_TMOUT "120s" 974 extern int var_smtp_data0_tmout; 975 976 #define VAR_SMTP_DATA1_TMOUT "smtp_data_xfer_timeout" 977 #define DEF_SMTP_DATA1_TMOUT "180s" 978 extern int var_smtp_data1_tmout; 979 980 #define VAR_SMTP_DATA2_TMOUT "smtp_data_done_timeout" 981 #define DEF_SMTP_DATA2_TMOUT "600s" 982 extern int var_smtp_data2_tmout; 983 984 #define VAR_SMTP_RSET_TMOUT "smtp_rset_timeout" 985 #define DEF_SMTP_RSET_TMOUT "20s" 986 extern int var_smtp_rset_tmout; 987 988 #define VAR_SMTP_QUIT_TMOUT "smtp_quit_timeout" 989 #define DEF_SMTP_QUIT_TMOUT "300s" 990 extern int var_smtp_quit_tmout; 991 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; 997 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; 1003 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; 1007 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; 1011 1012 #define VAR_SMTP_ALWAYS_EHLO "smtp_always_send_ehlo" 1013 #ifdef RFC821_SYNTAX 1014 #define DEF_SMTP_ALWAYS_EHLO 0 1015 #else 1016 #define DEF_SMTP_ALWAYS_EHLO 1 1017 #endif 1018 extern bool var_smtp_always_ehlo; 1019 1020 #define VAR_SMTP_NEVER_EHLO "smtp_never_send_ehlo" 1021 #define DEF_SMTP_NEVER_EHLO 0 1022 extern bool var_smtp_never_ehlo; 1023 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; 1029 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; 1035 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; 1041 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; 1047 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; 1053 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; 1059 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; 1065 1066 /* 1067 * Courageous people may want to turn off PIX bug workarounds. 1068 */ 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; 1077 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; 1083 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; 1089 1090 #define VAR_SMTP_SEND_XFORWARD "smtp_send_xforward_command" 1091 #define DEF_SMTP_SEND_XFORWARD 0 1092 extern bool var_smtp_send_xforward; 1093 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; 1099 1100 /* 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. 1104 */ 1105 #define VAR_SMTPD_BANNER "smtpd_banner" 1106 #define DEF_SMTPD_BANNER "$myhostname ESMTP $mail_name" 1107 extern char *var_smtpd_banner; 1108 1109 #define VAR_SMTPD_TMOUT "smtpd_timeout" 1110 #define DEF_SMTPD_TMOUT "${stress?10}${stress:300}s" 1111 extern int var_smtpd_tmout; 1112 1113 #define VAR_SMTPD_STARTTLS_TMOUT "smtpd_starttls_timeout" 1114 #define DEF_SMTPD_STARTTLS_TMOUT "300s" 1115 extern int var_smtpd_starttls_tmout; 1116 1117 #define VAR_SMTPD_RCPT_LIMIT "smtpd_recipient_limit" 1118 #define DEF_SMTPD_RCPT_LIMIT 1000 1119 extern int var_smtpd_rcpt_limit; 1120 1121 #define VAR_SMTPD_SOFT_ERLIM "smtpd_soft_error_limit" 1122 #define DEF_SMTPD_SOFT_ERLIM "10" 1123 extern int var_smtpd_soft_erlim; 1124 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; 1128 1129 #define VAR_SMTPD_ERR_SLEEP "smtpd_error_sleep_time" 1130 #define DEF_SMTPD_ERR_SLEEP "1s" 1131 extern int var_smtpd_err_sleep; 1132 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; 1136 1137 #define VAR_SMTPD_RCPT_OVERLIM "smtpd_recipient_overshoot_limit" 1138 #define DEF_SMTPD_RCPT_OVERLIM 1000 1139 extern int var_smtpd_rcpt_overlim; 1140 1141 #define VAR_SMTPD_HIST_THRSH "smtpd_history_flush_threshold" 1142 #define DEF_SMTPD_HIST_THRSH 100 1143 extern int var_smtpd_hist_thrsh; 1144 1145 #define VAR_SMTPD_NOOP_CMDS "smtpd_noop_commands" 1146 #define DEF_SMTPD_NOOP_CMDS "" 1147 extern char *var_smtpd_noop_cmds; 1148 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; 1152 1153 #define VAR_SMTPD_TLS_WRAPPER "smtpd_tls_wrappermode" 1154 #define DEF_SMTPD_TLS_WRAPPER 0 1155 extern bool var_smtpd_tls_wrappermode; 1156 1157 #define VAR_SMTPD_TLS_LEVEL "smtpd_tls_security_level" 1158 #define DEF_SMTPD_TLS_LEVEL "" 1159 extern char *var_smtpd_tls_level; 1160 1161 #define VAR_SMTPD_USE_TLS "smtpd_use_tls" 1162 #define DEF_SMTPD_USE_TLS 0 1163 extern bool var_smtpd_use_tls; 1164 1165 #define VAR_SMTPD_ENFORCE_TLS "smtpd_enforce_tls" 1166 #define DEF_SMTPD_ENFORCE_TLS 0 1167 extern bool var_smtpd_enforce_tls; 1168 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; 1172 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; 1176 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; 1180 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; 1184 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; 1188 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; 1192 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; 1196 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; 1200 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; 1204 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; 1208 1209 #define VAR_SMTPD_TLS_CA_FILE "smtpd_tls_CAfile" 1210 #define DEF_SMTPD_TLS_CA_FILE "" 1211 extern char *var_smtpd_tls_CAfile; 1212 1213 #define VAR_SMTPD_TLS_CA_PATH "smtpd_tls_CApath" 1214 #define DEF_SMTPD_TLS_CA_PATH "" 1215 extern char *var_smtpd_tls_CApath; 1216 1217 #define VAR_SMTPD_TLS_PROTO "smtpd_tls_protocols" 1218 #define DEF_SMTPD_TLS_PROTO "" 1219 extern char *var_smtpd_tls_proto; 1220 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; 1224 1225 #define VAR_SMTPD_TLS_CIPH "smtpd_tls_ciphers" 1226 #define DEF_SMTPD_TLS_CIPH "export" 1227 extern char *var_smtpd_tls_ciph; 1228 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; 1232 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; 1236 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; 1240 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; 1244 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; 1248 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; 1252 1253 #define VAR_SMTPD_TLS_EECDH "smtpd_tls_eecdh_grade" 1254 #ifdef SNAPSHOT 1255 #define DEF_SMTPD_TLS_EECDH "strong" 1256 #else 1257 #define DEF_SMTPD_TLS_EECDH "none" 1258 #endif 1259 extern char *var_smtpd_tls_eecdh; 1260 1261 #define VAR_SMTPD_TLS_LOGLEVEL "smtpd_tls_loglevel" 1262 #define DEF_SMTPD_TLS_LOGLEVEL 0 1263 extern int var_smtpd_tls_loglevel; 1264 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; 1268 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; 1272 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; 1276 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; 1280 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; 1284 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; 1290 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; 1296 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; 1302 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; 1308 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; 1314 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; 1320 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; 1326 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; 1332 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; 1338 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; 1344 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; 1350 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; 1356 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; 1362 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; 1368 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; 1374 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; 1380 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; 1386 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; 1392 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; 1398 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) */ 1405 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; 1411 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; 1418 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; 1425 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; 1431 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; 1437 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; 1443 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; 1449 1450 /* 1451 * There are no MX lookups for LMTP, so verify == secure 1452 */ 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; 1458 1459 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; 1465 1466 /* 1467 * SASL authentication support, SMTP server side. 1468 */ 1469 #define VAR_SMTPD_SASL_ENABLE "smtpd_sasl_auth_enable" 1470 #define DEF_SMTPD_SASL_ENABLE 0 1471 extern bool var_smtpd_sasl_enable; 1472 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; 1476 1477 #define VAR_SMTPD_SASL_OPTS "smtpd_sasl_security_options" 1478 #define DEF_SMTPD_SASL_OPTS "noanonymous" 1479 extern char *var_smtpd_sasl_opts; 1480 1481 #define VAR_SMTPD_SASL_PATH "smtpd_sasl_path" 1482 #define DEF_SMTPD_SASL_PATH "smtpd" 1483 extern char *var_smtpd_sasl_path; 1484 1485 #define VAR_CYRUS_CONF_PATH "cyrus_sasl_config_path" 1486 #define DEF_CYRUS_CONF_PATH "" 1487 extern char *var_cyrus_conf_path; 1488 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; 1492 1493 #define VAR_SMTPD_SASL_REALM "smtpd_sasl_local_domain" 1494 #define DEF_SMTPD_SASL_REALM "" 1495 extern char *var_smtpd_sasl_realm; 1496 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; 1500 1501 #ifndef DEF_SERVER_SASL_TYPE 1502 #define DEF_SERVER_SASL_TYPE "cyrus" 1503 #endif 1504 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; 1508 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; 1512 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" 1518 1519 /* 1520 * SASL authentication support, SMTP client side. 1521 */ 1522 #define VAR_SMTP_SASL_ENABLE "smtp_sasl_auth_enable" 1523 #define DEF_SMTP_SASL_ENABLE 0 1524 extern bool var_smtp_sasl_enable; 1525 1526 #define VAR_SMTP_SASL_PASSWD "smtp_sasl_password_maps" 1527 #define DEF_SMTP_SASL_PASSWD "" 1528 extern char *var_smtp_sasl_passwd; 1529 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; 1533 1534 #define VAR_SMTP_SASL_PATH "smtp_sasl_path" 1535 #define DEF_SMTP_SASL_PATH "" 1536 extern char *var_smtp_sasl_path; 1537 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; 1543 1544 #ifndef DEF_CLIENT_SASL_TYPE 1545 #define DEF_CLIENT_SASL_TYPE "cyrus" 1546 #endif 1547 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; 1553 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; 1559 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; 1565 1566 /* 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. 1570 */ 1571 #define VAR_LMTPD_BANNER "lmtpd_banner" 1572 #define DEF_LMTPD_BANNER "$myhostname $mail_name" 1573 extern char *var_lmtpd_banner; 1574 1575 #define VAR_LMTPD_TMOUT "lmtpd_timeout" 1576 #define DEF_LMTPD_TMOUT "300s" 1577 extern int var_lmtpd_tmout; 1578 1579 #define VAR_LMTPD_RCPT_LIMIT "lmtpd_recipient_limit" 1580 #define DEF_LMTPD_RCPT_LIMIT 1000 1581 extern int var_lmtpd_rcpt_limit; 1582 1583 #define VAR_LMTPD_SOFT_ERLIM "lmtpd_soft_error_limit" 1584 #define DEF_LMTPD_SOFT_ERLIM 10 1585 extern int var_lmtpd_soft_erlim; 1586 1587 #define VAR_LMTPD_HARD_ERLIM "lmtpd_hard_error_limit" 1588 #define DEF_LMTPD_HARD_ERLIM 100 1589 extern int var_lmtpd_hard_erlim; 1590 1591 #define VAR_LMTPD_ERR_SLEEP "lmtpd_error_sleep_time" 1592 #define DEF_LMTPD_ERR_SLEEP "5s" 1593 extern int var_lmtpd_err_sleep; 1594 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; 1598 1599 /* 1600 * SASL authentication support, LMTP server side. 1601 */ 1602 #define VAR_LMTPD_SASL_ENABLE "lmtpd_sasl_auth_enable" 1603 #define DEF_LMTPD_SASL_ENABLE 0 1604 extern bool var_lmtpd_sasl_enable; 1605 1606 #define VAR_LMTPD_SASL_OPTS "lmtpd_sasl_security_options" 1607 #define DEF_LMTPD_SASL_OPTS "noanonymous" 1608 extern char *var_lmtpd_sasl_opts; 1609 1610 #define VAR_LMTPD_SASL_REALM "lmtpd_sasl_local_domain" 1611 #define DEF_LMTPD_SASL_REALM "$myhostname" 1612 extern char *var_lmtpd_sasl_realm; 1613 1614 /* 1615 * SASL authentication support, LMTP client side. 1616 */ 1617 #define VAR_LMTP_SASL_ENABLE "lmtp_sasl_auth_enable" 1618 #define DEF_LMTP_SASL_ENABLE 0 1619 extern bool var_lmtp_sasl_enable; 1620 1621 #define VAR_LMTP_SASL_PASSWD "lmtp_sasl_password_maps" 1622 #define DEF_LMTP_SASL_PASSWD "" 1623 extern char *var_lmtp_sasl_passwd; 1624 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; 1628 1629 #define VAR_LMTP_SASL_PATH "lmtp_sasl_path" 1630 #define DEF_LMTP_SASL_PATH "" 1631 extern char *var_lmtp_sasl_path; 1632 1633 /* 1634 * SASL-based relay etc. control. 1635 */ 1636 #define PERMIT_SASL_AUTH "permit_sasl_authenticated" 1637 1638 #define VAR_CYRUS_SASL_AUTHZID "send_cyrus_sasl_authzid" 1639 #define DEF_CYRUS_SASL_AUTHZID 0 1640 extern int var_cyrus_sasl_authzid; 1641 1642 /* 1643 * Special handling of AUTH 535 failures. 1644 */ 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; 1650 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; 1656 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; 1662 1663 /* 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. 1668 */ 1669 #define VAR_LMTP_TCP_PORT "lmtp_tcp_port" 1670 #define DEF_LMTP_TCP_PORT "24" 1671 extern char *var_lmtp_tcp_port; 1672 1673 #define VAR_LMTP_ASSUME_FINAL "lmtp_assume_final" 1674 #define DEF_LMTP_ASSUME_FINAL 0 1675 extern bool var_lmtp_assume_final; 1676 1677 #define VAR_LMTP_CACHE_CONN "lmtp_cache_connection" 1678 #define DEF_LMTP_CACHE_CONN 1 1679 extern bool var_lmtp_cache_conn; 1680 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; 1684 1685 #define VAR_LMTP_CONN_TMOUT "lmtp_connect_timeout" 1686 #define DEF_LMTP_CONN_TMOUT "0s" 1687 extern int var_lmtp_conn_tmout; 1688 1689 #define VAR_LMTP_RSET_TMOUT "lmtp_rset_timeout" 1690 #define DEF_LMTP_RSET_TMOUT "20s" 1691 extern int var_lmtp_rset_tmout; 1692 1693 #define VAR_LMTP_LHLO_TMOUT "lmtp_lhlo_timeout" 1694 #define DEF_LMTP_LHLO_TMOUT "300s" 1695 extern int var_lmtp_lhlo_tmout; 1696 1697 #define VAR_LMTP_XFWD_TMOUT "lmtp_xforward_timeout" 1698 #define DEF_LMTP_XFWD_TMOUT "300s" 1699 extern int var_lmtp_xfwd_tmout; 1700 1701 #define VAR_LMTP_MAIL_TMOUT "lmtp_mail_timeout" 1702 #define DEF_LMTP_MAIL_TMOUT "300s" 1703 extern int var_lmtp_mail_tmout; 1704 1705 #define VAR_LMTP_RCPT_TMOUT "lmtp_rcpt_timeout" 1706 #define DEF_LMTP_RCPT_TMOUT "300s" 1707 extern int var_lmtp_rcpt_tmout; 1708 1709 #define VAR_LMTP_DATA0_TMOUT "lmtp_data_init_timeout" 1710 #define DEF_LMTP_DATA0_TMOUT "120s" 1711 extern int var_lmtp_data0_tmout; 1712 1713 #define VAR_LMTP_DATA1_TMOUT "lmtp_data_xfer_timeout" 1714 #define DEF_LMTP_DATA1_TMOUT "180s" 1715 extern int var_lmtp_data1_tmout; 1716 1717 #define VAR_LMTP_DATA2_TMOUT "lmtp_data_done_timeout" 1718 #define DEF_LMTP_DATA2_TMOUT "600s" 1719 extern int var_lmtp_data2_tmout; 1720 1721 #define VAR_LMTP_QUIT_TMOUT "lmtp_quit_timeout" 1722 #define DEF_LMTP_QUIT_TMOUT "300s" 1723 extern int var_lmtp_quit_tmout; 1724 1725 #define VAR_LMTP_SEND_XFORWARD "lmtp_send_xforward_command" 1726 #define DEF_LMTP_SEND_XFORWARD 0 1727 extern bool var_lmtp_send_xforward; 1728 1729 /* 1730 * Cleanup service. Header info that exceeds $header_size_limit bytes or 1731 * $header_address_token_limit tokens is discarded. 1732 */ 1733 #define VAR_HOPCOUNT_LIMIT "hopcount_limit" 1734 #define DEF_HOPCOUNT_LIMIT 50 1735 extern int var_hopcount_limit; 1736 1737 #define VAR_HEADER_LIMIT "header_size_limit" 1738 #define DEF_HEADER_LIMIT 102400 1739 extern int var_header_limit; 1740 1741 #define VAR_TOKEN_LIMIT "header_address_token_limit" 1742 #define DEF_TOKEN_LIMIT 10240 1743 extern int var_token_limit; 1744 1745 #define VAR_VIRT_RECUR_LIMIT "virtual_alias_recursion_limit" 1746 #define DEF_VIRT_RECUR_LIMIT 1000 1747 extern int var_virt_recur_limit; 1748 1749 #define VAR_VIRT_EXPAN_LIMIT "virtual_alias_expansion_limit" 1750 #define DEF_VIRT_EXPAN_LIMIT 1000 1751 extern int var_virt_expan_limit; 1752 1753 /* 1754 * Message/queue size limits. 1755 */ 1756 #define VAR_MESSAGE_LIMIT "message_size_limit" 1757 #define DEF_MESSAGE_LIMIT 10240000 1758 extern int var_message_limit; 1759 1760 #define VAR_QUEUE_MINFREE "queue_minfree" 1761 #define DEF_QUEUE_MINFREE 0 1762 extern int var_queue_minfree; 1763 1764 #define VAR_HEADER_CHECKS "header_checks" 1765 #define DEF_HEADER_CHECKS "" 1766 extern char *var_header_checks; 1767 1768 #define VAR_MIMEHDR_CHECKS "mime_header_checks" 1769 #define DEF_MIMEHDR_CHECKS "$header_checks" 1770 extern char *var_mimehdr_checks; 1771 1772 #define VAR_NESTHDR_CHECKS "nested_header_checks" 1773 #define DEF_NESTHDR_CHECKS "$header_checks" 1774 extern char *var_nesthdr_checks; 1775 1776 #define VAR_BODY_CHECKS "body_checks" 1777 #define DEF_BODY_CHECKS "" 1778 extern char *var_body_checks; 1779 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; 1783 1784 /* 1785 * Bounce service: truncate bounce message that exceed $bounce_size_limit. 1786 */ 1787 #define VAR_BOUNCE_LIMIT "bounce_size_limit" 1788 #define DEF_BOUNCE_LIMIT 50000 1789 extern int var_bounce_limit; 1790 1791 /* 1792 * Bounce service: reserved sender address for double bounces. The local 1793 * delivery service discards undeliverable double bounces. 1794 */ 1795 #define VAR_DOUBLE_BOUNCE "double_bounce_sender" 1796 #define DEF_DOUBLE_BOUNCE "double-bounce" 1797 extern char *var_double_bounce_sender; 1798 1799 /* 1800 * When forking a process, how often to try and how long to wait. 1801 */ 1802 #define VAR_FORK_TRIES "fork_attempts" 1803 #define DEF_FORK_TRIES 5 1804 extern int var_fork_tries; 1805 1806 #define VAR_FORK_DELAY "fork_delay" 1807 #define DEF_FORK_DELAY "1s" 1808 extern int var_fork_delay; 1809 1810 /* 1811 * When locking a mailbox, how often to try and how long to wait. 1812 */ 1813 #define VAR_FLOCK_TRIES "deliver_lock_attempts" 1814 #define DEF_FLOCK_TRIES 20 1815 extern int var_flock_tries; 1816 1817 #define VAR_FLOCK_DELAY "deliver_lock_delay" 1818 #define DEF_FLOCK_DELAY "1s" 1819 extern int var_flock_delay; 1820 1821 #define VAR_FLOCK_STALE "stale_lock_time" 1822 #define DEF_FLOCK_STALE "500s" 1823 extern int var_flock_stale; 1824 1825 #define VAR_MAILTOOL_COMPAT "sun_mailtool_compatibility" 1826 #define DEF_MAILTOOL_COMPAT 0 1827 extern int var_mailtool_compat; 1828 1829 /* 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). 1832 */ 1833 #define VAR_DAEMON_TIMEOUT "daemon_timeout" 1834 #define DEF_DAEMON_TIMEOUT "18000s" 1835 extern int var_daemon_timeout; 1836 1837 /* 1838 * How long an intra-mail command may take before we assume the mail system 1839 * is in deadlock (should never happen). 1840 */ 1841 #define VAR_IPC_TIMEOUT "ipc_timeout" 1842 #define DEF_IPC_TIMEOUT "3600s" 1843 extern int var_ipc_timeout; 1844 1845 /* 1846 * Time limit on intra-mail triggers. 1847 */ 1848 #define VAR_TRIGGER_TIMEOUT "trigger_timeout" 1849 #define DEF_TRIGGER_TIMEOUT "10s" 1850 extern int var_trigger_timeout; 1851 1852 /* 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. 1856 */ 1857 #define VAR_MYNETWORKS "mynetworks" 1858 extern char *var_mynetworks; 1859 1860 #define VAR_MYNETWORKS_STYLE "mynetworks_style" 1861 #define DEF_MYNETWORKS_STYLE MYNETWORKS_STYLE_SUBNET 1862 extern char *var_mynetworks_style; 1863 1864 #define MYNETWORKS_STYLE_CLASS "class" 1865 #define MYNETWORKS_STYLE_SUBNET "subnet" 1866 #define MYNETWORKS_STYLE_HOST "host" 1867 1868 #define VAR_RELAY_DOMAINS "relay_domains" 1869 #define DEF_RELAY_DOMAINS "$mydestination" 1870 extern char *var_relay_domains; 1871 1872 #define VAR_RELAY_TRANSPORT "relay_transport" 1873 #define DEF_RELAY_TRANSPORT MAIL_SERVICE_RELAY 1874 extern char *var_relay_transport; 1875 1876 #define VAR_RELAY_RCPT_MAPS "relay_recipient_maps" 1877 #define DEF_RELAY_RCPT_MAPS "" 1878 extern char *var_relay_rcpt_maps; 1879 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; 1883 1884 #define VAR_RELAY_CCERTS "relay_clientcerts" 1885 #define DEF_RELAY_CCERTS "" 1886 extern char *var_smtpd_relay_ccerts; 1887 1888 #define VAR_CLIENT_CHECKS "smtpd_client_restrictions" 1889 #define DEF_CLIENT_CHECKS "" 1890 extern char *var_client_checks; 1891 1892 #define VAR_HELO_REQUIRED "smtpd_helo_required" 1893 #define DEF_HELO_REQUIRED 0 1894 extern bool var_helo_required; 1895 1896 #define VAR_HELO_CHECKS "smtpd_helo_restrictions" 1897 #define DEF_HELO_CHECKS "" 1898 extern char *var_helo_checks; 1899 1900 #define VAR_MAIL_CHECKS "smtpd_sender_restrictions" 1901 #define DEF_MAIL_CHECKS "" 1902 extern char *var_mail_checks; 1903 1904 #define VAR_RCPT_CHECKS "smtpd_recipient_restrictions" 1905 #define DEF_RCPT_CHECKS PERMIT_MYNETWORKS ", " REJECT_UNAUTH_DEST 1906 extern char *var_rcpt_checks; 1907 1908 #define VAR_ETRN_CHECKS "smtpd_etrn_restrictions" 1909 #define DEF_ETRN_CHECKS "" 1910 extern char *var_etrn_checks; 1911 1912 #define VAR_DATA_CHECKS "smtpd_data_restrictions" 1913 #define DEF_DATA_CHECKS "" 1914 extern char *var_data_checks; 1915 1916 #define VAR_EOD_CHECKS "smtpd_end_of_data_restrictions" 1917 #define DEF_EOD_CHECKS "" 1918 extern char *var_eod_checks; 1919 1920 #define VAR_REST_CLASSES "smtpd_restriction_classes" 1921 #define DEF_REST_CLASSES "" 1922 extern char *var_rest_classes; 1923 1924 #define VAR_ALLOW_UNTRUST_ROUTE "allow_untrusted_routing" 1925 #define DEF_ALLOW_UNTRUST_ROUTE 0 1926 extern bool var_allow_untrust_route; 1927 1928 /* 1929 * Names of specific restrictions, and the corresponding configuration 1930 * parameters that control the status codes sent in response to rejected 1931 * requests. 1932 */ 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; 1938 1939 #define DEFER_ALL "defer" 1940 #define VAR_DEFER_CODE "defer_code" 1941 #define DEF_DEFER_CODE 450 1942 extern int var_defer_code; 1943 1944 #define DEFER_IF_PERMIT "defer_if_permit" 1945 #define DEFER_IF_REJECT "defer_if_reject" 1946 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; 1950 1951 #define SLEEP "sleep" 1952 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; 1957 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; 1965 1966 #define PERMIT_INET_INTERFACES "permit_inet_interfaces" 1967 1968 #define PERMIT_MYNETWORKS "permit_mynetworks" 1969 1970 #define PERMIT_NAKED_IP_ADDR "permit_naked_ip_address" 1971 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; 1977 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; 1983 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; 1987 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; 1995 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" 2002 2003 #define VAR_UNK_ADDR_CODE "unknown_address_reject_code" 2004 #define DEF_UNK_ADDR_CODE 450 2005 extern int var_unk_addr_code; 2006 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; 2010 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; 2014 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; 2018 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; 2023 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; 2028 2029 #define VAR_UNV_RCPT_DCODE "unverified_recipient_defer_code" 2030 #define DEF_UNV_RCPT_DCODE 450 2031 extern int var_unv_rcpt_dcode; 2032 2033 #define VAR_UNV_FROM_DCODE "unverified_sender_defer_code" 2034 #define DEF_UNV_FROM_DCODE 450 2035 extern int var_unv_from_dcode; 2036 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; 2040 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; 2044 2045 #define VAR_UNV_RCPT_WHY "unverified_recipient_reject_reason" 2046 #define DEF_UNV_RCPT_WHY "" 2047 extern char *var_unv_rcpt_why; 2048 2049 #define VAR_UNV_FROM_WHY "unverified_sender_reject_reason" 2050 #define DEF_UNV_FROM_WHY "" 2051 extern char *var_unv_from_why; 2052 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; 2057 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; 2066 2067 #define PERMIT_MX_BACKUP "permit_mx_backup" 2068 2069 #define VAR_PERM_MX_NETWORKS "permit_mx_backup_networks" 2070 #define DEF_PERM_MX_NETWORKS "" 2071 extern char *var_perm_mx_networks; 2072 2073 #define VAR_MAP_REJECT_CODE "access_map_reject_code" 2074 #define DEF_MAP_REJECT_CODE 554 2075 extern int var_map_reject_code; 2076 2077 #define VAR_MAP_DEFER_CODE "access_map_defer_code" 2078 #define DEF_MAP_DEFER_CODE 450 2079 extern int var_map_defer_code; 2080 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" 2088 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" 2095 2096 #define WARN_IF_REJECT "warn_if_reject" 2097 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" 2104 2105 #define VAR_RBL_REPLY_MAPS "rbl_reply_maps" 2106 #define DEF_RBL_REPLY_MAPS "" 2107 extern char *var_rbl_reply_maps; 2108 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; 2112 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; 2117 2118 #define VAR_MAPS_RBL_DOMAINS "maps_rbl_domains" /* backwards compat */ 2119 #define DEF_MAPS_RBL_DOMAINS "" 2120 extern char *var_maps_rbl_domains; 2121 2122 #define VAR_SMTPD_DELAY_REJECT "smtpd_delay_reject" 2123 #define DEF_SMTPD_DELAY_REJECT 1 2124 extern int var_smtpd_delay_reject; 2125 2126 #define REJECT_UNAUTH_PIPE "reject_unauth_pipelining" 2127 2128 #define VAR_SMTPD_NULL_KEY "smtpd_null_access_lookup_key" 2129 #define DEF_SMTPD_NULL_KEY "<>" 2130 extern char *var_smtpd_null_key; 2131 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; 2137 2138 #define VAR_SMTPD_PEERNAME_LOOKUP "smtpd_peername_lookup" 2139 #define DEF_SMTPD_PEERNAME_LOOKUP 1 2140 extern bool var_smtpd_peername_lookup; 2141 2142 /* 2143 * Heuristic to reject unknown local recipients at the SMTP port. 2144 */ 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; 2148 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; 2152 2153 /* 2154 * List of pre-approved maps that are OK to open with the proxymap service. 2155 */ 2156 #define VAR_PROXY_READ_MAPS "proxy_read_maps" 2157 #define DEF_PROXY_READ_MAPS "$" VAR_LOCAL_RCPT_MAPS \ 2158 " $" VAR_MYDEST \ 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; 2176 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; 2181 2182 /* 2183 * Other. 2184 */ 2185 #define VAR_PROCNAME "process_name" 2186 extern char *var_procname; 2187 2188 #define VAR_PID "process_id" 2189 extern int var_pid; 2190 2191 #define VAR_DEBUG_COMMAND "debugger_command" 2192 2193 /* 2194 * Paranoia: save files instead of deleting them. 2195 */ 2196 #define VAR_DONT_REMOVE "dont_remove" 2197 #define DEF_DONT_REMOVE 0 2198 extern bool var_dont_remove; 2199 2200 /* 2201 * Paranoia: defer messages instead of bouncing them. 2202 */ 2203 #define VAR_SOFT_BOUNCE "soft_bounce" 2204 #define DEF_SOFT_BOUNCE 0 2205 extern bool var_soft_bounce; 2206 2207 /* 2208 * Give special treatment to owner- and -request. 2209 */ 2210 #define VAR_OWNREQ_SPECIAL "owner_request_special" 2211 #define DEF_OWNREQ_SPECIAL 1 2212 extern bool var_ownreq_special; 2213 2214 /* 2215 * Allow/disallow recipient addresses starting with `-'. 2216 */ 2217 #define VAR_ALLOW_MIN_USER "allow_min_user" 2218 #define DEF_ALLOW_MIN_USER 0 2219 extern bool var_allow_min_user; 2220 2221 extern void mail_params_init(void); 2222 2223 /* 2224 * Content inspection and filtering. 2225 */ 2226 #define VAR_FILTER_XPORT "content_filter" 2227 #define DEF_FILTER_XPORT "" 2228 extern char *var_filter_xport; 2229 2230 /* 2231 * Fast flush service support. 2232 */ 2233 #define VAR_FFLUSH_DOMAINS "fast_flush_domains" 2234 #define DEF_FFLUSH_DOMAINS "$relay_domains" 2235 extern char *var_fflush_domains; 2236 2237 #define VAR_FFLUSH_PURGE "fast_flush_purge_time" 2238 #define DEF_FFLUSH_PURGE "7d" 2239 extern int var_fflush_purge; 2240 2241 #define VAR_FFLUSH_REFRESH "fast_flush_refresh_time" 2242 #define DEF_FFLUSH_REFRESH "12h" 2243 extern int var_fflush_refresh; 2244 2245 /* 2246 * Environmental management - what Postfix imports from the external world, 2247 * and what Postfix exports to the external world. 2248 */ 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; 2252 2253 #define VAR_EXPORT_ENVIRON "export_environment" 2254 #define DEF_EXPORT_ENVIRON "TZ MAIL_CONFIG LANG" 2255 extern char *var_export_environ; 2256 2257 /* 2258 * Tunables for the "virtual" local delivery agent 2259 */ 2260 #define VAR_VIRT_TRANSPORT "virtual_transport" 2261 #define DEF_VIRT_TRANSPORT MAIL_SERVICE_VIRTUAL 2262 extern char *var_virt_transport; 2263 2264 #define VAR_VIRT_MAILBOX_MAPS "virtual_mailbox_maps" 2265 #define DEF_VIRT_MAILBOX_MAPS "" 2266 extern char *var_virt_mailbox_maps; 2267 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; 2271 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; 2275 2276 #define VAR_VIRT_UID_MAPS "virtual_uid_maps" 2277 #define DEF_VIRT_UID_MAPS "" 2278 extern char *var_virt_uid_maps; 2279 2280 #define VAR_VIRT_GID_MAPS "virtual_gid_maps" 2281 #define DEF_VIRT_GID_MAPS "" 2282 extern char *var_virt_gid_maps; 2283 2284 #define VAR_VIRT_MINUID "virtual_minimum_uid" 2285 #define DEF_VIRT_MINUID 100 2286 extern int var_virt_minimum_uid; 2287 2288 #define VAR_VIRT_MAILBOX_BASE "virtual_mailbox_base" 2289 #define DEF_VIRT_MAILBOX_BASE "" 2290 extern char *var_virt_mailbox_base; 2291 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; 2295 2296 #define VAR_VIRT_MAILBOX_LOCK "virtual_mailbox_lock" 2297 #define DEF_VIRT_MAILBOX_LOCK "fcntl, dotlock" 2298 extern char *var_virt_mailbox_lock; 2299 2300 /* 2301 * Distinct logging tag for multiple Postfix instances. 2302 */ 2303 #define VAR_SYSLOG_NAME "syslog_name" 2304 #if 1 2305 #define DEF_SYSLOG_NAME \ 2306 "${" VAR_MULTI_NAME ":postfix}${" VAR_MULTI_NAME "?$" VAR_MULTI_NAME "}" 2307 #else 2308 #define DEF_SYSLOG_NAME "postfix" 2309 #endif 2310 extern char *var_syslog_name; 2311 2312 /* 2313 * QMQPD 2314 */ 2315 #define VAR_QMQPD_CLIENTS "qmqpd_authorized_clients" 2316 #define DEF_QMQPD_CLIENTS "" 2317 extern char *var_qmqpd_clients; 2318 2319 #define VAR_QMTPD_TMOUT "qmqpd_timeout" 2320 #define DEF_QMTPD_TMOUT "300s" 2321 extern int var_qmqpd_timeout; 2322 2323 #define VAR_QMTPD_ERR_SLEEP "qmqpd_error_delay" 2324 #define DEF_QMTPD_ERR_SLEEP "1s" 2325 extern int var_qmqpd_err_sleep; 2326 2327 /* 2328 * VERP, more DJB intellectual cross-pollination. However, we prefer + as 2329 * the default recipient delimiter. 2330 */ 2331 #define VAR_VERP_DELIMS "default_verp_delimiters" 2332 #define DEF_VERP_DELIMS "+=" 2333 extern char *var_verp_delims; 2334 2335 #define VAR_VERP_FILTER "verp_delimiter_filter" 2336 #define DEF_VERP_FILTER "-=+" 2337 extern char *var_verp_filter; 2338 2339 #define VAR_VERP_BOUNCE_OFF "disable_verp_bounces" 2340 #define DEF_VERP_BOUNCE_OFF 0 2341 extern bool var_verp_bounce_off; 2342 2343 #define VAR_VERP_CLIENTS "smtpd_authorized_verp_clients" 2344 #define DEF_VERP_CLIENTS "$authorized_verp_clients" 2345 extern char *var_verp_clients; 2346 2347 /* 2348 * XCLIENT, for rule testing and fetchmail like apps. 2349 */ 2350 #define VAR_XCLIENT_HOSTS "smtpd_authorized_xclient_hosts" 2351 #define DEF_XCLIENT_HOSTS "" 2352 extern char *var_xclient_hosts; 2353 2354 /* 2355 * XFORWARD, for improved post-filter logging. 2356 */ 2357 #define VAR_XFORWARD_HOSTS "smtpd_authorized_xforward_hosts" 2358 #define DEF_XFORWARD_HOSTS "" 2359 extern char *var_xforward_hosts; 2360 2361 /* 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. 2369 */ 2370 #define VAR_IN_FLOW_DELAY "in_flow_delay" 2371 #ifdef PIPES_CANT_FIONREAD 2372 #define DEF_IN_FLOW_DELAY "0s" 2373 #else 2374 #define DEF_IN_FLOW_DELAY "1s" 2375 #endif 2376 extern int var_in_flow_delay; 2377 2378 /* 2379 * Backwards compatibility: foo.com matches itself and names below foo.com. 2380 */ 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 "," \ 2388 SMTPD_ACCESS_MAPS 2389 extern char *var_par_dom_match; 2390 2391 #define SMTPD_ACCESS_MAPS "smtpd_access_maps" 2392 2393 /* 2394 * Run-time fault injection. 2395 */ 2396 #define VAR_FAULT_INJ_CODE "fault_injection_code" 2397 #define DEF_FAULT_INJ_CODE 0 2398 extern int var_fault_inj_code; 2399 2400 /* 2401 * Install/upgrade information. 2402 */ 2403 #define VAR_SENDMAIL_PATH "sendmail_path" 2404 #ifndef DEF_SENDMAIL_PATH 2405 #define DEF_SENDMAIL_PATH "/usr/sbin/sendmail" 2406 #endif 2407 2408 #define VAR_MAILQ_PATH "mailq_path" 2409 #ifndef DEF_MAILQ_PATH 2410 #define DEF_MAILQ_PATH "/usr/bin/mailq" 2411 #endif 2412 2413 #define VAR_NEWALIAS_PATH "newaliases_path" 2414 #ifndef DEF_NEWALIAS_PATH 2415 #define DEF_NEWALIAS_PATH "/usr/bin/newaliases" 2416 #endif 2417 2418 #define VAR_MANPAGE_DIR "manpage_directory" 2419 #ifndef DEF_MANPAGE_DIR 2420 #define DEF_MANPAGE_DIR "/usr/local/man" 2421 #endif 2422 2423 #define VAR_SAMPLE_DIR "sample_directory" 2424 #ifndef DEF_SAMPLE_DIR 2425 #define DEF_SAMPLE_DIR DEF_CONFIG_DIR 2426 #endif 2427 2428 #define VAR_README_DIR "readme_directory" 2429 #ifndef DEF_README_DIR 2430 #define DEF_README_DIR "no" 2431 #endif 2432 2433 #define VAR_HTML_DIR "html_directory" 2434 #ifndef DEF_HTML_DIR 2435 #define DEF_HTML_DIR "no" 2436 #endif 2437 2438 /* 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 2443 * Sendmail system. 2444 */ 2445 #define VAR_RESOLVE_DEQUOTED "resolve_dequoted_address" 2446 #define DEF_RESOLVE_DEQUOTED 1 2447 extern bool var_resolve_dequoted; 2448 2449 #define VAR_RESOLVE_NULLDOM "resolve_null_domain" 2450 #define DEF_RESOLVE_NULLDOM 0 2451 extern bool var_resolve_nulldom; 2452 2453 #define VAR_RESOLVE_NUM_DOM "resolve_numeric_domain" 2454 #define DEF_RESOLVE_NUM_DOM 0 2455 extern bool var_resolve_num_dom; 2456 2457 /* 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. 2463 */ 2464 #define VAR_BOUNCE_SERVICE "bounce_service_name" 2465 #define DEF_BOUNCE_SERVICE MAIL_SERVICE_BOUNCE 2466 extern char *var_bounce_service; 2467 2468 #define VAR_CLEANUP_SERVICE "cleanup_service_name" 2469 #define DEF_CLEANUP_SERVICE MAIL_SERVICE_CLEANUP 2470 extern char *var_cleanup_service; 2471 2472 #define VAR_DEFER_SERVICE "defer_service_name" 2473 #define DEF_DEFER_SERVICE MAIL_SERVICE_DEFER 2474 extern char *var_defer_service; 2475 2476 #define VAR_PICKUP_SERVICE "pickup_service_name" 2477 #define DEF_PICKUP_SERVICE MAIL_SERVICE_PICKUP 2478 extern char *var_pickup_service; 2479 2480 #define VAR_QUEUE_SERVICE "queue_service_name" 2481 #define DEF_QUEUE_SERVICE MAIL_SERVICE_QUEUE 2482 extern char *var_queue_service; 2483 2484 /* XXX resolve does not exist as a separate service */ 2485 2486 #define VAR_REWRITE_SERVICE "rewrite_service_name" 2487 #define DEF_REWRITE_SERVICE MAIL_SERVICE_REWRITE 2488 extern char *var_rewrite_service; 2489 2490 #define VAR_SHOWQ_SERVICE "showq_service_name" 2491 #define DEF_SHOWQ_SERVICE MAIL_SERVICE_SHOWQ 2492 extern char *var_showq_service; 2493 2494 #define VAR_ERROR_SERVICE "error_service_name" 2495 #define DEF_ERROR_SERVICE MAIL_SERVICE_ERROR 2496 extern char *var_error_service; 2497 2498 #define VAR_FLUSH_SERVICE "flush_service_name" 2499 #define DEF_FLUSH_SERVICE MAIL_SERVICE_FLUSH 2500 extern char *var_flush_service; 2501 2502 /* 2503 * Session cache service. 2504 */ 2505 #define VAR_SCACHE_SERVICE "connection_cache_service_name" 2506 #define DEF_SCACHE_SERVICE "scache" 2507 extern char *var_scache_service; 2508 2509 #define VAR_SCACHE_PROTO_TMOUT "connection_cache_protocol_timeout" 2510 #define DEF_SCACHE_PROTO_TMOUT "5s" 2511 extern int var_scache_proto_tmout; 2512 2513 #define VAR_SCACHE_TTL_LIM "connection_cache_ttl_limit" 2514 #define DEF_SCACHE_TTL_LIM "2s" 2515 extern int var_scache_ttl_lim; 2516 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; 2520 2521 /* 2522 * Address verification service. 2523 */ 2524 #define VAR_VERIFY_SERVICE "address_verify_service_name" 2525 #define DEF_VERIFY_SERVICE MAIL_SERVICE_VERIFY 2526 extern char *var_verify_service; 2527 2528 #define VAR_VERIFY_MAP "address_verify_map" 2529 #define DEF_VERIFY_MAP "" 2530 extern char *var_verify_map; 2531 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; 2535 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; 2539 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; 2543 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; 2547 2548 #define VAR_VERIFY_NEG_CACHE "address_verify_negative_cache" 2549 #define DEF_VERIFY_NEG_CACHE 1 2550 extern bool var_verify_neg_cache; 2551 2552 #define VAR_VERIFY_SENDER "address_verify_sender" 2553 #define DEF_VERIFY_SENDER "$" VAR_DOUBLE_BOUNCE 2554 extern char *var_verify_sender; 2555 2556 #define VAR_VERIFY_POLL_COUNT "address_verify_poll_count" 2557 #define DEF_VERIFY_POLL_COUNT 3 2558 extern int var_verify_poll_count; 2559 2560 #define VAR_VERIFY_POLL_DELAY "address_verify_poll_delay" 2561 #define DEF_VERIFY_POLL_DELAY "3s" 2562 extern int var_verify_poll_delay; 2563 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; 2567 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; 2571 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; 2575 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; 2579 2580 #define VAR_VRFY_RELAYHOST "address_verify_relayhost" 2581 #define DEF_VRFY_RELAYHOST "$" VAR_RELAYHOST 2582 extern char *var_vrfy_relayhost; 2583 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; 2587 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; 2591 2592 /* 2593 * Message delivery trace service. 2594 */ 2595 #define VAR_TRACE_SERVICE "trace_service_name" 2596 #define DEF_TRACE_SERVICE MAIL_SERVICE_TRACE 2597 extern char *var_trace_service; 2598 2599 /* 2600 * Proxymappers. 2601 */ 2602 #define VAR_PROXYMAP_SERVICE "proxymap_service_name" 2603 #define DEF_PROXYMAP_SERVICE MAIL_SERVICE_PROXYMAP 2604 extern char *var_proxymap_service; 2605 2606 #define VAR_PROXYWRITE_SERVICE "proxywrite_service_name" 2607 #define DEF_PROXYWRITE_SERVICE MAIL_SERVICE_PROXYWRITE 2608 extern char *var_proxywrite_service; 2609 2610 /* 2611 * Mailbox/maildir delivery errors that cause delivery to be tried again. 2612 */ 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; 2616 2617 #define VAR_MDR_DEFER_ERRS "maildir_defer_errors" 2618 #define DEF_MDR_DEFER_ERRS "enospc, estale" 2619 extern char *var_mdr_defer_errs; 2620 2621 /* 2622 * Berkeley DB memory pool sizes. 2623 */ 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; 2627 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; 2631 2632 /* 2633 * Named queue file attributes. 2634 */ 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; 2638 2639 /* 2640 * MIME support. 2641 */ 2642 #define VAR_MIME_MAXDEPTH "mime_nesting_limit" 2643 #define DEF_MIME_MAXDEPTH 100 2644 extern int var_mime_maxdepth; 2645 2646 #define VAR_MIME_BOUND_LEN "mime_boundary_length_limit" 2647 #define DEF_MIME_BOUND_LEN 2048 2648 extern int var_mime_bound_len; 2649 2650 #define VAR_DISABLE_MIME_INPUT "disable_mime_input_processing" 2651 #define DEF_DISABLE_MIME_INPUT 0 2652 extern bool var_disable_mime_input; 2653 2654 #define VAR_DISABLE_MIME_OCONV "disable_mime_output_conversion" 2655 #define DEF_DISABLE_MIME_OCONV 0 2656 extern bool var_disable_mime_oconv; 2657 2658 #define VAR_STRICT_8BITMIME "strict_8bitmime" 2659 #define DEF_STRICT_8BITMIME 0 2660 extern bool var_strict_8bitmime; 2661 2662 #define VAR_STRICT_7BIT_HDRS "strict_7bit_headers" 2663 #define DEF_STRICT_7BIT_HDRS 0 2664 extern bool var_strict_7bit_hdrs; 2665 2666 #define VAR_STRICT_8BIT_BODY "strict_8bitmime_body" 2667 #define DEF_STRICT_8BIT_BODY 0 2668 extern bool var_strict_8bit_body; 2669 2670 #define VAR_STRICT_ENCODING "strict_mime_encoding_domain" 2671 #define DEF_STRICT_ENCODING 0 2672 extern bool var_strict_encoding; 2673 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; 2677 2678 /* 2679 * Bizarre. 2680 */ 2681 #define VAR_SENDER_ROUTING "sender_based_routing" 2682 #define DEF_SENDER_ROUTING 0 2683 extern bool var_sender_routing; 2684 2685 #define VAR_XPORT_NULL_KEY "transport_null_address_lookup_key" 2686 #define DEF_XPORT_NULL_KEY "<>" 2687 extern char *var_xport_null_key; 2688 2689 /* 2690 * Bounce service controls. 2691 */ 2692 #define VAR_OLDLOG_COMPAT "backwards_bounce_logfile_compatibility" 2693 #define DEF_OLDLOG_COMPAT 1 2694 extern bool var_oldlog_compat; 2695 2696 /* 2697 * SMTPD content proxy. 2698 */ 2699 #define VAR_SMTPD_PROXY_FILT "smtpd_proxy_filter" 2700 #define DEF_SMTPD_PROXY_FILT "" 2701 extern char *var_smtpd_proxy_filt; 2702 2703 #define VAR_SMTPD_PROXY_EHLO "smtpd_proxy_ehlo" 2704 #define DEF_SMTPD_PROXY_EHLO "$" VAR_MYHOSTNAME 2705 extern char *var_smtpd_proxy_ehlo; 2706 2707 #define VAR_SMTPD_PROXY_TMOUT "smtpd_proxy_timeout" 2708 #define DEF_SMTPD_PROXY_TMOUT "100s" 2709 extern int var_smtpd_proxy_tmout; 2710 2711 /* 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. 2715 */ 2716 #define VAR_INPUT_TRANSP "receive_override_options" 2717 #define DEF_INPUT_TRANSP "" 2718 extern char *var_smtpd_input_transp; 2719 2720 /* 2721 * SMTP server policy delegation. 2722 */ 2723 #define VAR_SMTPD_POLICY_TMOUT "smtpd_policy_service_timeout" 2724 #define DEF_SMTPD_POLICY_TMOUT "100s" 2725 extern int var_smtpd_policy_tmout; 2726 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; 2730 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; 2734 2735 #define CHECK_POLICY_SERVICE "check_policy_service" 2736 2737 /* 2738 * Client rate control. 2739 */ 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; 2743 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; 2747 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; 2751 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; 2755 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; 2759 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; 2763 2764 #define VAR_ANVIL_TIME_UNIT "anvil_rate_time_unit" 2765 #define DEF_ANVIL_TIME_UNIT "60s" 2766 extern int var_anvil_time_unit; 2767 2768 #define VAR_ANVIL_STAT_TIME "anvil_status_update_time" 2769 #define DEF_ANVIL_STAT_TIME "600s" 2770 extern int var_anvil_stat_time; 2771 2772 /* 2773 * Temporary stop gap. 2774 */ 2775 #if 0 2776 #include <anvil_clnt.h> 2777 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; 2781 2782 #endif 2783 2784 /* 2785 * What domain names to assume when no valid domain context exists. 2786 */ 2787 #define VAR_REM_RWR_DOMAIN "remote_header_rewrite_domain" 2788 #define DEF_REM_RWR_DOMAIN "" 2789 extern char *var_remote_rwr_domain; 2790 2791 #define CHECK_ADDR_MAP "check_address_map" 2792 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; 2796 2797 /* 2798 * EHLO keyword filter. 2799 */ 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; 2803 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; 2807 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; 2813 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; 2819 2820 /* 2821 * gcc workaround for warnings about empty or null format strings. 2822 */ 2823 extern const char null_format_string[1]; 2824 2825 /* 2826 * Characters to reject or strip. 2827 */ 2828 #define VAR_MSG_REJECT_CHARS "message_reject_characters" 2829 #define DEF_MSG_REJECT_CHARS "" 2830 extern char *var_msg_reject_chars; 2831 2832 #define VAR_MSG_STRIP_CHARS "message_strip_characters" 2833 #define DEF_MSG_STRIP_CHARS "" 2834 extern char *var_msg_strip_chars; 2835 2836 /* 2837 * Local forwarding complexity controls. 2838 */ 2839 #define VAR_FROZEN_DELIVERED "frozen_delivered_to" 2840 #define DEF_FROZEN_DELIVERED 1 2841 extern bool var_frozen_delivered; 2842 2843 /* 2844 * Delay logging time roundup. 2845 */ 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; 2851 2852 /* 2853 * Bounce message templates. 2854 */ 2855 #define VAR_BOUNCE_TMPL "bounce_template_file" 2856 #define DEF_BOUNCE_TMPL "" 2857 extern char *var_bounce_tmpl; 2858 2859 /* 2860 * Sender-dependent authentication. 2861 */ 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; 2867 2868 /* 2869 * Allow CNAME lookup result to override the server hostname. 2870 */ 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; 2876 2877 /* 2878 * TLS cipherlists 2879 */ 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; 2883 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; 2887 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; 2891 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; 2895 2896 #define VAR_TLS_NULL_CLIST "tls_null_cipherlist" 2897 #define DEF_TLS_NULL_CLIST "eNULL:!aNULL" 2898 extern char *var_tls_null_clist; 2899 2900 #define VAR_TLS_EECDH_STRONG "tls_eecdh_strong_curve" 2901 #define DEF_TLS_EECDH_STRONG "prime256v1" 2902 extern char *var_tls_eecdh_strong; 2903 2904 #define VAR_TLS_EECDH_ULTRA "tls_eecdh_ultra_curve" 2905 #define DEF_TLS_EECDH_ULTRA "secp384r1" 2906 extern char *var_tls_eecdh_ultra; 2907 2908 /* 2909 * Sendmail-style mail filter support. 2910 */ 2911 #define VAR_SMTPD_MILTERS "smtpd_milters" 2912 #define DEF_SMTPD_MILTERS "" 2913 extern char *var_smtpd_milters; 2914 2915 #define VAR_CLEANUP_MILTERS "non_smtpd_milters" 2916 #define DEF_CLEANUP_MILTERS "" 2917 extern char *var_cleanup_milters; 2918 2919 #define VAR_MILT_DEF_ACTION "milter_default_action" 2920 #define DEF_MILT_DEF_ACTION "tempfail" 2921 extern char *var_milt_def_action; 2922 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; 2926 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; 2931 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; 2937 2938 #define VAR_MILT_RCPT_MACROS "milter_rcpt_macros" 2939 #define DEF_MILT_RCPT_MACROS "i {rcpt_addr} {rcpt_host}" \ 2940 " {rcpt_mailer}" 2941 extern char *var_milt_rcpt_macros; 2942 2943 #define VAR_MILT_DATA_MACROS "milter_data_macros" 2944 #define DEF_MILT_DATA_MACROS "i" 2945 extern char *var_milt_data_macros; 2946 2947 #define VAR_MILT_UNK_MACROS "milter_unknown_command_macros" 2948 #define DEF_MILT_UNK_MACROS "" 2949 extern char *var_milt_unk_macros; 2950 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; 2954 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; 2958 2959 #define VAR_MILT_CONN_TIME "milter_connect_timeout" 2960 #define DEF_MILT_CONN_TIME "30s" 2961 extern int var_milt_conn_time; 2962 2963 #define VAR_MILT_CMD_TIME "milter_command_timeout" 2964 #define DEF_MILT_CMD_TIME "30s" 2965 extern int var_milt_cmd_time; 2966 2967 #define VAR_MILT_MSG_TIME "milter_content_timeout" 2968 #define DEF_MILT_MSG_TIME "300s" 2969 extern int var_milt_msg_time; 2970 2971 #define VAR_MILT_PROTOCOL "milter_protocol" 2972 #define DEF_MILT_PROTOCOL "6" 2973 extern char *var_milt_protocol; 2974 2975 #define VAR_MILT_DEF_ACTION "milter_default_action" 2976 #define DEF_MILT_DEF_ACTION "tempfail" 2977 extern char *var_milt_def_action; 2978 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; 2982 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; 2986 2987 /* 2988 * What internal mail do we inspect/stamp/etc.? This is not yet safe enough 2989 * to enable world-wide. 2990 */ 2991 #define INT_FILT_CLASS_NONE "" 2992 #define INT_FILT_CLASS_NOTIFY "notify" 2993 #define INT_FILT_CLASS_BOUNCE "bounce" 2994 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; 2998 2999 /* 3000 * This could break logfile processors, so it's off by default. 3001 */ 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; 3005 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; 3009 3010 /* 3011 * Header/body checks in delivery agents. 3012 */ 3013 #define VAR_SMTP_HEAD_CHKS "smtp_header_checks" 3014 #define DEF_SMTP_HEAD_CHKS "" 3015 extern char *var_smtp_head_chks; 3016 3017 #define VAR_SMTP_MIME_CHKS "smtp_mime_header_checks" 3018 #define DEF_SMTP_MIME_CHKS "" 3019 extern char *var_smtp_mime_chks; 3020 3021 #define VAR_SMTP_NEST_CHKS "smtp_nested_header_checks" 3022 #define DEF_SMTP_NEST_CHKS "" 3023 extern char *var_smtp_nest_chks; 3024 3025 #define VAR_SMTP_BODY_CHKS "smtp_body_checks" 3026 #define DEF_SMTP_BODY_CHKS "" 3027 extern char *var_smtp_body_chks; 3028 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 "" 3037 3038 /* 3039 * Scheduler concurrency feedback algorithms. 3040 */ 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; 3045 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; 3050 3051 #define CONC_FDBACK_NAME_WIN "concurrency" 3052 #define CONC_FDBACK_NAME_SQRT_WIN "sqrt_concurrency" 3053 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; 3058 3059 #define VAR_CONC_FDBACK_DEBUG "destination_concurrency_feedback_debug" 3060 #define DEF_CONC_FDBACK_DEBUG 0 3061 extern bool var_conc_feedback_debug; 3062 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; 3067 3068 /* 3069 * Stress handling. 3070 */ 3071 #define VAR_STRESS "stress" 3072 #define DEF_STRESS "" 3073 extern char *var_stress; 3074 3075 /* 3076 * Mailbox ownership. 3077 */ 3078 #define VAR_STRICT_MBOX_OWNER "strict_mailbox_ownership" 3079 #define DEF_STRICT_MBOX_OWNER 1 3080 extern bool var_strict_mbox_owner; 3081 3082 /* 3083 * Window scaling workaround. 3084 */ 3085 #define VAR_INET_WINDOW "tcp_windowsize" 3086 #define DEF_INET_WINDOW 0 3087 extern int var_inet_windowsize; 3088 3089 /* 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. 3092 */ 3093 #define VAR_MULTI_CONF_DIRS "multi_instance_directories" 3094 #define DEF_MULTI_CONF_DIRS "" 3095 extern char *var_multi_conf_dirs; 3096 3097 #define VAR_MULTI_WRAPPER "multi_instance_wrapper" 3098 #define DEF_MULTI_WRAPPER "" 3099 extern char *var_multi_wrapper; 3100 3101 #define VAR_MULTI_NAME "multi_instance_name" 3102 #define DEF_MULTI_NAME "" 3103 extern char *var_multi_name; 3104 3105 #define VAR_MULTI_GROUP "multi_instance_group" 3106 #define DEF_MULTI_GROUP "" 3107 extern char *var_multi_group; 3108 3109 #define VAR_MULTI_ENABLE "multi_instance_enable" 3110 #define DEF_MULTI_ENABLE 0 3111 extern bool var_multi_enable; 3112 3113 /* 3114 * postmulti(1) instance manager 3115 */ 3116 #define VAR_MULTI_START_CMDS "postmulti_start_commands" 3117 #define DEF_MULTI_START_CMDS "start" 3118 extern char *var_multi_start_cmds; 3119 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; 3123 3124 #define VAR_MULTI_CNTRL_CMDS "postmulti_control_commands" 3125 #define DEF_MULTI_CNTRL_CMDS "reload flush" 3126 extern char *var_multi_cntrl_cmds; 3127 3128 /* LICENSE 3129 /* .ad 3130 /* .fi 3131 /* The Secure Mailer license must be distributed with this software. 3132 /* AUTHOR(S) 3133 /* Wietse Venema 3134 /* IBM T.J. Watson Research 3135 /* P.O. Box 704 3136 /* Yorktown Heights, NY 10598, USA 3137 /*--*/ 3138 3139 #endif 3140