5
/* Postfix SMTP+LMTP client
7
7
/* \fBsmtp\fR [generic Postfix daemon options]
9
/* The Postfix SMTP client processes message delivery requests from
9
/* The Postfix SMTP+LMTP client implements the SMTP and LMTP mail
10
/* delivery protocols. It processes message delivery requests from
10
11
/* the queue manager. Each request specifies a queue file, a sender
11
12
/* address, a domain or host to deliver to, and recipient information.
12
13
/* This program expects to be run from the \fBmaster\fR(8) process
15
/* The SMTP client updates the queue file and marks recipients
16
/* The SMTP+LMTP client updates the queue file and marks recipients
16
17
/* as finished, or it informs the queue manager that delivery should
17
18
/* be tried again at a later time. Delivery status reports are sent
18
19
/* to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as
21
/* The SMTP client looks up a list of mail exchanger addresses for
22
/* The SMTP+LMTP client looks up a list of mail exchanger addresses for
22
23
/* the destination host, sorts the list by preference, and connects
23
24
/* to each listed address until it finds a server that responds.
25
26
/* When a server is not reachable, or when mail delivery fails due
26
/* to a recoverable error condition, the SMTP client will try to
27
/* to a recoverable error condition, the SMTP+LMTP client will try to
27
28
/* deliver the mail to an alternate host.
29
30
/* After a successful mail transaction, a connection may be saved
30
31
/* to the \fBscache\fR(8) connection cache server, so that it
31
/* may be used by any SMTP client for a subsequent transaction.
32
/* may be used by any SMTP+LMTP client for a subsequent transaction.
33
34
/* By default, connection caching is enabled temporarily for
34
35
/* destinations that have a high volume of mail in the active
35
36
/* queue. Session caching can be enabled permanently for
36
37
/* specific destinations.
38
/* SMTP DESTINATION SYNTAX
41
/* SMTP destinations have the following form:
42
/* .IP \fIdomainname\fR
43
/* .IP \fIdomainname\fR:\fIport\fR
44
/* Look up the mail exchangers for the specified domain, and
45
/* connect to the specified port (default: \fBsmtp\fR).
46
/* .IP [\fIhostname\fR]
47
/* .IP [\fIhostname\fR]:\fIport\fR
48
/* Look up the address(es) of the specified host, and connect to
49
/* the specified port (default: \fBsmtp\fR).
50
/* .IP [\fIaddress\fR]
51
/* .IP [\fIaddress\fR]:\fIport\fR
52
/* Connect to the host at the specified address, and connect
53
/* to the specified port (default: \fBsmtp\fR). An IPv6 address
54
/* must be formatted as [\fBipv6\fR:\fIaddress\fR].
55
/* LMTP DESTINATION SYNTAX
58
/* LMTP destinations have the following form:
59
/* .IP \fBunix\fR:\fIpathname\fR
60
/* Connect to the local UNIX-domain server that is bound to the specified
61
/* \fIpathname\fR. If the process runs chrooted, an absolute pathname
62
/* is interpreted relative to the Postfix queue directory.
63
/* .IP \fBinet\fR:\fIhostname\fR
64
/* .IP \fBinet\fB:\fIhostname\fR:\fIport\fR
65
/* .IP \fBinet\fR:[\fIaddress\fR]
66
/* .IP \fBinet\fR:[\fIaddress\fR]:\fIport\fR
67
/* Connect to the specified TCP port on the specified local or
68
/* remote host. If no port is specified, connect to the port defined as
69
/* \fBlmtp\fR in \fBservices\fR(4).
70
/* If no such service is found, the \fBlmtp_tcp_port\fR configuration
71
/* parameter (default value of 24) will be used.
72
/* An IPv6 address must be formatted as [\fBipv6\fR:\fIaddress\fR].
40
/* The SMTP client is moderately security-sensitive. It talks to SMTP
41
/* servers and to DNS servers on the network. The SMTP client can be
42
/* run chrooted at fixed low privilege.
77
/* The SMTP+LMTP client is moderately security-sensitive. It
78
/* talks to SMTP or LMTP servers and to DNS servers on the
79
/* network. The SMTP+LMTP client can be run chrooted at fixed
44
82
/* RFC 821 (SMTP protocol)
45
83
/* RFC 822 (ARPA Internet Text Messages)
46
84
/* RFC 1651 (SMTP service extensions)
47
85
/* RFC 1652 (8bit-MIME transport)
48
86
/* RFC 1870 (Message Size Declaration)
87
/* RFC 2033 (LMTP protocol)
88
/* RFC 2034 (SMTP Enhanced Error Codes)
49
89
/* RFC 2045 (MIME: Format of Internet Message Bodies)
50
90
/* RFC 2046 (MIME: Media Types)
51
91
/* RFC 2554 (AUTH command)
52
92
/* RFC 2821 (SMTP protocol)
53
93
/* RFC 2920 (SMTP Pipelining)
54
94
/* RFC 3207 (STARTTLS command)
95
/* RFC 3461 (SMTP DSN Extension)
96
/* RFC 3463 (Enhanced Status Codes)
56
98
/* Problems and transactions are logged to \fBsyslogd\fR(8).
57
99
/* Corrupted message files are marked so that the queue manager can
119
169
/* Available in Postfix version 2.2 and later:
120
170
/* .IP "\fBsmtp_discard_ehlo_keyword_address_maps (empty)\fR"
121
171
/* Lookup tables, indexed by the remote SMTP server address, with
122
/* case insensitive lists of EHLO keywords (pipelining, starttls,
123
/* auth, etc.) that the SMTP client will ignore in the EHLO response
124
/* from a remote SMTP server.
172
/* case insensitive lists of EHLO keywords (pipelining, starttls, auth,
173
/* etc.) that the Postfix SMTP client will ignore in the EHLO response from a
174
/* remote SMTP server.
125
175
/* .IP "\fBsmtp_discard_ehlo_keywords (empty)\fR"
126
176
/* A case insensitive list of EHLO keywords (pipelining, starttls,
127
/* auth, etc.) that the SMTP client will ignore in the EHLO response
128
/* from a remote SMTP server.
177
/* auth, etc.) that the Postfix SMTP client will ignore in the EHLO
178
/* response from a remote SMTP server.
129
179
/* .IP "\fBsmtp_generic_maps (empty)\fR"
130
180
/* Optional lookup tables that perform address rewriting in the
131
181
/* SMTP client, typically to transform a locally valid address into
132
182
/* a globally valid address when sending mail across the Internet.
184
/* Available in Postfix version 2.2.9 and later:
185
/* .IP "\fBsmtp_cname_overrides_servername (version dependent)\fR"
186
/* Allow DNS CNAME records to override the servername that the
187
/* Postfix SMTP client uses for logging, SASL password lookup, TLS
188
/* policy decisions, or TLS certificate verification.
190
/* Available in Postfix version 2.3 and later:
191
/* .IP "\fBlmtp_discard_lhlo_keyword_address_maps (empty)\fR"
192
/* Lookup tables, indexed by the remote LMTP server address, with
193
/* case insensitive lists of LHLO keywords (pipelining, starttls,
194
/* auth, etc.) that the LMTP client will ignore in the LHLO response
195
/* from a remote LMTP server.
196
/* .IP "\fBlmtp_discard_lhlo_keywords ($myhostname)\fR"
197
/* A case insensitive list of LHLO keywords (pipelining, starttls,
198
/* auth, etc.) that the LMTP client will ignore in the LHLO response
199
/* from a remote LMTP server.
133
200
/* MIME PROCESSING CONTROLS
154
221
/* Enable SASL authentication in the Postfix SMTP client.
155
222
/* .IP "\fBsmtp_sasl_password_maps (empty)\fR"
156
223
/* Optional SMTP client lookup tables with one username:password entry
157
/* per remote hostname or domain.
224
/* per remote hostname or domain, or sender address when sender-dependent
225
/* authentication is enabled.
158
226
/* .IP "\fBsmtp_sasl_security_options (noplaintext, noanonymous)\fR"
159
/* What authentication mechanisms the Postfix SMTP client is allowed
227
/* SASL security options; as of Postfix 2.3 the list of available
228
/* features depends on the SASL client implementation that is selected
229
/* with \fBsmtp_sasl_type\fR.
162
231
/* Available in Postfix version 2.2 and later:
163
232
/* .IP "\fBsmtp_sasl_mechanism_filter (empty)\fR"
164
233
/* If non-empty, a Postfix SMTP client filter for the remote SMTP
165
234
/* server's list of offered SASL mechanisms.
236
/* Available in Postfix version 2.3 and later:
237
/* .IP "\fBsmtp_sender_dependent_authentication (no)\fR"
238
/* Enable sender-dependent authentication in the Postfix SMTP client; this is
239
/* available only with SASL authentication, and disables SMTP connection
240
/* caching to ensure that mail from different senders will use the
241
/* appropriate credentials.
242
/* .IP "\fBsmtp_sasl_path (empty)\fR"
243
/* Implementation-specific information that is passed through to
244
/* the SASL plug-in implementation that is selected with
245
/* \fBsmtp_sasl_type\fR.
246
/* .IP "\fBsmtp_sasl_type (cyrus)\fR"
247
/* The SASL plug-in type that the Postfix SMTP client should use
248
/* for authentication.
166
249
/* STARTTLS SUPPORT CONTROLS
169
252
/* Detailed information about STARTTLS configuration may be found
170
253
/* in the TLS_README document.
171
/* .IP "\fBsmtp_use_tls (no)\fR"
172
/* Opportunistic mode: use TLS when a remote SMTP server announces
173
/* STARTTLS support, otherwise send the mail in the clear.
174
/* .IP "\fBsmtp_enforce_tls (no)\fR"
175
/* Enforcement mode: require that remote SMTP servers use TLS
176
/* encryption, and never send mail in the clear.
254
/* .IP "\fBsmtp_tls_security_level (empty)\fR"
255
/* The default SMTP TLS security level for the Postfix SMTP client;
256
/* when a non-empty value is specified, this overrides the obsolete
257
/* parameters smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername.
177
258
/* .IP "\fBsmtp_sasl_tls_security_options ($smtp_sasl_security_options)\fR"
178
259
/* The SASL authentication security options that the Postfix SMTP
179
260
/* client uses for TLS encrypted SMTP sessions.
206
292
/* .IP "\fBsmtp_tls_note_starttls_offer (no)\fR"
207
293
/* Log the hostname of a remote SMTP server that offers STARTTLS,
208
294
/* when TLS is not already enabled for that server.
209
/* .IP "\fBsmtp_tls_per_site (empty)\fR"
210
/* Optional lookup tables with the Postfix SMTP client TLS usage
211
/* policy by next-hop domain name and by remote SMTP server hostname.
295
/* .IP "\fBsmtp_tls_policy_maps (empty)\fR"
296
/* Optional lookup tables with the Postfix SMTP client TLS security
297
/* policy by next-hop destination; when a non-empty value is specified,
298
/* this overrides the obsolete smtp_tls_per_site parameter.
299
/* .IP "\fBsmtp_tls_mandatory_protocols (SSLv3, TLSv1)\fR"
300
/* List of TLS protocols that the Postfix SMTP client will use
301
/* with mandatory TLS encryption.
212
302
/* .IP "\fBsmtp_tls_scert_verifydepth (5)\fR"
213
303
/* The verification depth for remote SMTP server certificates.
304
/* .IP "\fBsmtp_tls_secure_cert_match (nexthop, dot-nexthop)\fR"
305
/* The server certificate peername verification method for the
306
/* "secure" TLS security level.
214
307
/* .IP "\fBsmtp_tls_session_cache_database (empty)\fR"
215
308
/* Name of the file containing the optional Postfix SMTP client
216
309
/* TLS session cache.
217
310
/* .IP "\fBsmtp_tls_session_cache_timeout (3600s)\fR"
218
311
/* The expiration time of Postfix SMTP client TLS session cache
313
/* .IP "\fBsmtp_tls_verify_cert_match (hostname)\fR"
314
/* The server certificate peername verification method for the
315
/* "verify" TLS security level.
220
316
/* .IP "\fBtls_daemon_random_bytes (32)\fR"
221
317
/* The number of pseudo-random bytes that an \fBsmtp\fR(8) or \fBsmtpd\fR(8)
222
318
/* process requests from the \fBtlsmgr\fR(8) server in order to seed its
223
319
/* internal pseudo random number generator (PRNG).
320
/* .IP "\fBtls_high_cipherlist (!EXPORT:!LOW:!MEDIUM:ALL:+RC4:@STRENGTH)\fR"
321
/* The OpenSSL cipherlist for "HIGH" grade ciphers.
322
/* .IP "\fBtls_medium_cipherlist (!EXPORT:!LOW:ALL:+RC4:@STRENGTH)\fR"
323
/* The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers.
324
/* .IP "\fBtls_low_cipherlist (!EXPORT:ALL:+RC4:@STRENGTH)\fR"
325
/* The OpenSSL cipherlist for "LOW" or higher grade ciphers.
326
/* .IP "\fBtls_export_cipherlist (ALL:+RC4:@STRENGTH)\fR"
327
/* The OpenSSL cipherlist for "EXPORT" or higher grade ciphers.
328
/* .IP "\fBtls_null_cipherlist (!aNULL:eNULL+kRSA)\fR"
329
/* The OpenSSL cipherlist for "NULL" grade ciphers that provide
330
/* authentication without encryption.
332
/* Available in Postfix version 2.4 and later:
333
/* .IP "\fBsmtp_sasl_tls_verified_security_options ($smtp_sasl_tls_security_options)\fR"
334
/* The SASL authentication security options that the Postfix SMTP
335
/* client uses for TLS encrypted SMTP sessions with a verified server
337
/* OBSOLETE STARTTLS CONTROLS
340
/* The following configuration parameters exist for compatibility
341
/* with Postfix versions before 2.3. Support for these will
342
/* be removed in a future release.
343
/* .IP "\fBsmtp_use_tls (no)\fR"
344
/* Opportunistic mode: use TLS when a remote SMTP server announces
345
/* STARTTLS support, otherwise send the mail in the clear.
346
/* .IP "\fBsmtp_enforce_tls (no)\fR"
347
/* Enforcement mode: require that remote SMTP servers use TLS
348
/* encryption, and never send mail in the clear.
349
/* .IP "\fBsmtp_tls_enforce_peername (yes)\fR"
350
/* With mandatory TLS encryption, require that the remote SMTP
351
/* server hostname matches the information in the remote SMTP server
353
/* .IP "\fBsmtp_tls_per_site (empty)\fR"
354
/* Optional lookup tables with the Postfix SMTP client TLS usage
355
/* policy by next-hop destination and by remote SMTP server hostname.
356
/* .IP "\fBsmtp_tls_cipherlist (empty)\fR"
357
/* Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS
224
359
/* RESOURCE AND RATE CONTROLS
481
656
int var_smtp_mxaddr_limit;
482
657
int var_smtp_mxsess_limit;
483
658
int var_smtp_cache_conn;
484
int var_smtp_reuse_limit;
659
int var_smtp_reuse_time;
485
660
char *var_smtp_cache_dest;
486
661
char *var_scache_service;
487
662
bool var_smtp_cache_demand;
488
663
char *var_smtp_ehlo_dis_words;
489
664
char *var_smtp_ehlo_dis_maps;
666
char *var_smtp_tls_level;
491
667
bool var_smtp_use_tls;
492
668
bool var_smtp_enforce_tls;
493
669
char *var_smtp_tls_per_site;
670
char *var_smtp_tls_policy;
673
char *var_smtp_sasl_tls_opts;
674
char *var_smtp_sasl_tlsv_opts;
495
675
int var_smtp_starttls_tmout;
496
char *var_smtp_sasl_tls_opts;
676
char *var_smtp_tls_CAfile;
677
char *var_smtp_tls_CApath;
678
char *var_smtp_tls_cert_file;
679
char *var_smtp_tls_mand_ciph;
680
char *var_smtp_tls_excl_ciph;
681
char *var_smtp_tls_mand_excl;
682
char *var_smtp_tls_dcert_file;
683
char *var_smtp_tls_dkey_file;
497
684
bool var_smtp_tls_enforce_peername;
685
char *var_smtp_tls_key_file;
686
int var_smtp_tls_loglevel;
687
bool var_smtp_tls_note_starttls_offer;
688
char *var_smtp_tls_mand_proto;
689
char *var_smtp_tls_sec_cmatch;
498
690
int var_smtp_tls_scert_vd;
499
bool var_smtp_tls_note_starttls_offer;
691
char *var_smtp_tls_vfy_cmatch;
692
int var_tls_daemon_rand_bytes;
502
696
char *var_smtp_generic_maps;
503
697
char *var_prop_extension;
698
bool var_smtp_sender_auth;
699
char *var_lmtp_tcp_port;
700
int var_scache_proto_tmout;
504
701
bool var_smtp_cname_overr;
507
* Global variables. smtp_errno is set by the address lookup routines and by
508
* the connection management routines.
511
706
int smtp_host_lookup_mask;
512
707
STRING_LIST *smtp_cache_dest;
513
708
SCACHE *smtp_scache;
713
/* pre_exit - pre-exit cleanup */
715
static void pre_exit(void)
718
if (var_smtp_sasl_enable)
723
932
/* main - pass control to the single-threaded skeleton */
725
934
int main(int argc, char **argv)
727
static CONFIG_STR_TABLE str_table[] = {
728
VAR_NOTIFY_CLASSES, DEF_NOTIFY_CLASSES, &var_notify_classes, 0, 0,
729
VAR_FALLBACK_RELAY, DEF_FALLBACK_RELAY, &var_fallback_relay, 0, 0,
730
VAR_BESTMX_TRANSP, DEF_BESTMX_TRANSP, &var_bestmx_transp, 0, 0,
731
VAR_ERROR_RCPT, DEF_ERROR_RCPT, &var_error_rcpt, 1, 0,
732
VAR_SMTP_SASL_PASSWD, DEF_SMTP_SASL_PASSWD, &var_smtp_sasl_passwd, 0, 0,
733
VAR_SMTP_SASL_OPTS, DEF_SMTP_SASL_OPTS, &var_smtp_sasl_opts, 0, 0,
735
VAR_SMTP_SASL_TLS_OPTS, DEF_SMTP_SASL_TLS_OPTS, &var_smtp_sasl_tls_opts, 0, 0,
737
VAR_SMTP_SASL_MECHS, DEF_SMTP_SASL_MECHS, &var_smtp_sasl_mechs, 0, 0,
738
VAR_SMTP_BIND_ADDR, DEF_SMTP_BIND_ADDR, &var_smtp_bind_addr, 0, 0,
739
VAR_SMTP_BIND_ADDR6, DEF_SMTP_BIND_ADDR6, &var_smtp_bind_addr6, 0, 0,
740
VAR_SMTP_HELO_NAME, DEF_SMTP_HELO_NAME, &var_smtp_helo_name, 1, 0,
741
VAR_SMTP_HOST_LOOKUP, DEF_SMTP_HOST_LOOKUP, &var_smtp_host_lookup, 1, 0,
742
VAR_SMTP_CACHE_DEST, DEF_SMTP_CACHE_DEST, &var_smtp_cache_dest, 0, 0,
743
VAR_SCACHE_SERVICE, DEF_SCACHE_SERVICE, &var_scache_service, 1, 0,
744
VAR_SMTP_EHLO_DIS_WORDS, DEF_SMTP_EHLO_DIS_WORDS, &var_smtp_ehlo_dis_words, 0, 0,
745
VAR_SMTP_EHLO_DIS_MAPS, DEF_SMTP_EHLO_DIS_MAPS, &var_smtp_ehlo_dis_maps, 0, 0,
746
VAR_SMTP_TLS_PER_SITE, DEF_SMTP_TLS_PER_SITE, &var_smtp_tls_per_site, 0, 0,
747
VAR_PROP_EXTENSION, DEF_PROP_EXTENSION, &var_prop_extension, 0, 0,
748
VAR_SMTP_GENERIC_MAPS, DEF_SMTP_GENERIC_MAPS, &var_smtp_generic_maps, 0, 0,
751
static CONFIG_TIME_TABLE time_table[] = {
752
VAR_SMTP_CONN_TMOUT, DEF_SMTP_CONN_TMOUT, &var_smtp_conn_tmout, 0, 0,
753
VAR_SMTP_HELO_TMOUT, DEF_SMTP_HELO_TMOUT, &var_smtp_helo_tmout, 1, 0,
754
VAR_SMTP_XFWD_TMOUT, DEF_SMTP_XFWD_TMOUT, &var_smtp_xfwd_tmout, 1, 0,
755
VAR_SMTP_MAIL_TMOUT, DEF_SMTP_MAIL_TMOUT, &var_smtp_mail_tmout, 1, 0,
756
VAR_SMTP_RCPT_TMOUT, DEF_SMTP_RCPT_TMOUT, &var_smtp_rcpt_tmout, 1, 0,
757
VAR_SMTP_DATA0_TMOUT, DEF_SMTP_DATA0_TMOUT, &var_smtp_data0_tmout, 1, 0,
758
VAR_SMTP_DATA1_TMOUT, DEF_SMTP_DATA1_TMOUT, &var_smtp_data1_tmout, 1, 0,
759
VAR_SMTP_DATA2_TMOUT, DEF_SMTP_DATA2_TMOUT, &var_smtp_data2_tmout, 1, 0,
760
VAR_SMTP_RSET_TMOUT, DEF_SMTP_RSET_TMOUT, &var_smtp_rset_tmout, 1, 0,
761
VAR_SMTP_QUIT_TMOUT, DEF_SMTP_QUIT_TMOUT, &var_smtp_quit_tmout, 1, 0,
762
VAR_SMTP_PIX_THRESH, DEF_SMTP_PIX_THRESH, &var_smtp_pix_thresh, 0, 0,
763
VAR_SMTP_PIX_DELAY, DEF_SMTP_PIX_DELAY, &var_smtp_pix_delay, 1, 0,
764
VAR_SMTP_CACHE_CONN, DEF_SMTP_CACHE_CONN, &var_smtp_cache_conn, 1, 0,
766
VAR_SMTP_STARTTLS_TMOUT, DEF_SMTP_STARTTLS_TMOUT, &var_smtp_starttls_tmout, 1, 0,
770
static CONFIG_INT_TABLE int_table[] = {
771
VAR_SMTP_LINE_LIMIT, DEF_SMTP_LINE_LIMIT, &var_smtp_line_limit, 0, 0,
772
VAR_SMTP_MXADDR_LIMIT, DEF_SMTP_MXADDR_LIMIT, &var_smtp_mxaddr_limit, 0, 0,
773
VAR_SMTP_MXSESS_LIMIT, DEF_SMTP_MXSESS_LIMIT, &var_smtp_mxsess_limit, 0, 0,
774
VAR_SMTP_REUSE_LIMIT, DEF_SMTP_REUSE_LIMIT, &var_smtp_reuse_limit, 1, 0,
776
VAR_SMTP_TLS_SCERT_VD, DEF_SMTP_TLS_SCERT_VD, &var_smtp_tls_scert_vd, 0, 0,
780
static CONFIG_BOOL_TABLE bool_table[] = {
781
VAR_SMTP_SKIP_5XX, DEF_SMTP_SKIP_5XX, &var_smtp_skip_5xx_greeting,
782
VAR_IGN_MX_LOOKUP_ERR, DEF_IGN_MX_LOOKUP_ERR, &var_ign_mx_lookup_err,
783
VAR_SKIP_QUIT_RESP, DEF_SKIP_QUIT_RESP, &var_skip_quit_resp,
784
VAR_SMTP_ALWAYS_EHLO, DEF_SMTP_ALWAYS_EHLO, &var_smtp_always_ehlo,
785
VAR_SMTP_NEVER_EHLO, DEF_SMTP_NEVER_EHLO, &var_smtp_never_ehlo,
786
VAR_SMTP_SASL_ENABLE, DEF_SMTP_SASL_ENABLE, &var_smtp_sasl_enable,
787
VAR_SMTP_RAND_ADDR, DEF_SMTP_RAND_ADDR, &var_smtp_rand_addr,
788
VAR_SMTP_QUOTE_821_ENV, DEF_SMTP_QUOTE_821_ENV, &var_smtp_quote_821_env,
789
VAR_SMTP_DEFER_MXADDR, DEF_SMTP_DEFER_MXADDR, &var_smtp_defer_mxaddr,
790
VAR_SMTP_SEND_XFORWARD, DEF_SMTP_SEND_XFORWARD, &var_smtp_send_xforward,
791
VAR_SMTP_CACHE_DEMAND, DEF_SMTP_CACHE_DEMAND, &var_smtp_cache_demand,
792
VAR_SMTP_USE_TLS, DEF_SMTP_USE_TLS, &var_smtp_use_tls,
793
VAR_SMTP_ENFORCE_TLS, DEF_SMTP_ENFORCE_TLS, &var_smtp_enforce_tls,
795
VAR_SMTP_TLS_ENFORCE_PN, DEF_SMTP_TLS_ENFORCE_PN, &var_smtp_tls_enforce_peername,
796
VAR_SMTP_TLS_NOTEOFFER, DEF_SMTP_TLS_NOTEOFFER, &var_smtp_tls_note_starttls_offer,
798
VAR_SMTP_CNAME_OVERR, DEF_SMTP_CNAME_OVERR, &var_smtp_cname_overr,
936
#include "smtp_params.c"
937
#include "lmtp_params.c"
941
* XXX At this point, var_procname etc. are not initialized.
943
smtp_mode = (strcmp(sane_basename((VSTRING *) 0, argv[0]), "smtp") == 0);
946
* Initialize with the LMTP or SMTP parameter name space.
803
948
single_server_main(argc, argv, smtp_service,
804
MAIL_SERVER_TIME_TABLE, time_table,
805
MAIL_SERVER_INT_TABLE, int_table,
806
MAIL_SERVER_STR_TABLE, str_table,
807
MAIL_SERVER_BOOL_TABLE, bool_table,
949
MAIL_SERVER_TIME_TABLE, smtp_mode ?
950
smtp_time_table : lmtp_time_table,
951
MAIL_SERVER_INT_TABLE, smtp_mode ?
952
smtp_int_table : lmtp_int_table,
953
MAIL_SERVER_STR_TABLE, smtp_mode ?
954
smtp_str_table : lmtp_str_table,
955
MAIL_SERVER_BOOL_TABLE, smtp_mode ?
956
smtp_bool_table : lmtp_bool_table,
808
957
MAIL_SERVER_PRE_INIT, pre_init,
809
958
MAIL_SERVER_POST_INIT, post_init,
810
959
MAIL_SERVER_PRE_ACCEPT, pre_accept,
811
MAIL_SERVER_EXIT, pre_exit,