1 #ifndef _MAIL_PROTO_H_INCLUDED_
2 #define _MAIL_PROTO_H_INCLUDED_
30 #define MAIL_PROTO_SMTP "SMTP"
31 #define MAIL_PROTO_ESMTP "ESMTP"
32 #define MAIL_PROTO_QMQP "QMQP"
38 #define MAIL_SERVICE_BOUNCE "bounce"
39 #define MAIL_SERVICE_CLEANUP "cleanup"
40 #define MAIL_SERVICE_DEFER "defer"
41 #define MAIL_SERVICE_FORWARD "forward"
42 #define MAIL_SERVICE_LOCAL "local"
43 #define MAIL_SERVICE_PICKUP "pickup"
44 #define MAIL_SERVICE_QUEUE "qmgr"
45 #define MAIL_SERVICE_TLSMGR "tlsmgr"
46 #define MAIL_SERVICE_RESOLVE "resolve"
47 #define MAIL_SERVICE_REWRITE "rewrite"
48 #define MAIL_SERVICE_VIRTUAL "virtual"
49 #define MAIL_SERVICE_SMTP "smtp"
50 #define MAIL_SERVICE_SMTPD "smtpd"
51 #define MAIL_SERVICE_SHOWQ "showq"
52 #define MAIL_SERVICE_ERROR "error"
53 #define MAIL_SERVICE_RETRY "retry"
54 #define MAIL_SERVICE_FLUSH "flush"
55 #define MAIL_SERVICE_VERIFY "verify"
56 #define MAIL_SERVICE_TRACE "trace"
57 #define MAIL_SERVICE_RELAY "relay"
58 #define MAIL_SERVICE_PROXYMAP "proxymap"
59 #define MAIL_SERVICE_PROXYWRITE "proxywrite"
60 #define MAIL_SERVICE_SCACHE "scache"
61 #define MAIL_SERVICE_DNSBLOG "dnsblog"
62 #define MAIL_SERVICE_TLSPROXY "tlsproxy"
68 #define MAIL_SRC_NAME_SENDMAIL "sendmail"
69 #define MAIL_SRC_NAME_SMTPD "smtpd"
70 #define MAIL_SRC_NAME_QMQPD "qmqpd"
71 #define MAIL_SRC_NAME_FORWARD "forward"
72 #define MAIL_SRC_NAME_BOUNCE "bounce"
73 #define MAIL_SRC_NAME_NOTIFY "notify"
74 #define MAIL_SRC_NAME_VERIFY "verify"
75 #define MAIL_SRC_NAME_ALL "all"
77 #define MAIL_SRC_MASK_SENDMAIL (1<<0)
78 #define MAIL_SRC_MASK_SMTPD (1<<1)
79 #define MAIL_SRC_MASK_QMQPD (1<<2)
80 #define MAIL_SRC_MASK_FORWARD (1<<3)
81 #define MAIL_SRC_MASK_BOUNCE (1<<4)
82 #define MAIL_SRC_MASK_NOTIFY (1<<5)
83 #define MAIL_SRC_MASK_VERIFY (1<<6)
85 #define MAIL_SRC_MASK_ALL \
86 ( MAIL_SRC_MASK_SENDMAIL | MAIL_SRC_MASK_SMTPD \
87 | MAIL_SRC_MASK_QMQPD | MAIL_SRC_MASK_FORWARD \
88 | MAIL_SRC_MASK_BOUNCE | MAIL_SRC_MASK_NOTIFY \
89 | MAIL_SRC_MASK_VERIFY)
95 #define MAIL_CLASS_PUBLIC "public"
96 #define MAIL_CLASS_PRIVATE "private"
101 #define TRIGGER_REQ_WAKEUP 'W'
106 #define QMGR_REQ_SCAN_DEFERRED 'D'
107 #define QMGR_REQ_SCAN_INCOMING 'I'
108 #define QMGR_REQ_FLUSH_DEAD 'F'
109 #define QMGR_REQ_SCAN_ALL 'A'
118 extern int mail_trigger(
const char *,
const char *,
const char *, ssize_t);
124 #define MAIL_ATTR_REQ "request"
125 #define MAIL_ATTR_NREQ "nrequest"
126 #define MAIL_ATTR_STATUS "status"
128 #define MAIL_ATTR_FLAGS "flags"
129 #define MAIL_ATTR_QUEUE "queue_name"
130 #define MAIL_ATTR_QUEUEID "queue_id"
131 #define MAIL_ATTR_SENDER "sender"
132 #define MAIL_ATTR_RCPT_COUNT "recipient_count"
133 #define MAIL_ATTR_ORCPT "original_recipient"
134 #define MAIL_ATTR_RECIP "recipient"
135 #define MAIL_ATTR_WHY "reason"
136 #define MAIL_ATTR_VERPDL "verp_delimiters"
137 #define MAIL_ATTR_SITE "site"
138 #define MAIL_ATTR_OFFSET "offset"
139 #define MAIL_ATTR_SIZE "size"
140 #define MAIL_ATTR_ERRTO "errors-to"
141 #define MAIL_ATTR_RRCPT "return-receipt"
142 #define MAIL_ATTR_TIME "time"
143 #define MAIL_ATTR_LOCALTIME "localtime"
144 #define MAIL_ATTR_CREATE_TIME "create_time"
145 #define MAIL_ATTR_RULE "rule"
146 #define MAIL_ATTR_ADDR "address"
147 #define MAIL_ATTR_TRANSPORT "transport"
148 #define MAIL_ATTR_NEXTHOP "nexthop"
149 #define MAIL_ATTR_TRACE_FLAGS "trace_flags"
150 #define MAIL_ATTR_ADDR_STATUS "recipient_status"
151 #define MAIL_ATTR_ACTION "action"
152 #define MAIL_ATTR_TABLE "table"
153 #define MAIL_ATTR_KEY "key"
154 #define MAIL_ATTR_VALUE "value"
155 #define MAIL_ATTR_INSTANCE "instance"
156 #define MAIL_ATTR_SASL_METHOD "sasl_method"
157 #define MAIL_ATTR_SASL_USERNAME "sasl_username"
158 #define MAIL_ATTR_SASL_SENDER "sasl_sender"
159 #define MAIL_ATTR_ETRN_DOMAIN "etrn_domain"
160 #define MAIL_ATTR_DUMMY "dummy"
161 #define MAIL_ATTR_STRESS "stress"
162 #define MAIL_ATTR_LOG_IDENT "log_ident"
163 #define MAIL_ATTR_RWR_CONTEXT "rewrite_context"
164 #define MAIL_ATTR_POL_CONTEXT "policy_context"
166 #define MAIL_ATTR_RWR_LOCAL "local"
167 #define MAIL_ATTR_RWR_REMOTE "remote"
169 #define MAIL_ATTR_TTL "ttl"
170 #define MAIL_ATTR_LABEL "label"
171 #define MAIL_ATTR_PROP "property"
172 #define MAIL_ATTR_FUNC "function"
173 #define MAIL_ATTR_CCERT_SUBJECT "ccert_subject"
174 #define MAIL_ATTR_CCERT_ISSUER "ccert_issuer"
175 #define MAIL_ATTR_CCERT_CERT_FPRINT "ccert_fingerprint"
176 #define MAIL_ATTR_CCERT_PKEY_FPRINT "ccert_pubkey_fingerprint"
177 #define MAIL_ATTR_CRYPTO_PROTOCOL "encryption_protocol"
178 #define MAIL_ATTR_CRYPTO_CIPHER "encryption_cipher"
179 #define MAIL_ATTR_CRYPTO_KEYSIZE "encryption_keysize"
184 #define MAIL_ATTR_S_NAME "_name"
185 #define MAIL_ATTR_S_DOMAIN "_domain"
190 #define MAIL_ATTR_RBL_WHAT "rbl_what"
191 #define MAIL_ATTR_RBL_DOMAIN "rbl_domain"
192 #define MAIL_ATTR_RBL_REASON "rbl_reason"
193 #define MAIL_ATTR_RBL_TXT "rbl_txt"
194 #define MAIL_ATTR_RBL_CLASS "rbl_class"
195 #define MAIL_ATTR_RBL_CODE "rbl_code"
196 #define MAIL_ATTR_RBL_ADDR "rbl_addr"
202 #define MAIL_ATTR_ENCODING "encoding"
203 #define MAIL_ATTR_ENC_8BIT "8bit"
204 #define MAIL_ATTR_ENC_7BIT "7bit"
205 #define MAIL_ATTR_ENC_NONE ""
207 #define MAIL_ATTR_LOG_CLIENT_NAME "log_client_name"
208 #define MAIL_ATTR_LOG_CLIENT_ADDR "log_client_address"
209 #define MAIL_ATTR_LOG_CLIENT_PORT "log_client_port"
210 #define MAIL_ATTR_LOG_HELO_NAME "log_helo_name"
211 #define MAIL_ATTR_LOG_PROTO_NAME "log_protocol_name"
212 #define MAIL_ATTR_LOG_ORIGIN "log_message_origin"
214 #define MAIL_ATTR_ACT_CLIENT "client"
215 #define MAIL_ATTR_ACT_CLIENT_NAME "client_name"
216 #define MAIL_ATTR_ACT_CLIENT_ADDR "client_address"
217 #define MAIL_ATTR_ACT_CLIENT_PORT "client_port"
218 #define MAIL_ATTR_ACT_CLIENT_AF "client_address_type"
219 #define MAIL_ATTR_ACT_HELO_NAME "helo_name"
220 #define MAIL_ATTR_ACT_PROTO_NAME "protocol_name"
221 #define MAIL_ATTR_ACT_REVERSE_CLIENT_NAME "reverse_client_name"
222 #define MAIL_ATTR_ACT_FORWARD_CLIENT_NAME "forward_client_name"
224 #define MAIL_ATTR_ACT_SERVER_ADDR "server_address"
225 #define MAIL_ATTR_ACT_SERVER_PORT "server_port"
227 #define MAIL_ATTR_PROTO_STATE "protocol_state"
228 #define MAIL_ATTR_ORG_NONE "unknown"
229 #define MAIL_ATTR_ORG_LOCAL "local"
234 #define XCLIENT_CMD "XCLIENT"
235 #define XCLIENT_NAME "NAME"
236 #define XCLIENT_REVERSE_NAME "REVERSE_NAME"
237 #ifdef FORWARD_CLIENT_NAME
238 #define XCLIENT_FORWARD_NAME "FORWARD_NAME"
240 #define XCLIENT_ADDR "ADDR"
241 #define XCLIENT_PORT "PORT"
242 #define XCLIENT_PROTO "PROTO"
243 #define XCLIENT_HELO "HELO"
244 #define XCLIENT_LOGIN "LOGIN"
245 #define XCLIENT_DESTADDR "DESTADDR"
246 #define XCLIENT_DESTPORT "DESTPORT"
248 #define XCLIENT_UNAVAILABLE "[UNAVAILABLE]"
249 #define XCLIENT_TEMPORARY "[TEMPUNAVAIL]"
251 #define XFORWARD_CMD "XFORWARD"
252 #define XFORWARD_NAME "NAME"
253 #define XFORWARD_ADDR "ADDR"
254 #define XFORWARD_PORT "PORT"
255 #define XFORWARD_PROTO "PROTO"
256 #define XFORWARD_HELO "HELO"
257 #define XFORWARD_IDENT "IDENT"
258 #define XFORWARD_DOMAIN "SOURCE"
259 #define XFORWARD_DOM_LOCAL "LOCAL"
260 #define XFORWARD_DOM_REMOTE "REMOTE"
262 #define XFORWARD_UNAVAILABLE "[UNAVAILABLE]"
267 #define MAIL_ATTR_DSN_STATUS "status"
268 #define MAIL_ATTR_DSN_DTYPE "diag_type"
269 #define MAIL_ATTR_DSN_DTEXT "diag_text"
270 #define MAIL_ATTR_DSN_MTYPE "mta_type"
271 #define MAIL_ATTR_DSN_MNAME "mta_mname"
272 #define MAIL_ATTR_DSN_ACTION "action"
273 #define MAIL_ATTR_DSN_ENVID "envelope_id"
274 #define MAIL_ATTR_DSN_RET "ret_flags"
275 #define MAIL_ATTR_DSN_NOTIFY "notify_flags"
276 #define MAIL_ATTR_DSN_ORCPT "dsn_orig_rcpt"
277 #define MAIL_ATTR_SMTPUTF8 "smtputf8"
282 #define MAIL_ATTR_REMOTE_ENDPT "remote_endpoint"
283 #define MAIL_ATTR_ROLE "role"
284 #define MAIL_ATTR_ROLE_SERVER "server"
285 #define MAIL_ATTR_ROLE_CLIENT "client"
286 #define MAIL_ATTR_TIMEOUT "timeout"
287 #define MAIL_ATTR_PEER_CN "peer_CN"
288 #define MAIL_ATTR_ISSUER_CN "issuer_CN"
289 #define MAIL_ATTR_PEER_CERT_FPT "peer_fingerprint"
290 #define MAIL_ATTR_PEER_PKEY_FPT "peer_pubkey_fingerprint"
291 #define MAIL_ATTR_PEER_STATUS "peer_status"
292 #define MAIL_ATTR_CIPHER_PROTOCOL "cipher_protocol"
293 #define MAIL_ATTR_CIPHER_NAME "cipher_name"
294 #define MAIL_ATTR_CIPHER_USEBITS "cipher_usebits"
295 #define MAIL_ATTR_CIPHER_ALGBITS "cipher_algbits"
296 #define MAIL_ATTR_SERVER_ID "server_id"
301 #define MAIL_ATTR_SERVER_NAME "server_name"
int mail_trigger(const char *, const char *, const char *, ssize_t)
char * mail_pathname(const char *, const char *)
VSTREAM * mail_connect_wait(const char *, const char *)
int mail_command_client(const char *, const char *,...)
int mail_command_server(VSTREAM *,...)
VSTREAM * mail_connect(const char *, const char *, int)