blob: ddf3dccd67bc5365dd41a6eb641a7974caa8805a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
#ifndef _DSN_MASK_H_INCLUDED_
#define _DSN_MASK_H_INCLUDED_
/*++
/* NAME
/* dsn_mask 3h
/* SUMMARY
/* DSN embedding in SMTP
/* SYNOPSIS
/* #include "dsn_mask.h"
/* DESCRIPTION
/* .nf
/*
* Support for MAIL FROM ... RET=mumble.
*/
#define DSN_RET_FULL (1<<0)
#define DSN_RET_HDRS (1<<1)
#define DSN_RET_BITS (2)
/*
* Use this to filter bad content in queue files.
*/
#define DSN_RET_OK(v) ((v) == DSN_RET_FULL || (v) == DSN_RET_HDRS)
/*
* Only when RET is specified by the sender is the SMTP client allowed to
* specify RET=mumble while delivering mail (RFC 3461 section 5.2.1).
* However, if RET is not requested, then the MTA is allowed to interpret
* this as RET=FULL or RET=HDRS (RFC 3461 section 4.3). Postfix chooses the
* former.
*/
/*
* Conversion routines: string to mask and reverse.
*/
extern int dsn_ret_code(const char *);
extern const char *dsn_ret_str(int);
/*
* Support for RCPT TO ... NOTIFY=mumble is in the form of bit masks.
*/
#define DSN_NOTIFY_NEVER (1<<0) /* must not */
#define DSN_NOTIFY_SUCCESS (1<<1) /* must */
#define DSN_NOTIFY_FAILURE (1<<2) /* must */
#define DSN_NOTIFY_DELAY (1<<3) /* may */
#define DSN_NOTIFY_BITS (4)
/*
* Any form of sender-requested notification.
*/
#define DSN_NOTIFY_ANY \
(DSN_NOTIFY_SUCCESS | DSN_NOTIFY_FAILURE | DSN_NOTIFY_DELAY)
/*
* Override the sender-specified notification restriction.
*/
#define DSN_NOTIFY_OVERRIDE (DSN_NOTIFY_ANY | DSN_NOTIFY_NEVER)
/*
* Use this to filter bad content in queue files.
*/
#define DSN_NOTIFY_OK(v) \
((v) == DSN_NOTIFY_NEVER || (v) == ((v) & DSN_NOTIFY_ANY))
/*
* Only when NOTIFY=something was requested by the sender is the SMTP client
* allowed to specify NOTIFY=mumble while delivering mail (RFC 3461 section
* 5.2.1). However, if NOTIFY is not requested, then the MTA is allowed to
* interpret this as NOTIFY=FAILURE or NOTIFY=FAILURE,DELAY (RFC 3461
* section 4.1). Postfix chooses the latter.
*/
/*
* Conversion routines: string to mask and reverse.
*/
extern int dsn_notify_mask(const char *);
extern const char *dsn_notify_str(int);
/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*--*/
#endif
|