![]() |
![]() |
![]() |
Ximian Connector for Microsoft Exchange Programmer’s Reference Manual | ![]() |
---|---|---|---|---|
struct E2kAction; enum E2kActionType; E2kAction* e2k_action_move (GByteArray *store_entryid, GByteArray *folder_source_key); E2kAction* e2k_action_copy (GByteArray *store_entryid, GByteArray *folder_source_key); enum E2kActionReplyFlavor; E2kAction* e2k_action_reply (GByteArray *template_entryid, guint8 template_guid[16]); E2kAction* e2k_action_oof_reply (GByteArray *template_entryid, guint8 template_guid[16]); E2kAction* e2k_action_defer (GByteArray *data); enum E2kActionBounceCode; E2kAction* e2k_action_bounce (E2kActionBounceCode bounce_code); struct E2kAddrList; enum E2kActionForwardFlavor; E2kAction* e2k_action_forward (E2kAddrList *list); E2kAction* e2k_action_delegate (E2kAddrList *list); E2kAction* e2k_action_tag (const char *propname, E2kPropType type, gpointer value); E2kAction* e2k_action_delete (void); gboolean e2k_actions_extract (guint8 **data, int *len, GPtrArray **actions); void e2k_actions_append (GByteArray *ba, GPtrArray *actions); void e2k_actions_free (GPtrArray *actions); void e2k_action_free (E2kAction *act); E2kAddrList* e2k_addr_list_new (int nentries); void e2k_addr_list_set_local (E2kAddrList *list, int entry_num, const char *display_name, const char *exchange_dn, const char *email); void e2k_addr_list_set_oneoff (E2kAddrList *list, int entry_num, const char *display_name, const char *email); void e2k_addr_list_free (E2kAddrList *list);
E2kAction represents a single action taken by a server-side rule.
This code is not heavily tested. It is possible that some of the information in this file about how server-side rules work is wrong.
typedef enum { E2K_ACTION_MOVE = 1, E2K_ACTION_COPY = 2, E2K_ACTION_REPLY = 3, E2K_ACTION_OOF_REPLY = 4, E2K_ACTION_DEFER = 5, E2K_ACTION_BOUNCE = 6, E2K_ACTION_FORWARD = 7, E2K_ACTION_DELEGATE = 8, E2K_ACTION_TAG = 9, E2K_ACTION_DELETE = 10, E2K_ACTION_MARK_AS_READ = 11 } E2kActionType;
The kinds of server-side rule action.
E2K_ACTION_MOVE |
Move the message to another folder in the same store. |
E2K_ACTION_COPY |
Copy the message to another folder in the same store. |
E2K_ACTION_REPLY |
Reply to the sender with a given template |
E2K_ACTION_OOF_REPLY |
Send an out-of-office reply to the server with a given template |
E2K_ACTION_DEFER |
Hold the message for deferred processing (by the client). |
E2K_ACTION_BOUNCE |
Bounce the message back to the sender. |
E2K_ACTION_FORWARD |
Forward the message to given recipients. |
E2K_ACTION_DELEGATE |
Delegate the meeting request to given recipients. |
E2K_ACTION_TAG |
Set or remove arbitrary MAPI properties on the message. |
E2K_ACTION_DELETE |
Delete the message (permanently, not via Deleted Items). |
E2K_ACTION_MARK_AS_READ |
Mark the message as read. |
E2kAction* e2k_action_move (GByteArray *store_entryid, GByteArray *folder_source_key);
Creates a rule action to move a message into the indicated folder
store_entryid : |
The PR_STORE_ENTRYID of the message store |
folder_source_key : |
The PR_SOURCE_KEY of a folder in that store |
Returns : | the new rule action |
E2kAction* e2k_action_copy (GByteArray *store_entryid, GByteArray *folder_source_key);
Creates a rule action to copy a message into the indicated folder
store_entryid : |
The PR_STORE_ENTRYID of the message store |
folder_source_key : |
The PR_SOURCE_KEY of a folder in that store |
Returns : | the new rule action |
typedef enum { E2K_ACTION_REPLY_FLAVOR_NOT_ORIGINATOR = 1, E2K_ACTION_REPLY_FLAVOR_STOCK_TEMPLATE = 2 } E2kActionReplyFlavor;
Additional information for an E2K_ACTION_REPLY rule.
E2K_ACTION_REPLY_FLAVOR_NOT_ORIGINATOR |
Do not send reply to originator. (?) |
E2K_ACTION_REPLY_FLAVOR_STOCK_TEMPLATE |
? |
E2kAction* e2k_action_reply (GByteArray *template_entryid, guint8 template_guid[16]);
Creates a rule action to reply to a message using the indicated template
template_entryid : |
The entryid of the reply template |
template_guid : |
The GUID of the reply template |
Returns : | the new rule action |
E2kAction* e2k_action_oof_reply (GByteArray *template_entryid, guint8 template_guid[16]);
Creates a rule action to send an Out-of-Office reply to a message using the indicated template
template_entryid : |
The entryid of the reply template |
template_guid : |
The GUID of the reply template |
Returns : | the new rule action |
E2kAction* e2k_action_defer (GByteArray *data);
Creates a rule action to defer processing on a message
data : |
data identifying the deferred action |
Returns : | the new rule action |
typedef enum { E2K_ACTION_BOUNCE_CODE_TOO_LARGE = 13, E2K_ACTION_BOUNCE_CODE_FORM_MISMATCH = 31, E2K_ACTION_BOUNCE_CODE_ACCESS_DENIED = 38 } E2kActionBounceCode;
An error code to associate with an E2K_ACTION_BOUNCE rule.
E2K_ACTION_BOUNCE_CODE_TOO_LARGE |
Message is too large. |
E2K_ACTION_BOUNCE_CODE_FORM_MISMATCH |
Message is of wrong type (for public folder moderation rules). |
E2K_ACTION_BOUNCE_CODE_ACCESS_DENIED |
Access denied (primarily for public folder moderation rules). |
E2kAction* e2k_action_bounce (E2kActionBounceCode bounce_code);
Creates a rule action to bounce a message
bounce_code : |
a bounce code |
Returns : | the new rule action |
struct E2kAddrList { };
An opaque list of recipients to forward or delegate a message to.
typedef enum { E2K_ACTION_FORWARD_FLAVOR_PRESERVE_SENDER = 1, E2K_ACTION_FORWARD_FLAVOR_DO_NOT_MUNGE = 2, E2K_ACTION_FORWARD_FLAVOR_REDIRECT = 3, E2K_ACTION_FORWARD_FLAVOR_AS_ATTACHMENT = 4 } E2kActionForwardFlavor;
Additional information for an E2K_ACTION_FORWARD rule.
E2K_ACTION_FORWARD_FLAVOR_PRESERVE_SENDER |
Preserves sender information and indicates that the message was forwarded by a rule. |
E2K_ACTION_FORWARD_FLAVOR_DO_NOT_MUNGE |
Forwards message with no modifications |
E2K_ACTION_FORWARD_FLAVOR_REDIRECT |
Forwards message as a redirect |
E2K_ACTION_FORWARD_FLAVOR_AS_ATTACHMENT |
Forwards the message as an attachment |
E2kAction* e2k_action_forward (E2kAddrList *list);
Creates a rule action to forward a message to the indicated list of recipients
list : |
a list of recipients |
Returns : | the new rule action |
E2kAction* e2k_action_delegate (E2kAddrList *list);
Creates a rule action to delegate a meeting request to the indicated list of recipients
list : |
a list of recipients |
Returns : | the new rule action |
E2kAction* e2k_action_tag (const char *propname, E2kPropType type, gpointer value);
Creates a rule action to set the given property to the given value on a message.
propname : |
a MAPI property name |
type : |
the type of propname
|
value : |
the value for propname
|
Returns : | the new rule action |
E2kAction* e2k_action_delete (void);
Creates a rule action to permanently delete a message (ie, not just move it to the trash).
Returns : | the new rule action |
gboolean e2k_actions_extract (guint8 **data, int *len, GPtrArray **actions);
Attempts to extract a list of actions from *data
, which contains a
binary-encoded list of actions from a server-side rule.
On success, *actions
will contain the extracted list, *data
will
be advanced past the end of the restriction data, and *len
will be
decremented accordingly.
data : |
pointer to data pointer |
len : |
pointer to data length |
actions : |
pointer to array to store actions in |
Returns : | success or failure |
void e2k_actions_append (GByteArray *ba, GPtrArray *actions);
Appends actions
to ba
as part of a server-side rule.
ba : |
a buffer into which a server-side rule is being constructed |
actions : |
the actions to append to ba
|
void e2k_actions_free (GPtrArray *actions);
Frees actions
and all of its elements
actions : |
an array of E2kAction |
E2kAddrList* e2k_addr_list_new (int nentries);
Creates an address list for a forward or delegate rule, with
nentries
slots
nentries : |
the number of entries |
Returns : | the new address list |
void e2k_addr_list_set_local (E2kAddrList *list, int entry_num, const char *display_name, const char *exchange_dn, const char *email);
Sets entry number entry_num
of list
to refer to the indicated
local Exchange user.
list : |
the address list |
entry_num : |
the list entry to set |
display_name : |
the UTF-8 display name of the recipient |
exchange_dn : |
the Exchange 5.5-style DN of the recipient |
email : |
the SMTP email address of the recipient |
void e2k_addr_list_set_oneoff (E2kAddrList *list, int entry_num, const char *display_name, const char *email);
Sets entry number entry_num
of list
to refer to the indicated
"one-off" SMTP user.
list : |
the address list |
entry_num : |
the list entry to set |
display_name : |
the UTF-8 display name of the recipient |
email : |
the SMTP email address of the recipient |
void e2k_addr_list_free (E2kAddrList *list);
Frees list
and all its entries.
list : |
the address list |