7 #include <sieve2_error.h>
10 struct sdm_script
*next
;
11 char script_name
[256];
17 struct sdm_vacation
*next
;
23 sieve2_context_t
*sieve2_context
; /**< for libsieve's use */
24 long config_msgnum
; /**< confirms that a sieve config was located */
25 char config_roomname
[ROOMNAMELEN
];
26 long lastproc
; /**< last message processed */
27 struct sdm_script
*first_script
;
28 struct sdm_vacation
*first_vacation
;
33 int cancel_implicit_keep
; /* Set to 1 if the message was successfully acted upon */
34 int keep
; /* Set to 1 to suppress message deletion from the inbox */
35 long usernum
; /* Owner of the mailbox we're processing */
36 long msgnum
; /* Message base ID of the message being processed */
37 struct sdm_userdata
*u
; /* Info related to the current session */
41 char sender
[256]; /* To whom shall we send reject bounces or vacation messages? */
42 char subject
[1024]; /* Retain msg subject so we can use it in vacation messages */
43 char envelope_from
[1024];
44 char envelope_to
[1024];
48 /* If you change this string you will break all of your Sieve configs. */
49 #define CTDLSIEVECONFIGSEPARATOR "\n-=<CtdlSieveConfigSeparator>=-\n"
51 /* Maximum time we keep vacation fromaddr records online. This implies that a vacation
52 * rule cannot exceed this amount of time. (Any more than 30 days is a ridiculously
53 * long vacation which the person probably doesn't deserve.)
55 #define MAX_VACATION 30
57 extern struct RoomProcList
*sieve_list
;
59 void sieve_queue_room(struct ctdlroom
*);
60 void perform_sieve_processing(void);
62 void msiv_load(struct sdm_userdata
*u
);
63 void msiv_store(struct sdm_userdata
*u
, int changes_made
);
64 int msiv_setactive(struct sdm_userdata
*u
, char *script_name
);
65 char *msiv_getscript(struct sdm_userdata
*u
, char *script_name
);
66 int msiv_deletescript(struct sdm_userdata
*u
, char *script_name
);
67 void msiv_putscript(struct sdm_userdata
*u
, char *script_name
, char *script_content
);
68 extern char *msiv_extensions
;