1 /************************************************* 2 * Exim - an Internet mail transport agent * 3 *************************************************/ 4 5 /* Experimental DMARC support. 6 Copyright (c) Todd Lyons <tlyons@exim.org> 2012 - 2014 7 License: GPL */ 8 9 /* Portions Copyright (c) 2012, 2013, The Trusted Domain Project; 10 All rights reserved, licensed for use per LICENSE.opendmarc. */ 11 12 #ifdef SUPPORT_DMARC 13 14 # include "opendmarc/dmarc.h" 15 # ifdef SUPPORT_SPF 16 # include "spf2/spf.h" 17 # endif /* SUPPORT_SPF */ 18 19 /* prototypes */ 20 void dmarc_version_report(FILE *); 21 int dmarc_init(); 22 int dmarc_store_data(header_line *); 23 int dmarc_process(); 24 uschar *dmarc_exim_expand_query(int); 25 uschar *dmarc_exim_expand_defaults(int); 26 27 #define DMARC_VERIFY_STATUS 1 28 29 #define DMARC_HIST_OK 1 30 #define DMARC_HIST_DISABLED 2 31 #define DMARC_HIST_EMPTY 3 32 #define DMARC_HIST_FILE_ERR 4 33 #define DMARC_HIST_WRITE_ERR 5 34 35 /* From opendmarc.c */ 36 #define DMARC_RESULT_REJECT 0 37 #define DMARC_RESULT_DISCARD 1 38 #define DMARC_RESULT_ACCEPT 2 39 #define DMARC_RESULT_TEMPFAIL 3 40 #define DMARC_RESULT_QUARANTINE 4 41 42 /* From opendmarc-ar.h */ 43 /* ARES_RESULT_T -- type for specifying an authentication result */ 44 #define ARES_RESULT_UNDEFINED (-1) 45 #define ARES_RESULT_PASS 0 46 #define ARES_RESULT_UNUSED 1 47 #define ARES_RESULT_SOFTFAIL 2 48 #define ARES_RESULT_NEUTRAL 3 49 #define ARES_RESULT_TEMPERROR 4 50 #define ARES_RESULT_PERMERROR 5 51 #define ARES_RESULT_NONE 6 52 #define ARES_RESULT_FAIL 7 53 #define ARES_RESULT_POLICY 8 54 #define ARES_RESULT_NXDOMAIN 9 55 #define ARES_RESULT_SIGNED 10 56 #define ARES_RESULT_UNKNOWN 11 57 #define ARES_RESULT_DISCARD 12 58 59 #endif /* SUPPORT_DMARC */ 60