1 /*        $NetBSD: sendopts.h,v 1.2 2025/02/25 19:15:46 christos Exp $          */
2 
3 #ifndef _SENDOPTS_H_INCLUDED_
4 #define _SENDOPTS_H_INCLUDED_
5 
6 /*++
7 /* NAME
8 /*        sendopts 3h
9 /* SUMMARY
10 /*        Support for SMTPUTF8, REQUIRETLS, etc.
11 /* SYNOPSIS
12 /*        #include <sendopts.h>
13 /* DESCRIPTION
14 /* .nf
15 
16  /*
17   * Support for SMTPUTF8 (RFC 6531, RFC 6532, RFC 6533). These flags were
18   * migrated from <smtputf8.h> and MUST NOT be changed, to maintain queue
19   * file compatibility.
20   */
21 #define SOPT_SMTPUTF8_NONE    (0)
22 #define SOPT_SMTPUTF8_REQUESTED         (1<<0)    /* queue file/delivery/bounce request */
23 #define SOPT_SMTPUTF8_HEADER  (1<<1)    /* queue file/delivery/bounce request */
24 #define SOPT_SMTPUTF8_SENDER  (1<<2)    /* queue file/delivery/bounce request */
25 #define SOPT_SMTPUTF8_RECIPIENT         (1<<3)    /* delivery request only */
26 #define SOPT_SMTPUTF8_ALL     (SOPT_SMTPUTF8_REQUESTED | \
27                                         SOPT_SMTPUTF8_HEADER | \
28                                         SOPT_SMTPUTF8_SENDER | \
29                                         SOPT_SMTPUTF8_RECIPIENT)
30 #define SOPT_SMTPUTF8_DERIVED \
31           (SOPT_SMTPUTF8_ALL & ~SOPT_SMTPUTF8_REQUESTED)
32 
33  /*
34   * Support for REQUIRETLS (RFC 8689). At this time only the TLS-Required:
35   * header is implemented, but we reserve the flag that would support it.
36   */
37 #define SOPT_REQUIRETLS_HEADER          (1<<4)    /* TLS-Required: no */
38 #define SOPT_REQUIRETLS_ESMTP (1<<5)    /* MAIL FROM ... REQUIRETLS */
39 #define SOPT_REQUIRETLS_ALL   (SOPT_REQUIRETLS_HEADER | \
40                                          SOPT_REQUIRETLS_ESMTP)
41 #define SOPT_REQUIRETLS_DERIVED         SOPT_REQUIRETLS_HEADER
42 
43 #define SOPT_FLAG_ALL         (SOPT_SMTPUTF8_ALL | SOPT_REQUIRETLS_ALL)
44 #define SOPT_FLAG_DERIVED (SOPT_SMTPUTF8_DERIVED | SOPT_REQUIRETLS_DERIVED)
45 
46  /*
47   * Debug helper.
48   */
49 extern const char *sendopts_strflags(unsigned flags, int delim);
50 
51 /* LICENSE
52 /* .ad
53 /* .fi
54 /*        The Secure Mailer license must be distributed with this software.
55 /* AUTHOR(S)
56 /*        Wietse Venema
57 /*        IBM T.J. Watson Research
58 /*        P.O. Box 704
59 /*        Yorktown Heights, NY 10598, USA
60 /*
61 /*        Wietse Venema
62 /*        porcupine.org
63 /*--*/
64 
65 #endif
66