Home | History | Annotate | Line # | Download | only in global
      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