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