1 /* $NetBSD: mail_params.h,v 1.21 2026/05/09 18:49:16 christos 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 * Needed for version-dependent default settings. 18 */ 19 #ifdef USE_TLS 20 #include <openssl/opensslv.h> /* OPENSSL_VERSION_NUMBER */ 21 #include <openssl/objects.h> /* SN_* and NID_* macros */ 22 #if OPENSSL_VERSION_NUMBER < 0x1010100fUL 23 #error "OpenSSL releases prior to 1.1.1 are no longer supported" 24 #endif 25 #endif 26 #ifndef OPENSSL_VERSION_PREREQ 27 #define OPENSSL_VERSION_PREREQ(m,n) 0 28 #endif 29 30 /* 31 * Name used when this mail system announces itself. 32 */ 33 #define VAR_MAIL_NAME "mail_name" 34 #define DEF_MAIL_NAME "Postfix" 35 extern char *var_mail_name; 36 37 /* 38 * You want to be helped or not. 39 */ 40 #define VAR_HELPFUL_WARNINGS "helpful_warnings" 41 #define DEF_HELPFUL_WARNINGS 1 42 extern bool var_helpful_warnings; 43 44 /* 45 * You want to be helped or not. 46 */ 47 #define VAR_SHOW_UNK_RCPT_TABLE "show_user_unknown_table_name" 48 #define DEF_SHOW_UNK_RCPT_TABLE 1 49 extern bool var_show_unk_rcpt_table; 50 51 /* 52 * Compatibility level and migration support. Update postconf(5), 53 * COMPATIBILITY_README, global/mail_params.[hc] and conf/main.cf when 54 * updating the current compatibility level. 55 */ 56 #define COMPAT_LEVEL_0 "0" 57 #define COMPAT_LEVEL_1 "1" /* Introduced: Postfix 3.0 */ 58 #define COMPAT_LEVEL_2 "2" /* Introduced: Postfix 3.0 */ 59 #define COMPAT_LEVEL_3_6 "3.6" 60 #define COMPAT_LEVEL_3_11 "3.11" 61 #define LAST_COMPAT_LEVEL COMPAT_LEVEL_3_11 62 63 #define VAR_COMPAT_LEVEL "compatibility_level" 64 #define DEF_COMPAT_LEVEL COMPAT_LEVEL_0 65 extern char *var_compatibility_level; 66 67 /* 68 * See comment in mail_params.c. 69 */ 70 extern int warn_compat_break_app_dot_mydomain; 71 extern int warn_compat_break_smtputf8_enable; 72 extern int warn_compat_break_chroot; 73 extern int warn_compat_break_relay_restrictions; /* Postfix 2.10. */ 74 75 extern int warn_compat_break_relay_domains; 76 extern int warn_compat_break_flush_domains; 77 extern int warn_compat_break_mynetworks_style; 78 79 extern int warn_compat_break_smtpd_tls_fpt_dgst; 80 extern int warn_compat_break_smtp_tls_fpt_dgst; 81 extern int warn_compat_break_lmtp_tls_fpt_dgst; 82 extern int warn_compat_relay_before_rcpt_checks; 83 extern int warn_compat_respectful_logging; 84 85 extern int warn_compat_break_smtp_tlsrpt_skip_reused_hs; 86 extern int warn_compat_break_smtp_tls_level; 87 extern int warn_compat_break_tlsp_clnt_level; 88 89 extern long compat_level; 90 91 /* 92 * What problem classes should be reported to the postmaster via email. 93 * Default is bad problems only. See mail_error(3). Even when mail notices 94 * are disabled, problems are still logged to the syslog daemon. 95 * 96 * Do not add "protocol" to the default setting. It gives Postfix a bad 97 * reputation: people get mail whenever spam software makes a mistake. 98 */ 99 #define VAR_NOTIFY_CLASSES "notify_classes" 100 #define DEF_NOTIFY_CLASSES "resource, software" /* Not: "protocol" */ 101 extern char *var_notify_classes; 102 103 /* 104 * What do I turn <> into? Sendmail defaults to mailer-daemon. 105 */ 106 #define VAR_EMPTY_ADDR "empty_address_recipient" 107 #define DEF_EMPTY_ADDR MAIL_ADDR_MAIL_DAEMON 108 extern char *var_empty_addr; 109 110 /* 111 * Privileges used by the mail system: the owner of files and commands, and 112 * the rights to be used when running external commands. 113 */ 114 #define VAR_MAIL_OWNER "mail_owner" 115 #define DEF_MAIL_OWNER "postfix" 116 extern char *var_mail_owner; 117 extern uid_t var_owner_uid; 118 extern gid_t var_owner_gid; 119 120 #define VAR_SGID_GROUP "setgid_group" 121 #define DEF_SGID_GROUP "maildrop" 122 extern char *var_sgid_group; 123 extern gid_t var_sgid_gid; 124 125 #define VAR_DEFAULT_PRIVS "default_privs" 126 #define DEF_DEFAULT_PRIVS "nobody" 127 extern char *var_default_privs; 128 extern uid_t var_default_uid; 129 extern gid_t var_default_gid; 130 131 /* 132 * Access control for local privileged operations: 133 */ 134 #define STATIC_ANYONE_ACL "static:anyone" 135 136 #define VAR_FLUSH_ACL "authorized_flush_users" 137 #define DEF_FLUSH_ACL STATIC_ANYONE_ACL 138 extern char *var_flush_acl; 139 140 #define VAR_SHOWQ_ACL "authorized_mailq_users" 141 #define DEF_SHOWQ_ACL STATIC_ANYONE_ACL 142 extern char *var_showq_acl; 143 144 #define VAR_SUBMIT_ACL "authorized_submit_users" 145 #define DEF_SUBMIT_ACL STATIC_ANYONE_ACL 146 extern char *var_submit_acl; 147 148 /* 149 * Local submission, envelope sender ownership. 150 */ 151 #define VAR_LOCAL_LOGIN_SND_MAPS "local_login_sender_maps" 152 #define DEF_LOCAL_LOGIN_SND_MAPS "static:*" 153 extern char *var_local_login_snd__maps; 154 155 #define VAR_NULL_LOCAL_LOGIN_SND_MAPS_KEY "empty_address_local_login_sender_maps_lookup_key" 156 #define DEF_NULL_LOCAL_LOGIN_SND_MAPS_KEY "<>" 157 extern char *var_null_local_login_snd_maps_key; 158 159 /* 160 * What goes on the right-hand side of addresses of mail sent from this 161 * machine. 162 */ 163 #define VAR_MYORIGIN "myorigin" 164 #define DEF_MYORIGIN "$myhostname" 165 extern char *var_myorigin; 166 167 /* 168 * What domains I will receive mail for. Not to be confused with transit 169 * mail to other destinations. 170 */ 171 #define VAR_MYDEST "mydestination" 172 #define DEF_MYDEST "$myhostname, localhost.$mydomain, localhost" 173 extern char *var_mydest; 174 175 /* 176 * These are by default taken from the name service. 177 */ 178 #define VAR_MYHOSTNAME "myhostname" /* my hostname (fqdn) */ 179 extern char *var_myhostname; 180 181 #define VAR_MYDOMAIN "mydomain" /* my domain name */ 182 #define DEF_MYDOMAIN "localdomain" 183 extern char *var_mydomain; 184 185 /* 186 * The default local delivery transport. 187 */ 188 #define VAR_LOCAL_TRANSPORT "local_transport" 189 #define DEF_LOCAL_TRANSPORT MAIL_SERVICE_LOCAL ":$myhostname" 190 extern char *var_local_transport; 191 192 /* 193 * Where to send postmaster copies of bounced mail, and other notices. 194 */ 195 #define VAR_BOUNCE_RCPT "bounce_notice_recipient" 196 #define DEF_BOUNCE_RCPT "postmaster" 197 extern char *var_bounce_rcpt; 198 199 #define VAR_2BOUNCE_RCPT "2bounce_notice_recipient" 200 #define DEF_2BOUNCE_RCPT "postmaster" 201 extern char *var_2bounce_rcpt; 202 203 #define VAR_DELAY_RCPT "delay_notice_recipient" 204 #define DEF_DELAY_RCPT "postmaster" 205 extern char *var_delay_rcpt; 206 207 #define VAR_ERROR_RCPT "error_notice_recipient" 208 #define DEF_ERROR_RCPT "postmaster" 209 extern char *var_error_rcpt; 210 211 /* 212 * Virtual host support. Default is to listen on all machine interfaces. 213 */ 214 #define VAR_INET_INTERFACES "inet_interfaces" /* listen addresses */ 215 #define INET_INTERFACES_ALL "all" 216 #define INET_INTERFACES_LOCAL "loopback-only" 217 #define DEF_INET_INTERFACES INET_INTERFACES_ALL 218 extern char *var_inet_interfaces; 219 220 #define VAR_PROXY_INTERFACES "proxy_interfaces" /* proxies, NATs */ 221 #define DEF_PROXY_INTERFACES "" 222 extern char *var_proxy_interfaces; 223 224 /* 225 * Masquerading (i.e. subdomain stripping). 226 */ 227 #define VAR_MASQ_DOMAINS "masquerade_domains" 228 #define DEF_MASQ_DOMAINS "" 229 extern char *var_masq_domains; 230 231 #define VAR_MASQ_EXCEPTIONS "masquerade_exceptions" 232 #define DEF_MASQ_EXCEPTIONS "" 233 extern char *var_masq_exceptions; 234 235 #define MASQ_CLASS_ENV_FROM "envelope_sender" 236 #define MASQ_CLASS_ENV_RCPT "envelope_recipient" 237 #define MASQ_CLASS_HDR_FROM "header_sender" 238 #define MASQ_CLASS_HDR_RCPT "header_recipient" 239 240 #define VAR_MASQ_CLASSES "masquerade_classes" 241 #define DEF_MASQ_CLASSES MASQ_CLASS_ENV_FROM ", " \ 242 MASQ_CLASS_HDR_FROM ", " \ 243 MASQ_CLASS_HDR_RCPT 244 extern char *var_masq_classes; 245 246 /* 247 * Intranet versus internet. 248 */ 249 #define VAR_RELAYHOST "relayhost" 250 #define DEF_RELAYHOST "" 251 extern char *var_relayhost; 252 253 #define VAR_SND_RELAY_MAPS "sender_dependent_relayhost_maps" 254 #define DEF_SND_RELAY_MAPS "" 255 extern char *var_snd_relay_maps; 256 257 #define VAR_NULL_RELAY_MAPS_KEY "empty_address_relayhost_maps_lookup_key" 258 #define DEF_NULL_RELAY_MAPS_KEY "<>" 259 extern char *var_null_relay_maps_key; 260 261 #define VAR_SMTP_FALLBACK "smtp_fallback_relay" 262 #define DEF_SMTP_FALLBACK "$fallback_relay" 263 #define VAR_LMTP_FALLBACK "lmtp_fallback_relay" 264 #define DEF_LMTP_FALLBACK "" 265 #define DEF_FALLBACK_RELAY "" 266 extern char *var_fallback_relay; 267 268 #define VAR_DISABLE_DNS "disable_dns_lookups" 269 #define DEF_DISABLE_DNS 0 270 extern bool var_disable_dns; 271 272 #define SMTP_DNS_SUPPORT_DISABLED "disabled" 273 #define SMTP_DNS_SUPPORT_ENABLED "enabled" 274 #define SMTP_DNS_SUPPORT_DNSSEC "dnssec" 275 276 #define VAR_SMTP_DNS_SUPPORT "smtp_dns_support_level" 277 #define DEF_SMTP_DNS_SUPPORT "" 278 #define VAR_LMTP_DNS_SUPPORT "lmtp_dns_support_level" 279 #define DEF_LMTP_DNS_SUPPORT "" 280 extern char *var_smtp_dns_support; 281 282 #define SMTP_HOST_LOOKUP_DNS "dns" 283 #define SMTP_HOST_LOOKUP_NATIVE "native" 284 285 #define VAR_SMTP_HOST_LOOKUP "smtp_host_lookup" 286 #define DEF_SMTP_HOST_LOOKUP SMTP_HOST_LOOKUP_DNS 287 #define VAR_LMTP_HOST_LOOKUP "lmtp_host_lookup" 288 #define DEF_LMTP_HOST_LOOKUP SMTP_HOST_LOOKUP_DNS 289 extern char *var_smtp_host_lookup; 290 291 #define SMTP_DNS_RES_OPT_DEFNAMES "res_defnames" 292 #define SMTP_DNS_RES_OPT_DNSRCH "res_dnsrch" 293 294 #define VAR_SMTP_DNS_RES_OPT "smtp_dns_resolver_options" 295 #define DEF_SMTP_DNS_RES_OPT "" 296 #define VAR_LMTP_DNS_RES_OPT "lmtp_dns_resolver_options" 297 #define DEF_LMTP_DNS_RES_OPT "" 298 extern char *var_smtp_dns_res_opt; 299 300 #define VAR_SMTP_MXADDR_LIMIT "smtp_mx_address_limit" 301 #define DEF_SMTP_MXADDR_LIMIT 5 302 #define VAR_LMTP_MXADDR_LIMIT "lmtp_mx_address_limit" 303 #define DEF_LMTP_MXADDR_LIMIT 5 304 extern int var_smtp_mxaddr_limit; 305 306 #define VAR_SMTP_MXSESS_LIMIT "smtp_mx_session_limit" 307 #define DEF_SMTP_MXSESS_LIMIT 2 308 #define VAR_LMTP_MXSESS_LIMIT "lmtp_mx_session_limit" 309 #define DEF_LMTP_MXSESS_LIMIT 2 310 extern int var_smtp_mxsess_limit; 311 312 /* 313 * Location of the mail queue directory tree. 314 */ 315 #define VAR_QUEUE_DIR "queue_directory" 316 #ifndef DEF_QUEUE_DIR 317 #define DEF_QUEUE_DIR "/var/spool/postfix" 318 #endif 319 extern char *var_queue_dir; 320 321 /* 322 * Location of command and daemon programs. 323 */ 324 #define VAR_DAEMON_DIR "daemon_directory" 325 #ifndef DEF_DAEMON_DIR 326 #define DEF_DAEMON_DIR "/usr/libexec/postfix" 327 #endif 328 extern char *var_daemon_dir; 329 330 #define VAR_COMMAND_DIR "command_directory" 331 #ifndef DEF_COMMAND_DIR 332 #define DEF_COMMAND_DIR "/usr/sbin" 333 #endif 334 extern char *var_command_dir; 335 336 /* 337 * Location of PID files. 338 */ 339 #define VAR_PID_DIR "process_id_directory" 340 #ifndef DEF_PID_DIR 341 #define DEF_PID_DIR "pid" 342 #endif 343 extern char *var_pid_dir; 344 345 /* 346 * Location of writable data files. 347 */ 348 #define VAR_DATA_DIR "data_directory" 349 #ifndef DEF_DATA_DIR 350 #define DEF_DATA_DIR "/var/db/postfix" 351 #endif 352 extern char *var_data_dir; 353 354 /* 355 * Program startup time. 356 */ 357 extern time_t var_starttime; 358 359 /* 360 * Location of configuration files. 361 */ 362 #define VAR_CONFIG_DIR "config_directory" 363 #ifndef DEF_CONFIG_DIR 364 #define DEF_CONFIG_DIR "/etc/postfix" 365 #endif 366 extern char *var_config_dir; 367 368 #define VAR_CONFIG_DIRS "alternate_config_directories" 369 #define DEF_CONFIG_DIRS "" 370 extern char *var_config_dirs; 371 372 #define MAIN_CONF_FILE "main.cf" 373 #define MASTER_CONF_FILE "master.cf" 374 375 /* 376 * Preferred type of indexed files. The DEF_DB_TYPE macro value is system 377 * dependent. It is defined in <sys_defs.h>. 378 */ 379 #define VAR_DB_TYPE "default_database_type" 380 extern char *var_db_type; 381 382 /* 383 * Preferred type of cache database files. The DEF_CACHE_DB_TYPE macro value 384 * is system dependent. It is defined in <sys_defs.h>. 385 */ 386 #define VAR_CACHE_DB_TYPE "default_cache_db_type" 387 extern char *var_cache_db_type; 388 389 /* 390 * What syslog facility to use. Unfortunately, something may have to be 391 * logged before parameters are read from the main.cf file. This logging 392 * will go the LOG_FACILITY facility specified below. 393 */ 394 #define VAR_SYSLOG_FACILITY "syslog_facility" 395 extern char *var_syslog_facility; 396 397 #ifndef DEF_SYSLOG_FACILITY 398 #define DEF_SYSLOG_FACILITY "mail" 399 #endif 400 401 #ifndef LOG_FACILITY 402 #define LOG_FACILITY LOG_MAIL 403 #endif 404 405 /* 406 * Big brother: who receives a blank-carbon copy of all mail that enters 407 * this mail system. 408 */ 409 #define VAR_ALWAYS_BCC "always_bcc" 410 #define DEF_ALWAYS_BCC "" 411 extern char *var_always_bcc; 412 413 /* 414 * What to put in the To: header when no recipients were disclosed. 415 * 416 * XXX 2822: When no recipient headers remain, a system should insert a Bcc: 417 * header without additional information. That is not so great given that 418 * MTAs routinely strip Bcc: headers from message headers. 419 */ 420 #define VAR_RCPT_WITHELD "undisclosed_recipients_header" 421 #define DEF_RCPT_WITHELD "" 422 extern char *var_rcpt_witheld; 423 424 /* 425 * Add missing headers. Postfix 2.6 no longer adds headers to remote mail by 426 * default. 427 */ 428 #define VAR_ALWAYS_ADD_HDRS "always_add_missing_headers" 429 #define DEF_ALWAYS_ADD_HDRS 0 430 extern bool var_always_add_hdrs; 431 432 /* 433 * Dropping message headers. 434 */ 435 #define VAR_DROP_HDRS "message_drop_headers" 436 #define DEF_DROP_HDRS "bcc, content-length, resent-bcc, return-path" 437 extern char *var_drop_hdrs; 438 439 /* 440 * From: header format: we provide canned versions only, no Sendmail-style 441 * macro expansions. 442 */ 443 #define HFROM_FORMAT_NAME_STD "standard" /* From: name <address> */ 444 #define HFROM_FORMAT_NAME_OBS "obsolete" /* From: address (name) */ 445 #define VAR_HFROM_FORMAT "header_from_format" 446 #define DEF_HFROM_FORMAT HFROM_FORMAT_NAME_STD 447 extern char *var_hfrom_format; 448 449 /* 450 * How to handle malformed header ending. 451 */ 452 #define NON_EMPTY_EOH_NAME_FIX_QUIETLY "fix_quietly" 453 #define NON_EMPTY_EOH_NAME_ADD_HDR "add_header" 454 #define NON_EMPTY_EOH_NAME_REJECT "reject" 455 456 #define VAR_NON_EMPTY_EOH_ACTION "non_empty_end_of_header_action" 457 #define DEF_NON_EMPTY_EOH_ACTION NON_EMPTY_EOH_NAME_FIX_QUIETLY 458 extern char *var_non_empty_eoh_action; 459 460 /* 461 * Standards violation: allow/permit RFC 822-style addresses in SMTP 462 * commands. 463 */ 464 #define VAR_STRICT_RFC821_ENV "strict_rfc821_envelopes" 465 #define DEF_STRICT_RFC821_ENV 0 466 extern bool var_strict_rfc821_env; 467 468 /* 469 * Standards violation: send "250 AUTH=list" in order to accommodate clients 470 * that implement an old version of the protocol. 471 */ 472 #define VAR_BROKEN_AUTH_CLNTS "broken_sasl_auth_clients" 473 #define DEF_BROKEN_AUTH_CLNTS 0 474 extern bool var_broken_auth_clients; 475 476 /* 477 * Standards violation: disable VRFY. 478 */ 479 #define VAR_DISABLE_VRFY_CMD "disable_vrfy_command" 480 #define DEF_DISABLE_VRFY_CMD 0 481 extern bool var_disable_vrfy_cmd; 482 483 /* 484 * trivial rewrite/resolve service: mapping tables. 485 */ 486 #define VAR_VIRT_ALIAS_MAPS "virtual_alias_maps" 487 #define DEF_VIRT_ALIAS_MAPS "$virtual_maps" /* Compatibility! */ 488 extern char *var_virt_alias_maps; 489 490 #define VAR_VIRT_ALIAS_DOMS "virtual_alias_domains" 491 #define DEF_VIRT_ALIAS_DOMS "$virtual_alias_maps" 492 extern char *var_virt_alias_doms; 493 494 #define VAR_VIRT_ALIAS_CODE "unknown_virtual_alias_reject_code" 495 #define DEF_VIRT_ALIAS_CODE 550 496 extern int var_virt_alias_code; 497 498 #define VAR_CANONICAL_MAPS "canonical_maps" 499 #define DEF_CANONICAL_MAPS "" 500 extern char *var_canonical_maps; 501 502 #define VAR_SEND_CANON_MAPS "sender_canonical_maps" 503 #define DEF_SEND_CANON_MAPS "" 504 extern char *var_send_canon_maps; 505 506 #define VAR_RCPT_CANON_MAPS "recipient_canonical_maps" 507 #define DEF_RCPT_CANON_MAPS "" 508 extern char *var_rcpt_canon_maps; 509 510 #define CANON_CLASS_ENV_FROM "envelope_sender" 511 #define CANON_CLASS_ENV_RCPT "envelope_recipient" 512 #define CANON_CLASS_HDR_FROM "header_sender" 513 #define CANON_CLASS_HDR_RCPT "header_recipient" 514 515 #define VAR_CANON_CLASSES "canonical_classes" 516 #define DEF_CANON_CLASSES CANON_CLASS_ENV_FROM ", " \ 517 CANON_CLASS_ENV_RCPT ", " \ 518 CANON_CLASS_HDR_FROM ", " \ 519 CANON_CLASS_HDR_RCPT 520 extern char *var_canon_classes; 521 522 #define VAR_SEND_CANON_CLASSES "sender_canonical_classes" 523 #define DEF_SEND_CANON_CLASSES CANON_CLASS_ENV_FROM ", " \ 524 CANON_CLASS_HDR_FROM 525 extern char *var_send_canon_classes; 526 527 #define VAR_RCPT_CANON_CLASSES "recipient_canonical_classes" 528 #define DEF_RCPT_CANON_CLASSES CANON_CLASS_ENV_RCPT ", " \ 529 CANON_CLASS_HDR_RCPT 530 extern char *var_rcpt_canon_classes; 531 532 #define VAR_SEND_BCC_MAPS "sender_bcc_maps" 533 #define DEF_SEND_BCC_MAPS "" 534 extern char *var_send_bcc_maps; 535 536 #define VAR_RCPT_BCC_MAPS "recipient_bcc_maps" 537 #define DEF_RCPT_BCC_MAPS "" 538 extern char *var_rcpt_bcc_maps; 539 540 #define VAR_TRANSPORT_MAPS "transport_maps" 541 #define DEF_TRANSPORT_MAPS "" 542 extern char *var_transport_maps; 543 544 #define VAR_DEF_TRANSPORT "default_transport" 545 #define DEF_DEF_TRANSPORT MAIL_SERVICE_SMTP 546 extern char *var_def_transport; 547 548 #define VAR_SND_DEF_XPORT_MAPS "sender_dependent_" VAR_DEF_TRANSPORT "_maps" 549 #define DEF_SND_DEF_XPORT_MAPS "" 550 extern char *var_snd_def_xport_maps; 551 552 #define VAR_NULL_DEF_XPORT_MAPS_KEY "empty_address_" VAR_DEF_TRANSPORT "_maps_lookup_key" 553 #define DEF_NULL_DEF_XPORT_MAPS_KEY "<>" 554 extern char *var_null_def_xport_maps_key; 555 556 /* 557 * trivial rewrite/resolve service: rewriting controls. 558 */ 559 #define VAR_SWAP_BANGPATH "swap_bangpath" 560 #define DEF_SWAP_BANGPATH 1 561 extern bool var_swap_bangpath; 562 563 #define VAR_APP_AT_MYORIGIN "append_at_myorigin" 564 #define DEF_APP_AT_MYORIGIN 1 565 extern bool var_append_at_myorigin; 566 567 #define VAR_APP_DOT_MYDOMAIN "append_dot_mydomain" 568 #define DEF_APP_DOT_MYDOMAIN "${{$compatibility_level} <level {1} ? " \ 569 "{yes} : {no}}" 570 extern bool var_append_dot_mydomain; 571 572 #define VAR_PERCENT_HACK "allow_percent_hack" 573 #define DEF_PERCENT_HACK 1 574 extern bool var_percent_hack; 575 576 /* 577 * Local delivery: alias databases. 578 */ 579 #define VAR_ALIAS_MAPS "alias_maps" 580 #ifdef HAS_NIS 581 #define DEF_ALIAS_MAPS ALIAS_DB_MAP ", nis:mail.aliases" 582 #else 583 #define DEF_ALIAS_MAPS ALIAS_DB_MAP 584 #endif 585 extern char *var_alias_maps; 586 587 /* 588 * Local delivery: to BIFF or not to BIFF. 589 */ 590 #define VAR_BIFF "biff" 591 #define DEF_BIFF 1 592 extern bool var_biff; 593 594 /* 595 * Local delivery: mail to files/commands. 596 */ 597 #define VAR_ALLOW_COMMANDS "allow_mail_to_commands" 598 #define DEF_ALLOW_COMMANDS "alias, forward" 599 extern char *var_allow_commands; 600 601 #define VAR_COMMAND_MAXTIME "command_time_limit" 602 #define _MAXTIME "_time_limit" 603 #define DEF_COMMAND_MAXTIME "1000s" 604 extern int var_command_maxtime; 605 606 #define VAR_ALLOW_FILES "allow_mail_to_files" 607 #define DEF_ALLOW_FILES "alias, forward" 608 extern char *var_allow_files; 609 610 #define VAR_LOCAL_CMD_SHELL "local_command_shell" 611 #define DEF_LOCAL_CMD_SHELL "" 612 extern char *var_local_cmd_shell; 613 614 #define VAR_ALIAS_DB_MAP "alias_database" 615 #define DEF_ALIAS_DB_MAP ALIAS_DB_MAP /* sys_defs.h */ 616 extern char *var_alias_db_map; 617 618 #define VAR_LUSER_RELAY "luser_relay" 619 #define DEF_LUSER_RELAY "" 620 extern char *var_luser_relay; 621 622 /* 623 * Local delivery: mailbox delivery. 624 */ 625 #define VAR_MAIL_SPOOL_DIR "mail_spool_directory" 626 #ifndef DEF_MAIL_SPOOL_DIR 627 #define DEF_MAIL_SPOOL_DIR _PATH_MAILDIR 628 #endif 629 extern char *var_mail_spool_dir; 630 631 #define VAR_HOME_MAILBOX "home_mailbox" 632 #define DEF_HOME_MAILBOX "" 633 extern char *var_home_mailbox; 634 635 #define VAR_MAILBOX_COMMAND "mailbox_command" 636 #define DEF_MAILBOX_COMMAND "" 637 extern char *var_mailbox_command; 638 639 #define VAR_MAILBOX_CMD_MAPS "mailbox_command_maps" 640 #define DEF_MAILBOX_CMD_MAPS "" 641 extern char *var_mailbox_cmd_maps; 642 643 #define VAR_MAILBOX_TRANSP "mailbox_transport" 644 #define DEF_MAILBOX_TRANSP "" 645 extern char *var_mailbox_transport; 646 647 #define VAR_MBOX_TRANSP_MAPS "mailbox_transport_maps" 648 #define DEF_MBOX_TRANSP_MAPS "" 649 extern char *var_mbox_transp_maps; 650 651 #define VAR_FALLBACK_TRANSP "fallback_transport" 652 #define DEF_FALLBACK_TRANSP "" 653 extern char *var_fallback_transport; 654 655 #define VAR_FBCK_TRANSP_MAPS "fallback_transport_maps" 656 #define DEF_FBCK_TRANSP_MAPS "" 657 extern char *var_fbck_transp_maps; 658 659 /* 660 * Local delivery: path to per-user forwarding file. 661 */ 662 #define VAR_FORWARD_PATH "forward_path" 663 #define DEF_FORWARD_PATH "$home/.forward${recipient_delimiter}${extension}, $home/.forward" 664 extern char *var_forward_path; 665 666 /* 667 * Local delivery: external command execution directory. 668 */ 669 #define VAR_EXEC_DIRECTORY "command_execution_directory" 670 #define DEF_EXEC_DIRECTORY "" 671 extern char *var_exec_directory; 672 673 #define VAR_EXEC_EXP_FILTER "execution_directory_expansion_filter" 674 #define DEF_EXEC_EXP_FILTER "1234567890!@%-_=+:,./\ 675 abcdefghijklmnopqrstuvwxyz\ 676 ABCDEFGHIJKLMNOPQRSTUVWXYZ" 677 extern char *var_exec_exp_filter; 678 679 /* 680 * Mailbox locking. DEF_MAILBOX_LOCK is defined in sys_defs.h. 681 */ 682 #define VAR_MAILBOX_LOCK "mailbox_delivery_lock" 683 extern char *var_mailbox_lock; 684 685 /* 686 * Mailbox size limit. This used to be enforced as a side effect of the way 687 * the message size limit is implemented, but that is not clean. 688 */ 689 #define VAR_MAILBOX_LIMIT "mailbox_size_limit" 690 #define DEF_MAILBOX_LIMIT (DEF_MESSAGE_LIMIT * 5) 691 extern long var_mailbox_limit; 692 693 /* 694 * Miscellaneous. 695 */ 696 #define VAR_PROP_EXTENSION "propagate_unmatched_extensions" 697 #define DEF_PROP_EXTENSION "canonical, virtual" 698 extern char *var_prop_extension; 699 700 #define VAR_RCPT_DELIM "recipient_delimiter" 701 #define DEF_RCPT_DELIM "" 702 extern char *var_rcpt_delim; 703 704 #define VAR_CMD_EXP_FILTER "command_expansion_filter" 705 #define DEF_CMD_EXP_FILTER "1234567890!@%-_=+:,./\ 706 abcdefghijklmnopqrstuvwxyz\ 707 ABCDEFGHIJKLMNOPQRSTUVWXYZ" 708 extern char *var_cmd_exp_filter; 709 710 #define VAR_FWD_EXP_FILTER "forward_expansion_filter" 711 #define DEF_FWD_EXP_FILTER "1234567890!@%-_=+:,./\ 712 abcdefghijklmnopqrstuvwxyz\ 713 ABCDEFGHIJKLMNOPQRSTUVWXYZ" 714 extern char *var_fwd_exp_filter; 715 716 #define VAR_DELIVER_HDR "prepend_delivered_header" 717 #define DEF_DELIVER_HDR "command, file, forward" 718 extern char *var_deliver_hdr; 719 720 /* 721 * Cleanup: enable support for X-Original-To message headers, which are 722 * needed for multi-recipient mailboxes. When this is turned on, perform 723 * duplicate elimination on (original rcpt, rewritten rcpt) pairs, and 724 * generating non-empty original recipient records in the queue file. 725 */ 726 #define VAR_ENABLE_ORCPT "enable_original_recipient" 727 #define DEF_ENABLE_ORCPT 1 728 extern bool var_enable_orcpt; 729 730 #define VAR_EXP_OWN_ALIAS "expand_owner_alias" 731 #define DEF_EXP_OWN_ALIAS 0 732 extern bool var_exp_own_alias; 733 734 #define VAR_STAT_HOME_DIR "require_home_directory" 735 #define DEF_STAT_HOME_DIR 0 736 extern bool var_stat_home_dir; 737 738 /* 739 * Cleanup server: maximal size of the duplicate expansion filter. By 740 * default, we do graceful degradation with huge mailing lists. 741 */ 742 #define VAR_DUP_FILTER_LIMIT "duplicate_filter_limit" 743 #define DEF_DUP_FILTER_LIMIT 1000 744 extern int var_dup_filter_limit; 745 746 /* 747 * Transport Layer Security (TLS) protocol support. 748 */ 749 #define VAR_TLS_MGR_SERVICE "tlsmgr_service_name" 750 #define DEF_TLS_MGR_SERVICE "tlsmgr" 751 extern char *var_tls_mgr_service; 752 753 #define VAR_TLS_APPEND_DEF_CA "tls_append_default_CA" 754 #define DEF_TLS_APPEND_DEF_CA 0 /* Postfix < 2.8 BC break */ 755 extern bool var_tls_append_def_CA; 756 757 #define VAR_TLS_RAND_EXCH_NAME "tls_random_exchange_name" 758 #define DEF_TLS_RAND_EXCH_NAME "${data_directory}/prng_exch" 759 extern char *var_tls_rand_exch_name; 760 761 #define VAR_TLS_RAND_SOURCE "tls_random_source" 762 #ifdef PREFERRED_RAND_SOURCE 763 #define DEF_TLS_RAND_SOURCE PREFERRED_RAND_SOURCE 764 #else 765 #define DEF_TLS_RAND_SOURCE "" 766 #endif 767 extern char *var_tls_rand_source; 768 769 #define VAR_TLS_RAND_BYTES "tls_random_bytes" 770 #define DEF_TLS_RAND_BYTES 32 771 extern int var_tls_rand_bytes; 772 773 #define VAR_TLS_DAEMON_RAND_BYTES "tls_daemon_random_bytes" 774 #define DEF_TLS_DAEMON_RAND_BYTES 32 775 extern int var_tls_daemon_rand_bytes; 776 777 #define VAR_TLS_RESEED_PERIOD "tls_random_reseed_period" 778 #define DEF_TLS_RESEED_PERIOD "3600s" 779 extern int var_tls_reseed_period; 780 781 #define VAR_TLS_PRNG_UPD_PERIOD "tls_random_prng_update_period" 782 #define DEF_TLS_PRNG_UPD_PERIOD "3600s" 783 extern int var_tls_prng_upd_period; 784 785 /* 786 * Queue manager: relocated databases. 787 */ 788 #define VAR_RELOCATED_MAPS "relocated_maps" 789 #define DEF_RELOCATED_MAPS "" 790 extern char *var_relocated_maps; 791 792 #define VAR_ENB_RELOCATED_PFX "relocated_prefix_enable" 793 #define DEF_ENB_RELOCATED_PFX "yes" 794 extern bool var_enb_relocated_pfx; 795 796 /* 797 * Queue manager: after each failed attempt the backoff time (how long we 798 * won't try this host in seconds) is doubled until it reaches the maximum. 799 * MAX_QUEUE_TIME limits the amount of time a message may spend in the mail 800 * queue before it is sent back. 801 */ 802 #define VAR_QUEUE_RUN_DELAY "queue_run_delay" 803 #define DEF_QUEUE_RUN_DELAY "300s" 804 805 #define VAR_MIN_BACKOFF_TIME "minimal_backoff_time" 806 #define DEF_MIN_BACKOFF_TIME DEF_QUEUE_RUN_DELAY 807 extern int var_min_backoff_time; 808 809 #define VAR_MAX_BACKOFF_TIME "maximal_backoff_time" 810 #define DEF_MAX_BACKOFF_TIME "4000s" 811 extern int var_max_backoff_time; 812 813 #define VAR_MAX_QUEUE_TIME "maximal_queue_lifetime" 814 #define DEF_MAX_QUEUE_TIME "5d" 815 extern int var_max_queue_time; 816 817 /* 818 * XXX The default can't be $maximal_queue_lifetime, because that panics 819 * when a non-default maximal_queue_lifetime setting contains no time unit. 820 */ 821 #define VAR_DSN_QUEUE_TIME "bounce_queue_lifetime" 822 #define DEF_DSN_QUEUE_TIME "5d" 823 extern int var_dsn_queue_time; 824 825 #define VAR_DELAY_WARN_TIME "delay_warning_time" 826 #define DEF_DELAY_WARN_TIME "0h" 827 extern int var_delay_warn_time; 828 829 #define VAR_DSN_DELAY_CLEARED "confirm_delay_cleared" 830 #define DEF_DSN_DELAY_CLEARED 0 831 extern bool var_dsn_delay_cleared; 832 833 /* 834 * Queue manager: various in-core message and recipient limits. 835 */ 836 #define VAR_QMGR_ACT_LIMIT "qmgr_message_active_limit" 837 #define DEF_QMGR_ACT_LIMIT 20000 838 extern int var_qmgr_active_limit; 839 840 #define VAR_QMGR_RCPT_LIMIT "qmgr_message_recipient_limit" 841 #define DEF_QMGR_RCPT_LIMIT 20000 842 extern int var_qmgr_rcpt_limit; 843 844 #define VAR_QMGR_MSG_RCPT_LIMIT "qmgr_message_recipient_minimum" 845 #define DEF_QMGR_MSG_RCPT_LIMIT 10 846 extern int var_qmgr_msg_rcpt_limit; 847 848 #define VAR_XPORT_RCPT_LIMIT "default_recipient_limit" 849 #define _XPORT_RCPT_LIMIT "_recipient_limit" 850 #define DEF_XPORT_RCPT_LIMIT 20000 851 extern int var_xport_rcpt_limit; 852 853 #define VAR_STACK_RCPT_LIMIT "default_extra_recipient_limit" 854 #define _STACK_RCPT_LIMIT "_extra_recipient_limit" 855 #define DEF_STACK_RCPT_LIMIT 1000 856 extern int var_stack_rcpt_limit; 857 858 #define VAR_XPORT_REFILL_LIMIT "default_recipient_refill_limit" 859 #define _XPORT_REFILL_LIMIT "_recipient_refill_limit" 860 #define DEF_XPORT_REFILL_LIMIT 100 861 extern int var_xport_refill_limit; 862 863 #define VAR_XPORT_REFILL_DELAY "default_recipient_refill_delay" 864 #define _XPORT_REFILL_DELAY "_recipient_refill_delay" 865 #define DEF_XPORT_REFILL_DELAY "5s" 866 extern int var_xport_refill_delay; 867 868 /* 869 * Queue manager: default job scheduler parameters. 870 */ 871 #define VAR_DELIVERY_SLOT_COST "default_delivery_slot_cost" 872 #define _DELIVERY_SLOT_COST "_delivery_slot_cost" 873 #define DEF_DELIVERY_SLOT_COST 5 874 extern int var_delivery_slot_cost; 875 876 #define VAR_DELIVERY_SLOT_LOAN "default_delivery_slot_loan" 877 #define _DELIVERY_SLOT_LOAN "_delivery_slot_loan" 878 #define DEF_DELIVERY_SLOT_LOAN 3 879 extern int var_delivery_slot_loan; 880 881 #define VAR_DELIVERY_SLOT_DISCOUNT "default_delivery_slot_discount" 882 #define _DELIVERY_SLOT_DISCOUNT "_delivery_slot_discount" 883 #define DEF_DELIVERY_SLOT_DISCOUNT 50 884 extern int var_delivery_slot_discount; 885 886 #define VAR_MIN_DELIVERY_SLOTS "default_minimum_delivery_slots" 887 #define _MIN_DELIVERY_SLOTS "_minimum_delivery_slots" 888 #define DEF_MIN_DELIVERY_SLOTS 3 889 extern int var_min_delivery_slots; 890 891 #define VAR_QMGR_FUDGE "qmgr_fudge_factor" 892 #define DEF_QMGR_FUDGE 100 893 extern int var_qmgr_fudge; 894 895 /* 896 * Queue manager: default destination concurrency levels. 897 */ 898 #define VAR_INIT_DEST_CON "initial_destination_concurrency" 899 #define _INIT_DEST_CON "_initial_destination_concurrency" 900 #define DEF_INIT_DEST_CON 5 901 extern int var_init_dest_concurrency; 902 903 #define VAR_DEST_CON_LIMIT "default_destination_concurrency_limit" 904 #define _DEST_CON_LIMIT "_destination_concurrency_limit" 905 #define DEF_DEST_CON_LIMIT 20 906 extern int var_dest_con_limit; 907 908 #define VAR_LOCAL_CON_LIMIT "local" _DEST_CON_LIMIT 909 #define DEF_LOCAL_CON_LIMIT 2 910 extern int var_local_con_lim; 911 912 /* 913 * Queue manager: default number of recipients per transaction. 914 */ 915 #define VAR_DEST_RCPT_LIMIT "default_destination_recipient_limit" 916 #define _DEST_RCPT_LIMIT "_destination_recipient_limit" 917 #define DEF_DEST_RCPT_LIMIT 50 918 extern int var_dest_rcpt_limit; 919 920 #define VAR_LOCAL_RCPT_LIMIT "local" _DEST_RCPT_LIMIT /* XXX */ 921 #define DEF_LOCAL_RCPT_LIMIT 1 /* XXX */ 922 extern int var_local_rcpt_lim; 923 924 /* 925 * Queue manager: default delay before retrying a dead transport. 926 */ 927 #define VAR_XPORT_RETRY_TIME "transport_retry_time" 928 #define DEF_XPORT_RETRY_TIME "60s" 929 extern int var_transport_retry_time; 930 931 /* 932 * Queue manager: what transports to defer delivery to. 933 */ 934 #define VAR_DEFER_XPORTS "defer_transports" 935 #define DEF_DEFER_XPORTS "" 936 extern char *var_defer_xports; 937 938 /* 939 * Queue manager: how often to warn that a destination is clogging the 940 * active queue. 941 */ 942 #define VAR_QMGR_CLOG_WARN_TIME "qmgr_clog_warn_time" 943 #define DEF_QMGR_CLOG_WARN_TIME "300s" 944 extern int var_qmgr_clog_warn_time; 945 946 /* 947 * Master: default process count limit per mail subsystem. 948 */ 949 #define VAR_PROC_LIMIT "default_process_limit" 950 #define DEF_PROC_LIMIT 100 951 extern int var_proc_limit; 952 953 /* 954 * Master: default time to wait after service is throttled. 955 */ 956 #define VAR_THROTTLE_TIME "service_throttle_time" 957 #define DEF_THROTTLE_TIME "60s" 958 extern int var_throttle_time; 959 960 /* 961 * Master: what master.cf services are turned off. 962 */ 963 #define VAR_MASTER_DISABLE "master_service_disable" 964 #define DEF_MASTER_DISABLE "" 965 extern char *var_master_disable; 966 967 /* 968 * Any subsystem: default maximum number of clients serviced before a mail 969 * subsystem terminates (except queue manager). 970 */ 971 #define VAR_MAX_USE "max_use" 972 #define DEF_MAX_USE 100 973 extern int var_use_limit; 974 975 /* 976 * Any subsystem: default amount of time a mail subsystem waits for a client 977 * connection (except queue manager). 978 */ 979 #define VAR_MAX_IDLE "max_idle" 980 #define DEF_MAX_IDLE "100s" 981 extern int var_idle_limit; 982 983 /* 984 * Any subsystem: default amount of time a mail subsystem waits for 985 * application events to drain. 986 */ 987 #define VAR_EVENT_DRAIN "application_event_drain_time" 988 #define DEF_EVENT_DRAIN "100s" 989 extern int var_event_drain; 990 991 /* 992 * Any subsystem: default amount of time a mail subsystem keeps an internal 993 * IPC connection before closing it because it is idle for too much time. 994 */ 995 #define VAR_IPC_IDLE "ipc_idle" 996 #define DEF_IPC_IDLE "5s" 997 extern int var_ipc_idle_limit; 998 999 /* 1000 * Any subsystem: default amount of time a mail subsystem keeps an internal 1001 * IPC connection before closing it because the connection has existed for 1002 * too much time. 1003 */ 1004 #define VAR_IPC_TTL "ipc_ttl" 1005 #define DEF_IPC_TTL "1000s" 1006 extern int var_ipc_ttl_limit; 1007 1008 /* 1009 * Any front-end subsystem: avoid running out of memory when someone sends 1010 * infinitely-long requests or replies. 1011 */ 1012 #define VAR_LINE_LIMIT "line_length_limit" 1013 #define DEF_LINE_LIMIT 2048 1014 extern int var_line_limit; 1015 1016 /* 1017 * Specify what SMTP peers need verbose logging. 1018 */ 1019 #define VAR_DEBUG_PEER_LIST "debug_peer_list" 1020 #define DEF_DEBUG_PEER_LIST "" 1021 extern char *var_debug_peer_list; 1022 1023 #define VAR_DEBUG_PEER_LEVEL "debug_peer_level" 1024 #define DEF_DEBUG_PEER_LEVEL 2 1025 extern int var_debug_peer_level; 1026 1027 /* 1028 * Queue management: what queues are hashed behind a forest of 1029 * subdirectories, and how deep the forest is. 1030 */ 1031 #define VAR_HASH_QUEUE_NAMES "hash_queue_names" 1032 #define DEF_HASH_QUEUE_NAMES "deferred, defer" 1033 extern char *var_hash_queue_names; 1034 1035 #define VAR_HASH_QUEUE_DEPTH "hash_queue_depth" 1036 #define DEF_HASH_QUEUE_DEPTH 1 1037 extern int var_hash_queue_depth; 1038 1039 /* 1040 * Short queue IDs contain the time in microseconds and file inode number. 1041 * Long queue IDs also contain the time in seconds. 1042 */ 1043 #define VAR_LONG_QUEUE_IDS "enable_long_queue_ids" 1044 #define DEF_LONG_QUEUE_IDS 0 1045 extern bool var_long_queue_ids; 1046 1047 /* 1048 * Multi-protocol support. 1049 */ 1050 #define INET_PROTO_NAME_IPV4 "ipv4" 1051 #define INET_PROTO_NAME_IPV6 "ipv6" 1052 #define INET_PROTO_NAME_ALL "all" 1053 #define INET_PROTO_NAME_ANY "any" 1054 #define VAR_INET_PROTOCOLS "inet_protocols" 1055 extern char *var_inet_protocols; 1056 1057 /* 1058 * SMTP client. Timeouts inspired by RFC 1123. The SMTP recipient limit 1059 * determines how many recipient addresses the SMTP client sends along with 1060 * each message. Unfortunately, some mailers misbehave and disconnect (smap) 1061 * when given more recipients than they are willing to handle. 1062 * 1063 * XXX 2821: A mail system is supposed to use EHLO instead of HELO, and to fall 1064 * back to HELO if EHLO is not supported. 1065 */ 1066 #define VAR_BESTMX_TRANSP "best_mx_transport" 1067 #define DEF_BESTMX_TRANSP "" 1068 extern char *var_bestmx_transp; 1069 1070 #define VAR_SMTP_CACHE_CONNT "smtp_connection_cache_time_limit" 1071 #define DEF_SMTP_CACHE_CONNT "2s" 1072 #define VAR_LMTP_CACHE_CONNT "lmtp_connection_cache_time_limit" 1073 #define DEF_LMTP_CACHE_CONNT "2s" 1074 extern int var_smtp_cache_conn; 1075 1076 #define VAR_SMTP_REUSE_COUNT "smtp_connection_reuse_count_limit" 1077 #define DEF_SMTP_REUSE_COUNT 0 1078 #define VAR_LMTP_REUSE_COUNT "lmtp_connection_reuse_count_limit" 1079 #define DEF_LMTP_REUSE_COUNT 0 1080 extern int var_smtp_reuse_count; 1081 1082 #define VAR_SMTP_REUSE_TIME "smtp_connection_reuse_time_limit" 1083 #define DEF_SMTP_REUSE_TIME "300s" 1084 #define VAR_LMTP_REUSE_TIME "lmtp_connection_reuse_time_limit" 1085 #define DEF_LMTP_REUSE_TIME "300s" 1086 extern int var_smtp_reuse_time; 1087 1088 #define VAR_SMTP_CACHE_DEST "smtp_connection_cache_destinations" 1089 #define DEF_SMTP_CACHE_DEST "" 1090 #define VAR_LMTP_CACHE_DEST "lmtp_connection_cache_destinations" 1091 #define DEF_LMTP_CACHE_DEST "" 1092 extern char *var_smtp_cache_dest; 1093 1094 #define VAR_SMTP_CACHE_DEMAND "smtp_connection_cache_on_demand" 1095 #ifndef DEF_SMTP_CACHE_DEMAND 1096 #define DEF_SMTP_CACHE_DEMAND 1 1097 #endif 1098 #define VAR_LMTP_CACHE_DEMAND "lmtp_connection_cache_on_demand" 1099 #ifndef DEF_LMTP_CACHE_DEMAND 1100 #define DEF_LMTP_CACHE_DEMAND 1 1101 #endif 1102 extern bool var_smtp_cache_demand; 1103 1104 #define VAR_SMTP_CONN_TMOUT "smtp_connect_timeout" 1105 #define DEF_SMTP_CONN_TMOUT "30s" 1106 extern int var_smtp_conn_tmout; 1107 1108 #define VAR_SMTP_HELO_TMOUT "smtp_helo_timeout" 1109 #define DEF_SMTP_HELO_TMOUT "300s" 1110 #define VAR_LMTP_HELO_TMOUT "lmtp_lhlo_timeout" 1111 #define DEF_LMTP_HELO_TMOUT "300s" 1112 extern int var_smtp_helo_tmout; 1113 1114 #define VAR_SMTP_XFWD_TMOUT "smtp_xforward_timeout" 1115 #define DEF_SMTP_XFWD_TMOUT "300s" 1116 extern int var_smtp_xfwd_tmout; 1117 1118 #define VAR_SMTP_STARTTLS_TMOUT "smtp_starttls_timeout" 1119 #define DEF_SMTP_STARTTLS_TMOUT "300s" 1120 #define VAR_LMTP_STARTTLS_TMOUT "lmtp_starttls_timeout" 1121 #define DEF_LMTP_STARTTLS_TMOUT "300s" 1122 extern int var_smtp_starttls_tmout; 1123 1124 #define VAR_SMTP_MAIL_TMOUT "smtp_mail_timeout" 1125 #define DEF_SMTP_MAIL_TMOUT "300s" 1126 extern int var_smtp_mail_tmout; 1127 1128 #define VAR_SMTP_RCPT_TMOUT "smtp_rcpt_timeout" 1129 #define DEF_SMTP_RCPT_TMOUT "300s" 1130 extern int var_smtp_rcpt_tmout; 1131 1132 #define VAR_SMTP_DATA0_TMOUT "smtp_data_init_timeout" 1133 #define DEF_SMTP_DATA0_TMOUT "120s" 1134 extern int var_smtp_data0_tmout; 1135 1136 #define VAR_SMTP_DATA1_TMOUT "smtp_data_xfer_timeout" 1137 #define DEF_SMTP_DATA1_TMOUT "180s" 1138 extern int var_smtp_data1_tmout; 1139 1140 #define VAR_SMTP_DATA2_TMOUT "smtp_data_done_timeout" 1141 #define DEF_SMTP_DATA2_TMOUT "600s" 1142 extern int var_smtp_data2_tmout; 1143 1144 #define VAR_SMTP_RSET_TMOUT "smtp_rset_timeout" 1145 #define DEF_SMTP_RSET_TMOUT "20s" 1146 extern int var_smtp_rset_tmout; 1147 1148 #define VAR_SMTP_QUIT_TMOUT "smtp_quit_timeout" 1149 #define DEF_SMTP_QUIT_TMOUT "300s" 1150 extern int var_smtp_quit_tmout; 1151 1152 #define VAR_SMTP_QUOTE_821_ENV "smtp_quote_rfc821_envelope" 1153 #define DEF_SMTP_QUOTE_821_ENV 1 1154 #define VAR_LMTP_QUOTE_821_ENV "lmtp_quote_rfc821_envelope" 1155 #define DEF_LMTP_QUOTE_821_ENV 1 1156 extern bool var_smtp_quote_821_env; 1157 1158 #define VAR_SMTP_SKIP_5XX "smtp_skip_5xx_greeting" 1159 #define DEF_SMTP_SKIP_5XX 1 1160 #define VAR_LMTP_SKIP_5XX "lmtp_skip_5xx_greeting" 1161 #define DEF_LMTP_SKIP_5XX 1 1162 extern bool var_smtp_skip_5xx_greeting; 1163 1164 #define VAR_IGN_MX_LOOKUP_ERR "ignore_mx_lookup_error" 1165 #define DEF_IGN_MX_LOOKUP_ERR 0 1166 extern bool var_ign_mx_lookup_err; 1167 1168 #define VAR_SMTP_SKIP_QUIT_RESP "smtp_skip_quit_response" 1169 #define DEF_SMTP_SKIP_QUIT_RESP 1 1170 extern bool var_skip_quit_resp; 1171 1172 #define VAR_SMTP_ALWAYS_EHLO "smtp_always_send_ehlo" 1173 #ifdef RFC821_SYNTAX 1174 #define DEF_SMTP_ALWAYS_EHLO 0 1175 #else 1176 #define DEF_SMTP_ALWAYS_EHLO 1 1177 #endif 1178 extern bool var_smtp_always_ehlo; 1179 1180 #define VAR_SMTP_NEVER_EHLO "smtp_never_send_ehlo" 1181 #define DEF_SMTP_NEVER_EHLO 0 1182 extern bool var_smtp_never_ehlo; 1183 1184 #define VAR_SMTP_RESP_FILTER "smtp_reply_filter" 1185 #define DEF_SMTP_RESP_FILTER "" 1186 #define VAR_LMTP_RESP_FILTER "lmtp_reply_filter" 1187 #define DEF_LMTP_RESP_FILTER "" 1188 extern char *var_smtp_resp_filter; 1189 1190 #define VAR_SMTP_BIND_ADDR "smtp_bind_address" 1191 #define DEF_SMTP_BIND_ADDR "" 1192 #define VAR_LMTP_BIND_ADDR "lmtp_bind_address" 1193 #define DEF_LMTP_BIND_ADDR "" 1194 extern char *var_smtp_bind_addr; 1195 1196 #define VAR_SMTP_BIND_ADDR6 "smtp_bind_address6" 1197 #define DEF_SMTP_BIND_ADDR6 "" 1198 #define VAR_LMTP_BIND_ADDR6 "lmtp_bind_address6" 1199 #define DEF_LMTP_BIND_ADDR6 "" 1200 extern char *var_smtp_bind_addr6; 1201 1202 #define VAR_SMTP_BIND_ADDR_ENFORCE "smtp_bind_address_enforce" 1203 #define DEF_SMTP_BIND_ADDR_ENFORCE 0 1204 #define VAR_LMTP_BIND_ADDR_ENFORCE "lmtp_bind_address_enforce" 1205 #define DEF_LMTP_BIND_ADDR_ENFORCE 0 1206 extern bool var_smtp_bind_addr_enforce; 1207 1208 #define VAR_SMTP_HELO_NAME "smtp_helo_name" 1209 #define DEF_SMTP_HELO_NAME "$myhostname" 1210 #define VAR_LMTP_HELO_NAME "lmtp_lhlo_name" 1211 #define DEF_LMTP_HELO_NAME "$myhostname" 1212 extern char *var_smtp_helo_name; 1213 1214 #define VAR_SMTP_RAND_ADDR "smtp_randomize_addresses" 1215 #define DEF_SMTP_RAND_ADDR 1 1216 #define VAR_LMTP_RAND_ADDR "lmtp_randomize_addresses" 1217 #define DEF_LMTP_RAND_ADDR 1 1218 extern bool var_smtp_rand_addr; 1219 1220 #define VAR_SMTP_LINE_LIMIT "smtp_line_length_limit" 1221 #define DEF_SMTP_LINE_LIMIT 998 1222 #define VAR_LMTP_LINE_LIMIT "lmtp_line_length_limit" 1223 #define DEF_LMTP_LINE_LIMIT 998 1224 extern int var_smtp_line_limit; 1225 1226 #define VAR_SMTP_PIX_THRESH "smtp_pix_workaround_threshold_time" 1227 #define DEF_SMTP_PIX_THRESH "500s" 1228 #define VAR_LMTP_PIX_THRESH "lmtp_pix_workaround_threshold_time" 1229 #define DEF_LMTP_PIX_THRESH "500s" 1230 extern int var_smtp_pix_thresh; 1231 1232 #define VAR_SMTP_PIX_DELAY "smtp_pix_workaround_delay_time" 1233 #define DEF_SMTP_PIX_DELAY "10s" 1234 #define VAR_LMTP_PIX_DELAY "lmtp_pix_workaround_delay_time" 1235 #define DEF_LMTP_PIX_DELAY "10s" 1236 extern int var_smtp_pix_delay; 1237 1238 /* 1239 * Courageous people may want to turn off PIX bug workarounds. 1240 */ 1241 #define PIX_BUG_DISABLE_ESMTP "disable_esmtp" 1242 #define PIX_BUG_DELAY_DOTCRLF "delay_dotcrlf" 1243 #define VAR_SMTP_PIX_BUG_WORDS "smtp_pix_workarounds" 1244 #define DEF_SMTP_PIX_BUG_WORDS PIX_BUG_DISABLE_ESMTP "," \ 1245 PIX_BUG_DELAY_DOTCRLF 1246 #define VAR_LMTP_PIX_BUG_WORDS "lmtp_pix_workarounds" 1247 #define DEF_LMTP_PIX_BUG_WORDS DEF_SMTP_PIX_BUG_WORDS 1248 extern char *var_smtp_pix_bug_words; 1249 1250 #define VAR_SMTP_PIX_BUG_MAPS "smtp_pix_workaround_maps" 1251 #define DEF_SMTP_PIX_BUG_MAPS "" 1252 #define VAR_LMTP_PIX_BUG_MAPS "lmtp_pix_workaround_maps" 1253 #define DEF_LMTP_PIX_BUG_MAPS "" 1254 extern char *var_smtp_pix_bug_maps; 1255 1256 #define VAR_SMTP_DEFER_MXADDR "smtp_defer_if_no_mx_address_found" 1257 #define DEF_SMTP_DEFER_MXADDR 0 1258 #define VAR_LMTP_DEFER_MXADDR "lmtp_defer_if_no_mx_address_found" 1259 #define DEF_LMTP_DEFER_MXADDR 0 1260 extern bool var_smtp_defer_mxaddr; 1261 1262 #define VAR_SMTP_SEND_XFORWARD "smtp_send_xforward_command" 1263 #define DEF_SMTP_SEND_XFORWARD 0 1264 extern bool var_smtp_send_xforward; 1265 1266 #define VAR_SMTP_GENERIC_MAPS "smtp_generic_maps" 1267 #define DEF_SMTP_GENERIC_MAPS "" 1268 #define VAR_LMTP_GENERIC_MAPS "lmtp_generic_maps" 1269 #define DEF_LMTP_GENERIC_MAPS "" 1270 extern char *var_smtp_generic_maps; 1271 1272 /* 1273 * SMTP server. The soft error limit determines how many errors an SMTP 1274 * client may make before we start to slow down; the hard error limit 1275 * determines after how many client errors we disconnect. 1276 */ 1277 #define VAR_SMTPD_BANNER "smtpd_banner" 1278 #define DEF_SMTPD_BANNER "$myhostname ESMTP $mail_name" 1279 extern char *var_smtpd_banner; 1280 1281 #define VAR_SMTPD_TMOUT "smtpd_timeout" 1282 #define DEF_SMTPD_TMOUT "${stress?{10}:{300}}s" 1283 extern int var_smtpd_tmout; 1284 1285 #define VAR_SMTPD_STARTTLS_TMOUT "smtpd_starttls_timeout" 1286 #define DEF_SMTPD_STARTTLS_TMOUT "${stress?{10}:{300}}s" 1287 extern int var_smtpd_starttls_tmout; 1288 1289 #define VAR_SMTPD_RCPT_LIMIT "smtpd_recipient_limit" 1290 #define DEF_SMTPD_RCPT_LIMIT 1000 1291 extern int var_smtpd_rcpt_limit; 1292 1293 #define VAR_SMTPD_SOFT_ERLIM "smtpd_soft_error_limit" 1294 #define DEF_SMTPD_SOFT_ERLIM "10" 1295 extern int var_smtpd_soft_erlim; 1296 1297 #define VAR_SMTPD_HARD_ERLIM "smtpd_hard_error_limit" 1298 #define DEF_SMTPD_HARD_ERLIM "${stress?{1}:{20}}" 1299 extern int var_smtpd_hard_erlim; 1300 1301 #define VAR_SMTPD_ERR_SLEEP "smtpd_error_sleep_time" 1302 #define DEF_SMTPD_ERR_SLEEP "1s" 1303 extern int var_smtpd_err_sleep; 1304 1305 #define VAR_SMTPD_JUNK_CMD "smtpd_junk_command_limit" 1306 #define DEF_SMTPD_JUNK_CMD "${stress?{1}:{100}}" 1307 extern int var_smtpd_junk_cmd_limit; 1308 1309 #define VAR_SMTPD_RCPT_OVERLIM "smtpd_recipient_overshoot_limit" 1310 #define DEF_SMTPD_RCPT_OVERLIM 1000 1311 extern int var_smtpd_rcpt_overlim; 1312 1313 #define VAR_SMTPD_HIST_THRSH "smtpd_history_flush_threshold" 1314 #define DEF_SMTPD_HIST_THRSH 100 1315 extern int var_smtpd_hist_thrsh; 1316 1317 #define VAR_SMTPD_NOOP_CMDS "smtpd_noop_commands" 1318 #define DEF_SMTPD_NOOP_CMDS "" 1319 extern char *var_smtpd_noop_cmds; 1320 1321 #define VAR_SMTPD_FORBID_CMDS "smtpd_forbidden_commands" 1322 #define DEF_SMTPD_FORBID_CMDS "CONNECT GET POST regexp:{{/^[^A-Z]/ Bogus}}" 1323 extern char *var_smtpd_forbid_cmds; 1324 1325 #define VAR_SMTPD_CMD_FILTER "smtpd_command_filter" 1326 #define DEF_SMTPD_CMD_FILTER "" 1327 extern char *var_smtpd_cmd_filter; 1328 1329 #define VAR_SMTPD_TLS_WRAPPER "smtpd_tls_wrappermode" 1330 #define DEF_SMTPD_TLS_WRAPPER 0 1331 extern bool var_smtpd_tls_wrappermode; 1332 1333 #define VAR_SMTPD_TLS_LEVEL "smtpd_tls_security_level" 1334 #define DEF_SMTPD_TLS_LEVEL "" 1335 extern char *var_smtpd_tls_level; 1336 1337 #define VAR_SMTPD_USE_TLS "smtpd_use_tls" 1338 #define DEF_SMTPD_USE_TLS 0 1339 extern bool var_smtpd_use_tls; 1340 1341 #define VAR_SMTPD_ENFORCE_TLS "smtpd_enforce_tls" 1342 #define DEF_SMTPD_ENFORCE_TLS 0 1343 extern bool var_smtpd_enforce_tls; 1344 1345 #define VAR_SMTPD_TLS_AUTH_ONLY "smtpd_tls_auth_only" 1346 #define DEF_SMTPD_TLS_AUTH_ONLY 0 1347 extern bool var_smtpd_tls_auth_only; 1348 1349 #define VAR_SMTPD_TLS_ACERT "smtpd_tls_ask_ccert" 1350 #define DEF_SMTPD_TLS_ACERT 0 1351 extern bool var_smtpd_tls_ask_ccert; 1352 1353 #define VAR_SMTPD_TLS_RCERT "smtpd_tls_req_ccert" 1354 #define DEF_SMTPD_TLS_RCERT 0 1355 extern bool var_smtpd_tls_req_ccert; 1356 1357 #define VAR_SMTPD_TLS_ENABLE_RPK "smtpd_tls_enable_rpk" 1358 #define DEF_SMTPD_TLS_ENABLE_RPK 0 1359 extern bool var_smtpd_tls_enable_rpk; 1360 1361 #define VAR_SMTPD_TLS_CCERT_VD "smtpd_tls_ccert_verifydepth" 1362 #define DEF_SMTPD_TLS_CCERT_VD 9 1363 extern int var_smtpd_tls_ccert_vd; 1364 1365 #define VAR_SMTPD_TLS_CHAIN_FILES "smtpd_tls_chain_files" 1366 #define DEF_SMTPD_TLS_CHAIN_FILES "" 1367 extern char *var_smtpd_tls_chain_files; 1368 1369 #define VAR_SMTPD_TLS_CERT_FILE "smtpd_tls_cert_file" 1370 #define DEF_SMTPD_TLS_CERT_FILE "" 1371 extern char *var_smtpd_tls_cert_file; 1372 1373 #define VAR_SMTPD_TLS_KEY_FILE "smtpd_tls_key_file" 1374 #define DEF_SMTPD_TLS_KEY_FILE "$smtpd_tls_cert_file" 1375 extern char *var_smtpd_tls_key_file; 1376 1377 #define VAR_SMTPD_TLS_DCERT_FILE "smtpd_tls_dcert_file" 1378 #define DEF_SMTPD_TLS_DCERT_FILE "" 1379 extern char *var_smtpd_tls_dcert_file; 1380 1381 #define VAR_SMTPD_TLS_DKEY_FILE "smtpd_tls_dkey_file" 1382 #define DEF_SMTPD_TLS_DKEY_FILE "$smtpd_tls_dcert_file" 1383 extern char *var_smtpd_tls_dkey_file; 1384 1385 #define VAR_SMTPD_TLS_ECCERT_FILE "smtpd_tls_eccert_file" 1386 #define DEF_SMTPD_TLS_ECCERT_FILE "" 1387 extern char *var_smtpd_tls_eccert_file; 1388 1389 #define VAR_SMTPD_TLS_ECKEY_FILE "smtpd_tls_eckey_file" 1390 #define DEF_SMTPD_TLS_ECKEY_FILE "$smtpd_tls_eccert_file" 1391 extern char *var_smtpd_tls_eckey_file; 1392 1393 #define VAR_SMTPD_TLS_CA_FILE "smtpd_tls_CAfile" 1394 #define DEF_SMTPD_TLS_CA_FILE "" 1395 extern char *var_smtpd_tls_CAfile; 1396 1397 #define VAR_SMTPD_TLS_CA_PATH "smtpd_tls_CApath" 1398 #define DEF_SMTPD_TLS_CA_PATH "" 1399 extern char *var_smtpd_tls_CApath; 1400 1401 #define VAR_SMTPD_TLS_PROTO "smtpd_tls_protocols" 1402 #define DEF_SMTPD_TLS_PROTO ">=TLSv1" 1403 extern char *var_smtpd_tls_proto; 1404 1405 #define VAR_SMTPD_TLS_MAND_PROTO "smtpd_tls_mandatory_protocols" 1406 #define DEF_SMTPD_TLS_MAND_PROTO ">=TLSv1" 1407 extern char *var_smtpd_tls_mand_proto; 1408 1409 #define VAR_SMTPD_TLS_CIPH "smtpd_tls_ciphers" 1410 #define DEF_SMTPD_TLS_CIPH "medium" 1411 extern char *var_smtpd_tls_ciph; 1412 1413 #define VAR_SMTPD_TLS_MAND_CIPH "smtpd_tls_mandatory_ciphers" 1414 #define DEF_SMTPD_TLS_MAND_CIPH "medium" 1415 extern char *var_smtpd_tls_mand_ciph; 1416 1417 #define VAR_SMTPD_TLS_EXCL_CIPH "smtpd_tls_exclude_ciphers" 1418 #define DEF_SMTPD_TLS_EXCL_CIPH "" 1419 extern char *var_smtpd_tls_excl_ciph; 1420 1421 #define VAR_SMTPD_TLS_MAND_EXCL "smtpd_tls_mandatory_exclude_ciphers" 1422 #define DEF_SMTPD_TLS_MAND_EXCL "" 1423 extern char *var_smtpd_tls_mand_excl; 1424 1425 #define VAR_SMTPD_TLS_FPT_DGST "smtpd_tls_fingerprint_digest" 1426 #define DEF_SMTPD_TLS_FPT_DGST "${{$compatibility_level} <level {3.6} ? " \ 1427 "{md5} : {sha256}}" 1428 extern char *var_smtpd_tls_fpt_dgst; 1429 1430 #define VAR_SMTPD_TLS_512_FILE "smtpd_tls_dh512_param_file" 1431 #define DEF_SMTPD_TLS_512_FILE "" 1432 extern char *var_smtpd_tls_dh512_param_file; 1433 1434 #define VAR_SMTPD_TLS_1024_FILE "smtpd_tls_dh1024_param_file" 1435 #define DEF_SMTPD_TLS_1024_FILE "" 1436 extern char *var_smtpd_tls_dh1024_param_file; 1437 1438 #define VAR_SMTPD_TLS_EECDH "smtpd_tls_eecdh_grade" 1439 #define DEF_SMTPD_TLS_EECDH "auto" 1440 extern char *var_smtpd_tls_eecdh; 1441 1442 #define VAR_SMTPD_TLS_LOGLEVEL "smtpd_tls_loglevel" 1443 #define DEF_SMTPD_TLS_LOGLEVEL "0" 1444 extern char *var_smtpd_tls_loglevel; 1445 1446 #define VAR_SMTPD_TLS_RECHEAD "smtpd_tls_received_header" 1447 #define DEF_SMTPD_TLS_RECHEAD 0 1448 extern bool var_smtpd_tls_received_header; 1449 1450 #define VAR_SMTPD_TLS_SCACHE_DB "smtpd_tls_session_cache_database" 1451 #define DEF_SMTPD_TLS_SCACHE_DB "" 1452 extern char *var_smtpd_tls_scache_db; 1453 1454 #define MAX_SMTPD_TLS_SCACHETIME 8640000 1455 #define VAR_SMTPD_TLS_SCACHTIME "smtpd_tls_session_cache_timeout" 1456 #define DEF_SMTPD_TLS_SCACHTIME "3600s" 1457 extern int var_smtpd_tls_scache_timeout; 1458 1459 #define VAR_SMTPD_TLS_SET_SESSID "smtpd_tls_always_issue_session_ids" 1460 #define DEF_SMTPD_TLS_SET_SESSID 1 1461 extern bool var_smtpd_tls_set_sessid; 1462 1463 #define VAR_SMTPD_DELAY_OPEN "smtpd_delay_open_until_valid_rcpt" 1464 #define DEF_SMTPD_DELAY_OPEN 1 1465 extern bool var_smtpd_delay_open; 1466 1467 #define VAR_SMTP_TLS_PER_SITE "smtp_tls_per_site" 1468 #define DEF_SMTP_TLS_PER_SITE "" 1469 #define VAR_LMTP_TLS_PER_SITE "lmtp_tls_per_site" 1470 #define DEF_LMTP_TLS_PER_SITE "" 1471 extern char *var_smtp_tls_per_site; 1472 1473 #define VAR_SMTP_USE_TLS "smtp_use_tls" 1474 #define DEF_SMTP_USE_TLS 0 1475 #define VAR_LMTP_USE_TLS "lmtp_use_tls" 1476 #define DEF_LMTP_USE_TLS 0 1477 extern bool var_smtp_use_tls; 1478 1479 #define VAR_SMTP_ENFORCE_TLS "smtp_enforce_tls" 1480 #define DEF_SMTP_ENFORCE_TLS 0 1481 #define VAR_LMTP_ENFORCE_TLS "lmtp_enforce_tls" 1482 #define DEF_LMTP_ENFORCE_TLS 0 1483 extern bool var_smtp_enforce_tls; 1484 1485 #define VAR_SMTP_TLS_ENFORCE_PN "smtp_tls_enforce_peername" 1486 #define DEF_SMTP_TLS_ENFORCE_PN 1 1487 #define VAR_LMTP_TLS_ENFORCE_PN "lmtp_tls_enforce_peername" 1488 #define DEF_LMTP_TLS_ENFORCE_PN 1 1489 extern bool var_smtp_tls_enforce_peername; 1490 1491 #define VAR_SMTP_TLS_WRAPPER "smtp_tls_wrappermode" 1492 #define DEF_SMTP_TLS_WRAPPER 0 1493 #define VAR_LMTP_TLS_WRAPPER "lmtp_tls_wrappermode" 1494 #define DEF_LMTP_TLS_WRAPPER 0 1495 extern bool var_smtp_tls_wrappermode; 1496 1497 #define VAR_SMTP_TLS_LEVEL "smtp_tls_security_level" 1498 #define VAR_LMTP_TLS_LEVEL "lmtp_tls_security_level" 1499 #ifdef USE_TLS 1500 #define DEF_SMTP_TLS_LEVEL "${{$compatibility_level} <level {3.11} ?" \ 1501 " {} : {may}}" 1502 #define DEF_LMTP_TLS_LEVEL "" 1503 #else 1504 #define DEF_SMTP_TLS_LEVEL "" 1505 #define DEF_LMTP_TLS_LEVEL "" 1506 #endif 1507 extern char *var_smtp_tls_level; 1508 1509 #define VAR_SMTP_TLS_SCERT_VD "smtp_tls_scert_verifydepth" 1510 #define DEF_SMTP_TLS_SCERT_VD 9 1511 #define VAR_LMTP_TLS_SCERT_VD "lmtp_tls_scert_verifydepth" 1512 #define DEF_LMTP_TLS_SCERT_VD 9 1513 extern int var_smtp_tls_scert_vd; 1514 1515 #define VAR_SMTP_TLS_CHAIN_FILES "smtp_tls_chain_files" 1516 #define DEF_SMTP_TLS_CHAIN_FILES "" 1517 #define VAR_LMTP_TLS_CHAIN_FILES "lmtp_tls_chain_files" 1518 #define DEF_LMTP_TLS_CHAIN_FILES "" 1519 extern char *var_smtp_tls_chain_files; 1520 1521 #define VAR_SMTP_TLS_CERT_FILE "smtp_tls_cert_file" 1522 #define DEF_SMTP_TLS_CERT_FILE "" 1523 #define VAR_LMTP_TLS_CERT_FILE "lmtp_tls_cert_file" 1524 #define DEF_LMTP_TLS_CERT_FILE "" 1525 extern char *var_smtp_tls_cert_file; 1526 1527 #define VAR_SMTP_TLS_KEY_FILE "smtp_tls_key_file" 1528 #define DEF_SMTP_TLS_KEY_FILE "$smtp_tls_cert_file" 1529 #define VAR_LMTP_TLS_KEY_FILE "lmtp_tls_key_file" 1530 #define DEF_LMTP_TLS_KEY_FILE "$lmtp_tls_cert_file" 1531 extern char *var_smtp_tls_key_file; 1532 1533 #define VAR_SMTP_TLS_DCERT_FILE "smtp_tls_dcert_file" 1534 #define DEF_SMTP_TLS_DCERT_FILE "" 1535 #define VAR_LMTP_TLS_DCERT_FILE "lmtp_tls_dcert_file" 1536 #define DEF_LMTP_TLS_DCERT_FILE "" 1537 extern char *var_smtp_tls_dcert_file; 1538 1539 #define VAR_SMTP_TLS_DKEY_FILE "smtp_tls_dkey_file" 1540 #define DEF_SMTP_TLS_DKEY_FILE "$smtp_tls_dcert_file" 1541 #define VAR_LMTP_TLS_DKEY_FILE "lmtp_tls_dkey_file" 1542 #define DEF_LMTP_TLS_DKEY_FILE "$lmtp_tls_dcert_file" 1543 extern char *var_smtp_tls_dkey_file; 1544 1545 #define VAR_SMTP_TLS_ECCERT_FILE "smtp_tls_eccert_file" 1546 #define DEF_SMTP_TLS_ECCERT_FILE "" 1547 #define VAR_LMTP_TLS_ECCERT_FILE "lmtp_tls_eccert_file" 1548 #define DEF_LMTP_TLS_ECCERT_FILE "" 1549 extern char *var_smtp_tls_eccert_file; 1550 1551 #define VAR_SMTP_TLS_ECKEY_FILE "smtp_tls_eckey_file" 1552 #define DEF_SMTP_TLS_ECKEY_FILE "$smtp_tls_eccert_file" 1553 #define VAR_LMTP_TLS_ECKEY_FILE "lmtp_tls_eckey_file" 1554 #define DEF_LMTP_TLS_ECKEY_FILE "$lmtp_tls_eccert_file" 1555 extern char *var_smtp_tls_eckey_file; 1556 1557 #define VAR_SMTP_TLS_CA_FILE "smtp_tls_CAfile" 1558 #define DEF_SMTP_TLS_CA_FILE "" 1559 #define VAR_LMTP_TLS_CA_FILE "lmtp_tls_CAfile" 1560 #define DEF_LMTP_TLS_CA_FILE "" 1561 extern char *var_smtp_tls_CAfile; 1562 1563 #define VAR_SMTP_TLS_CA_PATH "smtp_tls_CApath" 1564 #define DEF_SMTP_TLS_CA_PATH "" 1565 #define VAR_LMTP_TLS_CA_PATH "lmtp_tls_CApath" 1566 #define DEF_LMTP_TLS_CA_PATH "" 1567 extern char *var_smtp_tls_CApath; 1568 1569 #define VAR_SMTP_TLS_CIPH "smtp_tls_ciphers" 1570 #define DEF_SMTP_TLS_CIPH "medium" 1571 #define VAR_LMTP_TLS_CIPH "lmtp_tls_ciphers" 1572 #define DEF_LMTP_TLS_CIPH "medium" 1573 extern char *var_smtp_tls_ciph; 1574 1575 #define VAR_SMTP_TLS_MAND_CIPH "smtp_tls_mandatory_ciphers" 1576 #define DEF_SMTP_TLS_MAND_CIPH "medium" 1577 #define VAR_LMTP_TLS_MAND_CIPH "lmtp_tls_mandatory_ciphers" 1578 #define DEF_LMTP_TLS_MAND_CIPH "medium" 1579 extern char *var_smtp_tls_mand_ciph; 1580 1581 #define VAR_SMTP_TLS_EXCL_CIPH "smtp_tls_exclude_ciphers" 1582 #define DEF_SMTP_TLS_EXCL_CIPH "" 1583 #define VAR_LMTP_TLS_EXCL_CIPH "lmtp_tls_exclude_ciphers" 1584 #define DEF_LMTP_TLS_EXCL_CIPH "" 1585 extern char *var_smtp_tls_excl_ciph; 1586 1587 #define VAR_SMTP_TLS_MAND_EXCL "smtp_tls_mandatory_exclude_ciphers" 1588 #define DEF_SMTP_TLS_MAND_EXCL "" 1589 #define VAR_LMTP_TLS_MAND_EXCL "lmtp_tls_mandatory_exclude_ciphers" 1590 #define DEF_LMTP_TLS_MAND_EXCL "" 1591 extern char *var_smtp_tls_mand_excl; 1592 1593 #define VAR_SMTP_TLS_FPT_DGST "smtp_tls_fingerprint_digest" 1594 #define DEF_SMTP_TLS_FPT_DGST "${{$compatibility_level} <level {3.6} ? " \ 1595 "{md5} : {sha256}}" 1596 #define VAR_LMTP_TLS_FPT_DGST "lmtp_tls_fingerprint_digest" 1597 #define DEF_LMTP_TLS_FPT_DGST "${{$compatibility_level} <level {3.6} ? " \ 1598 "{md5} : {sha256}}" 1599 extern char *var_smtp_tls_fpt_dgst; 1600 1601 #define VAR_SMTP_TLS_ENABLE_RPK "smtp_tls_enable_rpk" 1602 #define DEF_SMTP_TLS_ENABLE_RPK 0 1603 #define VAR_LMTP_TLS_ENABLE_RPK "lmtp_tls_enable_rpk" 1604 #define DEF_LMTP_TLS_ENABLE_RPK 0 1605 extern bool var_smtp_tls_enable_rpk; 1606 1607 #define VAR_SMTP_TLS_TAFILE "smtp_tls_trust_anchor_file" 1608 #define DEF_SMTP_TLS_TAFILE "" 1609 #define VAR_LMTP_TLS_TAFILE "lmtp_tls_trust_anchor_file" 1610 #define DEF_LMTP_TLS_TAFILE "" 1611 extern char *var_smtp_tls_tafile; 1612 1613 #define VAR_SMTP_TLS_LOGLEVEL "smtp_tls_loglevel" 1614 #define DEF_SMTP_TLS_LOGLEVEL "0" 1615 #define VAR_LMTP_TLS_LOGLEVEL "lmtp_tls_loglevel" 1616 #define DEF_LMTP_TLS_LOGLEVEL "0" 1617 extern char *var_smtp_tls_loglevel; /* In smtp(8) and tlsmgr(8) */ 1618 extern char *var_lmtp_tls_loglevel; /* In tlsmgr(8) */ 1619 1620 #define VAR_SMTP_TLS_NOTEOFFER "smtp_tls_note_starttls_offer" 1621 #define DEF_SMTP_TLS_NOTEOFFER 0 1622 #define VAR_LMTP_TLS_NOTEOFFER "lmtp_tls_note_starttls_offer" 1623 #define DEF_LMTP_TLS_NOTEOFFER 0 1624 extern bool var_smtp_tls_note_starttls_offer; 1625 1626 #define VAR_SMTP_TLS_SCACHE_DB "smtp_tls_session_cache_database" 1627 #define DEF_SMTP_TLS_SCACHE_DB "" 1628 #define VAR_LMTP_TLS_SCACHE_DB "lmtp_tls_session_cache_database" 1629 #define DEF_LMTP_TLS_SCACHE_DB "" 1630 extern char *var_smtp_tls_scache_db; 1631 extern char *var_lmtp_tls_scache_db; 1632 1633 #define MAX_SMTP_TLS_SCACHETIME 8640000 1634 #define VAR_SMTP_TLS_SCACHTIME "smtp_tls_session_cache_timeout" 1635 #define DEF_SMTP_TLS_SCACHTIME "3600s" 1636 #define MAX_LMTP_TLS_SCACHETIME 8640000 1637 #define VAR_LMTP_TLS_SCACHTIME "lmtp_tls_session_cache_timeout" 1638 #define DEF_LMTP_TLS_SCACHTIME "3600s" 1639 extern int var_smtp_tls_scache_timeout; 1640 extern int var_lmtp_tls_scache_timeout; 1641 1642 #define VAR_SMTP_TLS_POLICY "smtp_tls_policy_maps" 1643 #define DEF_SMTP_TLS_POLICY "" 1644 #define VAR_LMTP_TLS_POLICY "lmtp_tls_policy_maps" 1645 #define DEF_LMTP_TLS_POLICY "" 1646 extern char *var_smtp_tls_policy; 1647 1648 #define VAR_SMTP_TLS_PROTO "smtp_tls_protocols" 1649 #define DEF_SMTP_TLS_PROTO ">=TLSv1" 1650 #define VAR_LMTP_TLS_PROTO "lmtp_tls_protocols" 1651 #define DEF_LMTP_TLS_PROTO ">=TLSv1" 1652 extern char *var_smtp_tls_proto; 1653 1654 #define VAR_SMTP_TLS_MAND_PROTO "smtp_tls_mandatory_protocols" 1655 #define DEF_SMTP_TLS_MAND_PROTO ">=TLSv1" 1656 #define VAR_LMTP_TLS_MAND_PROTO "lmtp_tls_mandatory_protocols" 1657 #define DEF_LMTP_TLS_MAND_PROTO ">=TLSv1" 1658 extern char *var_smtp_tls_mand_proto; 1659 1660 #define VAR_SMTP_TLS_VFY_CMATCH "smtp_tls_verify_cert_match" 1661 #define DEF_SMTP_TLS_VFY_CMATCH "hostname" 1662 #define VAR_LMTP_TLS_VFY_CMATCH "lmtp_tls_verify_cert_match" 1663 #define DEF_LMTP_TLS_VFY_CMATCH "hostname" 1664 extern char *var_smtp_tls_vfy_cmatch; 1665 1666 /* 1667 * There are no MX lookups for LMTP, so verify == secure 1668 */ 1669 #define VAR_SMTP_TLS_SEC_CMATCH "smtp_tls_secure_cert_match" 1670 #define DEF_SMTP_TLS_SEC_CMATCH "nexthop, dot-nexthop" 1671 #define VAR_LMTP_TLS_SEC_CMATCH "lmtp_tls_secure_cert_match" 1672 #define DEF_LMTP_TLS_SEC_CMATCH "nexthop" 1673 extern char *var_smtp_tls_sec_cmatch; 1674 1675 1676 #define VAR_SMTP_TLS_FPT_CMATCH "smtp_tls_fingerprint_cert_match" 1677 #define DEF_SMTP_TLS_FPT_CMATCH "" 1678 #define VAR_LMTP_TLS_FPT_CMATCH "lmtp_tls_fingerprint_cert_match" 1679 #define DEF_LMTP_TLS_FPT_CMATCH "" 1680 extern char *var_smtp_tls_fpt_cmatch; 1681 1682 #define VAR_SMTP_TLS_SNI "smtp_tls_servername" 1683 #define DEF_SMTP_TLS_SNI "" 1684 #define VAR_LMTP_TLS_SNI "lmtp_tls_servername" 1685 #define DEF_LMTP_TLS_SNI "" 1686 extern char *var_smtp_tls_sni; 1687 1688 #define VAR_SMTP_TLS_BLK_EARLY_MAIL_REPLY "smtp_tls_block_early_mail_reply" 1689 #define DEF_SMTP_TLS_BLK_EARLY_MAIL_REPLY 0 1690 #define VAR_LMTP_TLS_BLK_EARLY_MAIL_REPLY "lmtp_tls_block_early_mail_reply" 1691 #define DEF_LMTP_TLS_BLK_EARLY_MAIL_REPLY 0 1692 extern bool var_smtp_tls_blk_early_mail_reply; 1693 1694 #define VAR_SMTP_TLS_FORCE_TLSA "smtp_tls_force_insecure_host_tlsa_lookup" 1695 #define DEF_SMTP_TLS_FORCE_TLSA 0 1696 #define VAR_LMTP_TLS_FORCE_TLSA "lmtp_tls_force_insecure_host_tlsa_lookup" 1697 #define DEF_LMTP_TLS_FORCE_TLSA 0 1698 extern bool var_smtp_tls_force_tlsa; 1699 1700 /* SMTP only */ 1701 #define VAR_SMTP_TLS_INSECURE_MX_POLICY "smtp_tls_dane_insecure_mx_policy" 1702 #define DEF_SMTP_TLS_INSECURE_MX_POLICY "dane" 1703 extern char *var_smtp_tls_insecure_mx_policy; 1704 1705 /* 1706 * SASL authentication support, SMTP server side. 1707 */ 1708 #define VAR_SMTPD_SASL_ENABLE "smtpd_sasl_auth_enable" 1709 #define DEF_SMTPD_SASL_ENABLE 0 1710 extern bool var_smtpd_sasl_enable; 1711 1712 #define VAR_SMTPD_SASL_AUTH_HDR "smtpd_sasl_authenticated_header" 1713 #define DEF_SMTPD_SASL_AUTH_HDR 0 1714 extern bool var_smtpd_sasl_auth_hdr; 1715 1716 #define VAR_SMTPD_SASL_OPTS "smtpd_sasl_security_options" 1717 #define DEF_SMTPD_SASL_OPTS "noanonymous" 1718 extern char *var_smtpd_sasl_opts; 1719 1720 #define VAR_SMTPD_SASL_PATH "smtpd_sasl_path" 1721 #define DEF_SMTPD_SASL_PATH "smtpd" 1722 extern char *var_smtpd_sasl_path; 1723 1724 #define VAR_SMTPD_SASL_SERVICE "smtpd_sasl_service" 1725 #define DEF_SMTPD_SASL_SERVICE "smtp" 1726 extern char *var_smtpd_sasl_service; 1727 1728 #define VAR_CYRUS_CONF_PATH "cyrus_sasl_config_path" 1729 #define DEF_CYRUS_CONF_PATH "" 1730 extern char *var_cyrus_conf_path; 1731 1732 #define VAR_SMTPD_SASL_TLS_OPTS "smtpd_sasl_tls_security_options" 1733 #define DEF_SMTPD_SASL_TLS_OPTS "$" VAR_SMTPD_SASL_OPTS 1734 extern char *var_smtpd_sasl_tls_opts; 1735 1736 #define VAR_SMTPD_SASL_REALM "smtpd_sasl_local_domain" 1737 #define DEF_SMTPD_SASL_REALM "" 1738 extern char *var_smtpd_sasl_realm; 1739 1740 #define VAR_SMTPD_SASL_EXCEPTIONS_NETWORKS "smtpd_sasl_exceptions_networks" 1741 #define DEF_SMTPD_SASL_EXCEPTIONS_NETWORKS "" 1742 extern char *var_smtpd_sasl_exceptions_networks; 1743 1744 #ifndef DEF_SERVER_SASL_TYPE 1745 #define DEF_SERVER_SASL_TYPE "cyrus" 1746 #endif 1747 1748 #define VAR_SMTPD_SASL_TYPE "smtpd_sasl_type" 1749 #define DEF_SMTPD_SASL_TYPE DEF_SERVER_SASL_TYPE 1750 extern char *var_smtpd_sasl_type; 1751 1752 #define VAR_SMTPD_SND_AUTH_MAPS "smtpd_sender_login_maps" 1753 #define DEF_SMTPD_SND_AUTH_MAPS "" 1754 extern char *var_smtpd_snd_auth_maps; 1755 1756 #define REJECT_SENDER_LOGIN_MISMATCH "reject_sender_login_mismatch" 1757 #define REJECT_AUTH_SENDER_LOGIN_MISMATCH \ 1758 "reject_authenticated_sender_login_mismatch" 1759 #define REJECT_KNOWN_SENDER_LOGIN_MISMATCH \ 1760 "reject_known_sender_login_mismatch" 1761 #define REJECT_UNAUTH_SENDER_LOGIN_MISMATCH \ 1762 "reject_unauthenticated_sender_login_mismatch" 1763 1764 /* 1765 * https://tools.ietf.org/html/rfc4954#page-5 1766 * 1767 * (At the time of writing of this document, 12288 octets is considered to be a 1768 * sufficient line length limit for handling of deployed authentication 1769 * mechanisms.) 1770 * 1771 * The default value is also the minimum permissible value for this parameter. 1772 */ 1773 #define VAR_SMTPD_SASL_RESP_LIMIT "smtpd_sasl_response_limit" 1774 #define DEF_SMTPD_SASL_RESP_LIMIT 12288 1775 extern int var_smtpd_sasl_resp_limit; 1776 1777 /* 1778 * Some backends claim to support EXTERNAL authentication, but Postfix does 1779 * not have code to provide the backend with such credentials. To avoid 1780 * confusing errors, do not announce the EXTERNAL mechanism. 1781 */ 1782 #define VAR_SMTPD_SASL_MECH_FILTER "smtpd_sasl_mechanism_filter" 1783 #define DEF_SMTPD_SASL_MECH_FILTER "!external, static:rest" 1784 extern char *var_smtpd_sasl_mech_filter; 1785 1786 /* 1787 * SASL authentication support, SMTP client side. 1788 */ 1789 #define VAR_SMTP_SASL_ENABLE "smtp_sasl_auth_enable" 1790 #define DEF_SMTP_SASL_ENABLE 0 1791 extern bool var_smtp_sasl_enable; 1792 1793 #define VAR_SMTP_SASL_PASSWD "smtp_sasl_password_maps" 1794 #define DEF_SMTP_SASL_PASSWD "" 1795 extern char *var_smtp_sasl_passwd; 1796 1797 #define VAR_SMTP_SASL_PASSWD_RES_DELIM "smtp_sasl_password_result_delimiter" 1798 #define DEF_SMTP_SASL_PASSWD_RES_DELIM ":" 1799 #define VAR_LMTP_SASL_PASSWD_RES_DELIM "lmtp_sasl_password_result_delimiter" 1800 #define DEF_LMTP_SASL_PASSWD_RES_DELIM DEF_SMTP_SASL_PASSWD_RES_DELIM 1801 extern char *var_smtp_sasl_passwd_res_delim; 1802 1803 #define VAR_SMTP_SASL_OPTS "smtp_sasl_security_options" 1804 #define DEF_SMTP_SASL_OPTS "noplaintext, noanonymous" 1805 extern char *var_smtp_sasl_opts; 1806 1807 #define VAR_SMTP_SASL_PATH "smtp_sasl_path" 1808 #define DEF_SMTP_SASL_PATH "" 1809 extern char *var_smtp_sasl_path; 1810 1811 #define VAR_SMTP_SASL_MECHS "smtp_sasl_mechanism_filter" 1812 #define DEF_SMTP_SASL_MECHS "" 1813 #define VAR_LMTP_SASL_MECHS "lmtp_sasl_mechanism_filter" 1814 #define DEF_LMTP_SASL_MECHS "" 1815 extern char *var_smtp_sasl_mechs; 1816 1817 #ifndef DEF_CLIENT_SASL_TYPE 1818 #define DEF_CLIENT_SASL_TYPE "cyrus" 1819 #endif 1820 1821 #define VAR_SMTP_SASL_TYPE "smtp_sasl_type" 1822 #define DEF_SMTP_SASL_TYPE DEF_CLIENT_SASL_TYPE 1823 #define VAR_LMTP_SASL_TYPE "lmtp_sasl_type" 1824 #define DEF_LMTP_SASL_TYPE DEF_CLIENT_SASL_TYPE 1825 extern char *var_smtp_sasl_type; 1826 1827 #define VAR_SMTP_SASL_TLS_OPTS "smtp_sasl_tls_security_options" 1828 #define DEF_SMTP_SASL_TLS_OPTS "$" VAR_SMTP_SASL_OPTS 1829 #define VAR_LMTP_SASL_TLS_OPTS "lmtp_sasl_tls_security_options" 1830 #define DEF_LMTP_SASL_TLS_OPTS "$" VAR_LMTP_SASL_OPTS 1831 extern char *var_smtp_sasl_tls_opts; 1832 1833 #define VAR_SMTP_SASL_TLSV_OPTS "smtp_sasl_tls_verified_security_options" 1834 #define DEF_SMTP_SASL_TLSV_OPTS "$" VAR_SMTP_SASL_TLS_OPTS 1835 #define VAR_LMTP_SASL_TLSV_OPTS "lmtp_sasl_tls_verified_security_options" 1836 #define DEF_LMTP_SASL_TLSV_OPTS "$" VAR_LMTP_SASL_TLS_OPTS 1837 extern char *var_smtp_sasl_tlsv_opts; 1838 1839 #define VAR_SMTP_DUMMY_MAIL_AUTH "smtp_send_dummy_mail_auth" 1840 #define DEF_SMTP_DUMMY_MAIL_AUTH 0 1841 extern bool var_smtp_dummy_mail_auth; 1842 1843 #define VAR_LMTP_BALANCE_INET_PROTO "lmtp_balance_inet_protocols" 1844 #define DEF_LMTP_BALANCE_INET_PROTO DEF_SMTP_BALANCE_INET_PROTO 1845 #define VAR_SMTP_BALANCE_INET_PROTO "smtp_balance_inet_protocols" 1846 #define DEF_SMTP_BALANCE_INET_PROTO 1 1847 extern bool var_smtp_balance_inet_proto; 1848 1849 /* 1850 * LMTP server. The soft error limit determines how many errors an LMTP 1851 * client may make before we start to slow down; the hard error limit 1852 * determines after how many client errors we disconnect. 1853 */ 1854 #define VAR_LMTPD_BANNER "lmtpd_banner" 1855 #define DEF_LMTPD_BANNER "$myhostname $mail_name" 1856 extern char *var_lmtpd_banner; 1857 1858 #define VAR_LMTPD_TMOUT "lmtpd_timeout" 1859 #define DEF_LMTPD_TMOUT "300s" 1860 extern int var_lmtpd_tmout; 1861 1862 #define VAR_LMTPD_RCPT_LIMIT "lmtpd_recipient_limit" 1863 #define DEF_LMTPD_RCPT_LIMIT 1000 1864 extern int var_lmtpd_rcpt_limit; 1865 1866 #define VAR_LMTPD_SOFT_ERLIM "lmtpd_soft_error_limit" 1867 #define DEF_LMTPD_SOFT_ERLIM 10 1868 extern int var_lmtpd_soft_erlim; 1869 1870 #define VAR_LMTPD_HARD_ERLIM "lmtpd_hard_error_limit" 1871 #define DEF_LMTPD_HARD_ERLIM 100 1872 extern int var_lmtpd_hard_erlim; 1873 1874 #define VAR_LMTPD_ERR_SLEEP "lmtpd_error_sleep_time" 1875 #define DEF_LMTPD_ERR_SLEEP "5s" 1876 extern int var_lmtpd_err_sleep; 1877 1878 #define VAR_LMTPD_JUNK_CMD "lmtpd_junk_command_limit" 1879 #define DEF_LMTPD_JUNK_CMD 1000 1880 extern int var_lmtpd_junk_cmd_limit; 1881 1882 /* 1883 * SASL authentication support, LMTP server side. 1884 */ 1885 #define VAR_LMTPD_SASL_ENABLE "lmtpd_sasl_auth_enable" 1886 #define DEF_LMTPD_SASL_ENABLE 0 1887 extern bool var_lmtpd_sasl_enable; 1888 1889 #define VAR_LMTPD_SASL_OPTS "lmtpd_sasl_security_options" 1890 #define DEF_LMTPD_SASL_OPTS "noanonymous" 1891 extern char *var_lmtpd_sasl_opts; 1892 1893 #define VAR_LMTPD_SASL_REALM "lmtpd_sasl_local_domain" 1894 #define DEF_LMTPD_SASL_REALM "$myhostname" 1895 extern char *var_lmtpd_sasl_realm; 1896 1897 /* 1898 * SASL authentication support, LMTP client side. 1899 */ 1900 #define VAR_LMTP_SASL_ENABLE "lmtp_sasl_auth_enable" 1901 #define DEF_LMTP_SASL_ENABLE 0 1902 extern bool var_lmtp_sasl_enable; 1903 1904 #define VAR_LMTP_SASL_PASSWD "lmtp_sasl_password_maps" 1905 #define DEF_LMTP_SASL_PASSWD "" 1906 extern char *var_lmtp_sasl_passwd; 1907 1908 #define VAR_LMTP_SASL_OPTS "lmtp_sasl_security_options" 1909 #define DEF_LMTP_SASL_OPTS "noplaintext, noanonymous" 1910 extern char *var_lmtp_sasl_opts; 1911 1912 #define VAR_LMTP_SASL_PATH "lmtp_sasl_path" 1913 #define DEF_LMTP_SASL_PATH "" 1914 extern char *var_lmtp_sasl_path; 1915 1916 #define VAR_LMTP_DUMMY_MAIL_AUTH "lmtp_send_dummy_mail_auth" 1917 #define DEF_LMTP_DUMMY_MAIL_AUTH 0 1918 extern bool var_lmtp_dummy_mail_auth; 1919 1920 /* 1921 * SASL-based relay etc. control. 1922 */ 1923 #define PERMIT_SASL_AUTH "permit_sasl_authenticated" 1924 1925 #define VAR_CYRUS_SASL_AUTHZID "send_cyrus_sasl_authzid" 1926 #define DEF_CYRUS_SASL_AUTHZID 0 1927 extern bool var_cyrus_sasl_authzid; 1928 1929 /* 1930 * Special handling of AUTH 535 failures. 1931 */ 1932 #define VAR_SMTP_SASL_AUTH_SOFT_BOUNCE "smtp_sasl_auth_soft_bounce" 1933 #define DEF_SMTP_SASL_AUTH_SOFT_BOUNCE 1 1934 #define VAR_LMTP_SASL_AUTH_SOFT_BOUNCE "lmtp_sasl_auth_soft_bounce" 1935 #define DEF_LMTP_SASL_AUTH_SOFT_BOUNCE 1 1936 extern bool var_smtp_sasl_auth_soft_bounce; 1937 1938 #define VAR_SMTP_SASL_AUTH_CACHE_NAME "smtp_sasl_auth_cache_name" 1939 #define DEF_SMTP_SASL_AUTH_CACHE_NAME "" 1940 #define VAR_LMTP_SASL_AUTH_CACHE_NAME "lmtp_sasl_auth_cache_name" 1941 #define DEF_LMTP_SASL_AUTH_CACHE_NAME "" 1942 extern char *var_smtp_sasl_auth_cache_name; 1943 1944 #define VAR_SMTP_SASL_AUTH_CACHE_TIME "smtp_sasl_auth_cache_time" 1945 #define DEF_SMTP_SASL_AUTH_CACHE_TIME "90d" 1946 #define VAR_LMTP_SASL_AUTH_CACHE_TIME "lmtp_sasl_auth_cache_time" 1947 #define DEF_LMTP_SASL_AUTH_CACHE_TIME "90d" 1948 extern int var_smtp_sasl_auth_cache_time; 1949 1950 #define VAR_SMTP_TCP_PORT "smtp_tcp_port" 1951 #define DEF_SMTP_TCP_PORT "smtp" 1952 extern char *var_smtp_tcp_port; 1953 1954 /* 1955 * LMTP client. Timeouts inspired by RFC 1123. The LMTP recipient limit 1956 * determines how many recipient addresses the LMTP client sends along with 1957 * each message. Unfortunately, some mailers misbehave and disconnect (smap) 1958 * when given more recipients than they are willing to handle. 1959 */ 1960 #define VAR_LMTP_TCP_PORT "lmtp_tcp_port" 1961 #define DEF_LMTP_TCP_PORT "24" 1962 extern char *var_lmtp_tcp_port; 1963 1964 #define VAR_LMTP_ASSUME_FINAL "lmtp_assume_final" 1965 #define DEF_LMTP_ASSUME_FINAL 0 1966 extern bool var_lmtp_assume_final; 1967 1968 #define VAR_LMTP_CACHE_CONN "lmtp_cache_connection" 1969 #define DEF_LMTP_CACHE_CONN 1 1970 extern bool var_lmtp_cache_conn; 1971 1972 #define VAR_LMTP_SKIP_QUIT_RESP "lmtp_skip_quit_response" 1973 #define DEF_LMTP_SKIP_QUIT_RESP 0 1974 extern bool var_lmtp_skip_quit_resp; 1975 1976 #define VAR_LMTP_CONN_TMOUT "lmtp_connect_timeout" 1977 #define DEF_LMTP_CONN_TMOUT "0s" 1978 extern int var_lmtp_conn_tmout; 1979 1980 #define VAR_LMTP_RSET_TMOUT "lmtp_rset_timeout" 1981 #define DEF_LMTP_RSET_TMOUT "20s" 1982 extern int var_lmtp_rset_tmout; 1983 1984 #define VAR_LMTP_LHLO_TMOUT "lmtp_lhlo_timeout" 1985 #define DEF_LMTP_LHLO_TMOUT "300s" 1986 extern int var_lmtp_lhlo_tmout; 1987 1988 #define VAR_LMTP_XFWD_TMOUT "lmtp_xforward_timeout" 1989 #define DEF_LMTP_XFWD_TMOUT "300s" 1990 extern int var_lmtp_xfwd_tmout; 1991 1992 #define VAR_LMTP_MAIL_TMOUT "lmtp_mail_timeout" 1993 #define DEF_LMTP_MAIL_TMOUT "300s" 1994 extern int var_lmtp_mail_tmout; 1995 1996 #define VAR_LMTP_RCPT_TMOUT "lmtp_rcpt_timeout" 1997 #define DEF_LMTP_RCPT_TMOUT "300s" 1998 extern int var_lmtp_rcpt_tmout; 1999 2000 #define VAR_LMTP_DATA0_TMOUT "lmtp_data_init_timeout" 2001 #define DEF_LMTP_DATA0_TMOUT "120s" 2002 extern int var_lmtp_data0_tmout; 2003 2004 #define VAR_LMTP_DATA1_TMOUT "lmtp_data_xfer_timeout" 2005 #define DEF_LMTP_DATA1_TMOUT "180s" 2006 extern int var_lmtp_data1_tmout; 2007 2008 #define VAR_LMTP_DATA2_TMOUT "lmtp_data_done_timeout" 2009 #define DEF_LMTP_DATA2_TMOUT "600s" 2010 extern int var_lmtp_data2_tmout; 2011 2012 #define VAR_LMTP_QUIT_TMOUT "lmtp_quit_timeout" 2013 #define DEF_LMTP_QUIT_TMOUT "300s" 2014 extern int var_lmtp_quit_tmout; 2015 2016 #define VAR_LMTP_SEND_XFORWARD "lmtp_send_xforward_command" 2017 #define DEF_LMTP_SEND_XFORWARD 0 2018 extern bool var_lmtp_send_xforward; 2019 2020 /* 2021 * Cleanup service. Header info that exceeds $header_size_limit bytes or 2022 * $header_address_token_limit tokens is discarded. 2023 */ 2024 #define VAR_HOPCOUNT_LIMIT "hopcount_limit" 2025 #define DEF_HOPCOUNT_LIMIT 50 2026 extern int var_hopcount_limit; 2027 2028 #define VAR_HEADER_LIMIT "header_size_limit" 2029 #define DEF_HEADER_LIMIT 102400 2030 extern int var_header_limit; 2031 2032 #define VAR_TOKEN_LIMIT "header_address_token_limit" 2033 #define DEF_TOKEN_LIMIT 10240 2034 extern int var_token_limit; 2035 2036 #define VAR_VIRT_RECUR_LIMIT "virtual_alias_recursion_limit" 2037 #define DEF_VIRT_RECUR_LIMIT 1000 2038 extern int var_virt_recur_limit; 2039 2040 #define VAR_VIRT_EXPAN_LIMIT "virtual_alias_expansion_limit" 2041 #define DEF_VIRT_EXPAN_LIMIT 1000 2042 extern int var_virt_expan_limit; 2043 2044 #define VAR_VIRT_ADDRLEN_LIMIT "virtual_alias_address_length_limit" 2045 #define DEF_VIRT_ADDRLEN_LIMIT 1000 2046 extern int var_virt_addrlen_limit; 2047 2048 /* 2049 * Message/queue size limits. 2050 */ 2051 #define VAR_MESSAGE_LIMIT "message_size_limit" 2052 #define DEF_MESSAGE_LIMIT 10240000 2053 extern long var_message_limit; 2054 2055 #define VAR_QUEUE_MINFREE "queue_minfree" 2056 #define DEF_QUEUE_MINFREE 0 2057 extern long var_queue_minfree; 2058 2059 /* 2060 * Light-weight content inspection. 2061 */ 2062 #define VAR_HEADER_CHECKS "header_checks" 2063 #define DEF_HEADER_CHECKS "" 2064 extern char *var_header_checks; 2065 2066 #define VAR_MIMEHDR_CHECKS "mime_header_checks" 2067 #define DEF_MIMEHDR_CHECKS "$header_checks" 2068 extern char *var_mimehdr_checks; 2069 2070 #define VAR_NESTHDR_CHECKS "nested_header_checks" 2071 #define DEF_NESTHDR_CHECKS "$header_checks" 2072 extern char *var_nesthdr_checks; 2073 2074 #define VAR_BODY_CHECKS "body_checks" 2075 #define DEF_BODY_CHECKS "" 2076 extern char *var_body_checks; 2077 2078 #define VAR_BODY_CHECK_LEN "body_checks_size_limit" 2079 #define DEF_BODY_CHECK_LEN (50*1024) 2080 extern int var_body_check_len; 2081 2082 /* 2083 * Bounce service: truncate bounce message that exceed $bounce_size_limit. 2084 */ 2085 #define VAR_BOUNCE_LIMIT "bounce_size_limit" 2086 #define DEF_BOUNCE_LIMIT 50000 2087 extern int var_bounce_limit; 2088 2089 /* 2090 * Bounce service: reserved sender address for double bounces. The local 2091 * delivery service discards undeliverable double bounces. 2092 */ 2093 #define VAR_DOUBLE_BOUNCE "double_bounce_sender" 2094 #define DEF_DOUBLE_BOUNCE "double-bounce" 2095 extern char *var_double_bounce_sender; 2096 2097 /* 2098 * Bounce service: enable threaded bounces, with References: and 2099 * In-Reply-To:. 2100 */ 2101 #define VAR_THREADED_BOUNCE "enable_threaded_bounces" 2102 #define DEF_THREADED_BOUNCE CONFIG_BOOL_NO 2103 extern bool var_threaded_bounce; 2104 2105 /* 2106 * When forking a process, how often to try and how long to wait. 2107 */ 2108 #define VAR_FORK_TRIES "fork_attempts" 2109 #define DEF_FORK_TRIES 5 2110 extern int var_fork_tries; 2111 2112 #define VAR_FORK_DELAY "fork_delay" 2113 #define DEF_FORK_DELAY "1s" 2114 extern int var_fork_delay; 2115 2116 /* 2117 * When locking a mailbox, how often to try and how long to wait. 2118 */ 2119 #define VAR_FLOCK_TRIES "deliver_lock_attempts" 2120 #define DEF_FLOCK_TRIES 20 2121 extern int var_flock_tries; 2122 2123 #define VAR_FLOCK_DELAY "deliver_lock_delay" 2124 #define DEF_FLOCK_DELAY "1s" 2125 extern int var_flock_delay; 2126 2127 #define VAR_FLOCK_STALE "stale_lock_time" 2128 #define DEF_FLOCK_STALE "500s" 2129 extern int var_flock_stale; 2130 2131 #define VAR_MAILTOOL_COMPAT "sun_mailtool_compatibility" 2132 #define DEF_MAILTOOL_COMPAT 0 2133 extern bool var_mailtool_compat; 2134 2135 /* 2136 * How long a daemon command may take to receive or deliver a message etc. 2137 * before we assume it is wedged (should never happen). 2138 */ 2139 #define VAR_DAEMON_TIMEOUT "daemon_timeout" 2140 #define DEF_DAEMON_TIMEOUT "18000s" 2141 extern int var_daemon_timeout; 2142 2143 #define VAR_QMGR_DAEMON_TIMEOUT "qmgr_daemon_timeout" 2144 #define DEF_QMGR_DAEMON_TIMEOUT "1000s" 2145 extern int var_qmgr_daemon_timeout; 2146 2147 /* 2148 * How long an intra-mail command may take before we assume the mail system 2149 * is in deadlock (should never happen). 2150 */ 2151 #define VAR_IPC_TIMEOUT "ipc_timeout" 2152 #define DEF_IPC_TIMEOUT "3600s" 2153 extern int var_ipc_timeout; 2154 2155 #define VAR_QMGR_IPC_TIMEOUT "qmgr_ipc_timeout" 2156 #define DEF_QMGR_IPC_TIMEOUT "60s" 2157 extern int var_qmgr_ipc_timeout; 2158 2159 /* 2160 * Time limit on intra-mail triggers. 2161 */ 2162 #define VAR_TRIGGER_TIMEOUT "trigger_timeout" 2163 #define DEF_TRIGGER_TIMEOUT "10s" 2164 extern int var_trigger_timeout; 2165 2166 /* 2167 * SMTP server restrictions. What networks I am willing to relay from, what 2168 * domains I am willing to forward mail from or to, what clients I refuse to 2169 * talk to, and what domains I never want to see in the sender address. 2170 */ 2171 #define VAR_MYNETWORKS "mynetworks" 2172 extern char *var_mynetworks; 2173 2174 #define VAR_MYNETWORKS_STYLE "mynetworks_style" 2175 #define DEF_MYNETWORKS_STYLE "${{$compatibility_level} <level {2} ? " \ 2176 "{" MYNETWORKS_STYLE_SUBNET "} : " \ 2177 "{" MYNETWORKS_STYLE_HOST "}}" 2178 extern char *var_mynetworks_style; 2179 2180 #define MYNETWORKS_STYLE_CLASS "class" 2181 #define MYNETWORKS_STYLE_SUBNET "subnet" 2182 #define MYNETWORKS_STYLE_HOST "host" 2183 2184 #define VAR_RELAY_DOMAINS "relay_domains" 2185 #define DEF_RELAY_DOMAINS "${{$compatibility_level} <level {2} ? " \ 2186 "{$mydestination} : {}}" 2187 extern char *var_relay_domains; 2188 2189 #define VAR_RELAY_TRANSPORT "relay_transport" 2190 #define DEF_RELAY_TRANSPORT MAIL_SERVICE_RELAY 2191 extern char *var_relay_transport; 2192 2193 #define VAR_RELAY_RCPT_MAPS "relay_recipient_maps" 2194 #define DEF_RELAY_RCPT_MAPS "" 2195 extern char *var_relay_rcpt_maps; 2196 2197 #define VAR_RELAY_RCPT_CODE "unknown_relay_recipient_reject_code" 2198 #define DEF_RELAY_RCPT_CODE 550 2199 extern int var_relay_rcpt_code; 2200 2201 #define VAR_RELAY_CCERTS "relay_clientcerts" 2202 #define DEF_RELAY_CCERTS "" 2203 extern char *var_smtpd_relay_ccerts; 2204 2205 #define VAR_CLIENT_CHECKS "smtpd_client_restrictions" 2206 #define DEF_CLIENT_CHECKS "" 2207 extern char *var_client_checks; 2208 2209 #define VAR_HELO_REQUIRED "smtpd_helo_required" 2210 #define DEF_HELO_REQUIRED 0 2211 extern bool var_helo_required; 2212 2213 #define VAR_HELO_CHECKS "smtpd_helo_restrictions" 2214 #define DEF_HELO_CHECKS "" 2215 extern char *var_helo_checks; 2216 2217 #define VAR_MAIL_CHECKS "smtpd_sender_restrictions" 2218 #define DEF_MAIL_CHECKS "" 2219 extern char *var_mail_checks; 2220 2221 #define VAR_RELAY_CHECKS "smtpd_relay_restrictions" 2222 #define DEF_RELAY_CHECKS "${{$compatibility_level} <level {1} ? " \ 2223 "{} : {" PERMIT_MYNETWORKS ", " \ 2224 PERMIT_SASL_AUTH ", " \ 2225 DEFER_UNAUTH_DEST "}}" 2226 extern char *var_relay_checks; 2227 2228 /* 2229 * For warn_compat_break_relay_domains check. Same as DEF_RELAY_CHECKS 2230 * except that it evaluates to DUNNO instead of REJECT. 2231 */ 2232 #define FAKE_RELAY_CHECKS PERMIT_MYNETWORKS ", " \ 2233 PERMIT_SASL_AUTH ", " \ 2234 PERMIT_AUTH_DEST 2235 2236 #define VAR_RCPT_CHECKS "smtpd_recipient_restrictions" 2237 #define DEF_RCPT_CHECKS "" 2238 extern char *var_rcpt_checks; 2239 2240 #define VAR_RELAY_BEFORE_RCPT_CHECKS "smtpd_relay_before_recipient_restrictions" 2241 #define DEF_RELAY_BEFORE_RCPT_CHECKS "${{$compatibility_level} <level {3.6} ?" \ 2242 " {no} : {yes}}" 2243 extern bool var_relay_before_rcpt_checks; 2244 2245 #define VAR_ETRN_CHECKS "smtpd_etrn_restrictions" 2246 #define DEF_ETRN_CHECKS "" 2247 extern char *var_etrn_checks; 2248 2249 #define VAR_DATA_CHECKS "smtpd_data_restrictions" 2250 #define DEF_DATA_CHECKS "" 2251 extern char *var_data_checks; 2252 2253 #define VAR_EOD_CHECKS "smtpd_end_of_data_restrictions" 2254 #define DEF_EOD_CHECKS "" 2255 extern char *var_eod_checks; 2256 2257 #define VAR_REST_CLASSES "smtpd_restriction_classes" 2258 #define DEF_REST_CLASSES "" 2259 extern char *var_rest_classes; 2260 2261 #define VAR_ALLOW_UNTRUST_ROUTE "allow_untrusted_routing" 2262 #define DEF_ALLOW_UNTRUST_ROUTE 0 2263 extern bool var_allow_untrust_route; 2264 2265 /* 2266 * Names of specific restrictions, and the corresponding configuration 2267 * parameters that control the status codes sent in response to rejected 2268 * requests. 2269 */ 2270 #define PERMIT_ALL "permit" 2271 #define REJECT_ALL "reject" 2272 #define VAR_REJECT_CODE "reject_code" 2273 #define DEF_REJECT_CODE 554 2274 extern int var_reject_code; 2275 2276 #define DEFER_ALL "defer" 2277 #define VAR_DEFER_CODE "defer_code" 2278 #define DEF_DEFER_CODE 450 2279 extern int var_defer_code; 2280 2281 #define DEFER_IF_PERMIT "defer_if_permit" 2282 #define DEFER_IF_REJECT "defer_if_reject" 2283 2284 #define VAR_REJECT_TMPF_ACT "reject_tempfail_action" 2285 #define DEF_REJECT_TMPF_ACT DEFER_IF_PERMIT 2286 extern char *var_reject_tmpf_act; 2287 2288 #define SLEEP "sleep" 2289 2290 #define REJECT_PLAINTEXT_SESSION "reject_plaintext_session" 2291 #define VAR_PLAINTEXT_CODE "plaintext_reject_code" 2292 #define DEF_PLAINTEXT_CODE 450 2293 extern int var_plaintext_code; 2294 2295 #define REJECT_UNKNOWN_CLIENT "reject_unknown_client" 2296 #define REJECT_UNKNOWN_CLIENT_HOSTNAME "reject_unknown_client_hostname" 2297 #define REJECT_UNKNOWN_REVERSE_HOSTNAME "reject_unknown_reverse_client_hostname" 2298 #define REJECT_UNKNOWN_FORWARD_HOSTNAME "reject_unknown_forward_client_hostname" 2299 #define VAR_UNK_CLIENT_CODE "unknown_client_reject_code" 2300 #define DEF_UNK_CLIENT_CODE 450 2301 extern int var_unk_client_code; 2302 2303 #define PERMIT_INET_INTERFACES "permit_inet_interfaces" 2304 2305 #define PERMIT_MYNETWORKS "permit_mynetworks" 2306 2307 #define PERMIT_NAKED_IP_ADDR "permit_naked_ip_address" 2308 2309 #define REJECT_INVALID_HELO_HOSTNAME "reject_invalid_helo_hostname" 2310 #define REJECT_INVALID_HOSTNAME "reject_invalid_hostname" 2311 #define VAR_BAD_NAME_CODE "invalid_hostname_reject_code" 2312 #define DEF_BAD_NAME_CODE 501 /* SYNTAX */ 2313 extern int var_bad_name_code; 2314 2315 #define REJECT_UNKNOWN_HELO_HOSTNAME "reject_unknown_helo_hostname" 2316 #define REJECT_UNKNOWN_HOSTNAME "reject_unknown_hostname" 2317 #define VAR_UNK_NAME_CODE "unknown_hostname_reject_code" 2318 #define DEF_UNK_NAME_CODE 450 2319 extern int var_unk_name_code; 2320 2321 #define VAR_UNK_NAME_TF_ACT "unknown_helo_hostname_tempfail_action" 2322 #define DEF_UNK_NAME_TF_ACT "$" VAR_REJECT_TMPF_ACT 2323 extern char *var_unk_name_tf_act; 2324 2325 #define REJECT_NON_FQDN_HELO_HOSTNAME "reject_non_fqdn_helo_hostname" 2326 #define REJECT_NON_FQDN_HOSTNAME "reject_non_fqdn_hostname" 2327 #define REJECT_NON_FQDN_SENDER "reject_non_fqdn_sender" 2328 #define REJECT_NON_FQDN_RCPT "reject_non_fqdn_recipient" 2329 #define VAR_NON_FQDN_CODE "non_fqdn_reject_code" 2330 #define DEF_NON_FQDN_CODE 504 /* POLICY */ 2331 extern int var_non_fqdn_code; 2332 2333 #define REJECT_UNKNOWN_SENDDOM "reject_unknown_sender_domain" 2334 #define REJECT_UNKNOWN_RCPTDOM "reject_unknown_recipient_domain" 2335 #define REJECT_UNKNOWN_ADDRESS "reject_unknown_address" 2336 #define REJECT_UNLISTED_SENDER "reject_unlisted_sender" 2337 #define REJECT_UNLISTED_RCPT "reject_unlisted_recipient" 2338 #define CHECK_RCPT_MAPS "check_recipient_maps" 2339 2340 #define VAR_UNK_ADDR_CODE "unknown_address_reject_code" 2341 #define DEF_UNK_ADDR_CODE 450 2342 extern int var_unk_addr_code; 2343 2344 #define VAR_UNK_ADDR_TF_ACT "unknown_address_tempfail_action" 2345 #define DEF_UNK_ADDR_TF_ACT "$" VAR_REJECT_TMPF_ACT 2346 extern char *var_unk_addr_tf_act; 2347 2348 #define VAR_SMTPD_REJ_UNL_FROM "smtpd_reject_unlisted_sender" 2349 #define DEF_SMTPD_REJ_UNL_FROM 0 2350 extern bool var_smtpd_rej_unl_from; 2351 2352 #define VAR_SMTPD_REJ_UNL_RCPT "smtpd_reject_unlisted_recipient" 2353 #define DEF_SMTPD_REJ_UNL_RCPT 1 2354 extern bool var_smtpd_rej_unl_rcpt; 2355 2356 #define REJECT_UNVERIFIED_RECIP "reject_unverified_recipient" 2357 #define VAR_UNV_RCPT_RCODE "unverified_recipient_reject_code" 2358 #define DEF_UNV_RCPT_RCODE 450 2359 extern int var_unv_rcpt_rcode; 2360 2361 #define REJECT_UNVERIFIED_SENDER "reject_unverified_sender" 2362 #define VAR_UNV_FROM_RCODE "unverified_sender_reject_code" 2363 #define DEF_UNV_FROM_RCODE 450 2364 extern int var_unv_from_rcode; 2365 2366 #define VAR_UNV_RCPT_DCODE "unverified_recipient_defer_code" 2367 #define DEF_UNV_RCPT_DCODE 450 2368 extern int var_unv_rcpt_dcode; 2369 2370 #define VAR_UNV_FROM_DCODE "unverified_sender_defer_code" 2371 #define DEF_UNV_FROM_DCODE 450 2372 extern int var_unv_from_dcode; 2373 2374 #define VAR_UNV_RCPT_TF_ACT "unverified_recipient_tempfail_action" 2375 #define DEF_UNV_RCPT_TF_ACT "$" VAR_REJECT_TMPF_ACT 2376 extern char *var_unv_rcpt_tf_act; 2377 2378 #define VAR_UNV_FROM_TF_ACT "unverified_sender_tempfail_action" 2379 #define DEF_UNV_FROM_TF_ACT "$" VAR_REJECT_TMPF_ACT 2380 extern char *var_unv_from_tf_act; 2381 2382 #define VAR_UNV_RCPT_WHY "unverified_recipient_reject_reason" 2383 #define DEF_UNV_RCPT_WHY "" 2384 extern char *var_unv_rcpt_why; 2385 2386 #define VAR_UNV_FROM_WHY "unverified_sender_reject_reason" 2387 #define DEF_UNV_FROM_WHY "" 2388 extern char *var_unv_from_why; 2389 2390 #define REJECT_MUL_RCPT_BOUNCE "reject_multi_recipient_bounce" 2391 #define VAR_MUL_RCPT_CODE "multi_recipient_bounce_reject_code" 2392 #define DEF_MUL_RCPT_CODE 550 2393 extern int var_mul_rcpt_code; 2394 2395 #define PERMIT_AUTH_DEST "permit_auth_destination" 2396 #define REJECT_UNAUTH_DEST "reject_unauth_destination" 2397 #define DEFER_UNAUTH_DEST "defer_unauth_destination" 2398 #define CHECK_RELAY_DOMAINS "check_relay_domains" 2399 #define PERMIT_TLS_CLIENTCERTS "permit_tls_clientcerts" 2400 #define PERMIT_TLS_ALL_CLIENTCERTS "permit_tls_all_clientcerts" 2401 #define VAR_RELAY_CODE "relay_domains_reject_code" 2402 #define DEF_RELAY_CODE 554 2403 extern int var_relay_code; 2404 2405 #define PERMIT_MX_BACKUP "permit_mx_backup" 2406 2407 #define VAR_PERM_MX_NETWORKS "permit_mx_backup_networks" 2408 #define DEF_PERM_MX_NETWORKS "" 2409 extern char *var_perm_mx_networks; 2410 2411 #define VAR_MAP_REJECT_CODE "access_map_reject_code" 2412 #define DEF_MAP_REJECT_CODE 554 2413 extern int var_map_reject_code; 2414 2415 #define VAR_MAP_DEFER_CODE "access_map_defer_code" 2416 #define DEF_MAP_DEFER_CODE 450 2417 extern int var_map_defer_code; 2418 2419 #define CHECK_CLIENT_ACL "check_client_access" 2420 #define CHECK_REVERSE_CLIENT_ACL "check_reverse_client_hostname_access" 2421 #define CHECK_CCERT_ACL "check_ccert_access" 2422 #define CHECK_SASL_ACL "check_sasl_access" 2423 #define CHECK_HELO_ACL "check_helo_access" 2424 #define CHECK_SENDER_ACL "check_sender_access" 2425 #define CHECK_RECIP_ACL "check_recipient_access" 2426 #define CHECK_ETRN_ACL "check_etrn_access" 2427 2428 #define CHECK_CLIENT_MX_ACL "check_client_mx_access" 2429 #define CHECK_REVERSE_CLIENT_MX_ACL "check_reverse_client_hostname_mx_access" 2430 #define CHECK_HELO_MX_ACL "check_helo_mx_access" 2431 #define CHECK_SENDER_MX_ACL "check_sender_mx_access" 2432 #define CHECK_RECIP_MX_ACL "check_recipient_mx_access" 2433 #define CHECK_CLIENT_NS_ACL "check_client_ns_access" 2434 #define CHECK_REVERSE_CLIENT_NS_ACL "check_reverse_client_hostname_ns_access" 2435 #define CHECK_HELO_NS_ACL "check_helo_ns_access" 2436 #define CHECK_SENDER_NS_ACL "check_sender_ns_access" 2437 #define CHECK_RECIP_NS_ACL "check_recipient_ns_access" 2438 #define CHECK_CLIENT_A_ACL "check_client_a_access" 2439 #define CHECK_REVERSE_CLIENT_A_ACL "check_reverse_client_hostname_a_access" 2440 #define CHECK_HELO_A_ACL "check_helo_a_access" 2441 #define CHECK_SENDER_A_ACL "check_sender_a_access" 2442 #define CHECK_RECIP_A_ACL "check_recipient_a_access" 2443 2444 #define WARN_IF_REJECT "warn_if_reject" 2445 2446 #define REJECT_RBL "reject_rbl" /* LaMont compatibility */ 2447 #define REJECT_RBL_CLIENT "reject_rbl_client" 2448 #define REJECT_RHSBL_CLIENT "reject_rhsbl_client" 2449 #define REJECT_RHSBL_REVERSE_CLIENT "reject_rhsbl_reverse_client" 2450 #define REJECT_RHSBL_HELO "reject_rhsbl_helo" 2451 #define REJECT_RHSBL_SENDER "reject_rhsbl_sender" 2452 #define REJECT_RHSBL_RECIPIENT "reject_rhsbl_recipient" 2453 2454 #define PERMIT_DNSWL_CLIENT "permit_dnswl_client" 2455 #define PERMIT_RHSWL_CLIENT "permit_rhswl_client" 2456 2457 #define VAR_RBL_REPLY_MAPS "rbl_reply_maps" 2458 #define DEF_RBL_REPLY_MAPS "" 2459 extern char *var_rbl_reply_maps; 2460 2461 #define VAR_DEF_RBL_REPLY "default_rbl_reply" 2462 #define DEF_DEF_RBL_REPLY "$rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}" 2463 extern char *var_def_rbl_reply; 2464 2465 #define REJECT_MAPS_RBL "reject_maps_rbl" /* backwards compat */ 2466 #define VAR_MAPS_RBL_CODE "maps_rbl_reject_code" 2467 #define DEF_MAPS_RBL_CODE 554 2468 extern int var_maps_rbl_code; 2469 2470 #define VAR_MAPS_RBL_DOMAINS "maps_rbl_domains" /* backwards compat */ 2471 #define DEF_MAPS_RBL_DOMAINS "" 2472 extern char *var_maps_rbl_domains; 2473 2474 #define VAR_SMTPD_DELAY_REJECT "smtpd_delay_reject" 2475 #define DEF_SMTPD_DELAY_REJECT 1 2476 extern bool var_smtpd_delay_reject; 2477 2478 #define REJECT_UNAUTH_PIPE "reject_unauth_pipelining" 2479 2480 #define VAR_SMTPD_NULL_KEY "smtpd_null_access_lookup_key" 2481 #define DEF_SMTPD_NULL_KEY "<>" 2482 extern char *var_smtpd_null_key; 2483 2484 #define VAR_SMTPD_EXP_FILTER "smtpd_expansion_filter" 2485 #define DEF_SMTPD_EXP_FILTER "\\t\\40!\"#$%&'()*+,-./0123456789:;<=>?@\ 2486 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`\ 2487 abcdefghijklmnopqrstuvwxyz{|}~" 2488 extern char *var_smtpd_exp_filter; 2489 2490 #define VAR_SMTPD_PEERNAME_LOOKUP "smtpd_peername_lookup" 2491 #define DEF_SMTPD_PEERNAME_LOOKUP 1 2492 extern bool var_smtpd_peername_lookup; 2493 2494 #define VAR_SMTPD_FORBID_UNAUTH_PIPE "smtpd_forbid_unauth_pipelining" 2495 #define DEF_SMTPD_FORBID_UNAUTH_PIPE 1 2496 extern bool var_smtpd_forbid_unauth_pipe; 2497 2498 /* 2499 * Heuristic to reject unknown local recipients at the SMTP port. 2500 */ 2501 #define VAR_LOCAL_RCPT_MAPS "local_recipient_maps" 2502 #define DEF_LOCAL_RCPT_MAPS "proxy:unix:passwd.byname $" VAR_ALIAS_MAPS 2503 extern char *var_local_rcpt_maps; 2504 2505 #define VAR_LOCAL_RCPT_CODE "unknown_local_recipient_reject_code" 2506 #define DEF_LOCAL_RCPT_CODE 550 2507 extern int var_local_rcpt_code; 2508 2509 /* 2510 * List of pre-approved maps that are OK to open with the proxymap service. 2511 */ 2512 #define VAR_PROXY_READ_MAPS "proxy_read_maps" 2513 #define DEF_PROXY_READ_MAPS "$" VAR_LOCAL_RCPT_MAPS \ 2514 " $" VAR_MYDEST \ 2515 " $" VAR_VIRT_ALIAS_MAPS \ 2516 " $" VAR_VIRT_ALIAS_DOMS \ 2517 " $" VAR_VIRT_MAILBOX_MAPS \ 2518 " $" VAR_VIRT_MAILBOX_DOMS \ 2519 " $" VAR_RELAY_RCPT_MAPS \ 2520 " $" VAR_RELAY_DOMAINS \ 2521 " $" VAR_CANONICAL_MAPS \ 2522 " $" VAR_SEND_CANON_MAPS \ 2523 " $" VAR_RCPT_CANON_MAPS \ 2524 " $" VAR_RELOCATED_MAPS \ 2525 " $" VAR_TRANSPORT_MAPS \ 2526 " $" VAR_MYNETWORKS \ 2527 " $" VAR_SMTPD_SND_AUTH_MAPS \ 2528 " $" VAR_SEND_BCC_MAPS \ 2529 " $" VAR_RCPT_BCC_MAPS \ 2530 " $" VAR_SMTP_GENERIC_MAPS \ 2531 " $" VAR_LMTP_GENERIC_MAPS \ 2532 " $" VAR_ALIAS_MAPS \ 2533 " $" VAR_CLIENT_CHECKS \ 2534 " $" VAR_HELO_CHECKS \ 2535 " $" VAR_MAIL_CHECKS \ 2536 " $" VAR_RELAY_CHECKS \ 2537 " $" VAR_RCPT_CHECKS \ 2538 " $" VAR_VRFY_SND_DEF_XPORT_MAPS \ 2539 " $" VAR_VRFY_RELAY_MAPS \ 2540 " $" VAR_VRFY_XPORT_MAPS \ 2541 " $" VAR_FBCK_TRANSP_MAPS \ 2542 " $" VAR_LMTP_EHLO_DIS_MAPS \ 2543 " $" VAR_LMTP_PIX_BUG_MAPS \ 2544 " $" VAR_LMTP_SASL_PASSWD \ 2545 " $" VAR_LMTP_TLS_POLICY \ 2546 " $" VAR_MAILBOX_CMD_MAPS \ 2547 " $" VAR_MBOX_TRANSP_MAPS \ 2548 " $" VAR_PSC_EHLO_DIS_MAPS \ 2549 " $" VAR_RBL_REPLY_MAPS \ 2550 " $" VAR_SND_DEF_XPORT_MAPS \ 2551 " $" VAR_SND_RELAY_MAPS \ 2552 " $" VAR_SMTP_EHLO_DIS_MAPS \ 2553 " $" VAR_SMTP_PIX_BUG_MAPS \ 2554 " $" VAR_SMTP_SASL_PASSWD \ 2555 " $" VAR_SMTP_TLS_POLICY \ 2556 " $" VAR_SMTPD_EHLO_DIS_MAPS \ 2557 " $" VAR_SMTPD_MILTER_MAPS \ 2558 " $" VAR_VIRT_GID_MAPS \ 2559 " $" VAR_VIRT_UID_MAPS \ 2560 " $" VAR_LOCAL_LOGIN_SND_MAPS \ 2561 " $" VAR_PSC_REJ_FTR_MAPS \ 2562 " $" VAR_SMTPD_REJ_FTR_MAPS \ 2563 " $" VAR_TLS_SERVER_SNI_MAPS \ 2564 " $" VAR_TLSP_CLNT_POLICY \ 2565 " $" VAR_DSN_FILTER \ 2566 " $" VAR_LMTP_DSN_FILTER \ 2567 " $" VAR_LMTP_DNS_RE_FILTER \ 2568 " $" VAR_LMTP_RESP_FILTER \ 2569 " $" VAR_LOCAL_DSN_FILTER \ 2570 " $" VAR_PIPE_DSN_FILTER \ 2571 " $" VAR_PSC_CMD_FILTER \ 2572 " $" VAR_SMTP_DSN_FILTER \ 2573 " $" VAR_SMTP_DNS_RE_FILTER \ 2574 " $" VAR_SMTP_RESP_FILTER \ 2575 " $" VAR_SMTPD_CMD_FILTER \ 2576 " $" VAR_SMTPD_DNS_RE_FILTER \ 2577 " $" VAR_VIRT_DSN_FILTER \ 2578 " $" VAR_BODY_CHECKS \ 2579 " $" VAR_HEADER_CHECKS \ 2580 " $" VAR_LMTP_BODY_CHKS \ 2581 " $" VAR_LMTP_HEAD_CHKS \ 2582 " $" VAR_LMTP_MIME_CHKS \ 2583 " $" VAR_LMTP_NEST_CHKS \ 2584 " $" VAR_MILT_HEAD_CHECKS \ 2585 " $" VAR_MIMEHDR_CHECKS \ 2586 " $" VAR_NESTHDR_CHECKS \ 2587 " $" VAR_SMTP_BODY_CHKS \ 2588 " $" VAR_SMTP_HEAD_CHKS \ 2589 " $" VAR_SMTP_MIME_CHKS \ 2590 " $" VAR_SMTP_NEST_CHKS \ 2591 " $" VAR_SMTPD_REJECT_FILTER_MAPS \ 2592 " $" VAR_DEBUG_PEER_LIST \ 2593 " $" VAR_ETRN_CHECKS \ 2594 " $" VAR_FFLUSH_DOMAINS \ 2595 " $" VAR_FLUSH_ACL \ 2596 " $" VAR_LMTP_CACHE_DEST \ 2597 " $" VAR_LOC_RWR_CLIENTS \ 2598 " $" VAR_MASQ_EXCEPTIONS \ 2599 " $" VAR_PSC_ACL \ 2600 " $" VAR_PSC_ALLIST_IF \ 2601 " $" VAR_PSC_FORBID_CMDS \ 2602 " $" VAR_QMQPD_CLIENTS \ 2603 " $" VAR_SHOWQ_ACL \ 2604 " $" VAR_SMTP_CACHE_DEST \ 2605 " $" VAR_SMTPD_ACL_PERM_LOG \ 2606 " $" VAR_SMTPD_FORBID_CMDS \ 2607 " $" VAR_SMTPD_HOGGERS \ 2608 " $" VAR_SMTPD_SASL_EXCEPTIONS_NETWORKS \ 2609 " $" VAR_SMTPD_SASL_MECH_FILTER \ 2610 " $" VAR_SMTP_REQTLS_POLICY \ 2611 " $" VAR_SMTP_SASL_MECHS \ 2612 " $" VAR_SUBMIT_ACL \ 2613 " $" VAR_VERP_CLIENTS \ 2614 " $" VAR_XCLIENT_HOSTS \ 2615 " $" VAR_XFORWARD_HOSTS \ 2616 2617 extern char *var_proxy_read_maps; 2618 2619 #define VAR_PROXY_WRITE_MAPS "proxy_write_maps" 2620 #define DEF_PROXY_WRITE_MAPS "$" VAR_SMTP_SASL_AUTH_CACHE_NAME \ 2621 " $" VAR_LMTP_SASL_AUTH_CACHE_NAME \ 2622 " $" VAR_VERIFY_MAP \ 2623 " $" VAR_PSC_CACHE_MAP 2624 extern char *var_proxy_write_maps; 2625 2626 #define VAR_PROXY_READ_ACL "proxy_read_access_list" 2627 #define DEF_PROXY_READ_ACL "reject" 2628 extern char *var_proxy_read_acl; 2629 2630 #define VAR_PROXY_WRITE_ACL "proxy_write_access_list" 2631 #define DEF_PROXY_WRITE_ACL "reject" 2632 extern char *var_proxy_write_acl; 2633 2634 /* 2635 * Other. 2636 */ 2637 #define VAR_PROCNAME "process_name" 2638 extern char *var_procname; 2639 2640 #define VAR_SERVNAME "service_name" 2641 #define DEF_SERVNAME "amnesiac" 2642 extern char *var_servname; 2643 2644 #define VAR_PID "process_id" 2645 extern int var_pid; 2646 2647 #define VAR_DEBUG_COMMAND "debugger_command" 2648 2649 /* 2650 * Paranoia: save files instead of deleting them. 2651 */ 2652 #define VAR_DONT_REMOVE "dont_remove" 2653 #define DEF_DONT_REMOVE 0 2654 extern int var_dont_remove; 2655 2656 /* 2657 * Paranoia: defer messages instead of bouncing them. 2658 */ 2659 #define VAR_SOFT_BOUNCE "soft_bounce" 2660 #define DEF_SOFT_BOUNCE 0 2661 extern bool var_soft_bounce; 2662 2663 /* 2664 * Give special treatment to owner- and -request. 2665 */ 2666 #define VAR_OWNREQ_SPECIAL "owner_request_special" 2667 #define DEF_OWNREQ_SPECIAL 1 2668 extern bool var_ownreq_special; 2669 2670 /* 2671 * Allow/disallow recipient addresses starting with `-'. 2672 */ 2673 #define VAR_ALLOW_MIN_USER "allow_min_user" 2674 #define DEF_ALLOW_MIN_USER 0 2675 extern bool var_allow_min_user; 2676 2677 extern void mail_params_init(void); 2678 2679 /* 2680 * Content inspection and filtering. 2681 */ 2682 #define VAR_FILTER_XPORT "content_filter" 2683 #define DEF_FILTER_XPORT "" 2684 extern char *var_filter_xport; 2685 2686 #define VAR_DEF_FILTER_NEXTHOP "default_filter_nexthop" 2687 #define DEF_DEF_FILTER_NEXTHOP "" 2688 extern char *var_def_filter_nexthop; 2689 2690 /* 2691 * Fast flush service support. 2692 */ 2693 #define VAR_FFLUSH_DOMAINS "fast_flush_domains" 2694 #define DEF_FFLUSH_DOMAINS "$relay_domains" 2695 extern char *var_fflush_domains; 2696 2697 #define VAR_FFLUSH_PURGE "fast_flush_purge_time" 2698 #define DEF_FFLUSH_PURGE "7d" 2699 extern int var_fflush_purge; 2700 2701 #define VAR_FFLUSH_REFRESH "fast_flush_refresh_time" 2702 #define DEF_FFLUSH_REFRESH "12h" 2703 extern int var_fflush_refresh; 2704 2705 /* 2706 * Environmental management - what Postfix imports from the external world, 2707 * and what Postfix exports to the external world. 2708 */ 2709 #define VAR_IMPORT_ENVIRON "import_environment" 2710 #define DEF_IMPORT_ENVIRON "MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG " \ 2711 "TZ XAUTHORITY DISPLAY LANG=C " \ 2712 "POSTLOG_SERVICE POSTLOG_HOSTNAME " \ 2713 "XDG_RUNTIME_DIR" 2714 extern char *var_import_environ; 2715 2716 #define VAR_EXPORT_ENVIRON "export_environment" 2717 #define DEF_EXPORT_ENVIRON "TZ MAIL_CONFIG LANG" 2718 extern char *var_export_environ; 2719 2720 /* 2721 * Tunables for the "virtual" local delivery agent 2722 */ 2723 #define VAR_VIRT_TRANSPORT "virtual_transport" 2724 #define DEF_VIRT_TRANSPORT MAIL_SERVICE_VIRTUAL 2725 extern char *var_virt_transport; 2726 2727 #define VAR_VIRT_MAILBOX_MAPS "virtual_mailbox_maps" 2728 #define DEF_VIRT_MAILBOX_MAPS "" 2729 extern char *var_virt_mailbox_maps; 2730 2731 #define VAR_VIRT_MAILBOX_DOMS "virtual_mailbox_domains" 2732 #define DEF_VIRT_MAILBOX_DOMS "$virtual_mailbox_maps" 2733 extern char *var_virt_mailbox_doms; 2734 2735 #define VAR_VIRT_MAILBOX_CODE "unknown_virtual_mailbox_reject_code" 2736 #define DEF_VIRT_MAILBOX_CODE 550 2737 extern int var_virt_mailbox_code; 2738 2739 #define VAR_VIRT_UID_MAPS "virtual_uid_maps" 2740 #define DEF_VIRT_UID_MAPS "" 2741 extern char *var_virt_uid_maps; 2742 2743 #define VAR_VIRT_GID_MAPS "virtual_gid_maps" 2744 #define DEF_VIRT_GID_MAPS "" 2745 extern char *var_virt_gid_maps; 2746 2747 #define VAR_VIRT_MINUID "virtual_minimum_uid" 2748 #define DEF_VIRT_MINUID 100 2749 extern int var_virt_minimum_uid; 2750 2751 #define VAR_VIRT_MAILBOX_BASE "virtual_mailbox_base" 2752 #define DEF_VIRT_MAILBOX_BASE "" 2753 extern char *var_virt_mailbox_base; 2754 2755 #define VAR_VIRT_MAILBOX_LIMIT "virtual_mailbox_limit" 2756 #define DEF_VIRT_MAILBOX_LIMIT (5 * DEF_MESSAGE_LIMIT) 2757 extern long var_virt_mailbox_limit; 2758 2759 #define VAR_VIRT_MAILBOX_LOCK "virtual_mailbox_lock" 2760 #define DEF_VIRT_MAILBOX_LOCK "fcntl, dotlock" 2761 extern char *var_virt_mailbox_lock; 2762 2763 /* 2764 * Distinct logging tag for multiple Postfix instances. 2765 */ 2766 #define VAR_SYSLOG_NAME "syslog_name" 2767 #if 1 2768 #define DEF_SYSLOG_NAME \ 2769 "${" VAR_MULTI_NAME "?{$" VAR_MULTI_NAME "}:{postfix}}" 2770 #else 2771 #define DEF_SYSLOG_NAME "postfix" 2772 #endif 2773 extern char *var_syslog_name; 2774 2775 /* 2776 * QMQPD 2777 */ 2778 #define VAR_QMQPD_CLIENTS "qmqpd_authorized_clients" 2779 #define DEF_QMQPD_CLIENTS "" 2780 extern char *var_qmqpd_clients; 2781 2782 #define VAR_QMTPD_TMOUT "qmqpd_timeout" 2783 #define DEF_QMTPD_TMOUT "300s" 2784 extern int var_qmqpd_timeout; 2785 2786 #define VAR_QMTPD_ERR_SLEEP "qmqpd_error_delay" 2787 #define DEF_QMTPD_ERR_SLEEP "1s" 2788 extern int var_qmqpd_err_sleep; 2789 2790 /* 2791 * VERP, more DJB intellectual cross-pollination. However, we prefer + as 2792 * the default recipient delimiter. 2793 */ 2794 #define VAR_VERP_DELIMS "default_verp_delimiters" 2795 #define DEF_VERP_DELIMS "+=" 2796 extern char *var_verp_delims; 2797 2798 #define VAR_VERP_FILTER "verp_delimiter_filter" 2799 #define DEF_VERP_FILTER "-=+" 2800 extern char *var_verp_filter; 2801 2802 #define VAR_VERP_BOUNCE_OFF "disable_verp_bounces" 2803 #define DEF_VERP_BOUNCE_OFF 0 2804 extern bool var_verp_bounce_off; 2805 2806 #define VAR_VERP_CLIENTS "smtpd_authorized_verp_clients" 2807 #define DEF_VERP_CLIENTS "$authorized_verp_clients" 2808 extern char *var_verp_clients; 2809 2810 /* 2811 * XCLIENT, for rule testing and fetchmail like apps. 2812 */ 2813 #define VAR_XCLIENT_HOSTS "smtpd_authorized_xclient_hosts" 2814 #define DEF_XCLIENT_HOSTS "" 2815 extern char *var_xclient_hosts; 2816 2817 /* 2818 * XFORWARD, for improved post-filter logging. 2819 */ 2820 #define VAR_XFORWARD_HOSTS "smtpd_authorized_xforward_hosts" 2821 #define DEF_XFORWARD_HOSTS "" 2822 extern char *var_xforward_hosts; 2823 2824 /* 2825 * Inbound mail flow control. This allows for a stiffer coupling between 2826 * receiving mail and sending mail. A sending process produces one token for 2827 * each message that it takes from the incoming queue; a receiving process 2828 * consumes one token for each message that it adds to the incoming queue. 2829 * When no token is available (Postfix receives more mail than it is able to 2830 * deliver) a receiving process pauses for $in_flow_delay seconds so that 2831 * the sending processes get a chance to access the disk. 2832 */ 2833 #define VAR_IN_FLOW_DELAY "in_flow_delay" 2834 #ifdef PIPES_CANT_FIONREAD 2835 #define DEF_IN_FLOW_DELAY "0s" 2836 #else 2837 #define DEF_IN_FLOW_DELAY "1s" 2838 #endif 2839 extern int var_in_flow_delay; 2840 2841 /* 2842 * Backwards compatibility: foo.com matches itself and names below foo.com. 2843 */ 2844 #define VAR_PAR_DOM_MATCH "parent_domain_matches_subdomains" 2845 #define DEF_PAR_DOM_MATCH VAR_DEBUG_PEER_LIST "," \ 2846 VAR_FFLUSH_DOMAINS "," \ 2847 VAR_MYNETWORKS "," \ 2848 VAR_PERM_MX_NETWORKS "," \ 2849 VAR_QMQPD_CLIENTS "," \ 2850 VAR_RELAY_DOMAINS "," \ 2851 SMTPD_ACCESS_MAPS 2852 extern char *var_par_dom_match; 2853 2854 #define SMTPD_ACCESS_MAPS "smtpd_access_maps" 2855 2856 /* 2857 * Run-time fault injection. 2858 */ 2859 #define VAR_FAULT_INJ_CODE "fault_injection_code" 2860 #define DEF_FAULT_INJ_CODE 0 2861 extern int var_fault_inj_code; 2862 2863 /* 2864 * Install/upgrade information. 2865 */ 2866 #define VAR_SENDMAIL_PATH "sendmail_path" 2867 #ifndef DEF_SENDMAIL_PATH 2868 #define DEF_SENDMAIL_PATH "/usr/sbin/sendmail" 2869 #endif 2870 2871 #define VAR_MAILQ_PATH "mailq_path" 2872 #ifndef DEF_MAILQ_PATH 2873 #define DEF_MAILQ_PATH "/usr/bin/mailq" 2874 #endif 2875 2876 #define VAR_NEWALIAS_PATH "newaliases_path" 2877 #ifndef DEF_NEWALIAS_PATH 2878 #define DEF_NEWALIAS_PATH "/usr/bin/newaliases" 2879 #endif 2880 2881 #define VAR_OPENSSL_PATH "openssl_path" 2882 #ifndef DEF_OPENSSL_PATH 2883 #define DEF_OPENSSL_PATH "openssl" 2884 #endif 2885 extern char *var_openssl_path; 2886 2887 #define VAR_MANPAGE_DIR "manpage_directory" 2888 #ifndef DEF_MANPAGE_DIR 2889 #define DEF_MANPAGE_DIR "/usr/local/man" 2890 #endif 2891 2892 #define VAR_SAMPLE_DIR "sample_directory" 2893 #ifndef DEF_SAMPLE_DIR 2894 #define DEF_SAMPLE_DIR DEF_CONFIG_DIR 2895 #endif 2896 2897 #define VAR_README_DIR "readme_directory" 2898 #ifndef DEF_README_DIR 2899 #define DEF_README_DIR "no" 2900 #endif 2901 2902 #define VAR_HTML_DIR "html_directory" 2903 #ifndef DEF_HTML_DIR 2904 #define DEF_HTML_DIR "no" 2905 #endif 2906 2907 /* 2908 * Safety: resolve the address with unquoted localpart (default, but 2909 * technically incorrect), instead of resolving the address with quoted 2910 * localpart (technically correct, but unsafe). The default prevents mail 2911 * relay loopholes with "user@domain"@domain when relaying mail to a 2912 * Sendmail system. 2913 */ 2914 #define VAR_RESOLVE_DEQUOTED "resolve_dequoted_address" 2915 #define DEF_RESOLVE_DEQUOTED 1 2916 extern bool var_resolve_dequoted; 2917 2918 #define VAR_RESOLVE_NULLDOM "resolve_null_domain" 2919 #define DEF_RESOLVE_NULLDOM 0 2920 extern bool var_resolve_nulldom; 2921 2922 #define VAR_RESOLVE_NUM_DOM "resolve_numeric_domain" 2923 #define DEF_RESOLVE_NUM_DOM 0 2924 extern bool var_resolve_num_dom; 2925 2926 /* 2927 * Service names. The transport (TCP, FIFO or UNIX-domain) type is frozen 2928 * because you cannot simply mix them, and accessibility (private/public) is 2929 * frozen for security reasons. We list only the internal services, not the 2930 * externally visible SMTP server, or the delivery agents that can already 2931 * be chosen via transport mappings etc. 2932 */ 2933 #define VAR_BOUNCE_SERVICE "bounce_service_name" 2934 #define DEF_BOUNCE_SERVICE MAIL_SERVICE_BOUNCE 2935 extern char *var_bounce_service; 2936 2937 #define VAR_CLEANUP_SERVICE "cleanup_service_name" 2938 #define DEF_CLEANUP_SERVICE MAIL_SERVICE_CLEANUP 2939 extern char *var_cleanup_service; 2940 2941 #define VAR_DEFER_SERVICE "defer_service_name" 2942 #define DEF_DEFER_SERVICE MAIL_SERVICE_DEFER 2943 extern char *var_defer_service; 2944 2945 #define VAR_PICKUP_SERVICE "pickup_service_name" 2946 #define DEF_PICKUP_SERVICE MAIL_SERVICE_PICKUP 2947 extern char *var_pickup_service; 2948 2949 #define VAR_QUEUE_SERVICE "queue_service_name" 2950 #define DEF_QUEUE_SERVICE MAIL_SERVICE_QUEUE 2951 extern char *var_queue_service; 2952 2953 /* XXX resolve does not exist as a separate service */ 2954 2955 #define VAR_REWRITE_SERVICE "rewrite_service_name" 2956 #define DEF_REWRITE_SERVICE MAIL_SERVICE_REWRITE 2957 extern char *var_rewrite_service; 2958 2959 #define VAR_SHOWQ_SERVICE "showq_service_name" 2960 #define DEF_SHOWQ_SERVICE MAIL_SERVICE_SHOWQ 2961 extern char *var_showq_service; 2962 2963 #define VAR_ERROR_SERVICE "error_service_name" 2964 #define DEF_ERROR_SERVICE MAIL_SERVICE_ERROR 2965 extern char *var_error_service; 2966 2967 #define VAR_FLUSH_SERVICE "flush_service_name" 2968 #define DEF_FLUSH_SERVICE MAIL_SERVICE_FLUSH 2969 extern char *var_flush_service; 2970 2971 /* 2972 * Session cache service. 2973 */ 2974 #define VAR_SCACHE_SERVICE "connection_cache_service_name" 2975 #define DEF_SCACHE_SERVICE "scache" 2976 extern char *var_scache_service; 2977 2978 #define VAR_SCACHE_PROTO_TMOUT "connection_cache_protocol_timeout" 2979 #define DEF_SCACHE_PROTO_TMOUT "5s" 2980 extern int var_scache_proto_tmout; 2981 2982 #define VAR_SCACHE_TTL_LIM "connection_cache_ttl_limit" 2983 #define DEF_SCACHE_TTL_LIM "2s" 2984 extern int var_scache_ttl_lim; 2985 2986 #define VAR_SCACHE_STAT_TIME "connection_cache_status_update_time" 2987 #define DEF_SCACHE_STAT_TIME "600s" 2988 extern int var_scache_stat_time; 2989 2990 #define VAR_VRFY_PEND_LIMIT "address_verify_pending_request_limit" 2991 #define DEF_VRFY_PEND_LIMIT (DEF_QMGR_ACT_LIMIT / 4) 2992 extern int var_vrfy_pend_limit; 2993 2994 /* 2995 * Address verification service. 2996 */ 2997 #define VAR_VERIFY_SERVICE "address_verify_service_name" 2998 #define DEF_VERIFY_SERVICE MAIL_SERVICE_VERIFY 2999 extern char *var_verify_service; 3000 3001 #define VAR_VERIFY_MAP "address_verify_map" 3002 #define DEF_VERIFY_MAP "$" VAR_CACHE_DB_TYPE ":$data_directory/verify_cache" 3003 extern char *var_verify_map; 3004 3005 #define VAR_VERIFY_POS_EXP "address_verify_positive_expire_time" 3006 #define DEF_VERIFY_POS_EXP "31d" 3007 extern int var_verify_pos_exp; 3008 3009 #define VAR_VERIFY_POS_TRY "address_verify_positive_refresh_time" 3010 #define DEF_VERIFY_POS_TRY "7d" 3011 extern int var_verify_pos_try; 3012 3013 #define VAR_VERIFY_NEG_EXP "address_verify_negative_expire_time" 3014 #define DEF_VERIFY_NEG_EXP "3d" 3015 extern int var_verify_neg_exp; 3016 3017 #define VAR_VERIFY_NEG_TRY "address_verify_negative_refresh_time" 3018 #define DEF_VERIFY_NEG_TRY "3h" 3019 extern int var_verify_neg_try; 3020 3021 #define VAR_VERIFY_NEG_CACHE "address_verify_negative_cache" 3022 #define DEF_VERIFY_NEG_CACHE 1 3023 extern bool var_verify_neg_cache; 3024 3025 #define VAR_VERIFY_SCAN_CACHE "address_verify_cache_cleanup_interval" 3026 #define DEF_VERIFY_SCAN_CACHE "12h" 3027 extern int var_verify_scan_cache; 3028 3029 #define VAR_VERIFY_SENDER "address_verify_sender" 3030 #define DEF_VERIFY_SENDER "$" VAR_DOUBLE_BOUNCE 3031 extern char *var_verify_sender; 3032 3033 #define VAR_VERIFY_SENDER_TTL "address_verify_sender_ttl" 3034 #define DEF_VERIFY_SENDER_TTL "0s" 3035 extern int var_verify_sender_ttl; 3036 3037 #define VAR_VERIFY_POLL_COUNT "address_verify_poll_count" 3038 #define DEF_VERIFY_POLL_COUNT "${stress?{1}:{3}}" 3039 extern int var_verify_poll_count; 3040 3041 #define VAR_VERIFY_POLL_DELAY "address_verify_poll_delay" 3042 #define DEF_VERIFY_POLL_DELAY "3s" 3043 extern int var_verify_poll_delay; 3044 3045 #define VAR_VRFY_LOCAL_XPORT "address_verify_local_transport" 3046 #define DEF_VRFY_LOCAL_XPORT "$" VAR_LOCAL_TRANSPORT 3047 extern char *var_vrfy_local_xport; 3048 3049 #define VAR_VRFY_VIRT_XPORT "address_verify_virtual_transport" 3050 #define DEF_VRFY_VIRT_XPORT "$" VAR_VIRT_TRANSPORT 3051 extern char *var_vrfy_virt_xport; 3052 3053 #define VAR_VRFY_RELAY_XPORT "address_verify_relay_transport" 3054 #define DEF_VRFY_RELAY_XPORT "$" VAR_RELAY_TRANSPORT 3055 extern char *var_vrfy_relay_xport; 3056 3057 #define VAR_VRFY_DEF_XPORT "address_verify_default_transport" 3058 #define DEF_VRFY_DEF_XPORT "$" VAR_DEF_TRANSPORT 3059 extern char *var_vrfy_def_xport; 3060 3061 #define VAR_VRFY_SND_DEF_XPORT_MAPS "address_verify_" VAR_SND_DEF_XPORT_MAPS 3062 #define DEF_VRFY_SND_DEF_XPORT_MAPS "$" VAR_SND_DEF_XPORT_MAPS 3063 extern char *var_snd_def_xport_maps; 3064 3065 #define VAR_VRFY_RELAYHOST "address_verify_relayhost" 3066 #define DEF_VRFY_RELAYHOST "$" VAR_RELAYHOST 3067 extern char *var_vrfy_relayhost; 3068 3069 #define VAR_VRFY_RELAY_MAPS "address_verify_sender_dependent_relayhost_maps" 3070 #define DEF_VRFY_RELAY_MAPS "$" VAR_SND_RELAY_MAPS 3071 extern char *var_vrfy_relay_maps; 3072 3073 #define VAR_VRFY_XPORT_MAPS "address_verify_transport_maps" 3074 #define DEF_VRFY_XPORT_MAPS "$" VAR_TRANSPORT_MAPS 3075 extern char *var_vrfy_xport_maps; 3076 3077 #define SMTP_VRFY_TGT_RCPT "rcpt" 3078 #define SMTP_VRFY_TGT_DATA "data" 3079 #define VAR_LMTP_VRFY_TGT "lmtp_address_verify_target" 3080 #define DEF_LMTP_VRFY_TGT SMTP_VRFY_TGT_RCPT 3081 #define VAR_SMTP_VRFY_TGT "smtp_address_verify_target" 3082 #define DEF_SMTP_VRFY_TGT SMTP_VRFY_TGT_RCPT 3083 extern char *var_smtp_vrfy_tgt; 3084 3085 /* 3086 * Message delivery trace service. 3087 */ 3088 #define VAR_TRACE_SERVICE "trace_service_name" 3089 #define DEF_TRACE_SERVICE MAIL_SERVICE_TRACE 3090 extern char *var_trace_service; 3091 3092 /* 3093 * Proxymappers. 3094 */ 3095 #define VAR_PROXYMAP_SERVICE "proxymap_service_name" 3096 #define DEF_PROXYMAP_SERVICE MAIL_SERVICE_PROXYMAP 3097 extern char *var_proxymap_service; 3098 3099 #define VAR_PROXYWRITE_SERVICE "proxywrite_service_name" 3100 #define DEF_PROXYWRITE_SERVICE MAIL_SERVICE_PROXYWRITE 3101 extern char *var_proxywrite_service; 3102 3103 /* 3104 * Mailbox/maildir delivery errors that cause delivery to be tried again. 3105 */ 3106 #define VAR_MBX_DEFER_ERRS "mailbox_defer_errors" 3107 #define DEF_MBX_DEFER_ERRS "eagain, enospc, estale" 3108 extern char *var_mbx_defer_errs; 3109 3110 #define VAR_MDR_DEFER_ERRS "maildir_defer_errors" 3111 #define DEF_MDR_DEFER_ERRS "enospc, estale" 3112 extern char *var_mdr_defer_errs; 3113 3114 /* 3115 * Berkeley DB memory pool sizes. 3116 */ 3117 #define VAR_DB_CREATE_BUF "berkeley_db_create_buffer_size" 3118 #define DEF_DB_CREATE_BUF (16 * 1024 *1024) 3119 extern int var_db_create_buf; 3120 3121 #define VAR_DB_READ_BUF "berkeley_db_read_buffer_size" 3122 #define DEF_DB_READ_BUF (128 *1024) 3123 extern int var_db_read_buf; 3124 3125 /* 3126 * OpenLDAP LMDB settings. 3127 */ 3128 #define VAR_LMDB_MAP_SIZE "lmdb_map_size" 3129 #define DEF_LMDB_MAP_SIZE (16 * 1024 *1024) 3130 extern long var_lmdb_map_size; 3131 3132 /* 3133 * Named queue file attributes. 3134 */ 3135 #define VAR_QATTR_COUNT_LIMIT "queue_file_attribute_count_limit" 3136 #define DEF_QATTR_COUNT_LIMIT 100 3137 extern int var_qattr_count_limit; 3138 3139 /* 3140 * MIME support. 3141 */ 3142 #define VAR_MIME_MAXDEPTH "mime_nesting_limit" 3143 #define DEF_MIME_MAXDEPTH 100 3144 extern int var_mime_maxdepth; 3145 3146 #define VAR_MIME_BOUND_LEN "mime_boundary_length_limit" 3147 #define DEF_MIME_BOUND_LEN 2048 3148 extern int var_mime_bound_len; 3149 3150 #define VAR_DISABLE_MIME_INPUT "disable_mime_input_processing" 3151 #define DEF_DISABLE_MIME_INPUT 0 3152 extern bool var_disable_mime_input; 3153 3154 #define VAR_DISABLE_MIME_OCONV "disable_mime_output_conversion" 3155 #define DEF_DISABLE_MIME_OCONV 0 3156 extern bool var_disable_mime_oconv; 3157 3158 #define VAR_FORCE_MIME_ICONV "force_mime_input_conversion" 3159 #define DEF_FORCE_MIME_ICONV 0 3160 extern bool var_force_mime_iconv; 3161 3162 #define VAR_STRICT_8BITMIME "strict_8bitmime" 3163 #define DEF_STRICT_8BITMIME 0 3164 extern bool var_strict_8bitmime; 3165 3166 #define VAR_STRICT_7BIT_HDRS "strict_7bit_headers" 3167 #define DEF_STRICT_7BIT_HDRS 0 3168 extern bool var_strict_7bit_hdrs; 3169 3170 #define VAR_STRICT_8BIT_BODY "strict_8bitmime_body" 3171 #define DEF_STRICT_8BIT_BODY 0 3172 extern bool var_strict_8bit_body; 3173 3174 #define VAR_STRICT_ENCODING "strict_mime_encoding_domain" 3175 #define DEF_STRICT_ENCODING 0 3176 extern bool var_strict_encoding; 3177 3178 #define VAR_AUTO_8BIT_ENC_HDR "detect_8bit_encoding_header" 3179 #define DEF_AUTO_8BIT_ENC_HDR 1 3180 extern bool var_auto_8bit_enc_hdr; 3181 3182 /* 3183 * Bizarre. 3184 */ 3185 #define VAR_SENDER_ROUTING "sender_based_routing" 3186 #define DEF_SENDER_ROUTING 0 3187 extern bool var_sender_routing; 3188 3189 #define VAR_XPORT_NULL_KEY "transport_null_address_lookup_key" 3190 #define DEF_XPORT_NULL_KEY "<>" 3191 extern char *var_xport_null_key; 3192 3193 /* 3194 * Bounce service controls. 3195 */ 3196 #define VAR_OLDLOG_COMPAT "backwards_bounce_logfile_compatibility" 3197 #define DEF_OLDLOG_COMPAT 1 3198 extern bool var_oldlog_compat; 3199 3200 /* 3201 * SMTPD content proxy. 3202 */ 3203 #define VAR_SMTPD_PROXY_FILT "smtpd_proxy_filter" 3204 #define DEF_SMTPD_PROXY_FILT "" 3205 extern char *var_smtpd_proxy_filt; 3206 3207 #define VAR_SMTPD_PROXY_EHLO "smtpd_proxy_ehlo" 3208 #define DEF_SMTPD_PROXY_EHLO "$" VAR_MYHOSTNAME 3209 extern char *var_smtpd_proxy_ehlo; 3210 3211 #define VAR_SMTPD_PROXY_TMOUT "smtpd_proxy_timeout" 3212 #define DEF_SMTPD_PROXY_TMOUT "100s" 3213 extern int var_smtpd_proxy_tmout; 3214 3215 #define VAR_SMTPD_PROXY_OPTS "smtpd_proxy_options" 3216 #define DEF_SMTPD_PROXY_OPTS "" 3217 extern char *var_smtpd_proxy_opts; 3218 3219 /* 3220 * Transparency options for mail input interfaces and for the cleanup server 3221 * behind them. These should turn off stuff we don't want to happen, because 3222 * the default is to do a lot of things. 3223 */ 3224 #define VAR_INPUT_TRANSP "receive_override_options" 3225 #define DEF_INPUT_TRANSP "" 3226 extern char *var_smtpd_input_transp; 3227 3228 /* 3229 * SMTP server policy delegation. 3230 */ 3231 #define VAR_SMTPD_POLICY_TMOUT "smtpd_policy_service_timeout" 3232 #define DEF_SMTPD_POLICY_TMOUT "100s" 3233 extern int var_smtpd_policy_tmout; 3234 3235 #define VAR_SMTPD_POLICY_REQ_LIMIT "smtpd_policy_service_request_limit" 3236 #define DEF_SMTPD_POLICY_REQ_LIMIT 0 3237 extern int var_smtpd_policy_req_limit; 3238 3239 #define VAR_SMTPD_POLICY_IDLE "smtpd_policy_service_max_idle" 3240 #define DEF_SMTPD_POLICY_IDLE "300s" 3241 extern int var_smtpd_policy_idle; 3242 3243 #define VAR_SMTPD_POLICY_TTL "smtpd_policy_service_max_ttl" 3244 #define DEF_SMTPD_POLICY_TTL "1000s" 3245 extern int var_smtpd_policy_ttl; 3246 3247 #define VAR_SMTPD_POLICY_TRY_LIMIT "smtpd_policy_service_try_limit" 3248 #define DEF_SMTPD_POLICY_TRY_LIMIT 2 3249 extern int var_smtpd_policy_try_limit; 3250 3251 #define VAR_SMTPD_POLICY_TRY_DELAY "smtpd_policy_service_retry_delay" 3252 #define DEF_SMTPD_POLICY_TRY_DELAY "1s" 3253 extern int var_smtpd_policy_try_delay; 3254 3255 #define VAR_SMTPD_POLICY_DEF_ACTION "smtpd_policy_service_default_action" 3256 #define DEF_SMTPD_POLICY_DEF_ACTION "451 4.3.5 Server configuration problem" 3257 extern char *var_smtpd_policy_def_action; 3258 3259 #define VAR_SMTPD_POLICY_CONTEXT "smtpd_policy_service_policy_context" 3260 #define DEF_SMTPD_POLICY_CONTEXT "" 3261 extern char *var_smtpd_policy_context; 3262 3263 #define CHECK_POLICY_SERVICE "check_policy_service" 3264 3265 /* 3266 * Client rate control. 3267 */ 3268 #define VAR_SMTPD_CRATE_LIMIT "smtpd_client_connection_rate_limit" 3269 #define DEF_SMTPD_CRATE_LIMIT 0 3270 extern int var_smtpd_crate_limit; 3271 3272 #define VAR_SMTPD_CCONN_LIMIT "smtpd_client_connection_count_limit" 3273 #define DEF_SMTPD_CCONN_LIMIT ((DEF_PROC_LIMIT + 1) / 2) 3274 extern int var_smtpd_cconn_limit; 3275 3276 #define VAR_SMTPD_CMAIL_LIMIT "smtpd_client_message_rate_limit" 3277 #define DEF_SMTPD_CMAIL_LIMIT 0 3278 extern int var_smtpd_cmail_limit; 3279 3280 #define VAR_SMTPD_CRCPT_LIMIT "smtpd_client_recipient_rate_limit" 3281 #define DEF_SMTPD_CRCPT_LIMIT 0 3282 extern int var_smtpd_crcpt_limit; 3283 3284 #define VAR_SMTPD_CNTLS_LIMIT "smtpd_client_new_tls_session_rate_limit" 3285 #define DEF_SMTPD_CNTLS_LIMIT 0 3286 extern int var_smtpd_cntls_limit; 3287 3288 #define VAR_SMTPD_CAUTH_LIMIT "smtpd_client_auth_rate_limit" 3289 #define DEF_SMTPD_CAUTH_LIMIT 0 3290 extern int var_smtpd_cauth_limit; 3291 3292 #define VAR_SMTPD_CIPV4_PREFIX "smtpd_client_ipv4_prefix_length" 3293 #define DEF_SMTPD_CIPV4_PREFIX 32 3294 #define MAX_SMTPD_CIPV4_PREFIX 32 3295 extern int var_smtpd_cipv4_prefix; 3296 3297 #define VAR_SMTPD_CIPV6_PREFIX "smtpd_client_ipv6_prefix_length" 3298 #define DEF_SMTPD_CIPV6_PREFIX 84 3299 #define MAX_SMTPD_CIPV6_PREFIX 128 3300 extern int var_smtpd_cipv6_prefix; 3301 3302 #define VAR_SMTPD_HOGGERS "smtpd_client_event_limit_exceptions" 3303 #define DEF_SMTPD_HOGGERS "${smtpd_client_connection_limit_exceptions:$" VAR_MYNETWORKS "}" 3304 extern char *var_smtpd_hoggers; 3305 3306 #define VAR_ANVIL_TIME_UNIT "anvil_rate_time_unit" 3307 #define DEF_ANVIL_TIME_UNIT "60s" 3308 extern int var_anvil_time_unit; 3309 3310 #define VAR_ANVIL_STAT_TIME "anvil_status_update_time" 3311 #define DEF_ANVIL_STAT_TIME "600s" 3312 extern int var_anvil_stat_time; 3313 3314 /* 3315 * Temporary stop gap. 3316 */ 3317 #if 0 3318 #include <anvil_clnt.h> 3319 3320 #define VAR_ANVIL_SERVICE "client_connection_rate_service_name" 3321 #define DEF_ANVIL_SERVICE "local:" ANVIL_CLASS "/" ANVIL_SERVICE 3322 extern char *var_anvil_service; 3323 3324 #endif 3325 3326 /* 3327 * What domain names to assume when no valid domain context exists. 3328 */ 3329 #define VAR_REM_RWR_DOMAIN "remote_header_rewrite_domain" 3330 #define DEF_REM_RWR_DOMAIN "" 3331 extern char *var_remote_rwr_domain; 3332 3333 #define CHECK_ADDR_MAP "check_address_map" 3334 3335 #define VAR_LOC_RWR_CLIENTS "local_header_rewrite_clients" 3336 #define DEF_LOC_RWR_CLIENTS PERMIT_INET_INTERFACES 3337 extern char *var_local_rwr_clients; 3338 3339 /* 3340 * EHLO keyword filter. 3341 */ 3342 #define VAR_SMTPD_EHLO_DIS_WORDS "smtpd_discard_ehlo_keywords" 3343 #define DEF_SMTPD_EHLO_DIS_WORDS "" 3344 extern char *var_smtpd_ehlo_dis_words; 3345 3346 #define VAR_SMTPD_EHLO_DIS_MAPS "smtpd_discard_ehlo_keyword_address_maps" 3347 #define DEF_SMTPD_EHLO_DIS_MAPS "" 3348 extern char *var_smtpd_ehlo_dis_maps; 3349 3350 #define VAR_SMTP_EHLO_DIS_WORDS "smtp_discard_ehlo_keywords" 3351 #define DEF_SMTP_EHLO_DIS_WORDS "" 3352 #define VAR_LMTP_EHLO_DIS_WORDS "lmtp_discard_lhlo_keywords" 3353 #define DEF_LMTP_EHLO_DIS_WORDS "" 3354 extern char *var_smtp_ehlo_dis_words; 3355 3356 #define VAR_SMTP_EHLO_DIS_MAPS "smtp_discard_ehlo_keyword_address_maps" 3357 #define DEF_SMTP_EHLO_DIS_MAPS "" 3358 #define VAR_LMTP_EHLO_DIS_MAPS "lmtp_discard_lhlo_keyword_address_maps" 3359 #define DEF_LMTP_EHLO_DIS_MAPS "" 3360 extern char *var_smtp_ehlo_dis_maps; 3361 3362 /* 3363 * gcc workaround for warnings about empty or null format strings. 3364 */ 3365 extern const char null_format_string[1]; 3366 3367 /* 3368 * Characters to reject or strip. 3369 */ 3370 #define VAR_MSG_REJECT_CHARS "message_reject_characters" 3371 #define DEF_MSG_REJECT_CHARS "" 3372 extern char *var_msg_reject_chars; 3373 3374 #define VAR_MSG_STRIP_CHARS "message_strip_characters" 3375 #define DEF_MSG_STRIP_CHARS "" 3376 extern char *var_msg_strip_chars; 3377 3378 /* 3379 * Local forwarding complexity controls. 3380 */ 3381 #define VAR_FROZEN_DELIVERED "frozen_delivered_to" 3382 #define DEF_FROZEN_DELIVERED 1 3383 extern bool var_frozen_delivered; 3384 3385 #define VAR_RESET_OWNER_ATTR "reset_owner_alias" 3386 #define DEF_RESET_OWNER_ATTR 0 3387 extern bool var_reset_owner_attr; 3388 3389 /* 3390 * Delay logging time roundup. 3391 */ 3392 #define VAR_DELAY_MAX_RES "delay_logging_resolution_limit" 3393 #define MAX_DELAY_MAX_RES 6 3394 #define DEF_DELAY_MAX_RES 2 3395 #define MIN_DELAY_MAX_RES 0 3396 extern int var_delay_max_res; 3397 3398 /* 3399 * Bounce message templates. 3400 */ 3401 #define VAR_BOUNCE_TMPL "bounce_template_file" 3402 #define DEF_BOUNCE_TMPL "" 3403 extern char *var_bounce_tmpl; 3404 3405 /* 3406 * Sender-dependent authentication. 3407 */ 3408 #define VAR_SMTP_SENDER_AUTH "smtp_sender_dependent_authentication" 3409 #define DEF_SMTP_SENDER_AUTH 0 3410 #define VAR_LMTP_SENDER_AUTH "lmtp_sender_dependent_authentication" 3411 #define DEF_LMTP_SENDER_AUTH 0 3412 extern bool var_smtp_sender_auth; 3413 3414 /* 3415 * Allow CNAME lookup result to override the server hostname. 3416 */ 3417 #define VAR_SMTP_CNAME_OVERR "smtp_cname_overrides_servername" 3418 #define DEF_SMTP_CNAME_OVERR 0 3419 #define VAR_LMTP_CNAME_OVERR "lmtp_cname_overrides_servername" 3420 #define DEF_LMTP_CNAME_OVERR 0 3421 extern bool var_smtp_cname_overr; 3422 3423 /* 3424 * TLS library settings 3425 */ 3426 #define VAR_TLS_CNF_FILE "tls_config_file" 3427 #define DEF_TLS_CNF_FILE "default" 3428 extern char *var_tls_cnf_file; 3429 3430 #define VAR_TLS_CNF_NAME "tls_config_name" 3431 #define DEF_TLS_CNF_NAME "" 3432 extern char *var_tls_cnf_name; 3433 3434 /* 3435 * Deprecated and unused cipher, key exchange and public key algorithms 3436 */ 3437 #define TLS_EXCL_CIPHS ":!SEED:!IDEA:!3DES:!RC2:!RC4:!RC5" 3438 #define TLS_EXCL_KEXCH ":!kDH:!kECDH" 3439 #define TLS_EXCL_PKEYS ":!aDSS" 3440 #define TLS_EXCL_DGSTS ":!MD5" 3441 #define TLS_EXCL TLS_EXCL_CIPHS TLS_EXCL_REST 3442 #define TLS_EXCL_REST TLS_EXCL_KEXCH TLS_EXCL_PKEYS TLS_EXCL_DGSTS 3443 3444 #define VAR_TLS_HIGH_CLIST "tls_high_cipherlist" 3445 #define DEF_TLS_HIGH_CLIST "aNULL:-aNULL:HIGH" TLS_EXCL ":@STRENGTH" 3446 extern char *var_tls_high_clist; 3447 3448 #define VAR_TLS_MEDIUM_CLIST "tls_medium_cipherlist" 3449 #define DEF_TLS_MEDIUM_CLIST "aNULL:-aNULL:HIGH:MEDIUM" TLS_EXCL ":+RC4:@STRENGTH" 3450 extern char *var_tls_medium_clist; 3451 3452 #define VAR_TLS_LOW_CLIST "tls_low_cipherlist" 3453 #define DEF_TLS_LOW_CLIST "" 3454 extern char *var_tls_low_ignored; 3455 3456 #define VAR_TLS_EXPORT_CLIST "tls_export_cipherlist" 3457 #define DEF_TLS_EXPORT_CLIST "" 3458 extern char *var_tls_export_ignored; 3459 3460 #define VAR_TLS_NULL_CLIST "tls_null_cipherlist" 3461 #define DEF_TLS_NULL_CLIST "eNULL" TLS_EXCL_REST ":!aNULL" 3462 extern char *var_tls_null_clist; 3463 3464 #define VAR_TLS_EECDH_AUTO "tls_eecdh_auto_curves" 3465 #if OPENSSL_VERSION_PREREQ(3,5) 3466 #define DEF_TLS_EECDH_AUTO "?X25519MLKEM768:DEFAULT" 3467 #else 3468 #if defined(SN_X25519) && defined(NID_X25519) 3469 #define DEF_TLS_EECDH_AUTO_1 SN_X25519 " " 3470 #else 3471 #define DEF_TLS_EECDH_AUTO_1 "" 3472 #endif 3473 3474 #if defined(SN_X448) && defined(NID_X448) 3475 #define DEF_TLS_EECDH_AUTO_2 SN_X448 " " 3476 #else 3477 #define DEF_TLS_EECDH_AUTO_2 "" 3478 #endif 3479 3480 #if defined(SN_X9_62_prime256v1) && defined(NID_X9_62_prime256v1) 3481 #define DEF_TLS_EECDH_AUTO_3 SN_X9_62_prime256v1 " " 3482 #else 3483 #define DEF_TLS_EECDH_AUTO_3 "" 3484 #endif 3485 3486 #if defined(SN_secp384r1) && defined(NID_secp384r1) 3487 #define DEF_TLS_EECDH_AUTO_4 SN_secp384r1 " " 3488 #else 3489 #define DEF_TLS_EECDH_AUTO_4 "" 3490 #endif 3491 3492 #if defined(SN_secp521r1) && defined(NID_secp521r1) 3493 #define DEF_TLS_EECDH_AUTO_5 SN_secp521r1 " " 3494 #else 3495 #define DEF_TLS_EECDH_AUTO_5 "" 3496 #endif 3497 3498 #define DEF_TLS_EECDH_AUTO DEF_TLS_EECDH_AUTO_1 \ 3499 DEF_TLS_EECDH_AUTO_2 \ 3500 DEF_TLS_EECDH_AUTO_3 \ 3501 DEF_TLS_EECDH_AUTO_4 \ 3502 DEF_TLS_EECDH_AUTO_5 3503 #endif 3504 extern char *var_tls_eecdh_auto; 3505 3506 #define VAR_TLS_EECDH_STRONG "tls_eecdh_strong_curve" 3507 #define DEF_TLS_EECDH_STRONG "prime256v1" 3508 extern char *var_tls_eecdh_strong; 3509 3510 #define VAR_TLS_EECDH_ULTRA "tls_eecdh_ultra_curve" 3511 #define DEF_TLS_EECDH_ULTRA "secp384r1" 3512 extern char *var_tls_eecdh_ultra; 3513 3514 #define VAR_TLS_FFDHE_AUTO "tls_ffdhe_auto_groups" 3515 #if OPENSSL_VERSION_PREREQ(3,5) 3516 #define DEF_TLS_FFDHE_AUTO "" 3517 #else 3518 #if defined(SN_ffdhe2048) && defined(NID_ffdhe2048) 3519 #define DEF_TLS_FFDHE_AUTO_1 SN_ffdhe2048 " " 3520 #else 3521 #define DEF_TLS_FFDHE_AUTO_1 "" 3522 #endif 3523 #if defined(SN_ffdhe3072) && defined(NID_ffdhe3072) 3524 #define DEF_TLS_FFDHE_AUTO_2 SN_ffdhe3072 " " 3525 #else 3526 #define DEF_TLS_FFDHE_AUTO_2 "" 3527 #endif 3528 3529 #define DEF_TLS_FFDHE_AUTO DEF_TLS_FFDHE_AUTO_1 \ 3530 DEF_TLS_FFDHE_AUTO_2 3531 #endif 3532 extern char *var_tls_ffdhe_auto; 3533 3534 #define VAR_TLS_PREEMPT_CLIST "tls_preempt_cipherlist" 3535 #define DEF_TLS_PREEMPT_CLIST 0 3536 extern bool var_tls_preempt_clist; 3537 3538 #define VAR_TLS_MULTI_WILDCARD "tls_wildcard_matches_multiple_labels" 3539 #define DEF_TLS_MULTI_WILDCARD 1 3540 extern bool var_tls_multi_wildcard; 3541 3542 #define VAR_TLS_BUG_TWEAKS "tls_disable_workarounds" 3543 #define DEF_TLS_BUG_TWEAKS "" 3544 extern char *var_tls_bug_tweaks; 3545 3546 #define VAR_TLS_SSL_OPTIONS "tls_ssl_options" 3547 #define DEF_TLS_SSL_OPTIONS "" 3548 extern char *var_tls_ssl_options; 3549 3550 #define VAR_TLS_TKT_CIPHER "tls_session_ticket_cipher" 3551 #define DEF_TLS_TKT_CIPHER "aes-256-cbc" 3552 extern char *var_tls_tkt_cipher; 3553 3554 #define VAR_TLS_SERVER_SNI_MAPS "tls_server_sni_maps" 3555 #define DEF_TLS_SERVER_SNI_MAPS "" 3556 extern char *var_tls_server_sni_maps; 3557 3558 /* 3559 * Ordered list of DANE digest algorithms. 3560 */ 3561 #define VAR_TLS_DANE_DIGESTS "tls_dane_digests" 3562 #define DEF_TLS_DANE_DIGESTS "sha512 sha256" 3563 extern char *var_tls_dane_digests; 3564 3565 /* 3566 * The default is incompatible with pre-TLSv1.0 protocols. 3567 */ 3568 #define VAR_TLS_FAST_SHUTDOWN "tls_fast_shutdown_enable" 3569 #define DEF_TLS_FAST_SHUTDOWN 1 3570 extern bool var_tls_fast_shutdown; 3571 3572 /* 3573 * Sendmail-style mail filter support. 3574 */ 3575 #define VAR_SMTPD_MILTERS "smtpd_milters" 3576 #define DEF_SMTPD_MILTERS "" 3577 extern char *var_smtpd_milters; 3578 3579 #define VAR_SMTPD_MILTER_MAPS "smtpd_milter_maps" 3580 #define DEF_SMTPD_MILTER_MAPS "" 3581 extern char *var_smtpd_milter_maps; 3582 3583 #define SMTPD_MILTERS_DISABLE "DISABLE" 3584 3585 #define VAR_CLEANUP_MILTERS "non_smtpd_milters" 3586 #define DEF_CLEANUP_MILTERS "" 3587 extern char *var_cleanup_milters; 3588 3589 #define VAR_MILT_DEF_ACTION "milter_default_action" 3590 #define DEF_MILT_DEF_ACTION "shutdown" 3591 extern char *var_milt_def_action; 3592 3593 #define VAR_MILT_CONN_MACROS "milter_connect_macros" 3594 #define DEF_MILT_CONN_MACROS "j {daemon_name} {daemon_addr} v _" 3595 extern char *var_milt_conn_macros; 3596 3597 #define VAR_MILT_HELO_MACROS "milter_helo_macros" 3598 #define DEF_MILT_HELO_MACROS "{tls_version} {cipher} {cipher_bits}" \ 3599 " {cert_subject} {cert_issuer}" 3600 extern char *var_milt_helo_macros; 3601 3602 #define VAR_MILT_MAIL_MACROS "milter_mail_macros" 3603 #define DEF_MILT_MAIL_MACROS "i {auth_type} {auth_authen}" \ 3604 " {auth_author} {mail_addr}" \ 3605 " {mail_host} {mail_mailer}" 3606 extern char *var_milt_mail_macros; 3607 3608 #define VAR_MILT_RCPT_MACROS "milter_rcpt_macros" 3609 #define DEF_MILT_RCPT_MACROS "i {rcpt_addr} {rcpt_host}" \ 3610 " {rcpt_mailer}" 3611 extern char *var_milt_rcpt_macros; 3612 3613 #define VAR_MILT_DATA_MACROS "milter_data_macros" 3614 #define DEF_MILT_DATA_MACROS "i" 3615 extern char *var_milt_data_macros; 3616 3617 #define VAR_MILT_UNK_MACROS "milter_unknown_command_macros" 3618 #define DEF_MILT_UNK_MACROS "" 3619 extern char *var_milt_unk_macros; 3620 3621 #define VAR_MILT_EOH_MACROS "milter_end_of_header_macros" 3622 #define DEF_MILT_EOH_MACROS "i" 3623 extern char *var_milt_eoh_macros; 3624 3625 #define VAR_MILT_EOD_MACROS "milter_end_of_data_macros" 3626 #define DEF_MILT_EOD_MACROS "i" 3627 extern char *var_milt_eod_macros; 3628 3629 #define VAR_MILT_CONN_TIME "milter_connect_timeout" 3630 #define DEF_MILT_CONN_TIME "30s" 3631 extern int var_milt_conn_time; 3632 3633 #define VAR_MILT_CMD_TIME "milter_command_timeout" 3634 #define DEF_MILT_CMD_TIME "30s" 3635 extern int var_milt_cmd_time; 3636 3637 #define VAR_MILT_MSG_TIME "milter_content_timeout" 3638 #define DEF_MILT_MSG_TIME "300s" 3639 extern int var_milt_msg_time; 3640 3641 #define VAR_MILT_PROTOCOL "milter_protocol" 3642 #define DEF_MILT_PROTOCOL "6" 3643 extern char *var_milt_protocol; 3644 3645 #define VAR_MILT_DAEMON_NAME "milter_macro_daemon_name" 3646 #define DEF_MILT_DAEMON_NAME "$" VAR_MYHOSTNAME 3647 extern char *var_milt_daemon_name; 3648 3649 #define VAR_MILT_V "milter_macro_v" 3650 #define DEF_MILT_V "$" VAR_MAIL_NAME " $" VAR_MAIL_VERSION 3651 extern char *var_milt_v; 3652 3653 #define VAR_MILT_HEAD_CHECKS "milter_header_checks" 3654 #define DEF_MILT_HEAD_CHECKS "" 3655 extern char *var_milt_head_checks; 3656 3657 #define VAR_MILT_MACRO_DEFLTS "milter_macro_defaults" 3658 #define DEF_MILT_MACRO_DEFLTS "" 3659 extern char *var_milt_macro_deflts; 3660 3661 /* 3662 * What internal mail do we inspect/stamp/etc.? This is not yet safe enough 3663 * to enable world-wide. 3664 */ 3665 #define INT_FILT_CLASS_NONE "" 3666 #define INT_FILT_CLASS_NOTIFY "notify" 3667 #define INT_FILT_CLASS_BOUNCE "bounce" 3668 3669 #define VAR_INT_FILT_CLASSES "internal_mail_filter_classes" 3670 #define DEF_INT_FILT_CLASSES INT_FILT_CLASS_NONE 3671 extern char *var_int_filt_classes; 3672 3673 /* 3674 * This could break logfile processors, so it's off by default. 3675 */ 3676 #define VAR_SMTPD_CLIENT_PORT_LOG "smtpd_client_port_logging" 3677 #define DEF_SMTPD_CLIENT_PORT_LOG 0 3678 extern bool var_smtpd_client_port_log; 3679 3680 #define VAR_QMQPD_CLIENT_PORT_LOG "qmqpd_client_port_logging" 3681 #define DEF_QMQPD_CLIENT_PORT_LOG 0 3682 extern bool var_qmqpd_client_port_log; 3683 3684 /* 3685 * Header/body checks in delivery agents. 3686 */ 3687 #define VAR_SMTP_HEAD_CHKS "smtp_header_checks" 3688 #define DEF_SMTP_HEAD_CHKS "" 3689 extern char *var_smtp_head_chks; 3690 3691 #define VAR_SMTP_MIME_CHKS "smtp_mime_header_checks" 3692 #define DEF_SMTP_MIME_CHKS "" 3693 extern char *var_smtp_mime_chks; 3694 3695 #define VAR_SMTP_NEST_CHKS "smtp_nested_header_checks" 3696 #define DEF_SMTP_NEST_CHKS "" 3697 extern char *var_smtp_nest_chks; 3698 3699 #define VAR_SMTP_BODY_CHKS "smtp_body_checks" 3700 #define DEF_SMTP_BODY_CHKS "" 3701 extern char *var_smtp_body_chks; 3702 3703 #define VAR_LMTP_HEAD_CHKS "lmtp_header_checks" 3704 #define DEF_LMTP_HEAD_CHKS "" 3705 #define VAR_LMTP_MIME_CHKS "lmtp_mime_header_checks" 3706 #define DEF_LMTP_MIME_CHKS "" 3707 #define VAR_LMTP_NEST_CHKS "lmtp_nested_header_checks" 3708 #define DEF_LMTP_NEST_CHKS "" 3709 #define VAR_LMTP_BODY_CHKS "lmtp_body_checks" 3710 #define DEF_LMTP_BODY_CHKS "" 3711 3712 #define VAR_SMTP_ADDR_PREF "smtp_address_preference" 3713 #ifdef HAS_IPV6 3714 #define DEF_SMTP_ADDR_PREF INET_PROTO_NAME_ANY 3715 #else 3716 #define DEF_SMTP_ADDR_PREF INET_PROTO_NAME_IPV4 3717 #endif 3718 extern char *var_smtp_addr_pref; 3719 3720 #define VAR_LMTP_ADDR_PREF "lmtp_address_preference" 3721 #define DEF_LMTP_ADDR_PREF DEF_SMTP_ADDR_PREF 3722 3723 /* 3724 * Scheduler concurrency feedback algorithms. 3725 */ 3726 #define VAR_CONC_POS_FDBACK "default_destination_concurrency_positive_feedback" 3727 #define _CONC_POS_FDBACK "_destination_concurrency_positive_feedback" 3728 #define DEF_CONC_POS_FDBACK "1" 3729 extern char *var_conc_pos_feedback; 3730 3731 #define VAR_CONC_NEG_FDBACK "default_destination_concurrency_negative_feedback" 3732 #define _CONC_NEG_FDBACK "_destination_concurrency_negative_feedback" 3733 #define DEF_CONC_NEG_FDBACK "1" 3734 extern char *var_conc_neg_feedback; 3735 3736 #define CONC_FDBACK_NAME_WIN "concurrency" 3737 #define CONC_FDBACK_NAME_SQRT_WIN "sqrt_concurrency" 3738 3739 #define VAR_CONC_COHORT_LIM "default_destination_concurrency_failed_cohort_limit" 3740 #define _CONC_COHORT_LIM "_destination_concurrency_failed_cohort_limit" 3741 #define DEF_CONC_COHORT_LIM 1 3742 extern int var_conc_cohort_limit; 3743 3744 #define VAR_CONC_FDBACK_DEBUG "destination_concurrency_feedback_debug" 3745 #define DEF_CONC_FDBACK_DEBUG 0 3746 extern bool var_conc_feedback_debug; 3747 3748 #define VAR_DEST_RATE_DELAY "default_destination_rate_delay" 3749 #define _DEST_RATE_DELAY "_destination_rate_delay" 3750 #define DEF_DEST_RATE_DELAY "0s" 3751 extern int var_dest_rate_delay; 3752 3753 #define VAR_XPORT_RATE_DELAY "default_transport_rate_delay" 3754 #define _XPORT_RATE_DELAY "_transport_rate_delay" 3755 #define DEF_XPORT_RATE_DELAY "0s" 3756 extern int var_xport_rate_delay; 3757 3758 /* 3759 * Stress handling. 3760 */ 3761 #define VAR_STRESS "stress" 3762 #define DEF_STRESS "" 3763 extern char *var_stress; 3764 3765 /* 3766 * Mailbox ownership. 3767 */ 3768 #define VAR_STRICT_MBOX_OWNER "strict_mailbox_ownership" 3769 #define DEF_STRICT_MBOX_OWNER 1 3770 extern bool var_strict_mbox_owner; 3771 3772 /* 3773 * Window scaling workaround. 3774 */ 3775 #define VAR_INET_WINDOW "tcp_windowsize" 3776 #define DEF_INET_WINDOW 0 3777 extern int var_inet_windowsize; 3778 3779 /* 3780 * Plug-in multi-instance support. Only the first two parameters are used by 3781 * Postfix itself; the other ones are reserved for the instance manager. 3782 */ 3783 #define VAR_MULTI_CONF_DIRS "multi_instance_directories" 3784 #define DEF_MULTI_CONF_DIRS "" 3785 extern char *var_multi_conf_dirs; 3786 3787 #define VAR_MULTI_WRAPPER "multi_instance_wrapper" 3788 #define DEF_MULTI_WRAPPER "" 3789 extern char *var_multi_wrapper; 3790 3791 #define VAR_MULTI_NAME "multi_instance_name" 3792 #define DEF_MULTI_NAME "" 3793 extern char *var_multi_name; 3794 3795 #define VAR_MULTI_GROUP "multi_instance_group" 3796 #define DEF_MULTI_GROUP "" 3797 extern char *var_multi_group; 3798 3799 #define VAR_MULTI_ENABLE "multi_instance_enable" 3800 #define DEF_MULTI_ENABLE 0 3801 extern bool var_multi_enable; 3802 3803 /* 3804 * postmulti(1) instance manager 3805 */ 3806 #define VAR_MULTI_START_CMDS "postmulti_start_commands" 3807 #define DEF_MULTI_START_CMDS "start" 3808 extern char *var_multi_start_cmds; 3809 3810 #define VAR_MULTI_STOP_CMDS "postmulti_stop_commands" 3811 #define DEF_MULTI_STOP_CMDS "stop abort drain quick-stop" 3812 extern char *var_multi_stop_cmds; 3813 3814 #define VAR_MULTI_CNTRL_CMDS "postmulti_control_commands" 3815 #define DEF_MULTI_CNTRL_CMDS "reload flush" 3816 extern char *var_multi_cntrl_cmds; 3817 3818 /* 3819 * postscreen(8) 3820 */ 3821 #define VAR_PSC_CACHE_MAP "postscreen_cache_map" 3822 #define DEF_PSC_CACHE_MAP "$" VAR_CACHE_DB_TYPE ":$data_directory/postscreen_cache" 3823 extern char *var_psc_cache_map; 3824 3825 #define VAR_SMTPD_SERVICE "smtpd_service_name" 3826 #define DEF_SMTPD_SERVICE "smtpd" 3827 extern char *var_smtpd_service; 3828 3829 #define VAR_PSC_POST_QLIMIT "postscreen_post_queue_limit" 3830 #define DEF_PSC_POST_QLIMIT "$" VAR_PROC_LIMIT 3831 extern int var_psc_post_queue_limit; 3832 3833 #define VAR_PSC_PRE_QLIMIT "postscreen_pre_queue_limit" 3834 #define DEF_PSC_PRE_QLIMIT "$" VAR_PROC_LIMIT 3835 extern int var_psc_pre_queue_limit; 3836 3837 #define VAR_PSC_CACHE_RET "postscreen_cache_retention_time" 3838 #define DEF_PSC_CACHE_RET "7d" 3839 extern int var_psc_cache_ret; 3840 3841 #define VAR_PSC_CACHE_SCAN "postscreen_cache_cleanup_interval" 3842 #define DEF_PSC_CACHE_SCAN "12h" 3843 extern int var_psc_cache_scan; 3844 3845 #define VAR_PSC_GREET_WAIT "postscreen_greet_wait" 3846 #define DEF_PSC_GREET_WAIT "${stress?{2}:{6}}s" 3847 extern int var_psc_greet_wait; 3848 3849 #define VAR_PSC_PREGR_BANNER "postscreen_greet_banner" 3850 #define DEF_PSC_PREGR_BANNER "$" VAR_SMTPD_BANNER 3851 extern char *var_psc_pregr_banner; 3852 3853 #define VAR_PSC_PREGR_ENABLE "postscreen_greet_enable" 3854 #define DEF_PSC_PREGR_ENABLE no 3855 extern char *var_psc_pregr_enable; 3856 3857 #define VAR_PSC_PREGR_ACTION "postscreen_greet_action" 3858 #define DEF_PSC_PREGR_ACTION "ignore" 3859 extern char *var_psc_pregr_action; 3860 3861 #define VAR_PSC_PREGR_TTL "postscreen_greet_ttl" 3862 #define DEF_PSC_PREGR_TTL "1d" 3863 extern int var_psc_pregr_ttl; 3864 3865 #define VAR_PSC_DNSBL_SITES "postscreen_dnsbl_sites" 3866 #define DEF_PSC_DNSBL_SITES "" 3867 extern char *var_psc_dnsbl_sites; 3868 3869 #define VAR_PSC_DNSBL_THRESH "postscreen_dnsbl_threshold" 3870 #define DEF_PSC_DNSBL_THRESH 1 3871 extern int var_psc_dnsbl_thresh; 3872 3873 #define VAR_PSC_DNSBL_WTHRESH "postscreen_dnsbl_whitelist_threshold" 3874 #define DEF_PSC_DNSBL_WTHRESH 0 3875 3876 #define VAR_PSC_DNSBL_ALTHRESH "postscreen_dnsbl_allowlist_threshold" 3877 #define DEF_PSC_DNSBL_ALTHRESH \ 3878 "${" VAR_PSC_DNSBL_WTHRESH "?{$" VAR_PSC_DNSBL_WTHRESH "}:{0}}" 3879 extern int var_psc_dnsbl_althresh; 3880 3881 #define VAR_PSC_DNSBL_ENABLE "postscreen_dnsbl_enable" 3882 #define DEF_PSC_DNSBL_ENABLE 0 3883 extern char *var_psc_dnsbl_enable; 3884 3885 #define VAR_PSC_DNSBL_ACTION "postscreen_dnsbl_action" 3886 #define DEF_PSC_DNSBL_ACTION "ignore" 3887 extern char *var_psc_dnsbl_action; 3888 3889 #define VAR_PSC_DNSBL_MIN_TTL "postscreen_dnsbl_min_ttl" 3890 #define DEF_PSC_DNSBL_MIN_TTL "60s" 3891 extern int var_psc_dnsbl_min_ttl; 3892 3893 #define VAR_PSC_DNSBL_MAX_TTL "postscreen_dnsbl_max_ttl" 3894 #define DEF_PSC_DNSBL_MAX_TTL "${postscreen_dnsbl_ttl?{$postscreen_dnsbl_ttl}:{1}}h" 3895 extern int var_psc_dnsbl_max_ttl; 3896 3897 #define VAR_PSC_DNSBL_REPLY "postscreen_dnsbl_reply_map" 3898 #define DEF_PSC_DNSBL_REPLY "" 3899 extern char *var_psc_dnsbl_reply; 3900 3901 #define VAR_PSC_DNSBL_TMOUT "postscreen_dnsbl_timeout" 3902 #define DEF_PSC_DNSBL_TMOUT "10s" 3903 extern int var_psc_dnsbl_tmout; 3904 3905 #define VAR_PSC_PIPEL_ENABLE "postscreen_pipelining_enable" 3906 #define DEF_PSC_PIPEL_ENABLE 0 3907 extern bool var_psc_pipel_enable; 3908 3909 #define VAR_PSC_PIPEL_ACTION "postscreen_pipelining_action" 3910 #define DEF_PSC_PIPEL_ACTION "enforce" 3911 extern char *var_psc_pipel_action; 3912 3913 #define VAR_PSC_PIPEL_TTL "postscreen_pipelining_ttl" 3914 #define DEF_PSC_PIPEL_TTL "30d" 3915 extern int var_psc_pipel_ttl; 3916 3917 #define VAR_PSC_NSMTP_ENABLE "postscreen_non_smtp_command_enable" 3918 #define DEF_PSC_NSMTP_ENABLE 0 3919 extern bool var_psc_nsmtp_enable; 3920 3921 #define VAR_PSC_NSMTP_ACTION "postscreen_non_smtp_command_action" 3922 #define DEF_PSC_NSMTP_ACTION "drop" 3923 extern char *var_psc_nsmtp_action; 3924 3925 #define VAR_PSC_NSMTP_TTL "postscreen_non_smtp_command_ttl" 3926 #define DEF_PSC_NSMTP_TTL "30d" 3927 extern int var_psc_nsmtp_ttl; 3928 3929 #define VAR_PSC_BARLF_ENABLE "postscreen_bare_newline_enable" 3930 #define DEF_PSC_BARLF_ENABLE 0 3931 extern bool var_psc_barlf_enable; 3932 3933 #define VAR_PSC_BARLF_ACTION "postscreen_bare_newline_action" 3934 #define DEF_PSC_BARLF_ACTION "ignore" 3935 extern char *var_psc_barlf_action; 3936 3937 #define VAR_PSC_BARLF_TTL "postscreen_bare_newline_ttl" 3938 #define DEF_PSC_BARLF_TTL "30d" 3939 extern int var_psc_barlf_ttl; 3940 3941 #define VAR_PSC_BLIST_ACTION "postscreen_blacklist_action" 3942 #define DEF_PSC_BLIST_ACTION "ignore" 3943 3944 #define VAR_PSC_DNLIST_ACTION "postscreen_denylist_action" 3945 #define DEF_PSC_DNLIST_ACTION \ 3946 "${" VAR_PSC_BLIST_ACTION "?{$" VAR_PSC_BLIST_ACTION "}:{" DEF_PSC_BLIST_ACTION "}}" 3947 extern char *var_psc_dnlist_nets; 3948 3949 #define VAR_PSC_CMD_COUNT "postscreen_command_count_limit" 3950 #define DEF_PSC_CMD_COUNT 20 3951 extern int var_psc_cmd_count; 3952 3953 #define VAR_PSC_CMD_TIME "postscreen_command_time_limit" 3954 #define DEF_PSC_CMD_TIME DEF_SMTPD_TMOUT 3955 extern int var_psc_cmd_time; 3956 3957 #define VAR_PSC_WATCHDOG "postscreen_watchdog_timeout" 3958 #define DEF_PSC_WATCHDOG "10s" 3959 extern int var_psc_watchdog; 3960 3961 #define VAR_PSC_EHLO_DIS_WORDS "postscreen_discard_ehlo_keywords" 3962 #define DEF_PSC_EHLO_DIS_WORDS "$" VAR_SMTPD_EHLO_DIS_WORDS 3963 extern char *var_psc_ehlo_dis_words; 3964 3965 #define VAR_PSC_EHLO_DIS_MAPS "postscreen_discard_ehlo_keyword_address_maps" 3966 #define DEF_PSC_EHLO_DIS_MAPS "$" VAR_SMTPD_EHLO_DIS_MAPS 3967 extern char *var_psc_ehlo_dis_maps; 3968 3969 #define VAR_PSC_TLS_LEVEL "postscreen_tls_security_level" 3970 #define DEF_PSC_TLS_LEVEL "$" VAR_SMTPD_TLS_LEVEL 3971 extern char *var_psc_tls_level; 3972 3973 #define VAR_PSC_USE_TLS "postscreen_use_tls" 3974 #define DEF_PSC_USE_TLS "$" VAR_SMTPD_USE_TLS 3975 extern bool var_psc_use_tls; 3976 3977 #define VAR_PSC_ENFORCE_TLS "postscreen_enforce_tls" 3978 #define DEF_PSC_ENFORCE_TLS "$" VAR_SMTPD_ENFORCE_TLS 3979 extern bool var_psc_enforce_tls; 3980 3981 #define VAR_PSC_FORBID_CMDS "postscreen_forbidden_commands" 3982 #define DEF_PSC_FORBID_CMDS "$" VAR_SMTPD_FORBID_CMDS 3983 extern char *var_psc_forbid_cmds; 3984 3985 #define VAR_PSC_HELO_REQUIRED "postscreen_helo_required" 3986 #define DEF_PSC_HELO_REQUIRED "$" VAR_HELO_REQUIRED 3987 extern bool var_psc_helo_required; 3988 3989 #define VAR_PSC_DISABLE_VRFY "postscreen_disable_vrfy_command" 3990 #define DEF_PSC_DISABLE_VRFY "$" VAR_DISABLE_VRFY_CMD 3991 extern bool var_psc_disable_vrfy; 3992 3993 #define VAR_PSC_CCONN_LIMIT "postscreen_client_connection_count_limit" 3994 #define DEF_PSC_CCONN_LIMIT "$" VAR_SMTPD_CCONN_LIMIT 3995 extern int var_psc_cconn_limit; 3996 3997 #define VAR_PSC_REJ_FOOTER "postscreen_reject_footer" 3998 #define DEF_PSC_REJ_FOOTER "$" VAR_SMTPD_REJ_FOOTER 3999 extern char *var_psc_rej_footer; 4000 4001 #define VAR_PSC_REJ_FTR_MAPS "postscreen_reject_footer_maps" 4002 #define DEF_PSC_REJ_FTR_MAPS "$" VAR_SMTPD_REJ_FTR_MAPS 4003 extern char *var_psc_rej_ftr_maps; 4004 4005 #define VAR_PSC_EXP_FILTER "postscreen_expansion_filter" 4006 #define DEF_PSC_EXP_FILTER "$" VAR_SMTPD_EXP_FILTER 4007 extern char *var_psc_exp_filter; 4008 4009 #define VAR_PSC_CMD_FILTER "postscreen_command_filter" 4010 #define DEF_PSC_CMD_FILTER "" 4011 extern char *var_psc_cmd_filter; 4012 4013 #define VAR_PSC_ACL "postscreen_access_list" 4014 #define DEF_PSC_ACL SERVER_ACL_NAME_WL_MYNETWORKS 4015 extern char *var_psc_acl; 4016 4017 #define VAR_PSC_WLIST_IF "postscreen_whitelist_interfaces" 4018 #define DEF_PSC_WLIST_IF "static:all" 4019 4020 #define VAR_PSC_ALLIST_IF "postscreen_allowlist_interfaces" 4021 #define DEF_PSC_ALLIST_IF \ 4022 "${" VAR_PSC_WLIST_IF "?{$" VAR_PSC_WLIST_IF "}:{" DEF_PSC_WLIST_IF "}}" 4023 extern char *var_psc_allist_if; 4024 4025 #define NOPROXY_PROTO_NAME "" 4026 4027 #define VAR_PSC_UPROXY_PROTO "postscreen_upstream_proxy_protocol" 4028 #define DEF_PSC_UPROXY_PROTO NOPROXY_PROTO_NAME 4029 extern char *var_psc_uproxy_proto; 4030 4031 #define VAR_PSC_UPROXY_TMOUT "postscreen_upstream_proxy_timeout" 4032 #define DEF_PSC_UPROXY_TMOUT "5s" 4033 extern int var_psc_uproxy_tmout; 4034 4035 #define VAR_RESPECTFUL_LOGGING "respectful_logging" 4036 #define DEF_RESPECTFUL_LOGGING \ 4037 "${{$compatibility_level} <level {3.6} ?" " {no} : {yes}}" 4038 extern bool var_respectful_logging; 4039 4040 #define VAR_DNSBLOG_SERVICE "dnsblog_service_name" 4041 #define DEF_DNSBLOG_SERVICE MAIL_SERVICE_DNSBLOG 4042 extern char *var_dnsblog_service; 4043 4044 #define VAR_DNSBLOG_DELAY "dnsblog_reply_delay" 4045 #define DEF_DNSBLOG_DELAY "0s" 4046 extern int var_dnsblog_delay; 4047 4048 #define VAR_TLSPROXY_SERVICE "tlsproxy_service_name" 4049 #define DEF_TLSPROXY_SERVICE MAIL_SERVICE_TLSPROXY 4050 extern char *var_tlsproxy_service; 4051 4052 #define VAR_TLSP_WATCHDOG "tlsproxy_watchdog_timeout" 4053 #define DEF_TLSP_WATCHDOG "10s" 4054 extern int var_tlsp_watchdog; 4055 4056 #define VAR_TLSP_TLS_LEVEL "tlsproxy_tls_security_level" 4057 #define DEF_TLSP_TLS_LEVEL "$" VAR_SMTPD_TLS_LEVEL 4058 extern char *var_tlsp_tls_level; 4059 4060 #define VAR_TLSP_USE_TLS "tlsproxy_use_tls" 4061 #define DEF_TLSP_USE_TLS "$" VAR_SMTPD_USE_TLS 4062 extern bool var_tlsp_use_tls; 4063 4064 #define VAR_TLSP_ENFORCE_TLS "tlsproxy_enforce_tls" 4065 #define DEF_TLSP_ENFORCE_TLS "$" VAR_SMTPD_ENFORCE_TLS 4066 extern bool var_tlsp_enforce_tls; 4067 4068 #define VAR_TLSP_TLS_ACERT "tlsproxy_tls_ask_ccert" 4069 #define DEF_TLSP_TLS_ACERT "$" VAR_SMTPD_TLS_ACERT 4070 extern bool var_tlsp_tls_ask_ccert; 4071 4072 #define VAR_TLSP_TLS_RCERT "tlsproxy_tls_req_ccert" 4073 #define DEF_TLSP_TLS_RCERT "$" VAR_SMTPD_TLS_RCERT 4074 extern bool var_tlsp_tls_req_ccert; 4075 4076 #define VAR_TLSP_TLS_ENABLE_RPK "tlsproxy_tls_enable_rpk" 4077 #define DEF_TLSP_TLS_ENABLE_RPK "$" VAR_SMTPD_TLS_ENABLE_RPK 4078 extern bool var_tlsp_tls_enable_rpk; 4079 4080 #define VAR_TLSP_TLS_CCERT_VD "tlsproxy_tls_ccert_verifydepth" 4081 #define DEF_TLSP_TLS_CCERT_VD "$" VAR_SMTPD_TLS_CCERT_VD 4082 extern int var_tlsp_tls_ccert_vd; 4083 4084 #define VAR_TLSP_TLS_CHAIN_FILES "tlsproxy_tls_chain_files" 4085 #define DEF_TLSP_TLS_CHAIN_FILES "$" VAR_SMTPD_TLS_CHAIN_FILES 4086 extern char *var_tlsp_tls_chain_files; 4087 4088 #define VAR_TLSP_TLS_CERT_FILE "tlsproxy_tls_cert_file" 4089 #define DEF_TLSP_TLS_CERT_FILE "$" VAR_SMTPD_TLS_CERT_FILE 4090 extern char *var_tlsp_tls_cert_file; 4091 4092 #define VAR_TLSP_TLS_KEY_FILE "tlsproxy_tls_key_file" 4093 #define DEF_TLSP_TLS_KEY_FILE "$" VAR_SMTPD_TLS_KEY_FILE 4094 extern char *var_tlsp_tls_key_file; 4095 4096 #define VAR_TLSP_TLS_DCERT_FILE "tlsproxy_tls_dcert_file" 4097 #define DEF_TLSP_TLS_DCERT_FILE "$" VAR_SMTPD_TLS_DCERT_FILE 4098 extern char *var_tlsp_tls_dcert_file; 4099 4100 #define VAR_TLSP_TLS_DKEY_FILE "tlsproxy_tls_dkey_file" 4101 #define DEF_TLSP_TLS_DKEY_FILE "$" VAR_SMTPD_TLS_DKEY_FILE 4102 extern char *var_tlsp_tls_dkey_file; 4103 4104 #define VAR_TLSP_TLS_ECCERT_FILE "tlsproxy_tls_eccert_file" 4105 #define DEF_TLSP_TLS_ECCERT_FILE "$" VAR_SMTPD_TLS_ECCERT_FILE 4106 extern char *var_tlsp_tls_eccert_file; 4107 4108 #define VAR_TLSP_TLS_ECKEY_FILE "tlsproxy_tls_eckey_file" 4109 #define DEF_TLSP_TLS_ECKEY_FILE "$" VAR_SMTPD_TLS_ECKEY_FILE 4110 extern char *var_tlsp_tls_eckey_file; 4111 4112 #define DEF_TLSP_TLS_ECKEY_FILE "$" VAR_SMTPD_TLS_ECKEY_FILE 4113 extern char *var_tlsp_tls_eckey_file; 4114 4115 #define VAR_TLSP_TLS_CA_FILE "tlsproxy_tls_CAfile" 4116 #define DEF_TLSP_TLS_CA_FILE "$" VAR_SMTPD_TLS_CA_FILE 4117 extern char *var_tlsp_tls_CAfile; 4118 4119 #define VAR_TLSP_TLS_CA_PATH "tlsproxy_tls_CApath" 4120 #define DEF_TLSP_TLS_CA_PATH "$" VAR_SMTPD_TLS_CA_PATH 4121 extern char *var_tlsp_tls_CApath; 4122 4123 #define VAR_TLSP_TLS_PROTO "tlsproxy_tls_protocols" 4124 #define DEF_TLSP_TLS_PROTO "$" VAR_SMTPD_TLS_PROTO 4125 extern char *var_tlsp_tls_proto; 4126 4127 #define VAR_TLSP_TLS_MAND_PROTO "tlsproxy_tls_mandatory_protocols" 4128 #define DEF_TLSP_TLS_MAND_PROTO "$" VAR_SMTPD_TLS_MAND_PROTO 4129 extern char *var_tlsp_tls_mand_proto; 4130 4131 #define VAR_TLSP_TLS_CIPH "tlsproxy_tls_ciphers" 4132 #define DEF_TLSP_TLS_CIPH "$" VAR_SMTPD_TLS_CIPH 4133 extern char *var_tlsp_tls_ciph; 4134 4135 #define VAR_TLSP_TLS_MAND_CIPH "tlsproxy_tls_mandatory_ciphers" 4136 #define DEF_TLSP_TLS_MAND_CIPH "$" VAR_SMTPD_TLS_MAND_CIPH 4137 extern char *var_tlsp_tls_mand_ciph; 4138 4139 #define VAR_TLSP_TLS_EXCL_CIPH "tlsproxy_tls_exclude_ciphers" 4140 #define DEF_TLSP_TLS_EXCL_CIPH "$" VAR_SMTPD_TLS_EXCL_CIPH 4141 extern char *var_tlsp_tls_excl_ciph; 4142 4143 #define VAR_TLSP_TLS_MAND_EXCL "tlsproxy_tls_mandatory_exclude_ciphers" 4144 #define DEF_TLSP_TLS_MAND_EXCL "$" VAR_SMTPD_TLS_MAND_EXCL 4145 extern char *var_tlsp_tls_mand_excl; 4146 4147 #define VAR_TLSP_TLS_FPT_DGST "tlsproxy_tls_fingerprint_digest" 4148 #define DEF_TLSP_TLS_FPT_DGST "$" VAR_SMTPD_TLS_FPT_DGST 4149 extern char *var_tlsp_tls_fpt_dgst; 4150 4151 #define VAR_TLSP_TLS_512_FILE "tlsproxy_tls_dh512_param_file" 4152 #define DEF_TLSP_TLS_512_FILE "$" VAR_SMTPD_TLS_512_FILE 4153 extern char *var_tlsp_tls_dh512_param_file; 4154 4155 #define VAR_TLSP_TLS_1024_FILE "tlsproxy_tls_dh1024_param_file" 4156 #define DEF_TLSP_TLS_1024_FILE "$" VAR_SMTPD_TLS_1024_FILE 4157 extern char *var_tlsp_tls_dh1024_param_file; 4158 4159 #define VAR_TLSP_TLS_EECDH "tlsproxy_tls_eecdh_grade" 4160 #define DEF_TLSP_TLS_EECDH "$" VAR_SMTPD_TLS_EECDH 4161 extern char *var_tlsp_tls_eecdh; 4162 4163 #define VAR_TLSP_TLS_LOGLEVEL "tlsproxy_tls_loglevel" 4164 #define DEF_TLSP_TLS_LOGLEVEL "$" VAR_SMTPD_TLS_LOGLEVEL 4165 extern char *var_tlsp_tls_loglevel; 4166 4167 #define VAR_TLSP_TLS_RECHEAD "tlsproxy_tls_received_header" 4168 #define DEF_TLSP_TLS_RECHEAD "$" VAR_SMTPD_TLS_RECHEAD 4169 extern bool var_tlsp_tls_received_header; 4170 4171 #define VAR_TLSP_TLS_SET_SESSID "tlsproxy_tls_always_issue_session_ids" 4172 #define DEF_TLSP_TLS_SET_SESSID "$" VAR_SMTPD_TLS_SET_SESSID 4173 extern bool var_tlsp_tls_set_sessid; 4174 4175 /* 4176 * Workaround for tlsproxy(8) pre-jail client certs/keys access. 4177 */ 4178 #define VAR_TLSP_CLNT_LOGLEVEL "tlsproxy_client_loglevel" 4179 #define DEF_TLSP_CLNT_LOGLEVEL "$" VAR_SMTP_TLS_LOGLEVEL 4180 extern char *var_tlsp_clnt_loglevel; 4181 4182 #define VAR_TLSP_CLNT_LOGPARAM "tlsproxy_client_loglevel_parameter" 4183 #define DEF_TLSP_CLNT_LOGPARAM VAR_SMTP_TLS_LOGLEVEL 4184 extern char *var_tlsp_clnt_logparam; 4185 4186 #define VAR_TLSP_CLNT_SCERT_VD "tlsproxy_client_scert_verifydepth" 4187 #define DEF_TLSP_CLNT_SCERT_VD "$" VAR_SMTP_TLS_SCERT_VD 4188 extern int var_tlsp_clnt_scert_vd; 4189 4190 #define VAR_TLSP_CLNT_CHAIN_FILES "tlsproxy_client_chain_files" 4191 #define DEF_TLSP_CLNT_CHAIN_FILES "$" VAR_SMTP_TLS_CHAIN_FILES 4192 extern char *var_tlsp_clnt_chain_files; 4193 4194 #define VAR_TLSP_CLNT_CERT_FILE "tlsproxy_client_cert_file" 4195 #define DEF_TLSP_CLNT_CERT_FILE "$" VAR_SMTP_TLS_CERT_FILE 4196 extern char *var_tlsp_clnt_cert_file; 4197 4198 #define VAR_TLSP_CLNT_KEY_FILE "tlsproxy_client_key_file" 4199 #define DEF_TLSP_CLNT_KEY_FILE "$" VAR_SMTP_TLS_KEY_FILE 4200 extern char *var_tlsp_clnt_key_file; 4201 4202 #define VAR_TLSP_CLNT_DCERT_FILE "tlsproxy_client_dcert_file" 4203 #define DEF_TLSP_CLNT_DCERT_FILE "$" VAR_SMTP_TLS_DCERT_FILE 4204 extern char *var_tlsp_clnt_dcert_file; 4205 4206 #define VAR_TLSP_CLNT_DKEY_FILE "tlsproxy_client_dkey_file" 4207 #define DEF_TLSP_CLNT_DKEY_FILE "$" VAR_SMTP_TLS_DKEY_FILE 4208 extern char *var_tlsp_clnt_dkey_file; 4209 4210 #define VAR_TLSP_CLNT_ECCERT_FILE "tlsproxy_client_eccert_file" 4211 #define DEF_TLSP_CLNT_ECCERT_FILE "$" VAR_SMTP_TLS_ECCERT_FILE 4212 extern char *var_tlsp_clnt_eccert_file; 4213 4214 #define VAR_TLSP_CLNT_ECKEY_FILE "tlsproxy_client_eckey_file" 4215 #define DEF_TLSP_CLNT_ECKEY_FILE "$" VAR_SMTP_TLS_ECKEY_FILE 4216 extern char *var_tlsp_clnt_eckey_file; 4217 4218 #define VAR_TLSP_CLNT_CAFILE "tlsproxy_client_CAfile" 4219 #define DEF_TLSP_CLNT_CAFILE "$" VAR_SMTP_TLS_CA_FILE 4220 extern char *var_tlsp_clnt_CAfile; 4221 4222 #define VAR_TLSP_CLNT_CAPATH "tlsproxy_client_CApath" 4223 #define DEF_TLSP_CLNT_CAPATH "$" VAR_SMTP_TLS_CA_PATH 4224 extern char *var_tlsp_clnt_CApath; 4225 4226 #define VAR_TLSP_CLNT_FPT_DGST "tlsproxy_client_fingerprint_digest" 4227 #define DEF_TLSP_CLNT_FPT_DGST "$" VAR_SMTP_TLS_FPT_DGST 4228 extern char *var_tlsp_clnt_fpt_dgst; 4229 4230 #define VAR_TLSP_CLNT_USE_TLS "tlsproxy_client_use_tls" 4231 #define DEF_TLSP_CLNT_USE_TLS "$" VAR_SMTP_USE_TLS 4232 extern bool var_tlsp_clnt_use_tls; 4233 4234 #define VAR_TLSP_CLNT_ENFORCE_TLS "tlsproxy_client_enforce_tls" 4235 #define DEF_TLSP_CLNT_ENFORCE_TLS "$" VAR_SMTP_ENFORCE_TLS 4236 extern bool var_tlsp_clnt_enforce_tls; 4237 4238 /* Migrate an incorrect name. */ 4239 #define OBS_TLSP_CLNT_LEVEL "tlsproxy_client_level" 4240 #define VAR_TLSP_CLNT_LEVEL "tlsproxy_client_security_level" 4241 #define DEF_TLSP_CLNT_LEVEL "${" OBS_TLSP_CLNT_LEVEL "?{$" \ 4242 OBS_TLSP_CLNT_LEVEL "}:{$" \ 4243 VAR_SMTP_TLS_LEVEL "}}" 4244 extern char *var_tlsp_clnt_level; 4245 4246 #define VAR_TLSP_CLNT_PER_SITE "tlsproxy_client_per_site" 4247 #define DEF_TLSP_CLNT_PER_SITE "$" VAR_SMTP_TLS_PER_SITE 4248 extern char *var_tlsp_clnt_per_site; 4249 4250 /* Migrate an incorrect name. */ 4251 #define OBS_TLSP_CLNT_POLICY "tlsproxy_client_policy" 4252 #define VAR_TLSP_CLNT_POLICY "tlsproxy_client_policy_maps" 4253 #define DEF_TLSP_CLNT_POLICY "${" OBS_TLSP_CLNT_POLICY "?{$" \ 4254 OBS_TLSP_CLNT_POLICY "}:{$" \ 4255 VAR_SMTP_TLS_POLICY "}}" 4256 extern char *var_tlsp_clnt_policy; 4257 4258 /* 4259 * SMTPD "reject" contact info. 4260 */ 4261 #define VAR_SMTPD_REJ_FOOTER "smtpd_reject_footer" 4262 #define DEF_SMTPD_REJ_FOOTER "" 4263 extern char *var_smtpd_rej_footer; 4264 4265 #define VAR_SMTPD_REJ_FTR_MAPS "smtpd_reject_footer_maps" 4266 #define DEF_SMTPD_REJ_FTR_MAPS "" 4267 extern char *var_smtpd_rej_ftr_maps; 4268 4269 /* 4270 * Per-record time limit support. 4271 */ 4272 #define VAR_SMTPD_REC_DEADLINE "smtpd_per_record_deadline" 4273 #define DEF_SMTPD_REC_DEADLINE "${stress?{yes}:{no}}" 4274 extern bool var_smtpd_rec_deadline; 4275 4276 #define VAR_SMTP_REC_DEADLINE "smtp_per_record_deadline" 4277 #define DEF_SMTP_REC_DEADLINE 0 4278 #define VAR_LMTP_REC_DEADLINE "lmtp_per_record_deadline" 4279 #define DEF_LMTP_REC_DEADLINE 0 4280 extern bool var_smtp_rec_deadline; 4281 4282 #define VAR_SMTPD_REQ_DEADLINE "smtpd_per_request_deadline" 4283 #define DEF_SMTPD_REQ_DEADLINE "${smtpd_per_record_deadline?" \ 4284 "{$smtpd_per_record_deadline}:" \ 4285 "{${stress?{yes}:{no}}}}" 4286 extern bool var_smtpd_req_deadline; 4287 4288 #define VAR_SMTP_REQ_DEADLINE "smtp_per_request_deadline" 4289 #define DEF_SMTP_REQ_DEADLINE "${smtp_per_record_deadline?" \ 4290 "{$smtp_per_record_deadline}:{no}}" 4291 #define VAR_LMTP_REQ_DEADLINE "lmtp_per_request_deadline" 4292 #define DEF_LMTP_REQ_DEADLINE "${lmtp_per_record_deadline?" \ 4293 "{$lmtp_per_record_deadline}:{no}}" 4294 extern bool var_smtp_req_deadline; 4295 4296 #define VAR_SMTPD_MIN_DATA_RATE "smtpd_min_data_rate" 4297 #define DEF_SMTPD_MIN_DATA_RATE 500 4298 extern int var_smtpd_min_data_rate; 4299 4300 #define VAR_SMTP_MIN_DATA_RATE "smtp_min_data_rate" 4301 #define DEF_SMTP_MIN_DATA_RATE 500 4302 #define VAR_LMTP_MIN_DATA_RATE "lmtp_min_data_rate" 4303 #define DEF_LMTP_MIN_DATA_RATE 500 4304 extern int var_smtp_min_data_rate; 4305 4306 /* 4307 * Permit logging. 4308 */ 4309 #define VAR_SMTPD_ACL_PERM_LOG "smtpd_log_access_permit_actions" 4310 #define DEF_SMTPD_ACL_PERM_LOG "" 4311 extern char *var_smtpd_acl_perm_log; 4312 4313 /* 4314 * Before-smtpd proxy support. 4315 */ 4316 #define VAR_SMTPD_UPROXY_PROTO "smtpd_upstream_proxy_protocol" 4317 #define DEF_SMTPD_UPROXY_PROTO "" 4318 extern char *var_smtpd_uproxy_proto; 4319 4320 #define VAR_SMTPD_UPROXY_TMOUT "smtpd_upstream_proxy_timeout" 4321 #define DEF_SMTPD_UPROXY_TMOUT "5s" 4322 extern int var_smtpd_uproxy_tmout; 4323 4324 /* 4325 * Postfix sendmail command compatibility features. 4326 */ 4327 #define SM_FIX_EOL_STRICT "strict" 4328 #define SM_FIX_EOL_NEVER "never" 4329 #define SM_FIX_EOL_ALWAYS "always" 4330 4331 #define VAR_SM_FIX_EOL "sendmail_fix_line_endings" 4332 #define DEF_SM_FIX_EOL SM_FIX_EOL_ALWAYS 4333 extern char *var_sm_fix_eol; 4334 4335 /* 4336 * Gradual degradation, or fatal exit after table open error? 4337 */ 4338 #define VAR_DAEMON_OPEN_FATAL "daemon_table_open_error_is_fatal" 4339 #define DEF_DAEMON_OPEN_FATAL 0 4340 extern bool var_daemon_open_fatal; 4341 4342 /* 4343 * Optional delivery status filter. 4344 */ 4345 #define VAR_DSN_FILTER "default_delivery_status_filter" 4346 #define DEF_DSN_FILTER "" 4347 extern char *var_dsn_filter; 4348 4349 #define VAR_SMTP_DSN_FILTER "smtp_delivery_status_filter" 4350 #define DEF_SMTP_DSN_FILTER "$" VAR_DSN_FILTER 4351 #define VAR_LMTP_DSN_FILTER "lmtp_delivery_status_filter" 4352 #define DEF_LMTP_DSN_FILTER "$" VAR_DSN_FILTER 4353 extern char *var_smtp_dsn_filter; 4354 4355 #define VAR_PIPE_DSN_FILTER "pipe_delivery_status_filter" 4356 #define DEF_PIPE_DSN_FILTER "$" VAR_DSN_FILTER 4357 extern char *var_pipe_dsn_filter; 4358 4359 #define VAR_VIRT_DSN_FILTER "virtual_delivery_status_filter" 4360 #define DEF_VIRT_DSN_FILTER "$" VAR_DSN_FILTER 4361 extern char *var_virt_dsn_filter; 4362 4363 #define VAR_LOCAL_DSN_FILTER "local_delivery_status_filter" 4364 #define DEF_LOCAL_DSN_FILTER "$" VAR_DSN_FILTER 4365 extern char *var_local_dsn_filter; 4366 4367 /* 4368 * Optional DNS reply filter. 4369 */ 4370 #define VAR_SMTP_DNS_RE_FILTER "smtp_dns_reply_filter" 4371 #define DEF_SMTP_DNS_RE_FILTER "" 4372 #define VAR_LMTP_DNS_RE_FILTER "lmtp_dns_reply_filter" 4373 #define DEF_LMTP_DNS_RE_FILTER "" 4374 extern char *var_smtp_dns_re_filter; 4375 4376 #define VAR_SMTPD_DNS_RE_FILTER "smtpd_dns_reply_filter" 4377 #define DEF_SMTPD_DNS_RE_FILTER "" 4378 extern char *var_smtpd_dns_re_filter; 4379 4380 /* 4381 * Backwards compatibility. 4382 */ 4383 #define VAR_SMTPD_FORBID_BARE_LF "smtpd_forbid_bare_newline" 4384 #define DEF_SMTPD_FORBID_BARE_LF "normalize" 4385 4386 #define VAR_SMTPD_FORBID_BARE_LF_EXCL "smtpd_forbid_bare_newline_exclusions" 4387 #define DEF_SMTPD_FORBID_BARE_LF_EXCL "$" VAR_MYNETWORKS 4388 4389 #define VAR_SMTPD_FORBID_BARE_LF_CODE "smtpd_forbid_bare_newline_reject_code" 4390 #define DEF_SMTPD_FORBID_BARE_LF_CODE 550 4391 4392 #define VAR_CLEANUP_MASK_STRAY_CR_LF "cleanup_replace_stray_cr_lf" 4393 #define DEF_CLEANUP_MASK_STRAY_CR_LF 1 4394 extern bool var_cleanup_mask_stray_cr_lf; 4395 4396 /* 4397 * Share TLS sessions through tlsproxy(8). 4398 */ 4399 #define VAR_SMTP_TLS_CONN_REUSE "smtp_tls_connection_reuse" 4400 #define DEF_SMTP_TLS_CONN_REUSE 0 4401 #define VAR_LMTP_TLS_CONN_REUSE "lmtp_tls_connection_reuse" 4402 #define DEF_LMTP_TLS_CONN_REUSE 0 4403 extern bool var_smtp_tls_conn_reuse; 4404 4405 /* 4406 * Location of shared-library files. 4407 * 4408 * If the files will be installed into a known directory, such as a directory 4409 * that is processed with the ldconfig(1) command, then the shlib_directory 4410 * parameter may be configured at installation time. 4411 * 4412 * Otherwise, the shlib_directory parameter must be specified at compile time, 4413 * and it cannot be changed afterwards. 4414 */ 4415 #define VAR_SHLIB_DIR "shlib_directory" 4416 #ifndef DEF_SHLIB_DIR 4417 #define DEF_SHLIB_DIR "/usr/lib/postfix" 4418 #endif 4419 extern char *var_shlib_dir; 4420 4421 #define VAR_META_DIR "meta_directory" 4422 #ifndef DEF_META_DIR 4423 #define DEF_META_DIR DEF_DAEMON_DIR 4424 #endif 4425 extern char *var_meta_dir; 4426 4427 /* 4428 * SMTPUTF8 support. 4429 */ 4430 #define VAR_SMTPUTF8_ENABLE "smtputf8_enable" 4431 #ifndef DEF_SMTPUTF8_ENABLE 4432 #define DEF_SMTPUTF8_ENABLE "${{$compatibility_level} <level {1} ? " \ 4433 "{no} : {yes}}" 4434 #endif 4435 extern bool var_smtputf8_enable; 4436 4437 #define VAR_STRICT_SMTPUTF8 "strict_smtputf8" 4438 #define DEF_STRICT_SMTPUTF8 0 4439 extern bool var_strict_smtputf8; 4440 4441 #define VAR_SMTPUTF8_AUTOCLASS "smtputf8_autodetect_classes" 4442 #define DEF_SMTPUTF8_AUTOCLASS MAIL_SRC_NAME_SENDMAIL ", " \ 4443 MAIL_SRC_NAME_VERIFY 4444 extern char *var_smtputf8_autoclass; 4445 4446 #define VAR_IDNA2003_COMPAT "enable_idna2003_compatibility" 4447 #define DEF_IDNA2003_COMPAT "no" 4448 extern bool var_idna2003_compat; 4449 4450 /* 4451 * REQUIRETLS support (RFC 8689). 4452 */ 4453 #define VAR_TLSREQUIRED_ENABLE "tls_required_enable" 4454 #define DEF_TLSREQUIRED_ENABLE "yes" 4455 extern bool var_tls_required_enable; 4456 4457 #define VAR_REQTLS_ENABLE "requiretls_enable" 4458 #define DEF_REQTLS_ENABLE "yes" 4459 extern bool var_reqtls_enable; 4460 4461 #define VAR_SMTP_REQTLS_POLICY "smtp_requiretls_policy" 4462 #define DEF_SMTP_REQTLS_POLICY "inline:{{${domain_to_ascii{$mydomain}}=opportunistic}, {.${domain_to_ascii{$mydomain}}=opportunistic}, {localhost=opportunistic}}, cidr:{{0.0.0.0/0 opportunistic}, {::/0 opportunistic}}, enforce" 4463 extern char *var_smtp_reqtls_policy; 4464 4465 #define VAR_LMTP_REQTLS_POLICY "lmtp_requiretls_policy" 4466 #define DEF_LMTP_REQTLS_POLICY "opportunistic" 4467 4468 #define VAR_REQTLS_REDACT_DSN "requiretls_redact_dsn" 4469 #define DEF_REQTLS_REDACT_DSN "yes" 4470 extern bool var_reqtls_redact_dsn; 4471 4472 #define VAR_REQTLS_ESMTP_HDR "requiretls_esmtp_header" 4473 #define DEF_REQTLS_ESMTP_HDR "yes" 4474 extern bool var_reqtls_esmtp_hdr; 4475 4476 /* 4477 * TS per-feature policy status. 4478 */ 4479 #define VAR_SMTP_LOG_TLS_FEATURE_STATUS "smtp_log_tls_feature_status" 4480 #define DEF_SMTP_LOG_TLS_FEATURE_STATUS "yes" 4481 #define VAR_LMTP_LOG_TLS_FEATURE_STATUS "lmtp_log_tls_feature_status" 4482 #define DEF_LMTP_LOG_TLS_FEATURE_STATUS "yes" 4483 extern bool var_log_tls_feature_status; 4484 4485 /* 4486 * Workaround for future incompatibility. Our implementation of RFC 2308 4487 * negative reply caching relies on the promise that res_query() and 4488 * res_search() invoke res_send(), which returns the server response in an 4489 * application buffer even if the requested record does not exist. If this 4490 * promise is broken, we have a workaround that is good enough for DNS 4491 * reputation lookups. 4492 */ 4493 #define VAR_DNS_NCACHE_TTL_FIX "dns_ncache_ttl_fix_enable" 4494 #define DEF_DNS_NCACHE_TTL_FIX 0 4495 extern bool var_dns_ncache_ttl_fix; 4496 4497 /* 4498 * Logging. As systems evolve over time, logging becomes more challenging. 4499 */ 4500 #define VAR_MAILLOG_FILE "maillog_file" 4501 #define DEF_MAILLOG_FILE "" 4502 extern char *var_maillog_file; 4503 4504 #define VAR_MAILLOG_FILE_PFXS "maillog_file_prefixes" 4505 #define DEF_MAILLOG_FILE_PFXS "/var, /dev/stdout" 4506 extern char *var_maillog_file_pfxs; 4507 4508 #define VAR_MAILLOG_FILE_COMP "maillog_file_compressor" 4509 #define DEF_MAILLOG_FILE_COMP "gzip" 4510 extern char *var_maillog_file_comp; 4511 4512 #define VAR_MAILLOG_FILE_STAMP "maillog_file_rotate_suffix" 4513 #define DEF_MAILLOG_FILE_STAMP "%Y%m%d-%H%M%S" 4514 extern char *var_maillog_file_stamp; 4515 4516 #define VAR_MAILLOG_FILE_PERMS "maillog_file_permissions" 4517 #define DEF_MAILLOG_FILE_PERMS "0600" 4518 extern char *var_maillog_file_perms; 4519 4520 #define VAR_POSTLOG_SERVICE "postlog_service_name" 4521 #define DEF_POSTLOG_SERVICE MAIL_SERVICE_POSTLOG 4522 extern char *var_postlog_service; 4523 4524 #define VAR_POSTLOGD_WATCHDOG "postlogd_watchdog_timeout" 4525 #define DEF_POSTLOGD_WATCHDOG "10s" 4526 extern int var_postlogd_watchdog; 4527 4528 /* 4529 * Backwards compatibility for internal-form address logging. 4530 */ 4531 #define INFO_LOG_ADDR_FORM_NAME_EXTERNAL "external" 4532 #define INFO_LOG_ADDR_FORM_NAME_INTERNAL "internal" 4533 4534 #define VAR_INFO_LOG_ADDR_FORM "info_log_address_format" 4535 #define DEF_INFO_LOG_ADDR_FORM INFO_LOG_ADDR_FORM_NAME_EXTERNAL 4536 extern char *var_info_log_addr_form; 4537 4538 /* 4539 * DNSSEC probing, to find out if DNSSEC validation is available. 4540 */ 4541 #define VAR_DNSSEC_PROBE "dnssec_probe" 4542 #define DEF_DNSSEC_PROBE "ns:." 4543 extern char *var_dnssec_probe; 4544 4545 /* 4546 * Pre-empt services(5) lookups. 4547 */ 4548 #define VAR_KNOWN_TCP_PORTS "known_tcp_ports" 4549 #define DEF_KNOWN_TCP_PORTS \ 4550 "lmtp=24, smtp=25, smtps=submissions=465, submission=587" 4551 extern char *var_known_tcp_ports; 4552 4553 /* 4554 * SRV lookup support. 4555 */ 4556 #define VAR_USE_SRV_LOOKUP "use_srv_lookup" 4557 #define DEF_USE_SRV_LOOKUP "" 4558 extern char *var_use_srv_lookup; 4559 4560 #define VAR_IGN_SRV_LOOKUP_ERR "ignore_srv_lookup_error" 4561 #define DEF_IGN_SRV_LOOKUP_ERR 0 4562 extern bool var_ign_srv_lookup_err; 4563 4564 #define VAR_ALLOW_SRV_FALLBACK "allow_srv_lookup_fallback" 4565 #define DEF_ALLOW_SRV_FALLBACK 0 4566 extern bool var_allow_srv_fallback; 4567 4568 /* 4569 * TLSRPT notification support. The lmtp_ names must be defined because the 4570 * build system enforces that every smtp_ parameter has an lmtp_ variant. 4571 */ 4572 #define VAR_SMTP_TLSRPT_ENABLE "smtp_tlsrpt_enable" 4573 #define DEF_SMTP_TLSRPT_ENABLE "no" 4574 #define VAR_LMTP_TLSRPT_ENABLE "lmtp_tlsrpt_enable" 4575 #define DEF_LMTP_TLSRPT_ENABLE DEF_SMTP_TLSRPT_ENABLE 4576 extern bool var_smtp_tlsrpt_enable; 4577 4578 #define VAR_SMTP_TLSRPT_SOCKNAME "smtp_tlsrpt_socket_name" 4579 #define DEF_SMTP_TLSRPT_SOCKNAME "" 4580 #define VAR_LMTP_TLSRPT_SOCKNAME "lmtp_tlsrpt_socket_name" 4581 #define DEF_LMTP_TLSRPT_SOCKNAME DEF_SMTP_TLSRPT_SOCKNAME 4582 extern char *var_smtp_tlsrpt_sockname; 4583 4584 #define VAR_SMTP_TLSRPT_SKIP_REUSED_HS "smtp_tlsrpt_skip_reused_handshakes" 4585 #define DEF_SMTP_TLSRPT_SKIP_REUSED_HS "no" 4586 #define VAR_LMTP_TLSRPT_SKIP_REUSED_HS "lmtp_tlsrpt_skip_reused_handshakes" 4587 #define DEF_LMTP_TLSRPT_SKIP_REUSED_HS DEF_SMTP_TLSRPT_SKIP_REUSED_HS 4588 extern bool var_smtp_tlsrpt_skip_reused_hs; 4589 4590 #define VAR_SMTP_TLS_ENF_STS_MX_PAT "smtp_tls_enforce_sts_mx_patterns" 4591 #define DEF_SMTP_TLS_ENF_STS_MX_PAT "yes" 4592 #define VAR_LMTP_TLS_ENF_STS_MX_PAT "lmtp_tls_enforce_sts_mx_patterns" 4593 #define DEF_LMTP_TLS_ENF_STS_MX_PAT "yes" 4594 extern bool var_smtp_tls_enf_sts_mx_pat; 4595 4596 /* 4597 * RFC 2047 encoding of full name info. 4598 */ 4599 #define VAR_FULL_NAME_ENCODING_CHARSET "full_name_encoding_charset" 4600 #define DEF_FULL_NAME_ENCODING_CHARSET "utf-8" 4601 extern char *var_full_name_encoding_charset; 4602 4603 /* 4604 * Limit for the sockmap reply size 4605 */ 4606 #define VAR_SOCKMAP_MAX_REPLY "socketmap_max_reply_size" 4607 #define DEF_SOCKMAP_MAX_REPLY 100000 /* reply size limit */ 4608 extern int var_sockmap_max_reply; 4609 4610 /* 4611 * Client privacy. 4612 */ 4613 #define VAR_SMTPD_HIDE_CLIENT_SESSION "smtpd_hide_client_session" 4614 #define DEF_SMTPD_HIDE_CLIENT_SESSION "no" 4615 extern bool var_smtpd_hide_client_session; 4616 4617 /* 4618 * SMTP server reject response filter. 4619 */ 4620 #define VAR_SMTPD_REJECT_FILTER_MAPS "smtpd_reject_filter_maps" 4621 #define DEF_SMTPD_REJECT_FILTER_MAPS "" 4622 extern char *var_smtpd_reject_filter_maps; 4623 4624 /* 4625 * Non-Berkeley-DB migration. 4626 */ 4627 #define NBDB_LEV_NAME_NONE "disable" 4628 #define NBDB_LEV_NAME_REDIRECT "enable-redirect" 4629 #define NBDB_LEV_NAME_REINDEX "enable-reindex" 4630 4631 #define VAR_NBDB_LEVEL "non_bdb_migration_level" 4632 #define DEF_NBDB_LEVEL NBDB_LEV_NAME_NONE 4633 extern char *var_nbdb_level; 4634 4635 #define VAR_NBDB_CUST_MAP "non_bdb_custom_mapping" 4636 #define DEF_NBDB_CUST_MAP "" 4637 extern char *var_nbdb_cust_map; 4638 4639 #define VAR_NBDB_SERVICE "non_bdb_migration_service_name" 4640 #define DEF_NBDB_SERVICE "nbdb_reindex" 4641 extern char *var_nbdb_service; 4642 4643 #define VAR_NBDB_ALLOW_ROOT_PFXS "non_bdb_migration_allow_root_prefixes" 4644 #define DEF_NBDB_ALLOW_ROOT_PFXS "/etc /usr/local/etc" 4645 extern char *var_nbdb_allow_root_pfxs; 4646 4647 #define VAR_NBDB_ALLOW_USER_PFXS "non_bdb_migration_allow_user_prefixes" 4648 #define DEF_NBDB_ALLOW_USER_PFXS "$" VAR_DATA_DIR " /var/lib/mailman" \ 4649 " /var/lib/mailman3" 4650 extern char *var_nbdb_allow_user_pfxs; 4651 4652 #define VAR_NBDB_LOG_REDIRECT "non_bdb_migration_log_redirect" 4653 #define DEF_NBDB_LOG_REDIRECT "yes" 4654 extern bool var_nbdb_log_redirect; 4655 4656 /* LICENSE 4657 /* .ad 4658 /* .fi 4659 /* The Secure Mailer license must be distributed with this software. 4660 /* AUTHOR(S) 4661 /* Wietse Venema 4662 /* IBM T.J. Watson Research 4663 /* P.O. Box 704 4664 /* Yorktown Heights, NY 10598, USA 4665 /* 4666 /* Wietse Venema 4667 /* Google, Inc. 4668 /* 111 8th Avenue 4669 /* New York, NY 10011, USA 4670 /* 4671 /* Wietse Venema 4672 /* porcupine.org 4673 /*--*/ 4674 4675 #endif 4676