fix ABI Issue
[platform/core/messaging/email-service.git] / email-common-use / include / email-types.h
1 /*
2 *  email-service
3 *
4 * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
5 *
6 * Contact: Kyuho Jo <kyuho.jo@samsung.com>, Sunghyun Kwon <sh0701.kwon@samsung.com>
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 *
20 */
21
22
23 #ifndef __EMAIL_TYPES_H__
24 #define __EMAIL_TYPES_H__
25
26 /**
27  * @file email-types.h
28  * @brief This file is the header file of Email Framework library.
29  */
30
31 /**
32  * @addtogroup EMAIL_SERVICE_FRAMEWORK
33  * @{
34  */
35
36 #ifdef __cplusplus
37 extern "C"
38 {
39 #endif /* __cplusplus */
40
41 #include <glib.h>
42 #include <stdbool.h>
43 #include "email-errors.h"
44
45
46 /*****************************************************************************/
47 /*  Macros                                                                   */
48 /*****************************************************************************/
49
50 #define MAILBOX_NAME_LENGTH               256
51 #define MAX_EMAIL_ADDRESS_LENGTH          254                                    /* RFC5322, RFC3696 */
52 #define MAX_USER_NAME_LENGTH              64
53 #define MAX_DATETIME_STRING_LENGTH        20
54 #define MAX_PREVIEW_TEXT_LENGTH           1000
55 #define STRING_LENGTH_FOR_DISPLAY         100
56 #define MEETING_REQ_OBJECT_ID_LENGTH      256
57 #define EMAIL_NO_LIMITED_RETRY_COUNT      -1
58
59 #define ALL_ACCOUNT                       0
60 #define NEW_ACCOUNT_ID                    0xFFFFFFFE
61 #define ALL_MAIL                          -1
62
63 #define EMAIL_SEARCH_FILTER_NONE          0x00
64 #define EMAIL_SEARCH_FILTER_SUBJECT       0x01
65 #define EMAIL_SEARCH_FILTER_SENDER        0x02
66 #define EMAIL_SEARCH_FILTER_RECIPIENT     0x04
67 #define EMAIL_SEARCH_FILTER_ALL           0x07                                   /*  EMAIL_SEARCH_FILTER_SUBJECT + EMAIL_SEARCH_FILTER_SENDER + EMAIL_SEARCH_FILTER_RECIPIEN */
68
69 #define EMAIL_SUCCESS                     0                                      /*  we need to modify the success return value */
70
71 /** @brief Definition for default values without account name.
72  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
73 #define EMAIL_ACC_GET_OPT_DEFAULT         0x01
74
75 /** @brief Definition for account name.
76  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
77 #define EMAIL_ACC_GET_OPT_ACCOUNT_NAME    0x02
78
79 /** @brief Definition for account with password.
80  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
81 #define EMAIL_ACC_GET_OPT_PASSWORD        0x04
82
83 /** @brief Definition for account with options: #email_option_t.
84  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
85 #define EMAIL_ACC_GET_OPT_OPTIONS         0x08
86
87 /** @brief Definition for account with all data of account.
88  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
89 #define EMAIL_ACC_GET_OPT_FULL_DATA       0xFF
90
91
92 #define GET_FULL_DATA                     (EMAIL_ACC_GET_OPT_FULL_DATA)
93 #define GET_FULL_DATA_WITHOUT_PASSWORD    (EMAIL_ACC_GET_OPT_DEFAULT | EMAIL_ACC_GET_OPT_ACCOUNT_NAME | EMAIL_ACC_GET_OPT_OPTIONS )
94 #define WITHOUT_OPTION                    (EMAIL_ACC_GET_OPT_DEFAULT | EMAIL_ACC_GET_OPT_ACCOUNT_NAME )
95 #define ONLY_OPTION                       (EMAIL_ACC_GET_OPT_OPTIONS)
96
97
98 /** @brief Definition for the function 'email_activate_pdp'.
99  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
100 #define THREAD_TYPE_RECEIVING             0
101
102 /** @brief Definition for the function 'email_activate_pdp'.
103  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
104 #define THREAD_TYPE_SENDING               1
105
106
107 /** @brief Definition for the default IMAP port.
108  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
109 #define EMAIL_IMAP_PORT                   143
110
111 /** @brief Definition for the default POP3 port.
112  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
113 #define EMAIL_POP3_PORT                   110
114
115 /** @brief Definition for the default SMTP port.
116  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
117 #define EMAIL_SMTP_PORT                   25
118
119 /** @brief Definition for the default IMAP SSL port.
120  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
121 #define EMAIL_IMAPS_PORT                  993
122
123 /** @brief Definition for the default POP3 SSL port.
124  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
125 #define EMAIL_POP3S_PORT                  995
126
127 /** @brief Definition for the default SMTP SSL port.
128  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
129 #define EMAIL_SMTPS_PORT                  465
130
131 /** @brief Definition for the MAX account.
132  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
133 #define EMAIL_ACCOUNT_MAX                 10
134
135 /** @brief Definition for the name of inbox.
136  *  @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
137 #define EMAIL_INBOX_NAME                  "INBOX"
138
139 /** @brief Definition for the name of draftbox.
140  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
141 #define EMAIL_DRAFTBOX_NAME               "DRAFTBOX"
142
143 /** @brief Definition for the name of outbox.
144  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
145 #define EMAIL_OUTBOX_NAME                 "OUTBOX"
146
147 /** @brief Definition for the name of sentbox.
148  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
149 #define EMAIL_SENTBOX_NAME                "SENTBOX"
150
151 /** @brief Definition for the name of trash.
152  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
153 #define EMAIL_TRASH_NAME                  "TRASH"
154
155 /** @brief Definition for the name of spambox.
156  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
157 #define EMAIL_SPAMBOX_NAME                "SPAMBOX"
158
159 /** @brief Definition for the display name of inbox.
160  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
161 #define EMAIL_INBOX_DISPLAY_NAME          "Inbox"
162
163 /** @brief Definition for the display name of draftbox.
164  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
165 #define EMAIL_DRAFTBOX_DISPLAY_NAME       "Draftbox"
166
167 /** @brief Definition for the display name of outbox.
168  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
169 #define EMAIL_OUTBOX_DISPLAY_NAME         "Outbox"
170
171 /** @brief Definition for the display name of sentbox.
172  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
173 #define EMAIL_SENTBOX_DISPLAY_NAME        "Sentbox"
174
175 /** @brief Definition for the display name of trash.
176  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
177 #define EMAIL_TRASH_DISPLAY_NAME          "Trash"
178
179 /** @brief Definition for the display name of spambox.
180  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
181 #define EMAIL_SPAMBOX_DISPLAY_NAME        "Spambox"
182
183
184 /** @brief Definition for the name of search result mailbox.
185  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
186 #define EMAIL_SEARCH_RESULT_MAILBOX_NAME  "_`S1!E2@A3#R4$C5^H6&R7*E8(S9)U0-L=T_"
187
188 #define SYNC_STATUS_FINISHED              0                                      /* BIN 00000000 */
189 #define SYNC_STATUS_SYNCING               1                                      /* BIN 00000001 */
190 #define SYNC_STATUS_HAVE_NEW_MAILS        2                                      /* BIN 00000010 */
191
192 #define UNKNOWN_CHARSET_PLAIN_TEXT_FILE   "unknown"
193 #define UNKNOWN_CHARSET_HTML_TEXT_FILE    "unknown.htm"
194
195 #define FAILURE                           -1
196 #define SUCCESS                           0
197
198 #define DAEMON_EXECUTABLE_PATH            "/usr/bin/email-service"
199
200 #ifndef EXPORT_API
201 #define EXPORT_API                        __attribute__((visibility("default")))
202 #endif
203
204 #ifndef DEPRECATED
205 #define DEPRECATED                        __attribute__((deprecated))
206 #endif
207
208 #define VCONF_VIP_NOTI_RINGTONE_PATH                 "db/private/email-service/noti_ringtone_path"
209 #define VCONF_VIP_NOTI_REP_TYPE                      "db/private/email-service/noti_rep_type"
210 #define VCONF_VIP_NOTI_NOTIFICATION_TICKER           "db/private/email-service/noti_notification_ticker"
211 #define VCONF_VIP_NOTI_DISPLAY_CONTENT_TICKER        "db/private/email-service/noti_display_content_ticker"
212 #define VCONF_VIP_NOTI_BADGE_TICKER                  "db/private/email-service/noti_badge_ticker"
213 #define VCONF_VIP_NOTI_VIBRATION_STATUS_BOOL         "db/private/email-service/noti_vip_vibration_status"
214 #define VCONF_VIP_NOTI_USE_DEFAULT_RINGTONE_BOOL     "db/private/email-service/noti_vip_use_default_ringtone"
215 #define VCONF_EMAIL_NOTI_VIBRATION_STATUS_BOOL       "db/private/email-service/noti_vibration_status"
216 #define VCONF_EMAIL_NOTI_USE_DEFAULT_RINGTONE_BOOL   "db/private/email-service/noti_use_default_ringtone"
217
218
219 #define EMAIL_PEAK_DAYS_SUNDAY            0x01
220 #define EMAIL_PEAK_DAYS_MONDAY            0x02
221 #define EMAIL_PEAK_DAYS_TUEDAY            0x04
222 #define EMAIL_PEAK_DAYS_WEDDAY            0x08
223 #define EMAIL_PEAK_DAYS_THUDAY            0x10
224 #define EMAIL_PEAK_DAYS_FRIDAY            0x20
225 #define EMAIL_PEAK_DAYS_SATDAY            0x40
226
227 #define PRIORITY_SENDER_TAG_ID            -30000
228
229 /*****************************************************************************/
230 /*  Enumerations                                                             */
231 /*****************************************************************************/
232
233 typedef enum
234 {
235     EMAIL_DELETE_LOCALLY                     = 0,  /**< Delete mail locally only */
236     EMAIL_DELETE_LOCAL_AND_SERVER,                 /**< Delete mail locally and on server */
237     EMAIL_DELETE_FOR_SEND_THREAD,                  /**< Check which activity to delete in send thread */
238     EMAIL_DELETE_FROM_SERVER,                      /**< Delete mail on server */
239     EMAIL_DELETE_MAIL_AND_MEETING_FOR_EAS,         /**< Delete mails and meetings on an EAS account */
240 } email_delete_option_t;
241
242 /**
243  * @brief Enumeration for the notification of changes on storage.
244  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
245  */
246 typedef enum
247 {
248     NOTI_MAIL_ADD                            = 10000,    /**< A mail is added */
249     NOTI_MAIL_DELETE                         = 10001,    /**< Some mails are removed */
250     NOTI_MAIL_DELETE_ALL                     = 10002,    /**< All mails in mailbox are removed */
251     NOTI_MAIL_DELETE_WITH_ACCOUNT            = 10003,    /**< All mails of an account removed */
252     NOTI_MAIL_DELETE_FAIL                    = 10007,    /**< Removing mails failed */
253     NOTI_MAIL_DELETE_FINISH                  = 10008,    /**< Removing mails finished */
254
255     NOTI_MAIL_UPDATE                         = 10004,    /**< Some fields of mail are updated */
256     NOTI_MAIL_FIELD_UPDATE                   = 10020,    /**< A field of some mails is updated */
257
258     NOTI_MAIL_MOVE                           = 10005,    /**< Some mail are moved */
259     NOTI_MAIL_MOVE_FAIL                      = 10010,    /**< Moving mails failed */
260     NOTI_MAIL_MOVE_FINISH                    = 10006,    /**< Moving mails finished */
261
262     NOTI_THREAD_MOVE                         = 11000,    /**< A mail thread is moved */
263     NOTI_THREAD_DELETE                       = 11001,    /**< A mail thread is removed */
264     NOTI_THREAD_MODIFY_SEEN_FLAG             = 11002,    /**< Seen flag of a mail thread is modified */
265     NOTI_THREAD_ID_CHANGED_BY_ADD            = 11003,    /**< The thread ID is changed by adding a new mail */
266     NOTI_THREAD_ID_CHANGED_BY_MOVE_OR_DELETE = 11004,    /**< The thread ID is changed by moving or removing mails */
267
268     NOTI_ACCOUNT_ADD                         = 20000,    /**< An account is added */
269     NOTI_ACCOUNT_ADD_FINISH                  = 20005,    /**< An account is added and account reference updated */
270     NOTI_ACCOUNT_ADD_FAIL                    = 20007,    /**< An account adding failed */
271     NOTI_ACCOUNT_DELETE                      = 20001,    /**< An account is removed */
272     NOTI_ACCOUNT_DELETE_FAIL                 = 20003,    /**< Removing an account failed */
273     NOTI_ACCOUNT_UPDATE                      = 20002,    /**< An account is updated */
274     NOTI_ACCOUNT_UPDATE_SYNC_STATUS          = 20010,    /**< Sync status of an account is updated */
275
276     NOTI_MAILBOX_ADD                         = 40000,    /**< A mailbox is added */
277     NOTI_MAILBOX_DELETE                      = 40001,    /**< A mailbox is removed */
278     NOTI_MAILBOX_UPDATE                      = 40002,    /**< A mailbox is updated */
279     NOTI_MAILBOX_FIELD_UPDATE                = 40003,    /**< Some fields of a mailbox are updated */
280
281     NOTI_MAILBOX_RENAME                      = 40010,    /**< A mailbox is renamed */
282     NOTI_MAILBOX_RENAME_FAIL                 = 40011,    /**< Renaming a mailbox failed */
283
284     NOTI_CERTIFICATE_ADD                     = 50000,    /**< A certificate is added */
285     NOTI_CERTIFICATE_DELETE                  = 50001,    /**< A certificate is removed */
286     NOTI_CERTIFICATE_UPDATE                  = 50002,    /**< A certificate is updated */
287
288     NOTI_ACCOUNT_RESTORE_START               = 60001,    /**< Start of restoring accounts */
289     NOTI_ACCOUNT_RESTORE_FINISH              = 60002,    /**< Finish of restoring accounts */
290     NOTI_ACCOUNT_RESTORE_FAIL                = 60003,    /**< Failure of restoring accounts */
291
292     NOTI_RULE_ADD                            = 70000,    /**< A rule is added in DB */
293     NOTI_RULE_APPLY                          = 70001,    /**< A rule is applied */
294     NOTI_RULE_DELETE                         = 70002,    /**< A rule is removed in DB */
295     NOTI_RULE_UPDATE                         = 70003,    /**< A rule is updated in DB */
296
297     /* To be added more */
298 } email_noti_on_storage_event;
299
300 /**
301  * @brief Enumeration for the notification of network event.
302  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
303  */
304 typedef enum
305 {
306     NOTI_SEND_START                          = 1002,    /**< Sending a mail started */
307     NOTI_SEND_FINISH                         = 1004,    /**< Sending a mail finished */
308     NOTI_SEND_FAIL                           = 1005,    /**< Sending a mail failed */
309     NOTI_SEND_CANCEL                         = 1003,    /**< Sending a mail canceled */
310
311     NOTI_DOWNLOAD_START                      = 2000,    /**< Syncing header started */
312     NOTI_DOWNLOAD_FINISH,                               /**< Syncing header finished */
313     NOTI_DOWNLOAD_FAIL,                                 /**< Syncing header failed */
314     NOTI_DOWNLOAD_CANCEL                     = 2004,    /**< Syncing header canceled */
315     NOTI_DOWNLOAD_NEW_MAIL                   = 2003,    /**< Deprecated */
316
317     NOTI_DOWNLOAD_BODY_START                 = 3000,    /**< Downloading mail body started */
318     NOTI_DOWNLOAD_BODY_FINISH                = 3002,    /**< Downloading mail body finished */
319     NOTI_DOWNLOAD_BODY_FAIL                  = 3004,    /**< Downloading mail body failed */
320     NOTI_DOWNLOAD_BODY_CANCEL                = 3003,    /**< Downloading mail body canceled */
321     NOTI_DOWNLOAD_MULTIPART_BODY             = 3001,    /**< Downloading multipart body is in progress */
322
323     NOTI_DOWNLOAD_ATTACH_START               = 4000,    /**< Downloading attachment started */
324     NOTI_DOWNLOAD_ATTACH_FINISH,                        /**< Downloading attachment finished */
325     NOTI_DOWNLOAD_ATTACH_FAIL,                          /**< Downloading attachment failed */
326     NOTI_DOWNLOAD_ATTACH_CANCEL,                        /**< Downloading attachment canceled */
327
328     NOTI_MAIL_DELETE_ON_SERVER_FAIL          = 5000,    /**< Deleting mails on server failed */
329     NOTI_MAIL_MOVE_ON_SERVER_FAIL,                      /**< Moving mails on server failed */
330
331     NOTI_SEARCH_ON_SERVER_START              = 6000,    /**< Searching mails on server started */
332     NOTI_SEARCH_ON_SERVER_FINISH             = 6001,    /**< Searching mails on server finished */
333     NOTI_SEARCH_ON_SERVER_FAIL               = 6002,    /**< Searching mails on server failed */
334     NOTI_SEARCH_ON_SERVER_CANCEL             = 6003,    /**< Searching mails on server canceled */
335
336     NOTI_VALIDATE_ACCOUNT_FINISH             = 7000,    /**< Validating an account finished */
337     NOTI_VALIDATE_ACCOUNT_FAIL,                         /**< Validating an account failed */
338     NOTI_VALIDATE_ACCOUNT_CANCEL,                       /**< Validating an account canceled */
339
340     NOTI_VALIDATE_AND_CREATE_ACCOUNT_FINISH  = 8000,    /**< Validating and creating an account finished */
341     NOTI_VALIDATE_AND_CREATE_ACCOUNT_FAIL,              /**< Validating and creating an account failed */
342     NOTI_VALIDATE_AND_CREATE_ACCOUNT_CANCEL,            /**< Validating and creating an account canceled */
343
344     NOTI_VALIDATE_AND_UPDATE_ACCOUNT_FINISH  = 9000,    /**< Validating and updating an account finished */
345     NOTI_VALIDATE_AND_UPDATE_ACCOUNT_FAIL,              /**< Validating and updating an account failed */
346     NOTI_VALIDATE_AND_UPDATE_ACCOUNT_CANCEL,            /**< Validating and updating an account canceled */
347
348     NOTI_VALIDATE_CERTIFICATE_FINISH         = 10000,   /**< Validating a certificate finished */
349     NOTI_VALIDATE_CERTIFICATE_FAIL           = 10001,   /**< Validating a certificate failed */
350     NOTI_VALIDATE_CERTIFICATE_CANCEL         = 10002,   /**< Validating a certificate canceled */
351
352     NOTI_RESOLVE_RECIPIENT_START             = 11000,   /**< Resolving recipients started */
353     NOTI_RESOLVE_RECIPIENT_FINISH,                      /**< Resolving recipients finished */
354     NOTI_RESOLVE_RECIPIENT_FAIL,                        /**< Resolving recipients failed */
355     NOTI_RESOLVE_RECIPIENT_CANCEL,                      /**< Resolving recipients canceled */
356
357     NOTI_RENAME_MAILBOX_START                = 12000,   /**< Renaming a mailbox started */
358     NOTI_RENAME_MAILBOX_FINISH,                         /**< Renaming a mailbox finished */
359     NOTI_RENAME_MAILBOX_FAIL,                           /**< Renaming a mailbox failed */
360     NOTI_RENAME_MAILBOX_CANCEL,                         /**< Renaming a mailbox canceled */
361
362     NOTI_ADD_MAILBOX_START                   = 12100,   /**< Adding a mailbox started */
363     NOTI_ADD_MAILBOX_FINISH,                            /**< Adding a mailbox finished */
364     NOTI_ADD_MAILBOX_FAIL,                              /**< Adding a mailbox failed */
365     NOTI_ADD_MAILBOX_CANCEL,                            /**< Adding a mailbox canceled */
366
367     NOTI_DELETE_MAILBOX_START                = 12200,   /**< Removing a mailbox started */
368     NOTI_DELETE_MAILBOX_FINISH,                         /**< Removing a mailbox finished */
369     NOTI_DELETE_MAILBOX_FAIL,                           /**< Removing a mailbox failed */
370     NOTI_DELETE_MAILBOX_CANCEL,                         /**< Removing a mailbox canceled */
371
372     NOTI_SYNC_IMAP_MAILBOX_LIST_START        = 12300,   /**< Syncing mailbox list started */
373     NOTI_SYNC_IMAP_MAILBOX_LIST_FINISH,                 /**< Syncing mailbox list finished */
374     NOTI_SYNC_IMAP_MAILBOX_LIST_FAIL,                   /**< Syncing mailbox list failed */
375     NOTI_SYNC_IMAP_MAILBOX_LIST_CANCEL,                 /**< Syncing mailbox list canceled */
376
377     NOTI_DELETE_MAIL_START                   = 12400,   /**< Removing mails started */
378     NOTI_DELETE_MAIL_FINISH,                            /**< Removing mails finished */
379     NOTI_DELETE_MAIL_FAIL,                              /**< Removing mails failed */
380     NOTI_DELETE_MAIL_CANCEL,                            /**< Removing mails canceled */
381
382     NOTI_QUERY_SMTP_MAIL_SIZE_LIMIT_FINISH  = 12500,    /**< Querying limitation of mail size to SMTP finished */
383     NOTI_QUERY_SMTP_MAIL_SIZE_LIMIT_FAIL,               /**< Querying limitation of mail size to SMTP failed */
384
385     /* To be added more */
386 } email_noti_on_network_event;
387
388 /**
389  * @brief Enumeration for the response to request.
390  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
391  */
392 typedef enum
393 {
394     RESPONSE_SUCCEEDED                       = 0,    /**< The request succeeded */
395     RESPONSE_FAILED                          = 1,    /**< The request failed */
396     RESPONSE_CANCELED                        = 2     /**< The request is canceled */
397     /* To be added more */
398 } email_response_to_request;
399
400 /**
401  * @brief Enumeration for the account mail type.
402  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
403  */
404 typedef enum
405 {
406     EMAIL_BIND_TYPE_DISABLE          = 0,          /**< The bind type for Disabled account */
407     EMAIL_BIND_TYPE_EM_CORE          = 1,          /**< The bind type for email-service */
408 } email_account_bind_t DEPRECATED;
409
410 /**
411  * @brief Enumeration for the account server type.
412  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
413  */
414 typedef enum
415 {
416     EMAIL_SERVER_TYPE_POP3           = 1,          /**< The POP3 Server */
417     EMAIL_SERVER_TYPE_IMAP4,                       /**< The IMAP4 Server */
418     EMAIL_SERVER_TYPE_SMTP,                        /**< The SMTP Server */
419     EMAIL_SERVER_TYPE_NONE,                        /**< The local account */
420     EMAIL_SERVER_TYPE_ACTIVE_SYNC,                 /**< The Active Sync */
421 } email_account_server_t;
422
423 /**
424  * @brief Enumeration for the retrieval mode.
425  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
426  */
427 typedef enum
428 {
429     EMAIL_IMAP4_RETRIEVAL_MODE_NEW   = 1,          /**< Retrieval mode for new email */
430     EMAIL_IMAP4_RETRIEVAL_MODE_ALL   = 2,          /**< Retrieval mode for all email */
431     EMAIL_IMAP4_IDLE_SUPPORTED       = 0x00100000  /**< Support for feature 'imap idle' */
432 } email_imap4_retrieval_mode_t;
433
434 /**
435  * @brief Enumeration for the filtering type.
436  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
437  */
438 typedef enum
439 {
440     EMAIL_FILTER_FROM                = 1,          /**< Filtering of sender */
441     EMAIL_FILTER_SUBJECT             = 2,          /**< Filtering of email subject */
442     EMAIL_FILTER_BODY                = 4,          /**< Filtering of email body */
443     EMAIL_PRIORITY_SENDER            = 8,          /**< Priority sender of email */
444 } email_rule_type_t;
445
446
447 /**
448  * @brief Enumeration for the rules for filtering type.
449  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
450  */
451 typedef enum
452 {
453     RULE_TYPE_INCLUDES             = 1,          /**< Filtering rule for includes */
454     RULE_TYPE_EXACTLY,                           /**< Filtering rule for Exactly same as */
455 } email_filtering_type_t;
456
457
458 /**
459  * @brief Enumeration for the action for filtering type.
460  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
461  */
462 typedef enum
463 {
464     EMAIL_FILTER_MOVE                = 1,          /**< Filter action is moving email */
465     EMAIL_FILTER_BLOCK               = 2,          /**< Filtering action is blocking email */
466     EMAIL_FILTER_DELETE              = 3,          /**< Filtering action is deleting email */
467 } email_rule_action_t;
468
469 /**
470  * @brief Enumeration for the email status.
471  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
472  */
473 typedef enum
474 {
475     EMAIL_MAIL_STATUS_NONE           = 0,          /**< The Mail is in No Operation state */
476     EMAIL_MAIL_STATUS_RECEIVED,                    /**< The mail is a received mail */
477     EMAIL_MAIL_STATUS_SENT,                        /**< The mail is a sent mail */
478     EMAIL_MAIL_STATUS_SAVED,                       /**< The mail is a saved mail */
479     EMAIL_MAIL_STATUS_SAVED_OFFLINE,               /**< The mail is a saved mail in off-line mode */
480     EMAIL_MAIL_STATUS_SENDING,                     /**< The mail is being sent */
481     EMAIL_MAIL_STATUS_SEND_FAILURE,                /**< The mail is a sending failed mail */
482     EMAIL_MAIL_STATUS_SEND_CANCELED,               /**< The mail is a canceled mail */
483     EMAIL_MAIL_STATUS_SEND_WAIT,                   /**< The mail is waiting to be sent */
484     EMAIL_MAIL_STATUS_SEND_SCHEDULED,              /**< The mail is a scheduled mail to be sent later.*/
485     EMAIL_MAIL_STATUS_SEND_DELAYED,                /**< The mail is a delayed mail to be sent later */
486     EMAIL_MAIL_STATUS_NOTI_WAITED,                 /**< The mail is a waited notification */
487 } email_mail_status_t;
488
489 /**
490  * @brief Enumeration for the email priority.
491  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
492  */
493 typedef enum
494 {
495     EMAIL_MAIL_PRIORITY_HIGH         = 1,          /**< The priority is high */
496     EMAIL_MAIL_PRIORITY_NORMAL       = 3,          /**< The priority is normal */
497     EMAIL_MAIL_PRIORITY_LOW          = 5,          /**< The priority is low */
498 } email_mail_priority_t;
499
500 /**
501  * @brief Enumeration for the email status.
502  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
503  */
504 typedef enum
505 {
506     EMAIL_MAIL_REPORT_NONE           = 0x00,       /**< The mail is not report mail */
507     EMAIL_MAIL_REPORT_REQUEST        = 0x03,       /**< The mail is to request report mail */
508     EMAIL_MAIL_REPORT_DSN            = 0x04,       /**< The mail is a Delivery Status Notifications mail */
509     EMAIL_MAIL_REPORT_MDN            = 0x08,       /**< The mail is a Message Disposition Notifications mail */
510     EMAIL_MAIL_REQUEST_DSN           = 0x10,       /**< The mail requires Delivery Status Notifications */
511     EMAIL_MAIL_REQUEST_MDN           = 0x20,       /**< The mail requires Message Disposition Notifications */
512 } email_mail_report_t;
513
514 /**
515  * @brief Enumeration for the DRM type.
516  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
517  */
518 typedef enum
519 {
520     EMAIL_ATTACHMENT_DRM_NONE        = 0,          /**< The mail is not DRM file */
521     EMAIL_ATTACHMENT_DRM_OBJECT,                   /**< The mail is a DRM object */
522     EMAIL_ATTACHMENT_DRM_RIGHTS,                   /**< The mail is a DRM rights as XML format */
523     EMAIL_ATTACHMENT_DRM_DCF,                      /**< The mail is a DRM DCF */
524 } email_attachment_drm_t;
525
526 /**
527  * @brief Enumeration for the mail type.
528  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
529  */
530 typedef enum
531 {
532     EMAIL_MAIL_TYPE_NORMAL                     = 0, /**< NOT a meeting request mail. A Normal mail */
533     EMAIL_MAIL_TYPE_MEETING_REQUEST            = 1, /**< A meeting request mail */
534     EMAIL_MAIL_TYPE_MEETING_RESPONSE           = 2, /**< A response mail about meeting request */
535     EMAIL_MAIL_TYPE_MEETING_ORIGINATINGREQUEST = 3  /**< An originating mail about meeting request */
536 } email_mail_type_t;
537
538 /**
539  * @brief Enumeration for the meeting response type.
540  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
541  */
542 typedef enum
543 {
544     EMAIL_MEETING_RESPONSE_NONE                = 0,     /**< NOT a response */
545     EMAIL_MEETING_RESPONSE_ACCEPT              = 1,     /**< The response is acceptance */
546     EMAIL_MEETING_RESPONSE_TENTATIVE           = 2,     /**< The response is tentative */
547     EMAIL_MEETING_RESPONSE_DECLINE             = 3,     /**< The response is decline */
548     EMAIL_MEETING_RESPONSE_REQUEST             = 4,     /**< The response is request */
549     EMAIL_MEETING_RESPONSE_CANCEL              = 5,     /**< The response is cancellation */
550     EMAIL_MEETING_RESPONSE_PROPOSE_NEW_TIME_TENTATIVE,  /**< The response proposes new time tentative */
551     EMAIL_MEETING_RESPONSE_PROPOSE_NEW_TIME_DECLINE     /**< The response proposes new time decline */
552 } email_meeting_response_t;
553
554 typedef enum
555 {
556     EMAIL_ACTION_SEND_MAIL                     =  0,    /**< Action type for sending mail */
557     EMAIL_ACTION_SYNC_HEADER                   =  1,    /**< Action type for syncing header */
558     EMAIL_ACTION_DOWNLOAD_BODY                 =  2,    /**< Action type for downloading body */
559     EMAIL_ACTION_DOWNLOAD_ATTACHMENT           =  3,    /**< Action type for downloading attachment */
560     EMAIL_ACTION_DELETE_MAIL                   =  4,    /**< Action type for deleting mail */
561     EMAIL_ACTION_SEARCH_MAIL                   =  5,    /**< Action type for searching mail */
562     EMAIL_ACTION_SAVE_MAIL                     =  6,    /**< Action type for saving mail */
563     EMAIL_ACTION_SYNC_MAIL_FLAG_TO_SERVER      =  7,    /**< Action type for syncing mail flag */
564     EMAIL_ACTION_SYNC_FLAGS_FIELD_TO_SERVER    =  8,    /**< Action type for syncing flags field */
565     EMAIL_ACTION_MOVE_MAIL                     =  9,    /**< Action type for moving mail */
566     EMAIL_ACTION_CREATE_MAILBOX                = 10,    /**< Action type for creating mailbox */
567     EMAIL_ACTION_DELETE_MAILBOX                = 11,    /**< Action type for deleting mailbox */
568     EMAIL_ACTION_SYNC_HEADER_OMA               = 12,    /**< Action type for syncing header by oma-emn */
569     EMAIL_ACTION_VALIDATE_ACCOUNT              = 13,    /**< Action type for validating account */
570     EMAIL_ACTION_VALIDATE_AND_CREATE_ACCOUNT   = 14,    /**< Action type for validating and creating account */
571     EMAIL_ACTION_VALIDATE_AND_UPDATE_ACCOUNT   = 15,    /**< Action type for validating and updating account */
572     EMAIL_ACTION_VALIDATE_ACCOUNT_EX           = 16,    /**< Action type for validating account */
573     EMAIL_ACTION_UPDATE_MAIL                   = 30,    /**< Action type for updating account */
574     EMAIL_ACTION_SET_MAIL_SLOT_SIZE            = 31,    /**< Action type for setting mail slot size */
575     EMAIL_ACTION_EXPUNGE_MAILS_DELETED_FLAGGED = 32,    /**< Action type for expunge mails deleted flagged */
576     EMAIL_ACTION_SEARCH_ON_SERVER              = 33,    /**< Action type for searching on server */
577     EMAIL_ACTION_MOVE_MAILBOX                  = 34,    /**< Action type for moving mailbox */
578     EMAIL_ACTION_SENDING_MAIL                  = 35,    /**< Action type for sending mail */
579     EMAIL_ACTION_NUM,                                   /**< end of email_action_t */
580 } email_action_t;
581
582 /**
583  * @brief Enumeration for the status of getting an envelope list.
584  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
585  */
586 typedef enum
587 {
588     EMAIL_LIST_NONE                  = 0,          /**< Initial status */
589     EMAIL_LIST_WAITING,                            /**< Waiting status */
590     EMAIL_LIST_PREPARE,                            /**< Preparation status */
591     EMAIL_LIST_CONNECTION_START,                   /**< Connection start */
592     EMAIL_LIST_CONNECTION_SUCCEED,                 /**< Connection success */
593     EMAIL_LIST_CONNECTION_FINISH,                  /**< Connection finish */
594     EMAIL_LIST_CONNECTION_FAIL,                    /**< Connection failure */
595     EMAIL_LIST_START,                              /**< Getting the list started */
596     EMAIL_LIST_PROGRESS,                           /**< The progress status of getting */
597     EMAIL_LIST_FINISH,                             /**< Getting the list completed */
598     EMAIL_LIST_FAIL,                               /**< Getting the list failed */
599 } email_envelope_list_status_t;
600
601 /**
602  * @brief Enumeration for the downloaded status of an email.
603  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
604  */
605 typedef enum
606 {
607     EMAIL_DOWNLOAD_NONE              = 0,          /**< Initial status */
608     EMAIL_DOWNLOAD_WAITING,                        /**< Download is waiting */
609     EMAIL_DOWNLOAD_PREPARE,                        /**< Preparing for download */
610     EMAIL_DOWNLOAD_CONNECTION_START,               /**< Connection start */
611     EMAIL_DOWNLOAD_CONNECTION_SUCCEED,             /**< Connection success */
612     EMAIL_DOWNLOAD_CONNECTION_FINISH,              /**< Connection finish */
613     EMAIL_DOWNLOAD_CONNECTION_FAIL,                /**< Connection failure */
614     EMAIL_DOWNLOAD_START,                          /**< Download start */
615     EMAIL_DOWNLOAD_PROGRESS,                       /**< Progress of download */
616     EMAIL_DOWNLOAD_FINISH,                         /**< Download complete */
617     EMAIL_DOWNLOAD_FAIL,                           /**< Download failure */
618 } email_download_status_t;
619
620 /**
621  * @brief Enumeration for the status of sending an email.
622  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
623  */
624 typedef enum
625 {
626     EMAIL_SEND_NONE                  = 0,          /**< Initial status */
627     EMAIL_SEND_WAITING,                            /**< Waiting to send */
628     EMAIL_SEND_PREPARE,                            /**< Preparing to send */
629     EMAIL_SEND_CONNECTION_START,                   /**< Starting the send connection */
630     EMAIL_SEND_CONNECTION_SUCCEED,                 /**< Send connection success */
631     EMAIL_SEND_CONNECTION_FINISH,                  /**< Send connection finish */
632     EMAIL_SEND_CONNECTION_FAIL,                    /**< Send connection failure */
633     EMAIL_SEND_START,                              /**< Start sending */
634     EMAIL_SEND_PROGRESS,                           /**< Sending status */
635     EMAIL_SEND_FINISH,                             /**< Sending complete */
636     EMAIL_SEND_FAIL,                               /**< Sending failure */
637     EMAIL_SAVE_WAITING,                            /**< Waiting to save */
638 } email_send_status_t;
639
640 typedef enum
641 {
642     EMAIL_SYNC_NONE                  = 0,          /**< Initial status */
643     EMAIL_SYNC_WAITING,                            /**< Waiting to sync */
644     EMAIL_SYNC_PREPARE,                            /**< Preparing to sync */
645     EMAIL_SYNC_CONNECTION_START,                   /**< Starting sync connection */
646     EMAIL_SYNC_CONNECTION_SUCCEED,                 /**< Sync connection success */
647     EMAIL_SYNC_CONNECTION_FINISH,                  /**< Sync connection finish */
648     EMAIL_SYNC_CONNECTION_FAIL,                    /**< Sync connection failure*/
649     EMAIL_SYNC_START,                              /**< Start syncing */
650     EMAIL_SYNC_PROGRESS,                           /**< Sync status */
651     EMAIL_SYNC_FINISH,                             /**< Sync complete */
652     EMAIL_SYNC_FAIL,                               /**< Sync failure */
653 } email_sync_status_t;
654
655 /**
656 * @brief Enumeration for the deleting status of an email.
657 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
658 */
659 typedef enum
660 {
661     EMAIL_DELETE_NONE                = 0,          /**< Initial status */
662     EMAIL_DELETE_WAITING,                          /**< Waiting to delete */
663     EMAIL_DELETE_PREPARE,                          /**< Preparing to delete */
664     EMAIL_DELETE_CONNECTION_START,                 /**< Starting delete connection */
665     EMAIL_DELETE_CONNECTION_SUCCEED,               /**< Delete connection success */
666     EMAIL_DELETE_CONNECTION_FINISH,                /**< Delete connection finish */
667     EMAIL_DELETE_CONNECTION_FAIL,                  /**< Delete connection failure */
668     EMAIL_DELETE_START,                            /**< Deletion start */
669     EMAIL_DELETE_PROGRESS,                         /**< Delete status */
670     EMAIL_DELETE_SERVER_PROGRESS,                  /**< Server deleting status */
671     EMAIL_DELETE_LOCAL_PROGRESS,                   /**< Local deleting status*/
672     EMAIL_DELETE_FINISH,                           /**< Deletion complete */
673     EMAIL_DELETE_FAIL,                             /**< Deletion failure */
674 } email_delete_status_t;
675
676 /**
677 * @brief Enumeration for the status of validating an account.
678 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
679 */
680 typedef enum
681 {
682     EMAIL_VALIDATE_ACCOUNT_NONE = 0,               /**< Initial status */
683     EMAIL_VALIDATE_ACCOUNT_WAITING,                /**< Waiting to validate account */
684     EMAIL_VALIDATE_ACCOUNT_PREPARE,                /**< Preparing to validate account */
685     EMAIL_VALIDATE_ACCOUNT_CONNECTION_START,       /**< Starting validate account connection */
686     EMAIL_VALIDATE_ACCOUNT_CONNECTION_SUCCEED,     /**< Validate account connection success */
687     EMAIL_VALIDATE_ACCOUNT_CONNECTION_FINISH,      /**< Validate account connection finish */
688     EMAIL_VALIDATE_ACCOUNT_CONNECTION_FAIL,        /**< Validate account connection failure */
689     EMAIL_VALIDATE_ACCOUNT_START,                  /**< Start validating account */
690     EMAIL_VALIDATE_ACCOUNT_PROGRESS,               /**< Account validation status */
691     EMAIL_VALIDATE_ACCOUNT_FINISH,                 /**< Account validation complete */
692     EMAIL_VALIDATE_ACCOUNT_FAIL,                   /**< Account validation failure.*/
693 } email_validate_account_status_t;
694
695 /**
696 * @brief Enumeration for the status of setting slot size.
697 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
698 */
699 typedef enum
700 {
701     EMAIL_SET_SLOT_SIZE_NONE         = 0,          /**< Initial status */
702     EMAIL_SET_SLOT_SIZE_WAITING,                   /**< Waiting status*/
703     EMAIL_SET_SLOT_SIZE_START,                     /**< Task started  */
704     EMAIL_SET_SLOT_SIZE_FINISH,                    /**< Task finished */
705     EMAIL_SET_SLOT_SIZE_FAIL,                      /**< Task failed */
706 } email_set_slot_size_status_e;
707
708 /**
709 * @brief Enumeration for the status of expunging mails.
710 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
711 */
712 typedef enum
713 {
714     EMAIL_EXPUNGE_MAILS_DELETED_FLAGGED_NONE         = 0,    /**< Initial status */
715     EMAIL_EXPUNGE_MAILS_DELETED_FLAGGED_WAITING,             /**< Waiting status*/
716     EMAIL_EXPUNGE_MAILS_DELETED_FLAGGED_START,               /**< Task started  */
717     EMAIL_EXPUNGE_MAILS_DELETED_FLAGGED_FINISH,              /**< Task finished */
718     EMAIL_EXPUNGE_MAILS_DELETED_FLAGGED_FAIL,                /**< Task failed */
719 } email_expunge_mails_deleted_flagged_status_e;
720
721 /**
722 * @brief Enumeration for the status of searching mails on server.
723 * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
724 */
725 typedef enum
726 {
727     EMAIL_SEARCH_ON_SERVER_NONE         = 0,    /**< Initial status */
728     EMAIL_SEARCH_ON_SERVER_WAITING,             /**< Waiting status*/
729     EMAIL_SEARCH_ON_SERVER_START,               /**< Task started  */
730     EMAIL_SEARCH_ON_SERVER_FINISH,              /**< Task finished */
731     EMAIL_SEARCH_ON_SERVER_FAIL,                /**< Task failed */
732 } email_search_on_server_status_e;
733
734 /**
735 * @brief Enumeration for the status of moving mails.
736 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
737 */
738 typedef enum
739 {
740     EMAIL_MOVE_MAILBOX_ON_IMAP_SERVER_NONE         = 0,  /**< Initial status */
741     EMAIL_MOVE_MAILBOX_ON_IMAP_SERVER_WAITING,           /**< Waiting status*/
742     EMAIL_MOVE_MAILBOX_ON_IMAP_SERVER_START,             /**< Task started  */
743     EMAIL_MOVE_MAILBOX_ON_IMAP_SERVER_FINISH,            /**< Task finished */
744     EMAIL_MOVE_MAILBOX_ON_IMAP_SERVER_FAIL,              /**< Task failed */
745 } email_move_mailbox_status_e;
746
747 /**
748 * @brief Enumeration for the status of updating mails.
749 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
750 */
751 typedef enum
752 {
753     EMAIL_UPDATE_MAIL_NONE         = 0,    /**< Initial status */
754     EMAIL_UPDATE_MAIL_WAITING,             /**< Waiting status*/
755     EMAIL_UPDATE_MAIL_START,               /**< Task started  */
756     EMAIL_UPDATE_MAIL_FINISH,              /**< Task finished */
757     EMAIL_UPDATE_MAIL_FAIL,                /**< Task failed */
758 } email_update_mail_status_e;
759
760 /**
761 * @brief Enumeration for the mailbox type.
762 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
763 */
764 typedef enum
765 {
766     EMAIL_MAILBOX_TYPE_NONE          = 0,         /**< Unspecified mailbox type */
767     EMAIL_MAILBOX_TYPE_INBOX         = 1,         /**< Specified inbox type */
768     EMAIL_MAILBOX_TYPE_SENTBOX       = 2,         /**< Specified sent box type */
769     EMAIL_MAILBOX_TYPE_TRASH         = 3,         /**< Specified trash type */
770     EMAIL_MAILBOX_TYPE_DRAFT         = 4,         /**< Specified draft box type */
771     EMAIL_MAILBOX_TYPE_SPAMBOX       = 5,         /**< Specified spam box type */
772     EMAIL_MAILBOX_TYPE_OUTBOX        = 6,         /**< Specified outbox type */
773     EMAIL_MAILBOX_TYPE_ALL_EMAILS    = 7,         /**< Specified all emails type of gmail */
774     EMAIL_MAILBOX_TYPE_SEARCH_RESULT = 8,         /**< Specified mailbox type for result of search on server */
775     EMAIL_MAILBOX_TYPE_FLAGGED       = 9,         /**< Specified flagged mailbox type on gmail */
776     EMAIL_MAILBOX_TYPE_USER_DEFINED  = 0xFF,      /**< Specified mailbox type for all other mailboxes */
777 } email_mailbox_type_e;
778
779
780 /** @brief Enumeration for the sync order.
781  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
782
783
784 typedef enum
785 {
786     EMAIL_SYNC_LATEST_MAILS_FIRST    = 0,    /**< Download latest mails first */
787     EMAIL_SYNC_OLDEST_MAILS_FIRST,           /**< Download oldest mails first */
788     EMAIL_SYNC_ALL_MAILBOX_50_MAILS,         /**< Download latest 50 mails only */
789 } EMAIL_RETRIEVE_MODE;
790
791 /** @brief Enumeration for the event type.
792  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
793 typedef enum
794 {
795     EMAIL_EVENT_NONE                            =  0,          /**< Initial value of #email_event_type_t */
796     EMAIL_EVENT_SYNC_HEADER                     =  1,          /**< Synchronize mail headers with server (network used) */
797     EMAIL_EVENT_DOWNLOAD_BODY                   =  2,          /**< Download mail body from server (network used)*/
798     EMAIL_EVENT_DOWNLOAD_ATTACHMENT             =  3,          /**< Download mail attachment from server (network used) */
799     EMAIL_EVENT_SEND_MAIL                       =  4,          /**< Send a mail (network used) */
800     EMAIL_EVENT_SEND_MAIL_SAVED                 =  5,          /**< Send all mails in 'outbox' (network used) */
801     EMAIL_EVENT_SYNC_IMAP_MAILBOX               =  6,          /**< Download IMAP mailboxes from server (network used) */
802     EMAIL_EVENT_DELETE_MAIL                     =  7,          /**< Delete mails (network not used) */
803     EMAIL_EVENT_DELETE_MAIL_ALL                 =  8,          /**< Delete all mails (network not used) */
804     EMAIL_EVENT_SYNC_MAIL_FLAG_TO_SERVER        =  9,          /**< Sync mail flag to server */
805     EMAIL_EVENT_SYNC_FLAGS_FIELD_TO_SERVER      = 10,          /**< Sync a field of flags to server */
806     EMAIL_EVENT_SAVE_MAIL                       = 11,          /**< Add mail on server */
807     EMAIL_EVENT_MOVE_MAIL                       = 12,          /**< Move mails to specific mailbox on server */
808     EMAIL_EVENT_CREATE_MAILBOX                  = 13,          /**< Create a mailbox */
809     EMAIL_EVENT_UPDATE_MAILBOX                  = 14,          /**< Update a mailbox */
810     EMAIL_EVENT_DELETE_MAILBOX                  = 15,          /**< Delete a mailbox */
811     EMAIL_EVENT_ISSUE_IDLE                      = 16,          /**< Deprecated */
812     EMAIL_EVENT_SYNC_HEADER_OMA                 = 17,          /**< Sync mail headers by OMA-EMN */
813     EMAIL_EVENT_VALIDATE_ACCOUNT                = 18,          /**< Validate account */
814     EMAIL_EVENT_VALIDATE_AND_CREATE_ACCOUNT     = 19,          /**< Validate and create account */
815     EMAIL_EVENT_VALIDATE_AND_UPDATE_ACCOUNT     = 20,          /**< Validate and update account */
816     EMAIL_EVENT_SEARCH_ON_SERVER                = 21,          /**< Search mails on server */
817     EMAIL_EVENT_RENAME_MAILBOX_ON_IMAP_SERVER   = 22,          /**< Rename a mailbox on imap server */
818     EMAIL_EVENT_VALIDATE_ACCOUNT_EX             = 23,          /**< Validate account */
819     EMAIL_EVENT_QUERY_SMTP_MAIL_SIZE_LIMIT      = 24,          /**< Query limitation of mail size to SMTP server */
820
821     EMAIL_EVENT_ADD_MAIL                        = 10001,       /**< Deprecated */
822     EMAIL_EVENT_UPDATE_MAIL_OLD                 = 10002,       /**< Deprecated */
823     EMAIL_EVENT_UPDATE_MAIL                     = 10003,       /**< Update a mail */
824     EMAIL_EVENT_SET_MAIL_SLOT_SIZE              = 20000,       /**< Set mail slot size */
825     EMAIL_EVENT_EXPUNGE_MAILS_DELETED_FLAGGED   = 20001,       /**< Expunge mails deleted flagged */
826
827 /*  EMAIL_EVENT_LOCAL_ACTIVITY,                     __LOCAL_ACTIVITY_ */
828
829     EMAIL_EVENT_BULK_PARTIAL_BODY_DOWNLOAD      = 20002,       /**< Download body partially */
830     EMAIL_EVENT_LOCAL_ACTIVITY_SYNC_BULK_PBD    = 20003,       /**< Deprecated */
831     EMAIL_EVENT_GET_PASSWORD_LENGTH             = 20004,       /**< Get password length of an account */
832 } email_event_type_t;
833
834 /** @brief Enumeration for the event status.
835  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
836 typedef enum
837 {
838     EMAIL_EVENT_STATUS_UNUSED        = 0,    /**< Initial status of event : DB data(priority low) */
839     EMAIL_EVENT_STATUS_DIRECT,               /**< Direct input status : event data(priority high) */
840     EMAIL_EVENT_STATUS_WAIT,                 /**< Waiting status */
841     EMAIL_EVENT_STATUS_STARTED,              /**< Event handling is started */
842     EMAIL_EVENT_STATUS_CANCELED,             /**< Event handling is canceled */
843 } email_event_status_type_t;
844
845
846 /** @brief Enumeration for the srting type.
847  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
848 typedef enum
849 {
850     EMAIL_SORT_DATETIME_HIGH         = 0,    /**< Sort mails by datetime ascending order */
851     EMAIL_SORT_DATETIME_LOW,                 /**< Sort mails by datetime descending order */
852     EMAIL_SORT_SENDER_HIGH,                  /**< Sort mails by sender ascending order */
853     EMAIL_SORT_SENDER_LOW,                   /**< Sort mails by sender descending order */
854     EMAIL_SORT_RCPT_HIGH,                    /**< Sort mails by recipient ascending order */
855     EMAIL_SORT_RCPT_LOW,                     /**< Sort mails by recipient descending order */
856     EMAIL_SORT_SUBJECT_HIGH,                 /**< Sort mails by subject ascending order */
857     EMAIL_SORT_SUBJECT_LOW,                  /**< Sort mails by subject descending order */
858     EMAIL_SORT_PRIORITY_HIGH,                /**< Sort mails by priority ascending order */
859     EMAIL_SORT_PRIORITY_LOW,                 /**< Sort mails by priority descending order */
860     EMAIL_SORT_ATTACHMENT_HIGH,              /**< Sort mails by attachment ascending order */
861     EMAIL_SORT_ATTACHMENT_LOW,               /**< Sort mails by attachment descending order */
862     EMAIL_SORT_FAVORITE_HIGH,                /**< Sort mails by favorite ascending order */
863     EMAIL_SORT_FAVORITE_LOW,                 /**< Sort mails by favorite descending order */
864     EMAIL_SORT_MAILBOX_ID_HIGH,              /**< Sort mails by mailbox ID ascending order */
865     EMAIL_SORT_MAILBOX_ID_LOW,               /**< Sort mails by mailbox ID descending order */
866     EMAIL_SORT_FLAGGED_FLAG_HIGH,            /**< Sort mails by flagged flag ID ascending order */
867     EMAIL_SORT_FLAGGED_FLAG_LOW,             /**< Sort mails by flagged flag ID descending order */
868     EMAIL_SORT_SEEN_FLAG_HIGH,               /**< Sort mails by seen flag ID ascending order */
869     EMAIL_SORT_SEEN_FLAG_LOW,                /**< Sort mails by seen flag ID descending order */
870     EMAIL_SORT_END,                          /**< end of #email_sort_type_t */
871 }email_sort_type_t;
872
873 typedef enum
874 {
875     EMAIL_MAILBOX_SORT_BY_NAME_ASC  = 0,  /**< Sort mailbox by name ascending order */
876     EMAIL_MAILBOX_SORT_BY_NAME_DSC,       /**< Sort mailbox by name descending order */
877     EMAIL_MAILBOX_SORT_BY_TYPE_ASC,       /**< Sort mailbox by type ascending order */
878     EMAIL_MAILBOX_SORT_BY_TYPE_DSC,       /**< Sort mailbox by type descending order */
879 } email_mailbox_sort_type_t;
880
881
882 /**
883 * @brief Enumeration for the priority.
884 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
885 */
886 enum
887 {
888     EMAIL_OPTION_PRIORITY_HIGH       = 1,          /**< High priority */
889     EMAIL_OPTION_PRIORITY_NORMAL     = 3,          /**< Normal priority */
890     EMAIL_OPTION_PRIORITY_LOW        = 5,          /**< Low priority */
891 };
892
893 /**
894 * @brief Enumeration for the saving a copy after sending.
895 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
896 */
897 enum
898 {
899     EMAIL_OPTION_KEEP_LOCAL_COPY_OFF = 0,          /**< Keeping local copy is not enabled */
900     EMAIL_OPTION_KEEP_LOCAL_COPY_ON  = 1,          /**< Keeping local copy is enabled */
901 };
902
903 /**
904 * @brief Enumeration for the request of a delivery report.
905 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
906 */
907 enum
908 {
909     EMAIL_OPTION_REQ_DELIVERY_RECEIPT_OFF = 0,     /**< Requesting delivery receipt is not enabled */
910     EMAIL_OPTION_REQ_DELIVERY_RECEIPT_ON  = 1,     /**< Requesting delivery receipt is enabled */
911 };
912
913 /**
914 * @brief Enumeration for the request of a read receipt.
915 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
916 */
917 enum
918 {
919     EMAIL_OPTION_REQ_READ_RECEIPT_OFF = 0,         /**< Requesting read receipt is not enabled */
920     EMAIL_OPTION_REQ_READ_RECEIPT_ON  = 1,         /**< Requesting read receipt is enabled */
921 };
922
923 /**
924 * @brief Enumeration for the blocking of an address.
925 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
926 */
927 enum
928 {
929     EMAIL_OPTION_BLOCK_ADDRESS_OFF   = 0,          /**< Blocking an address is not enabled */
930     EMAIL_OPTION_BLOCK_ADDRESS_ON    = 1,          /**< Blocking an address is enabled */
931 };
932
933 /**
934 * @brief Enumeration for the blocking of a subject.
935 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
936 */
937 enum
938 {
939     EMAIL_OPTION_BLOCK_SUBJECT_OFF   = 0,          /**< Blocking by subject is not enabled */
940     EMAIL_OPTION_BLOCK_SUBJECT_ON    = 1,          /**< Blocking by subject is enabled */
941 };
942
943 enum
944 {
945     EMAIL_LIST_TYPE_UNREAD           = -3,        /**< List unread mails */
946     EMAIL_LIST_TYPE_LOCAL            = -2,        /**< List local mails */
947     EMAIL_LIST_TYPE_THREAD           = -1,        /**< List thread */
948     EMAIL_LIST_TYPE_NORMAL           = 0          /**< List all mails */
949 };
950
951 /**
952 * @brief Enumeration for the mailbox sync type.
953 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
954 */
955 enum
956 {
957     EMAIL_MAILBOX_ALL                = -1,         /**< All mailboxes */
958     EMAIL_MAILBOX_FROM_SERVER        = 0,          /**< Mailboxes from server */
959     EMAIL_MAILBOX_FROM_LOCAL         = 1,          /**< Mailboxes from local */
960 };
961
962 /**
963 * @brief Enumeration for the mail change type.
964 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
965 */
966 typedef enum
967 {
968     APPEND_BODY                    = 1,    /**< Body is appended */
969     UPDATE_MAILBOX,                        /**< Mailbox is updated */
970     UPDATE_ATTACHMENT_INFO,                /**< Attachment info is updated */
971     UPDATE_FLAG,                           /**< Flag is updated */
972     UPDATE_SAVENAME,                       /**< Savename is updated */
973     UPDATE_EXTRA_FLAG,                     /**< Extra flag is updated */
974     UPDATE_MAIL,                           /**< Mail information is updated */
975     UPDATE_DATETIME,                       /**< Datetime is updated */
976     UPDATE_FROM_CONTACT_INFO,              /**< From contact info is updated */
977     UPDATE_TO_CONTACT_INFO,                /**< To contact info is updated */
978     UPDATE_ALL_CONTACT_NAME,               /**< All contact name is updated */
979     UPDATE_ALL_CONTACT_INFO,               /**< All contact info is updated */
980     UPDATE_STICKY_EXTRA_FLAG,              /**< Sticky extra flag is updated */
981     UPDATE_PARTIAL_BODY_DOWNLOAD,          /**< Partial body download is updated */
982     UPDATE_MEETING,                        /**< Meeting is updated */
983     UPDATE_SEEN_FLAG_OF_THREAD,            /**< Seen flag of thread is updated */
984     UPDATE_FILE_PATH,                      /**< File path is updated */
985 } email_mail_change_type_t;
986
987
988 /**
989 * @brief Enumeration for the address type.
990 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
991 */
992 typedef enum
993 {
994     EMAIL_ADDRESS_TYPE_FROM          = 1,          /**< From address */
995     EMAIL_ADDRESS_TYPE_TO,                         /**< To recipient address */
996     EMAIL_ADDRESS_TYPE_CC,                         /**< CC recipient address */
997     EMAIL_ADDRESS_TYPE_BCC,                        /**< BCC recipient address */
998     EMAIL_ADDRESS_TYPE_REPLY,                      /**< Reply recipient address */
999     EMAIL_ADDRESS_TYPE_RETURN,                     /**< Return recipient address */
1000 } email_address_type_t;
1001
1002 /**
1003  * @brief Enumeration for the search type for searching a mailbox.
1004  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1005  */
1006 typedef enum
1007 {
1008     EMAIL_MAILBOX_SEARCH_KEY_TYPE_SUBJECT,         /**< The search key for searching subject */
1009     EMAIL_MAILBOX_SEARCH_KEY_TYPE_FROM,            /**< The search key for searching sender address */
1010     EMAIL_MAILBOX_SEARCH_KEY_TYPE_BODY,            /**< The search key for searching body */
1011     EMAIL_MAILBOX_SEARCH_KEY_TYPE_TO,              /**< The search key for searching recipient address */
1012 } email_mailbox_search_key_t;
1013
1014 /**
1015  * @brief Enumeration for the download status of a mail body.
1016  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1017  */
1018
1019 typedef enum
1020 {
1021     EMAIL_BODY_DOWNLOAD_STATUS_NONE = 0,                  /**< The mail is not downloaded yet */
1022     EMAIL_BODY_DOWNLOAD_STATUS_FULLY_DOWNLOADED = 1,      /**< The mail is fully downloaded */
1023     EMAIL_BODY_DOWNLOAD_STATUS_PARTIALLY_DOWNLOADED = 2,  /**< The mail is partially downloaded */
1024 } email_body_download_status_t;
1025
1026 /**
1027  * @brief Enumeration for the download status of a mail body.
1028  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1029  */
1030
1031 typedef enum
1032 {
1033     EMAIL_PART_DOWNLOAD_STATUS_NONE = 0,                   /**< The part is not downloaded yet */
1034     EMAIL_PART_DOWNLOAD_STATUS_FULLY_DOWNLOADED = 1,       /**< The part is fully downloaded */
1035     EMAIL_PART_DOWNLOAD_STATUS_PARTIALLY_DOWNLOADED = 2,   /**< The part is partially downloaded */
1036 } email_part_download_status_t;
1037
1038 /**
1039  * @brief Enumeration for the moving type.
1040  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1041  */
1042 typedef enum
1043 {
1044     EMAIL_MOVED_BY_COMMAND = 0,      /**< The mails are moved by user */
1045     EMAIL_MOVED_BY_MOVING_THREAD,    /**< The mails are moved with moving thread mails*/
1046     EMAIL_MOVED_AFTER_SENDING,       /**< The mails are moved by 'move after sending' option */
1047     EMAIL_MOVED_CANCELATION_MAIL     /**< The mails are moved by cancellation of meeting request */
1048 } email_move_type;
1049
1050 /**
1051  * @brief Enumeration for the deletion type.
1052  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1053  */
1054 typedef enum
1055 {
1056     EMAIL_DELETED_BY_COMMAND = 0,                /**< The mails are deleted by user */
1057     EMAIL_DELETED_BY_OVERFLOW,                   /**< The mails are deleted by overflow */
1058     EMAIL_DELETED_BY_DELETING_THREAD,            /**< The mails are deleted with removing thread mails */
1059     EMAIL_DELETED_BY_MOVING_TO_OTHER_ACCOUNT,    /**< The mails are deleted by moving to other account */
1060     EMAIL_DELETED_AFTER_SENDING,                 /**< The mails are deleted by 'delete after sending' option */
1061     EMAIL_DELETED_FROM_SERVER,                   /**< The mails are deleted because the mails are deleted on server */
1062 } email_delete_type;
1063
1064 /**
1065  * @brief Enumeration for the status field type.
1066  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1067  */
1068 typedef enum
1069 {
1070     EMAIL_FLAGS_SEEN_FIELD = 0,    /**< mail flag : \Seen */
1071     EMAIL_FLAGS_DELETED_FIELD,     /**< mail flag : \Deleted */
1072     EMAIL_FLAGS_FLAGGED_FIELD,     /**< mail flag : \Flagged */
1073     EMAIL_FLAGS_ANSWERED_FIELD,    /**< mail flag : \Answered */
1074     EMAIL_FLAGS_RECENT_FIELD,      /**< mail flag : \Recent */
1075     EMAIL_FLAGS_DRAFT_FIELD,       /**< mail flag : \Draft */
1076     EMAIL_FLAGS_FORWARDED_FIELD,   /**< mail flag : \Forwarded */
1077     EMAIL_FLAGS_FIELD_COUNT,       /**< field count */
1078 } email_flags_field_type;
1079
1080 typedef enum {
1081     EMAIL_FLAG_NONE                  = 0,    /**< No flag */
1082     EMAIL_FLAG_FLAGED                = 1,    /**< Flagged */
1083     EMAIL_FLAG_TASK_STATUS_CLEAR     = 2,    /**< For EAS task management : No task */
1084     EMAIL_FLAG_TASK_STATUS_COMPLETE  = 3,    /**< For EAS task management : Completed task */
1085     EMAIL_FLAG_TASK_STATUS_ACTIVE    = 4,    /**< For EAS task management : Active task */
1086 } email_flagged_type;
1087
1088 typedef enum {
1089     EMAIL_SEARCH_FILTER_TYPE_MESSAGE_NO       =  1,  /* integer type */    /**< Messages with specified message no */
1090     EMAIL_SEARCH_FILTER_TYPE_UID              =  2,  /* integer type */    /**< Messages with unique identifiers corresponding to the specified unique identifier set */
1091     EMAIL_SEARCH_FILTER_TYPE_ALL              =  3,  /* integer type */    /**< All messages in the mailbox; the default initial key for ANDing */
1092     EMAIL_SEARCH_FILTER_TYPE_BCC              =  7,  /* string type */     /**< Messages that contain the specified string in the envelope structure's BCC field */
1093     EMAIL_SEARCH_FILTER_TYPE_BODY             =  8,  /* string type */     /**< Messages that contain the specified string in the body of the message */
1094     EMAIL_SEARCH_FILTER_TYPE_CC               =  9,  /* string type */     /**< Messages that contain the specified string in the envelope structure's CC field */
1095     EMAIL_SEARCH_FILTER_TYPE_FROM             = 10,  /* string type */     /**< Messages that contain the specified string in the envelope structure's FROM field */
1096     EMAIL_SEARCH_FILTER_TYPE_KEYWORD          = 11,  /* string type */     /**< Messages with the specified keyword set */
1097     EMAIL_SEARCH_FILTER_TYPE_TEXT             = 12,  /* string type */     /**< Messages that contain the specified string in the header or body of the message */
1098     EMAIL_SEARCH_FILTER_TYPE_SUBJECT          = 13,  /* string type */     /**< Messages that contain the specified string in the envelope structure's SUBJECT field */
1099     EMAIL_SEARCH_FILTER_TYPE_TO               = 15,  /* string type */     /**< Messages that contain the specified string in the envelope structure's TO field */
1100     EMAIL_SEARCH_FILTER_TYPE_SIZE_LARSER      = 16,  /* integer type */    /**< Messages with a size larger than the specified number of octets */
1101     EMAIL_SEARCH_FILTER_TYPE_SIZE_SMALLER     = 17,  /* integer type */    /**< Messages with a size smaller than the specified number of octets */
1102     EMAIL_SEARCH_FILTER_TYPE_SENT_DATE_BEFORE = 20,  /* time type */       /**< Messages whose Date: header is earlier than the specified date */
1103     EMAIL_SEARCH_FILTER_TYPE_SENT_DATE_ON     = 21,  /* time type */       /**< Messages whose Date: header is within the specified date */
1104     EMAIL_SEARCH_FILTER_TYPE_SENT_DATE_SINCE  = 22,  /* time type */       /**< Messages whose Date: header is within or later than the specified date */
1105     EMAIL_SEARCH_FILTER_TYPE_FLAGS_ANSWERED   = 26,  /* integer type */    /**< Messages with the \Answered flag set */
1106     EMAIL_SEARCH_FILTER_TYPE_FLAGS_NEW        = 27,  /* integer type */    /**< Messages that have the \Recent flag set but not the \Seen flag */
1107     EMAIL_SEARCH_FILTER_TYPE_FLAGS_DELETED    = 28,  /* integer type */    /**< Messages with the \Deleted flag set */
1108     EMAIL_SEARCH_FILTER_TYPE_FLAGS_OLD        = 29,  /* integer type */    /**< Messages that do not have the \Recent flag set */
1109     EMAIL_SEARCH_FILTER_TYPE_FLAGS_DRAFT      = 30,  /* integer type */    /**< Messages with the \Draft flag set */
1110     EMAIL_SEARCH_FILTER_TYPE_FLAGS_FLAGED     = 32,  /* integer type */    /**< Messages with the \Flagged flag set */
1111     EMAIL_SEARCH_FILTER_TYPE_FLAGS_RECENT     = 34,  /* integer type */    /**< Messages that have the \Recent flag set */
1112     EMAIL_SEARCH_FILTER_TYPE_FLAGS_SEEN       = 36,  /* integer type */    /**< Messages that have the \Seen flag set */
1113     EMAIL_SEARCH_FILTER_TYPE_MESSAGE_ID       = 43,  /* string type */     /**< Messages with specified message ID */
1114     EMAIL_SEARCH_FILTER_TYPE_HEADER_PRIORITY  = 50,  /* integer type */    /**< Messages that have a header with the specified priority */
1115     EMAIL_SEARCH_FILTER_TYPE_ATTACHMENT_NAME  = 60,  /* string type */     /**< Messages that contain the specified string in attachment name */
1116         EMAIL_SEARCH_FILTER_TYPE_CHARSET          = 61,  /* string type */     /**< Messages of encoded type */
1117         EMAIL_SEARCH_FILTER_TYPE_USER_DEFINED     = 62,  /* string type */     /**< Messages that extend and user defined string */
1118 } email_search_filter_type;
1119
1120 typedef enum {
1121     EMAIL_DRM_TYPE_NONE                       = 0,    /**< No DRM type */
1122     EMAIL_DRM_TYPE_OBJECT                     = 1,    /**< DRM object */
1123     EMAIL_DRM_TYPE_RIGHT                      = 2,    /**< DRM right */
1124     EMAIL_DRM_TYPE_DCF                        = 3     /**< DRM Content Format */
1125 } email_drm_type;
1126
1127 typedef enum {
1128     EMAIL_DRM_METHOD_NONE                     = 0,    /**< No DRM method */
1129     EMAIL_DRM_METHOD_FL                       = 1,    /**< Forward lock method */
1130     EMAIL_DRM_METHOD_CD                       = 2,    /**< Combined Delivery method */
1131     EMAIL_DRM_METHOD_SSD                      = 3,    /**< Deprecated */
1132     EMAIL_DRM_METHOD_SD                       = 4     /**< Separated Delivery method */
1133 } email_drm_method;
1134
1135 typedef enum {
1136     EMAIL_CANCELED_BY_USER                    = 0,    /**< Canceled by user */
1137     EMAIL_CANCELED_BY_MDM                     = 1,    /**< Canceled by MDM policy */
1138 } email_cancelation_type;
1139
1140 typedef enum {
1141     EMAIL_MAIL_ATTRIBUTE_MAIL_ID                 =  0,  /* integer type */    /**< @a mail_id field of email_mail_data_t */
1142     EMAIL_MAIL_ATTRIBUTE_ACCOUNT_ID              =  1,  /* integer type */    /**< @a account_id field of email_mail_data_t */
1143     EMAIL_MAIL_ATTRIBUTE_MAILBOX_ID              =  2,  /* integer type */    /**< @a mailbox_id field of email_mail_data_t */
1144     EMAIL_MAIL_ATTRIBUTE_MAILBOX_NAME            =  3,  /* string type */     /**< @a mailbox_name field of email_mail_data_t */
1145     EMAIL_MAIL_ATTRIBUTE_MAILBOX_TYPE            =  4,  /* integer type */    /**< @a mailbox_type field of email_mail_data_t */
1146     EMAIL_MAIL_ATTRIBUTE_SUBJECT                 =  5,  /* string type */     /**< @a subject field of email_mail_data_t */
1147     EMAIL_MAIL_ATTRIBUTE_DATE_TIME               =  6,  /* datetime type */   /**< @a date_time field of email_mail_data_t */
1148     EMAIL_MAIL_ATTRIBUTE_SERVER_MAIL_STATUS      =  7,  /* integer type */    /**< @a server_mail_status field of email_mail_data_t */
1149     EMAIL_MAIL_ATTRIBUTE_SERVER_MAILBOX_NAME     =  8,  /* string type */     /**< @a server_mailbox_name field of email_mail_data_t */
1150     EMAIL_MAIL_ATTRIBUTE_SERVER_MAIL_ID          =  9,  /* string type */     /**< @a server_mail_id field of email_mail_data_t */
1151     EMAIL_MAIL_ATTRIBUTE_MESSAGE_ID              = 10,  /* string type */     /**< @a message_id field of email_mail_data_t */
1152     EMAIL_MAIL_ATTRIBUTE_REFERENCE_MAIL_ID       = 11,  /* integer type */    /**< @a reference_mail_id field of email_mail_data_t */
1153     EMAIL_MAIL_ATTRIBUTE_FROM                    = 12,  /* string type */     /**< @a full_address_from field of email_mail_data_t */
1154     EMAIL_MAIL_ATTRIBUTE_TO                      = 13,  /* string type */     /**< @a full_address_to field of email_mail_data_t */
1155     EMAIL_MAIL_ATTRIBUTE_CC                      = 14,  /* string type */     /**< @a full_address_cc field of email_mail_data_t */
1156     EMAIL_MAIL_ATTRIBUTE_BCC                     = 15,  /* string type */     /**< @a full_address_bcc field of email_mail_data_t */
1157     EMAIL_MAIL_ATTRIBUTE_BODY_DOWNLOAD_STATUS    = 16,  /* integer type */    /**< @a body_download_status field of email_mail_data_t */
1158     EMAIL_MAIL_ATTRIBUTE_MAIL_SIZE               = 17,  /* integer type */    /**< @a mail_size field of email_mail_data_t */
1159     EMAIL_MAIL_ATTRIBUTE_FILE_PATH_PLAIN         = 18,  /* string type */     /**< @a file_path_plain field of email_mail_data_t */
1160     EMAIL_MAIL_ATTRIBUTE_FILE_PATH_HTML          = 19,  /* string type */     /**< @a file_path_html field of email_mail_data_t */
1161     EMAIL_MAIL_ATTRIBUTE_FILE_SIZE               = 20,  /* integer type */    /* Deprecated */  /**< @a file_size field of email_mail_data_t */
1162     EMAIL_MAIL_ATTRIBUTE_FLAGS_SEEN_FIELD        = 21,  /* integer type */    /**< @a flags_seen_field field of email_mail_data_t */
1163     EMAIL_MAIL_ATTRIBUTE_FLAGS_DELETED_FIELD     = 22,  /* integer type */    /**< @a flags_deleted_field field of email_mail_data_t */
1164     EMAIL_MAIL_ATTRIBUTE_FLAGS_FLAGGED_FIELD     = 23,  /* integer type */    /**< @a flags_flagged_field field of email_mail_data_t */
1165     EMAIL_MAIL_ATTRIBUTE_FLAGS_ANSWERED_FIELD    = 24,  /* integer type */    /**< @a flags_answered_field field of email_mail_data_t */
1166     EMAIL_MAIL_ATTRIBUTE_FLAGS_RECENT_FIELD      = 25,  /* integer type */    /**< @a flags_recent_field field of email_mail_data_t */
1167     EMAIL_MAIL_ATTRIBUTE_FLAGS_DRAFT_FIELD       = 26,  /* integer type */    /**< @a flags_draft_field field of email_mail_data_t */
1168     EMAIL_MAIL_ATTRIBUTE_FLAGS_FORWARDED_FIELD   = 27,  /* integer type */    /**< @a flags_forwarded_field field of email_mail_data_t */
1169     EMAIL_MAIL_ATTRIBUTE_DRM_STATUS              = 28,  /* integer type */    /**< @a drm_status field of email_mail_data_t */
1170     EMAIL_MAIL_ATTRIBUTE_PRIORITY                = 29,  /* integer type */    /**< @a priority field of email_mail_data_t */
1171     EMAIL_MAIL_ATTRIBUTE_SAVE_STATUS             = 30,  /* integer type */    /**< @a save_status field of email_mail_data_t */
1172     EMAIL_MAIL_ATTRIBUTE_LOCK_STATUS             = 31,  /* integer type */    /**< @a lock_status field of email_mail_data_t */
1173     EMAIL_MAIL_ATTRIBUTE_REPORT_STATUS           = 32,  /* integer type */    /**< @a report_status field of email_mail_data_t */
1174     EMAIL_MAIL_ATTRIBUTE_ATTACHMENT_COUNT        = 33,  /* integer type */    /**< @a attachment_count field of email_mail_data_t */
1175     EMAIL_MAIL_ATTRIBUTE_INLINE_CONTENT_COUNT    = 34,  /* integer type */    /**< @a inline_content_count field of email_mail_data_t */
1176     EMAIL_MAIL_ATTRIBUTE_THREAD_ID               = 35,  /* integer type */    /**< @a thread_id field of email_mail_data_t */
1177     EMAIL_MAIL_ATTRIBUTE_THREAD_ITEM_COUNT       = 36,  /* integer type */    /**< @a thread_item_count field of email_mail_data_t */
1178     EMAIL_MAIL_ATTRIBUTE_PREVIEW_TEXT            = 37,  /* string type */     /**< @a preview_text field of email_mail_data_t */
1179     EMAIL_MAIL_ATTRIBUTE_MEETING_REQUEST_STATUS  = 38,  /* integer type */    /**< @a meeting_request_status field of email_mail_data_t */
1180     EMAIL_MAIL_ATTRIBUTE_MESSAGE_CLASS           = 39,  /* integer type */    /**< @a message_class field of email_mail_data_t */
1181     EMAIL_MAIL_ATTRIBUTE_DIGEST_TYPE             = 40,  /* integer type */    /**< @a digest_type field of email_mail_data_t */
1182     EMAIL_MAIL_ATTRIBUTE_SMIME_TYPE              = 41,  /* integer type */    /**< @a smime_type field of email_mail_data_t */
1183     EMAIL_MAIL_ATTRIBUTE_SCHEDULED_SENDING_TIME  = 42,  /* integer type */    /**< @a scheduled_sending_time field of email_mail_data_t */
1184     EMAIL_MAIL_ATTRIBUTE_REMAINING_RESEND_TIMES  = 43,  /* integer type */    /**< @a remaining_resend_times field of email_mail_data_t */
1185     EMAIL_MAIL_ATTRIBUTE_TAG_ID                  = 44,  /* integer type */    /**< @a tag_id field of email_mail_data_t */
1186     EMAIL_MAIL_ATTRIBUTE_REPLIED_TIME            = 45,  /* integer type */    /**< @a replied_time field of email_mail_data_t */
1187     EMAIL_MAIL_ATTRIBUTE_FORWARDED_TIME          = 46,  /* integer type */    /**< @a forwared_time field of email_mail_data_t */
1188     EMAIL_MAIL_ATTRIBUTE_RECIPIENT_ADDRESS       = 47,  /* string type */     /**< @a recipient_address field of email_mail_data_t */
1189     EMAIL_MAIL_ATTRIBUTE_EAS_DATA_LENGTH_TYPE    = 48,  /* integer type */    /**< @a eas_data_length_type field of email_mail_data_t */
1190     EMAIL_MAIL_ATTRIBUTE_EAS_DATA_TYPE           = 49,  /* binary type */     /**< @a eas_data_type field of email_mail_data_t */
1191     EMAIL_MAIL_ATTRIBUTE_END                            /**< The end of attribute */
1192 } email_mail_attribute_type;
1193
1194 typedef enum {
1195     EMAIL_MAIL_TEXT_ATTRIBUTE_FULL_TEXT = 1,    /**< Full text attribute of email_mail_text */
1196     EMAIL_MAIL_TEXT_ATTRIBUTE_END               /**< The end of email_mail_text_attribute */
1197 } email_mail_text_attribute_type;
1198
1199 typedef enum {
1200     EMAIL_MAIL_ATTACH_ATTRIBUTE_ATTACHMENT_NAME = 1,    /**< Attachment name */
1201     EMAIL_MAIL_ATTCH_ATTRIBUTE_END                      /**< The end of email_mail_attach_attribute_type */
1202 } email_mail_attach_attribute_type;
1203
1204 typedef enum {
1205     EMAIL_MAIL_ATTRIBUTE_VALUE_TYPE_NONE         = 0,    /**< The attribute type is none */
1206     EMAIL_MAIL_ATTRIBUTE_VALUE_TYPE_INTEGER      = 1,    /**< The attribute type is integer */
1207     EMAIL_MAIL_ATTRIBUTE_VALUE_TYPE_STRING       = 2,    /**< The attribute type is string */
1208     EMAIL_MAIL_ATTRIBUTE_VALUE_TYPE_TIME         = 3,    /**< The attribute type is time */
1209     EMAIL_MAIL_ATTRIBUTE_VALUE_TYPE_BINARY       = 4     /**< The attribute type is binary */
1210 } email_mail_attribute_value_type;
1211
1212 typedef enum {
1213     EMAIL_ADD_MY_ADDRESS_OPTION_DO_NOT_ADD            = 0,    /**< Address option type is not added */
1214     EMAIL_ADD_MY_ADDRESS_OPTION_ALWAYS_ADD_TO_CC      = 1,    /**< Address option type is added to cc */
1215     EMAIL_ADD_MY_ADDRESS_OPTION_ALWAYS_ADD_TO_BCC     = 2,    /**< Address option type is added to bcc */
1216 } email_add_my_address_option_type;
1217
1218 typedef enum {
1219     EMAIL_MESSAGE_CLASS_UNSPECIFIED,                                           /**< The message class is unspecified */
1220     EMAIL_MESSAGE_CLASS_UNKNOWN,                                               /**< The message class is unknown */
1221     EMAIL_MESSAGE_CLASS_NOTE,                                                  /**< The message class is note */
1222     EMAIL_MESSAGE_CLASS_NOTE_RULES_OF_TEMPLATE_MICROSOFT,                      /**< The message class is note_rule_of_template_microsoft */
1223     EMAIL_MESSAGE_CLASS_NOTE_SMIME,                                            /**< The message class is note_smime */
1224     EMAIL_MESSAGE_CLASS_NOTE_SMIME_MULTIPART_SIGNED,                           /**< The message class is note_smime_multipart_signed */
1225     EMAIL_MESSAGE_CLASS_NOTIFICATION_MEETING,                                  /**< The message class is notification meeting */
1226     EMAIL_MESSAGE_CLASS_OCTEL_VOICE,                                           /**< The message class is octel voice */
1227     EMAIL_MESSAGE_CLASS_SCHEDULE_MEETING_REQUEST,                              /**< The message class is meeting request */
1228     EMAIL_MESSAGE_CLASS_SCHEDULE_MEETING_CANCELED,                             /**< The message class is meeting canceled */
1229     EMAIL_MESSAGE_CLASS_SCHEDULE_MEETING_RESP_POS,                             /**< The message class is meeting resp pos */
1230     EMAIL_MESSAGE_CLASS_SCHEDULE_MEETING_RESP_TENT,                            /**< The message class is meeting resp tent */
1231     EMAIL_MESSAGE_CLASS_SCHEDULE_MEETING_RESP_NEG,                             /**< The message class is meeting resp neg */
1232     EMAIL_MESSAGE_CLASS_POST,                                                  /**< The message class is post */
1233     EMAIL_MESSAGE_CLASS_INFO_PATH_FORM,                                        /**< The message class is info path form */
1234     EMAIL_MESSAGE_CLASS_VOICE_NOTES,                                           /**< The message class is voice notes */
1235     EMAIL_MESSAGE_CLASS_SHARING,                                               /**< The message class is sharing */
1236     EMAIL_MESSAGE_CLASS_NOTE_EXCHANGE_ACTIVE_SYNC_REMOTE_WIPE_CONFIRMATION,    /**< The message class is note exchange active sync remote wipe confirmation */
1237     EMAIL_MESSAGE_CLASS_VOICE_MAIL,                                            /**< The message class is voice mail */
1238     EMAIL_MESSAGE_CLASS_SMS,                                                   /**< The message class is SMS */
1239     EMAIL_MESSAGE_CLASS_IRM_MESSAGE                           = 0x00010000,    /**< The message class is IRM message */
1240     EMAIL_MESSAGE_CLASS_SMART_REPLY                           = 0x00100000,    /**< The message class is smart reply */
1241     EMAIL_MESSAGE_CLASS_SMART_FORWARD                         = 0x00200000,    /**< The message class is smart forward */
1242     EMAIL_MESSAGE_CLASS_REPORT_NOT_READ_REPORT                = 0x01000000,    /**< The message class is report not read report */
1243     EMAIL_MESSAGE_CLASS_REPORT_READ_REPORT                    = 0x02000000,    /**< The message class is report read report */
1244     EMAIL_MESSAGE_CLASS_REPORT_NON_DELIVERY_RECEIPT           = 0x04000000,    /**< The message class is report non delivery receipt */
1245     EMAIL_MESSAGE_CLASS_REPORT_DELIVERY_RECEIPT               = 0x08000000,    /**< The message class is report delivery receipt */
1246     EMAIL_MESSAGE_CLASS_CALENDAR_FORWARD                      = 0x00400000     /**< The message class is calendar forward */
1247 } email_message_class;
1248
1249 typedef enum{
1250     EMAIL_SMIME_NONE                          = 0,   /**< Not using smime : Normal mail */
1251     EMAIL_SMIME_SIGNED,                              /**< Signed mail of smime */
1252     EMAIL_SMIME_ENCRYPTED,                           /**< Encrypted mail of smime */
1253     EMAIL_SMIME_SIGNED_AND_ENCRYPTED,                /**< Signed/encrypted mail of smime */
1254     EMAIL_PGP_SIGNED,                                /**< Signed mail of pgp */
1255     EMAIL_PGP_ENCRYPTED,                             /**< Encrypted mail of pgp */
1256     EMAIL_PGP_SIGNED_AND_ENCRYPTED                   /**< Signed/encrypted mail of pgp */
1257 } email_smime_type;
1258
1259 typedef enum {
1260     CIPHER_TYPE_NONE                          = 0,   /**< None of cipher type */
1261     CIPHER_TYPE_DES3,                                /**< DES3 of cipher type */
1262     CIPHER_TYPE_DES,                                 /**< DES of cipher type */
1263     CIPHER_TYPE_RC2_128,                             /**< RC2 128 of cipher type */
1264     CIPHER_TYPE_RC2_64,                              /**< RC2 64 of cipher type */
1265     CIPHER_TYPE_RC2_40,                              /**< RC2 40 of cipher type */
1266 } email_cipher_type;
1267
1268 typedef enum {
1269     DIGEST_TYPE_NONE                          = 0,    /**< None of digest type */
1270     DIGEST_TYPE_SHA1                          = 1,    /**< SHA1 of digest type */
1271     DIGEST_TYPE_MD5                           = 2,    /**< MD5 of digest type */
1272     DIGEST_TYPE_RIPEMD160                     = 3,    /**< RIPEMD160 of digest type */
1273     DIGEST_TYPE_MD2                           = 4,    /**< MD2 of digest type */
1274     DIGEST_TYPE_TIGER192                      = 5,    /**< TIGER192 of digest type */
1275     DIGEST_TYPE_HAVAL5160                     = 6,    /**< HAVAL5160 of digest type */
1276     DIGEST_TYPE_SHA256                        = 7,    /**< SHA256 of digest type */
1277     DIGEST_TYPE_SHA384                        = 8,    /**< SHA384 of digest type */
1278     DIGEST_TYPE_SHA512                        = 9,    /**< SHA512 of digest type */
1279     DIGEST_TYPE_SHA224                        = 10,   /**< SHA224 of digest type */
1280     DIGEST_TYPE_MD4                           = 11,   /**< MD4 of digest type */
1281 } email_digest_type;
1282
1283 typedef enum {
1284     EMAIL_AUTHENTICATION_METHOD_NO_AUTH          = 0,    /**< The authentication method is no auth */
1285     EMAIL_AUTHENTICATION_METHOD_DEFAULT          = 1,    /**< The authentication method is default(SSL/TLS) */
1286     EMAIL_AUTHENTICATION_METHOD_XOAUTH2          = 2,    /**< The authentication method is xoauth2 */
1287 } email_authentication_method_t;
1288
1289 typedef enum {
1290     EMAIL_ROAMING_OPTION_RESTRICTED_BACKGROUND_TASK  = 0,    /**< The roaming option is restricted background task */
1291     EMAIL_ROAMING_OPTION_UNRESTRICTED                = 1,    /**< The roaming option is unrestricted */
1292 } email_roaming_option_t;
1293
1294 typedef enum {
1295     EMAIL_GET_INCOMING_PASSWORD_LENGTH = 1,    /**< Length of receiving password */
1296     EMAIL_GET_OUTGOING_PASSWORD_LENGTH         /**< Length of SMTP password */
1297 } email_get_password_length_type;
1298
1299 /*****************************************************************************/
1300 /*  Data Structures                                                          */
1301 /*****************************************************************************/
1302
1303 /**
1304  * @brief The structure type to save the mail time.
1305  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1306  */
1307 typedef struct
1308 {
1309     unsigned short year;                         /**< The Year */
1310     unsigned short month;                        /**< The Month */
1311     unsigned short day;                          /**< The Day */
1312     unsigned short hour;                         /**< The Hour */
1313     unsigned short minute;                       /**< The Minute */
1314     unsigned short second;                       /**< The Second */
1315 } email_datetime_t DEPRECATED;
1316
1317 /**
1318  * @brief The structure type to save the options.
1319  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1320  */
1321 typedef struct
1322 {
1323     email_mail_priority_t              priority;                /**< The priority. 1=high 3=normal 5=low */
1324     int                                keep_local_copy;         /**< Saves a copy after sending */
1325     int                                req_delivery_receipt;    /**< The request of delivery report. 0=off 1=on */
1326     int                                req_read_receipt;        /**< The request of read receipt. 0=off 1=on */
1327     int                                download_limit;          /**< The limit of size for downloading */
1328     int                                block_address;           /**< Specifies the blocking of address. 0=off 1=on */
1329     int                                block_subject;           /**< The blocking of subject. 0=off 1=on */
1330     char                              *display_name_from;       /**< The display name of from */
1331     int                                reply_with_body;         /**< The replying with body 0=off 1=on */
1332     int                                forward_with_files;      /**< The forwarding with files 0=off 1=on */
1333     int                                add_myname_card;         /**< The adding name card 0=off 1=on */
1334     int                                add_signature;           /**< The adding signature 0=off 1=on */
1335     char                              *signature;               /**< The signature */
1336     email_add_my_address_option_type   add_my_address_to_bcc;   /**< The flag specifying whether cc or bcc field should be always filled with my address */
1337     int                                notification_status;     /**< The notification status. 1 = ON, 0 = OFF */
1338     int                                vibrate_status;          /**< The repetition type */
1339     int                                display_content_status;  /**< The display_content status. 1 = ON, 0 = OFF */
1340     int                                default_ringtone_status; /**< The badge status.  1 = ON, 0 = OFF */
1341     char                               *alert_ringtone_path;    /**< The ringtone path */
1342 } email_option_t;
1343
1344 /**
1345  * @brief The structure type to save the information of an email account.
1346  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1347  */
1348 typedef struct
1349 {
1350     /* General account information */
1351     int                             account_id;                               /**< Account ID */
1352     char                           *account_name;                             /**< Account name */
1353     int                             account_svc_id;                           /**< AccountSvc priv data: Specifies ID from account-svc */
1354     int                             sync_status;                              /**< Sync Status. SYNC_STATUS_FINISHED, SYNC_STATUS_SYNCING, SYNC_STATUS_HAVE_NEW_MAILS */
1355     int                             sync_disabled;                            /**< Flag to enable or disable syncing. If this attribute is set as true, email-service will not synchronize this account. */
1356     int                             default_mail_slot_size;                   /**< Synced mail count in mailbox */
1357     char                           *logo_icon_path;                           /**< Account logo icon (used by account svc and email app) */
1358     email_roaming_option_t          roaming_option;                           /**< Roaming option */
1359     int                             color_label;                              /**< Account color label */
1360     void                           *user_data;                                /**< Binary user data */
1361     int                             user_data_length;                         /**< User data length */
1362
1363     /* User information */
1364     char                           *user_display_name;                        /**< User's display */
1365     char                           *user_email_address;                       /**< User's email address */
1366     char                           *reply_to_address;                         /**< Email address for reply */
1367     char                           *return_address;                           /**< Email address for error from server*/
1368
1369     /* Configuration for incoming server */
1370     email_account_server_t          incoming_server_type;                     /**< Incoming server type */
1371     char                           *incoming_server_address;                  /**< Incoming server address */
1372     int                             incoming_server_port_number;              /**< Incoming server port number */
1373     char                           *incoming_server_user_name;                /**< Incoming server user name */
1374     char                           *incoming_server_password;                 /**< Incoming server password */
1375     int                             incoming_server_secure_connection;        /**< Flag indicating whether incoming server requires secured connection */
1376     email_authentication_method_t   incoming_server_authentication_method;    /**< Incoming server authentication method */
1377
1378     /* Options for incoming server */
1379     email_imap4_retrieval_mode_t    retrieval_mode;                           /**< Retrieval mode : EMAIL_IMAP4_RETRIEVAL_MODE_NEW or EMAIL_IMAP4_RETRIEVAL_MODE_ALL */
1380     int                             keep_mails_on_pop_server_after_download;  /**< Keep mails on POP server after download */
1381     int                             check_interval;                           /**< The interval for checking new mail periodically */
1382     int                             auto_download_size;                       /**< The size for auto download in bytes. @c -1 means entire mails body */
1383     int                             peak_interval;                            /**< The interval for checking new mail periodically of peak schedule */
1384     int                             peak_days;                                /**< The weekdays of peak schedule */
1385     int                             peak_start_time;                          /**< The start time of peak schedule */
1386     int                             peak_end_time;                            /**< The end time of peak schedule */
1387
1388     /* Configuration for outgoing server */
1389     email_account_server_t          outgoing_server_type;                     /**< Outgoing server type */
1390     char                           *outgoing_server_address;                  /**< Outgoing server address */
1391     int                             outgoing_server_port_number;              /**< Outgoing server port number */
1392     char                           *outgoing_server_user_name;                /**< Outgoing server user name */
1393     char                           *outgoing_server_password;                 /**< Outgoing server password */
1394     int                             outgoing_server_secure_connection;        /**< Flag indicating whether outgoing server requires secured connection */
1395     int                             outgoing_server_need_authentication;      /**< Flag indicating whether outgoing server requires authentication */
1396     int                             outgoing_server_use_same_authenticator;   /**< Use same authenticator for outgoing server - email_authentication_method_t - */
1397
1398
1399     /* Options for outgoing server */
1400     email_option_t                  options;                                  /**< Account options for setting */
1401     int                             auto_resend_times;                        /**< Auto retry count for sending a email */
1402     int                             outgoing_server_size_limit;               /**< Mail size limitation for SMTP sending */
1403
1404     /* Auto download */
1405     int                             wifi_auto_download;                        /**< Auto attachment download in WiFi connection */
1406
1407     /* Authentication Options */
1408     int                             pop_before_smtp;                          /**< POP before SMTP Authentication */
1409     int                             incoming_server_requires_apop;            /**< APOP authentication */
1410
1411     /* S/MIME Options */
1412     email_smime_type                smime_type;                               /**< The smime type 0=Normal 1=Clear signed 2=encrypted 3=Signed + encrypted */
1413     char                           *certificate_path;                         /**< The certificate path of private */
1414     email_cipher_type               cipher_type;                              /**< The encryption algorithm */
1415     email_digest_type               digest_type;                              /**< The digest algorithm */
1416         char                           *user_name;                                /**< The user name for multi user (Since 2.4) */
1417
1418 } email_account_t;
1419
1420 /**
1421  * @brief The structure type to save the certificate information.
1422  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1423  */
1424
1425 typedef struct
1426 {
1427     int certificate_id;               /**< The saved certificate ID */
1428     int issue_year;                   /**< The issue year information of certificate */
1429     int issue_month;                  /**< The issue month information of certificate */
1430     int issue_day;                    /**< The issue day information of certificate */
1431     int expiration_year;              /**< The expiration year information of certificate */
1432     int expiration_month;             /**< The expiration month information of certificate */
1433     int expiration_day;               /**< The expiration day information of certificate */
1434     char *issue_organization_name;    /**< The issue organization information of certificate */
1435     char *email_address;              /**< The email address of certificate */
1436     char *subject_str;                /**< The subject information of certificate */
1437     char *filepath;                   /**< The saved path of certificate */
1438 } email_certificate_t;
1439
1440 /**
1441  * @brief The structure type to save the email server information.
1442  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1443  */
1444
1445 typedef struct
1446 {
1447     int                         configuration_id;      /**< The configuration ID */
1448     email_account_server_t      protocol_type;         /**< The type of configuration */
1449     char                       *server_addr;           /**< The address of configuration */
1450     int                         port_number;           /**< The port number of configuration */
1451     int                         security_type;         /**< The security such as SSL */
1452     int                         auth_type;             /**< The authentication type of configuration */
1453 } email_protocol_config_t;
1454
1455 typedef struct
1456 {
1457     char                       *service_name;           /**< The name of service */
1458     int                         authname_format;        /**< The type of user name for authentication */
1459     int                         protocol_conf_count;    /**< The count of protocol configurations */
1460     email_protocol_config_t    *protocol_config_array;  /**< The array of protocol configurations */
1461 } email_server_info_t;
1462
1463 typedef struct
1464 {
1465     int   mailbox_type;                         /**< The mailbox type  */
1466     char  mailbox_name[MAILBOX_NAME_LENGTH];    /**< The mailbox name */
1467 } email_mailbox_type_item_t;
1468
1469 /**
1470  * @brief The structure type which contains the Mail information.
1471  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1472  */
1473
1474 typedef struct
1475 {
1476     int                   mail_id;                 /**< The Mail ID */
1477     int                   account_id;              /**< The Account ID */
1478     int                   mailbox_id;              /**< The mailbox ID */
1479     email_mailbox_type_e  mailbox_type;            /**< The mailbox type of the mail */
1480     char                 *subject;                 /**< The subject */
1481     time_t                date_time;               /**< The Date time */
1482     int                   server_mail_status;      /**< The flag indicating whether sever mail or not */
1483     char                 *server_mailbox_name;     /**< The server mailbox */
1484     char                 *server_mail_id;          /**< The Server Mail ID */
1485     char                 *message_id;              /**< The message ID */
1486     int                   reference_mail_id;       /**< The reference mail ID */
1487     char                 *full_address_from;       /**< The From address */
1488     char                 *full_address_reply;      /**< The Reply to address */
1489     char                 *full_address_to;         /**< The To address */
1490     char                 *full_address_cc;         /**< The CC address */
1491     char                 *full_address_bcc;        /**< The BCC address */
1492     char                 *full_address_return;     /**< The return path */
1493     char                 *email_address_sender;    /**< The email address of sender */
1494     char                 *email_address_recipient; /**< The email address of recipients */
1495     char                 *alias_sender;            /**< The alias of sender */
1496     char                 *alias_recipient;         /**< The alias of recipients */
1497     int                   body_download_status;    /**< The text download status */
1498     char                 *file_path_plain;         /**< The path of text mail body */
1499     char                 *file_path_html;          /**< The path of HTML mail body */
1500     char                 *file_path_mime_entity;   /**< The path of MIME entity */
1501     int                   mail_size;               /**< The mail size */
1502     char                  flags_seen_field;        /**< The seen flags */
1503     char                  flags_deleted_field;     /**< The deleted flags */
1504     char                  flags_flagged_field;     /**< The flagged flags */
1505     char                  flags_answered_field;    /**< The answered flags */
1506     char                  flags_recent_field;      /**< The recent flags */
1507     char                  flags_draft_field;       /**< The draft flags */
1508     char                  flags_forwarded_field;   /**< The forwarded flags */
1509     int                   DRM_status;              /**< The flag indicating whether the mail has DRM content (1 : true, 0 : false) */
1510     email_mail_priority_t priority;                /**< The priority of the mail */
1511     email_mail_status_t   save_status;             /**< The save status */
1512     int                   lock_status;             /**< The mail is locked */
1513     email_mail_report_t   report_status;           /**< The mail report */
1514     int                   attachment_count;        /**< The attachment count */
1515     int                   inline_content_count;    /**< The inline content count */
1516     int                   thread_id;               /**< The thread ID for thread view */
1517     int                   thread_item_count;       /**< The item count of specific thread */
1518     char                 *preview_text;            /**< The preview body */
1519     email_mail_type_t     meeting_request_status;  /**< The status of meeting request */
1520     int                   message_class;           /**< The class of message for EAS */ /* email_message_class */
1521     email_digest_type     digest_type;             /**< The digest algorithm */
1522     email_smime_type      smime_type;              /**< The SMIME type */
1523     time_t                scheduled_sending_time;  /**< The scheduled sending time */
1524     int                   remaining_resend_times;  /**< The remaining resend times */
1525     int                   tag_id;                  /**< The data for filtering */
1526     time_t                replied_time;            /**< The time of replied */
1527     time_t                forwarded_time;          /**< The time of forwarded */
1528     char                 *pgp_password;            /**< The password of PGP. */
1529     char                 *user_name;               /**< The user information for multi user (Since 2.4) */
1530         char                 *key_list;                /**< The key list encryption of mail (Since 2.4) */
1531         char                 *key_id;                  /**< The key ID for signing of pgp mail (Since 2.4) */
1532     int                   eas_data_length;         /**< The length of eas_data */
1533     void                 *eas_data;                /**< Extended Application Specific data */
1534 } email_mail_data_t;
1535
1536 /**
1537  * @brief The structure type which contains information for displaying a mail list.
1538  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1539  */
1540 typedef struct
1541 {
1542     int                   mail_id;                                            /**< The mail ID */
1543     int                   account_id;                                         /**< The account ID */
1544     int                   mailbox_id;                                         /**< The mailbox ID */
1545     email_mailbox_type_e  mailbox_type;                                       /**< The mailbox type of the mail */
1546     char                  full_address_from[STRING_LENGTH_FOR_DISPLAY];       /**< The full from email address */
1547     char                  email_address_sender[MAX_EMAIL_ADDRESS_LENGTH];     /**< The sender email address */
1548     char                  email_address_recipient[STRING_LENGTH_FOR_DISPLAY]; /**< The recipients email address */
1549     char                  subject[STRING_LENGTH_FOR_DISPLAY];                 /**< The subject */
1550     int                   body_download_status;                               /**< The text download status */
1551     int                   mail_size;                                          /**< The mail size */
1552     time_t                date_time;                                          /**< The date time */
1553     char                  flags_seen_field;                                   /**< The seen flags */
1554     char                  flags_deleted_field;                                /**< The deleted flags */
1555     char                  flags_flagged_field;                                /**< The flagged flags */
1556     char                  flags_answered_field;                               /**< The answered flags */
1557     char                  flags_recent_field;                                 /**< The recent flags */
1558     char                  flags_draft_field;                                  /**< The draft flags */
1559     char                  flags_forwarded_field;                              /**< The forwarded flags */
1560     int                   DRM_status;                                         /**< The flag indicating whether the has mail DRM content (1 : true, 0 : false) */
1561     email_mail_priority_t priority;                                           /**< The priority of mails */ /* email_mail_priority_t*/
1562     email_mail_status_t   save_status;                                        /**< The save status */ /* email_mail_status_t */
1563     int                   lock_status;                                        /**< The lock status */
1564     email_mail_report_t   report_status;                                      /**< The mail report */ /* email_mail_report_t */
1565     int                   attachment_count;                                   /**< The attachment count */
1566     int                   inline_content_count;                               /**< The inline content count */
1567     char                  preview_text[MAX_PREVIEW_TEXT_LENGTH];              /**< The text for preview body */
1568     int                   thread_id;                                          /**< The thread ID for thread view */
1569     int                   thread_item_count;                                  /**< The item count of specific thread */
1570     email_mail_type_t     meeting_request_status;                             /**< The flag indicating whether the mail is a meeting request or not */ /* email_mail_type_t */
1571     int                   message_class;                                      /**< The message class */ /* email_message_class */
1572     email_smime_type      smime_type;                                         /**< The smime type */ /* email_smime_type */
1573     time_t                scheduled_sending_time;                             /**< The scheduled sending time */
1574     int                   remaining_resend_times;                             /**< The remaining resend times */
1575     int                   tag_id;                                             /**< The data for filtering */
1576     int                   eas_data_length;                                    /**< The length of eas_data */
1577     void                 *eas_data;                                           /**< Extended Application Specific data */
1578 } email_mail_list_item_t;
1579
1580 /**
1581  * @brief The structure type used to save the filtering structure.
1582  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1583  */
1584 typedef struct
1585 {
1586     int                  account_id;          /**< The account ID */
1587     int                  filter_id;           /**< The filtering ID */
1588     char                *filter_name;         /**< The filtering name */
1589     email_rule_type_t    type;                /**< The filtering type */
1590     char                *value;               /**< The filtering value : subject */
1591     char                *value2;              /**< The filtering value2 : sender address */
1592     email_rule_action_t  faction;             /**< The action type for filtering */
1593     int                  target_mailbox_id;   /**< The mail box if action type means move */
1594     int                  flag1;               /**< The activation */
1595     int                  flag2;               /**< Reserved */
1596 } email_rule_t;
1597
1598 /**
1599  * @brief The structure type used to save the information of a mail flag.
1600  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1601  */
1602 typedef struct
1603 {
1604     unsigned int  seen           : 1;    /**< The read email */
1605     unsigned int  deleted        : 1;    /**< The deleted email */
1606     unsigned int  flagged        : 1;    /**< The flagged email */
1607     unsigned int  answered       : 1;    /**< The answered email */
1608     unsigned int  recent         : 1;    /**< The recent email */
1609     unsigned int  draft          : 1;    /**< The draft email */
1610     unsigned int  attachment_count : 1;  /**< The attachment count */
1611     unsigned int  forwarded      : 1;    /**< The forwarded email. */
1612     unsigned int  sticky         : 1;    /**< The sticky flagged mails cannot be deleted */
1613 } email_mail_flag_t /* DEPRECATED */;
1614
1615
1616 /**
1617  * @brief The structure type used to save the information of a mail extra flag.
1618  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1619  */
1620 typedef struct
1621 {
1622     unsigned int  priority         : 3; /**< The mail priority \n
1623                                              The value is greater than or equal to EMAIL_MAIL_PRIORITY_HIGH.
1624                                              The value is less than or equal to EMAIL_MAIL_PRIORITY_LOW.*/
1625     unsigned int  status           : 4; /**< The mail status \n
1626                                              The value is a value of enumeration email_mail_status_t.*/
1627     unsigned int  noti             : 1; /**< The notified mail */
1628     unsigned int  lock             : 1; /**< The locked mail */
1629     unsigned int  report           : 2; /**< The MDN/DSN mail \n
1630                                              The value is a value of enumeration email_mail_report_t.*/
1631     unsigned int  drm              : 1; /**< The DRM mail */
1632     unsigned int  text_download_yn : 2; /**< The body download y/n */
1633 } email_extra_flag_t DEPRECATED;
1634
1635 /**
1636  * @brief The structure type used to save the information of an attachment.
1637  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1638  */
1639 typedef struct
1640 {
1641     int   attachment_id;         /**< The attachment ID */
1642     char *attachment_name;       /**< The attachment name */
1643     char *attachment_path;       /**< The path of a downloaded attachment */
1644     char *content_id;            /**< The content ID string of an attachment */
1645     int   attachment_size;       /**< The size of an attachment */
1646     int   mail_id;               /**< The mail ID of an included attachment */
1647     int   account_id;            /**< The account ID of an included attachment */
1648     char  mailbox_id;            /**< The mailbox ID of an include attachment */
1649     int   save_status;           /**< The save status of an attachment */
1650     int   drm_status;            /**< The DRM status of an attachment */
1651     int   inline_content_status; /**< The distinguished inline attachment and normal attachment */
1652     char *attachment_mime_type;  /**< The context MIME type */
1653 } email_attachment_data_t;
1654
1655 typedef struct
1656 {
1657     int        offset_from_GMT;             /**< The time from base GMT  */
1658     char       standard_name[32];           /**< The name of time zone */
1659     struct tm  standard_time_start_date;    /**< The start date of time zone */
1660     int        standard_bias;               /**< The bias of time zone */
1661     char       daylight_name[32];           /**< The daylight name of time zone */
1662     struct tm  daylight_time_start_date;    /**< The daylight start date of time zone */
1663     int        daylight_bias;               /**< The daylight bias of time zone */
1664 } email_time_zone_t;
1665
1666 /**
1667  * @brief Structure used to save the information of a meeting request
1668  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1669  */
1670 typedef struct
1671 {
1672     int                        mail_id;                                        /**< The mail ID of meeting request on DB <br>
1673                                                                                     This is the primary key. */
1674     email_meeting_response_t   meeting_response;                               /**< The meeting response */
1675     struct tm                  start_time;                                     /**< The meeting start time */
1676     struct tm                  end_time;                                       /**< The meeting end time */
1677     char                      *location;                                       /**< The location of meeting <br>
1678                                                                                     Maximum length of this string is 32768. */
1679     char                      *global_object_id;                               /**< The object ID */
1680     email_time_zone_t          time_zone;                                      /**< The time zone of meeting */
1681 } email_meeting_request_t;
1682
1683 /**
1684  * @brief The structure type used to save the information of a sender list with unread/total mail counts.
1685  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1686  */
1687 typedef struct
1688 {
1689     char *address;         /**< The address of a sender */
1690     char *display_name;    /**< The display name <br>
1691                                 This may be one of contact name, alias in original mail and email address of sender.
1692                                 (Priority order : contact name, alias, email address) */
1693     int   unread_count;    /**< The number of unread mails received from sender address */
1694     int   total_count;     /**< The total number of  mails which are received from sender address */
1695 } email_sender_list_t /* DEPRECATED */;
1696
1697
1698 /**
1699  * @brief The structure type used to save the information of a mailbox.
1700  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1701  */
1702 typedef struct
1703 {
1704     int                   mailbox_id;                 /**< The unique ID on mailbox table */
1705     char                 *mailbox_name;               /**< The path of mailbox */
1706     email_mailbox_type_e  mailbox_type;               /**< The type of mailbox */
1707     char                 *alias;                      /**< The display name of mailbox */
1708     int                   unread_count;               /**< The unread mail count in the mailbox */
1709     int                   total_mail_count_on_local;  /**< The total number of mails in the mailbox in the local DB */
1710     int                   total_mail_count_on_server; /**< The total number of mails in the mailbox in the mail server */
1711     int                   local;                      /**< The local mailbox */
1712     int                   account_id;                 /**< The account ID for mailbox */
1713     int                   mail_slot_size;             /**< The number of mails that can be stored in local mailbox */
1714     int                   no_select;                  /**< The 'no_select' attribute from xlist */
1715     time_t                last_sync_time;             /**< The last sync time of the mailbox */
1716     int                   deleted_flag;               /**< The flag specifying whether mailbox is deleted */
1717     int                   eas_data_length;            /**< The length of eas_data */
1718     void                 *eas_data;                   /**< The data for eas engine. */
1719 } email_mailbox_t;
1720
1721 /**
1722  * @brief Structure used to save the information of email a address.
1723  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1724  */
1725
1726 typedef struct
1727 {
1728     email_address_type_t  address_type;    /**< The address type using the email (TO, CC, BCC, etc..) */
1729     char                 *address;         /**< The Email address */
1730     char                 *display_name;    /**< The alias */
1731     int                   storage_type;    /**< The type of saved storage on contact-service */
1732     int                   contact_id;      /**< The ID of saved storage on contact-service */
1733 } email_address_info_t;
1734
1735 /**
1736  * @brief Structure used to save the set of email addresses
1737  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1738  */
1739 typedef struct
1740 {
1741     GList *from;    /**< The From address list */
1742     GList *to;      /**< The TO address list */
1743     GList *cc;      /**< The CC address list */
1744     GList *bcc;     /**< The BCC address list */
1745 } email_address_info_list_t;
1746
1747 /**
1748  * @brief Structure used to save the list of email addresses
1749  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1750  */
1751 typedef struct
1752 {
1753     int address_type;               /**< The type of mail (sender : 0, recipient : 1)*/
1754     int     address_count;          /**< The number of email addresses */
1755     char  **address_list;           /**< The strings of email addresses */
1756 } email_email_address_list_t;
1757
1758
1759 /**
1760  * @brief Structure used to save the information of a search filter
1761  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1762  */
1763 typedef struct _email_search_filter_t {
1764     email_search_filter_type search_filter_type;      /**< The type of search filter */
1765     union {
1766         int            integer_type_key_value;        /**< The integer value for searching */
1767         time_t         time_type_key_value;           /**< The time value for searching */
1768         char          *string_type_key_value;         /**< The string value for searching */
1769     } search_filter_key_value;                        /**< The key value of search filter */
1770 } email_search_filter_t;
1771
1772 typedef enum {
1773     EMAIL_LIST_FILTER_RULE_EQUAL                  = 0,    /**< EQUAL(=) of filter type */
1774     EMAIL_LIST_FILTER_RULE_NOT_EQUAL              = 1,    /**< NOT EQUAL(!=) of filter type */
1775     EMAIL_LIST_FILTER_RULE_LESS_THAN              = 2,    /**< LESS THAN(<) of filter type */
1776     EMAIL_LIST_FILTER_RULE_GREATER_THAN           = 3,    /**< GREATER THAN(>) of filter type */
1777     EMAIL_LIST_FILTER_RULE_LESS_THAN_OR_EQUAL     = 4,    /**< LESS THAN OR EQUAL(<=) of filter type */
1778     EMAIL_LIST_FILTER_RULE_GREATER_THAN_OR_EQUAL  = 5,    /**< GREATER THAN OR EQUAL(>=) of filter type */
1779     EMAIL_LIST_FILTER_RULE_INCLUDE                = 6,    /**< LIKE operator in SQL statements */
1780     EMAIL_LIST_FILTER_RULE_MATCH                  = 7,    /**< MATCH operator in SQL statements */
1781     EMAIL_LIST_FILTER_RULE_IN                     = 8,    /**< IN operator in SQL statements */
1782     EMAIL_LIST_FILTER_RULE_NOT_IN                 = 9     /**< NOT IN operator in SQL statements */
1783 } email_list_filter_rule_type_t;
1784
1785 typedef enum {
1786     EMAIL_CASE_SENSITIVE                          = 0,    /**< Case sensitive search */
1787     EMAIL_CASE_INSENSITIVE                        = 1,    /**< Case insensitive search */
1788 } email_list_filter_case_sensitivity_t;
1789
1790 typedef union {
1791     int                                    integer_type_value;    /**< Container for integer type value */
1792     char                                  *string_type_value;     /**< Container for string type value  */
1793     time_t                                 datetime_type_value;   /**< Container for datetime type value  */
1794 } email_mail_attribute_value_t;
1795
1796 typedef struct {
1797     email_list_filter_rule_type_t          rule_type;             /**< Operator type of the filter rule */
1798     email_mail_attribute_type              target_attribute;      /**< Target attribute type of the filter rule */
1799     email_mail_attribute_value_t           key_value;             /**< Target attribute value of the filter rule */
1800     email_list_filter_case_sensitivity_t   case_sensitivity;      /**< Specifies case sensitivity of the filter rule */
1801 } email_list_filter_rule_t;
1802
1803 typedef struct {
1804     email_list_filter_rule_type_t          rule_type;             /**< Operator type of the filter rule for full text search */
1805     email_mail_text_attribute_type         target_attribute;      /**< Target attribute type of the filter rule */
1806     email_mail_attribute_value_t           key_value;             /**< Target attribute value of the filter rule */
1807 } email_list_filter_rule_fts_t;
1808
1809 typedef struct {
1810     email_list_filter_rule_type_t          rule_type;             /**< Operator type of the filter rule for searching attachment */
1811     email_mail_attach_attribute_type       target_attribute;      /**< Target attribute type of the filter rule */
1812     email_mail_attribute_value_t           key_value;             /**< Target attribute value of the filter rule */
1813     email_list_filter_case_sensitivity_t   case_sensitivity;      /**< Specifies case sensitivity of the filter rule */
1814 } email_list_filter_rule_attach_t;
1815
1816 typedef enum {
1817     EMAIL_LIST_FILTER_ITEM_RULE                     = 0,    /**< Normal search rule */
1818     EMAIL_LIST_FILTER_ITEM_RULE_FTS                 = 1,    /**< Full text search rule */
1819     EMAIL_LIST_FILTER_ITEM_RULE_ATTACH              = 2,    /**< Searching attachment rule */
1820     EMAIL_LIST_FILTER_ITEM_OPERATOR                 = 3,    /**< Operator */
1821 } email_list_filter_item_type_t;
1822
1823 typedef enum {
1824     EMAIL_LIST_FILTER_OPERATOR_AND                  = 0,    /**< AND operator */
1825     EMAIL_LIST_FILTER_OPERATOR_OR                   = 1,    /**< OR operator */
1826     EMAIL_LIST_FILTER_OPERATOR_LEFT_PARENTHESIS     = 2,    /**< ( operator */
1827     EMAIL_LIST_FILTER_OPERATOR_RIGHT_PARENTHESIS    = 3     /**< ) operator */
1828 } email_list_filter_operator_type_t;
1829
1830 /**
1831  * @brief Structure used to save the information of a list filter
1832  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
1833  */
1834 typedef struct {
1835     email_list_filter_item_type_t          list_filter_item_type;    /**< Filter item type */
1836
1837     union {
1838         email_list_filter_rule_t           rule;           /**< Rule type */
1839         email_list_filter_rule_fts_t       rule_fts;       /**< Rule type for full text search */
1840         email_list_filter_rule_attach_t    rule_attach;    /**< Rule type for searching attachment */
1841         email_list_filter_operator_type_t  operator_type;  /**< Operator type */
1842     } list_filter_item;    /**< filter item of list */
1843
1844 } email_list_filter_t;
1845
1846 typedef enum {
1847     EMAIL_SORT_ORDER_ASCEND                             = 0,    /**< Ascending order sorting */
1848     EMAIL_SORT_ORDER_DESCEND                            = 1,    /**< Descending order sorting */
1849     EMAIL_SORT_ORDER_TO_CCBCC                           = 2,    /**< full_address_to sorting */
1850     EMAIL_SORT_ORDER_TO_CC_BCC                          = 3,    /**< full_address_to, full_address_cc sorting */
1851     EMAIL_SORT_ORDER_TO_CCBCC_ALL                       = 4,    /**< full_address_to of all account sorting */
1852     EMAIL_SORT_ORDER_NOCASE_ASCEND                      = 5,    /**< Ascending order with COLLATE NOCASE option*/
1853     EMAIL_SORT_ORDER_NOCASE_DESCEND                     = 6,    /**< Descending order with COLLATE NOCASE option */
1854     EMAIL_SORT_ORDER_LOCALIZE_ASCEND                    = 7,    /**< Localize ascending order sorting */
1855     EMAIL_SORT_ORDER_LOCALIZE_DESCEND                   = 8     /**< Localize descending order sorting */
1856 } email_list_filter_sort_order_t;
1857
1858
1859 typedef struct {
1860     email_mail_attribute_type              target_attribute;    /**< The attribute type of mail for sorting*/
1861     email_mail_attribute_value_t           key_value;           /**< The attribute value of mail for sorting*/
1862     bool                                   force_boolean_check; /**< The distinguished true/false for sorting  */
1863     email_list_filter_sort_order_t         sort_order;          /**< The ordering rule for sorting */
1864 } email_list_sorting_rule_t;
1865
1866
1867 typedef struct {
1868     int                                    handle;        /**< The job handle to be canceled */
1869     int                                    account_id;    /**< The account ID for task information */
1870     email_event_type_t                     type;          /**< The type for task information */
1871     email_event_status_type_t              status;        /**< The status for task information */
1872     void                                  *task_data1;    /** in general, mail_id */
1873     void                                  *task_data2;    /** in general, attachment_nth */
1874     void                                  *task_data3;    /** in general, progress */
1875
1876 } email_task_information_t;
1877
1878 typedef enum {
1879     EMAIL_MESSAGE_CONTEXT_VOICE_MESSAGE                 = 1,    /**< Voice message context */
1880     EMAIL_MESSAGE_CONTEXT_VIDEO_MESSAGE                 = 2,    /**< Video message context */
1881     EMAIL_MESSAGE_CONTEXT_FAX_MESSAGE                   = 3,    /**< Fax message context */
1882     EMAIL_MESSAGE_CONTEXT_X_EMPTY_CALL_CAPTURE_MESSAGE  = 4,    /**< X empty call capture message context */
1883     EMAIL_MESSAGE_CONTEXT_X_NUMBER_MESSAGE              = 5,    /**< X number message context */
1884     EMAIL_MESSAGE_CONTEXT_X_VOICE_INFOTAINMENT_MESSAGE  = 6     /**< X voice infotainment message context */
1885 } email_message_context_t;
1886
1887 typedef enum {
1888     EMAIL_MESSAGE_SENSITIVITY_PRIVATE                   = 1,    /**< Private sensitivity of message */
1889     EMAIL_MESSAGE_SENSITIVITY_CONFIDENTIAL              = 2,    /**< Confidential sensitivity of message */
1890     EMAIL_MESSAGE_SENSITIVITY_PERSONAL                  = 3     /**< Personal sensitivity of message */
1891 } email_message_sensitivity_t;
1892
1893 typedef struct {
1894     email_message_context_t                message_context;    /**< Message context for visual voice mail */
1895     int                                    content_length;     /**< Content-Duration for audio/video or X-Content-Pages for fax */
1896     email_message_sensitivity_t            sensitivity;        /**< Sensitivity of message for visual voice mail */
1897 } email_vvm_specific_data_t;
1898
1899 typedef struct {
1900     char *quota_root;       /**< Quota root for IMAP quota */
1901     char *resource_name;    /**< Resource name for IMAP quota */
1902     int   usage;            /**< Usage for IMAP quota */
1903     int   limits;           /**< Limit for IMAP quota */
1904 } email_quota_resource_t;
1905
1906 /*****************************************************************************/
1907 /*  For Active Sync                                                          */
1908 /*****************************************************************************/
1909
1910 #define VCONFKEY_EMAIL_SERVICE_ACTIVE_SYNC_HANDLE   "db/email_handle/active_sync_handle"
1911 #define EMAIL_ACTIVE_SYNC_NOTI                      "User.Email.ActiveSync"
1912
1913 typedef enum
1914 {
1915     ACTIVE_SYNC_NOTI_SEND_MAIL,                                   /**<  Sending notification to ASE (active sync engine) */
1916     ACTIVE_SYNC_NOTI_SEND_SAVED,                                  /**<  Sending notification to ASE (active sync engine), all saved mails should be sent */
1917     ACTIVE_SYNC_NOTI_SEND_REPORT,                                 /**<  Sending notification to ASE (active sync engine), report should be sent */
1918     ACTIVE_SYNC_NOTI_SYNC_HEADER,                                 /**<  Sync header - download mails from server <br>
1919                                                                         It depends on account/s flag1 field whether it executes downloading header only or downloading header + body
1920                                                                         downloading option : 0 is subject only, 1 is text body, 2 is normal */
1921     ACTIVE_SYNC_NOTI_DOWNLOAD_BODY,                               /**<  Downloading body notification to AS */
1922     ACTIVE_SYNC_NOTI_DOWNLOAD_ATTACHMENT,                         /**<  Downloading attachment notification to AS */
1923     ACTIVE_SYNC_NOTI_VALIDATE_ACCOUNT,                            /**<  Account validating notification to AS */
1924     ACTIVE_SYNC_NOTI_CANCEL_JOB,                                  /**<  Canceling job notification to AS */
1925     ACTIVE_SYNC_NOTI_SEARCH_ON_SERVER,                            /**<  Searching on server notification to AS */
1926     ACTIVE_SYNC_NOTI_CLEAR_RESULT_OF_SEARCH_ON_SERVER,            /**<  Notification for clearing result of search on server to AS */
1927     ACTIVE_SYNC_NOTI_EXPUNGE_MAILS_DELETED_FLAGGED,               /**<  Notification to expunge deleted flagged mails */
1928     ACTIVE_SYNC_NOTI_RESOLVE_RECIPIENT,                           /**<  Notification to get the resolve recipients */
1929     ACTIVE_SYNC_NOTI_VALIDATE_CERTIFICATE,                        /**<  Notification to validate certificate */
1930     ACTIVE_SYNC_NOTI_ADD_MAILBOX,                                 /**<  Notification to add mailbox */
1931     ACTIVE_SYNC_NOTI_RENAME_MAILBOX,                              /**<  Notification to rename mailbox */
1932     ACTIVE_SYNC_NOTI_DELETE_MAILBOX,                              /**<  Notification to delete mailbox */
1933     ACTIVE_SYNC_NOTI_CANCEL_SENDING_MAIL,                         /**<  Notification to cancel a sending mail */
1934     ACTIVE_SYNC_NOTI_DELETE_MAILBOX_EX,                           /**<  Notification to delete multiple mailboxes */
1935     ACTIVE_SYNC_NOTI_SEND_MAIL_WITH_DOWNLOADING_OF_ORIGINAL_MAIL, /**<  Notification to send a mail with downloading attachment of original mail */
1936     ACTIVE_SYNC_NOTI_SCHEDULE_SENDING_MAIL,                       /**<  Notification to schedule a mail to send later*/
1937 }   eactivesync_noti_t;
1938
1939 typedef union
1940 {
1941     struct _send_mail
1942     {
1943         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
1944         int                     account_id;        /**< The account ID for sending the mail */
1945         int                     mail_id;           /**< The mail ID for sending the mail */
1946         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
1947         } send_mail;    /**< Noti data for sending the mail */
1948
1949     struct _send_mail_saved
1950     {/*  not defined ye */
1951         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
1952         int                     account_id;        /**< The account ID for sending the saved mail */
1953         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
1954         } send_mail_saved;    /**< Noti data for sending the saved mail */
1955
1956     struct _send_report
1957     {/*  not defined ye */
1958         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
1959         int                     account_id;        /**< The account ID for sending the report */
1960         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
1961     } send_report;    /**< Noti data for sending the report */
1962
1963     struct _sync_header
1964     {
1965         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
1966         int                     account_id;        /**< The account ID for syncing the header */
1967         int                     mailbox_id;        /**< The mailbox ID for syncing the header */
1968         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
1969     } sync_header;    /**< Noti data for syncing the header */
1970
1971     struct _download_body
1972     {
1973         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
1974         int                     account_id;        /**< The account ID for downloading the body */
1975         int                     mail_id;           /**< The mail ID for downloading the body */
1976         int                     with_attachment;   /**< 0: without attachments, 1: with attachment */
1977         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
1978     } download_body;    /**< Noti data for downloading the body */
1979
1980     struct _download_attachment
1981     {
1982         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
1983         int                     account_id;        /**< The account ID for downloading the attachment */
1984         int                     mail_id;           /**< The mail ID for downloading the attachment */
1985         int                     attachment_order;  /**< The ordered attachment for downloading the attachment */
1986         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
1987     } download_attachment;    /**< Noti data for downloading the attachment */
1988
1989     struct _cancel_job
1990     {
1991         int                     account_id;        /**< The account ID for canceling the job */
1992         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
1993         int                     cancel_type;       /**< The canceling type for canceling the job */
1994         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
1995     } cancel_job;    /**< Noti data for canceling the job */
1996
1997     struct _validate_account
1998     {/*  not defined yet */
1999         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2000         int                     account_id;        /**< The account ID for validating the account */
2001         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2002     } validate_account;    /**< Noti data for validating the account */
2003
2004     struct _search_mail_on_server
2005     {
2006         int                     handle;              /**< The job handle to be canceled. This value is issued by email-service. */
2007         int                     account_id;          /**< The account ID for searching the mail on server */
2008         int                     mailbox_id;          /**< The mailbox ID for searching the mail on server */
2009         email_search_filter_t  *search_filter_list;  /**< The list of search filter for searching the mail on server */
2010         int                     search_filter_count; /**< The count of search filter for searching the mail on server */
2011         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2012     } search_mail_on_server;    /**< Noti data for searching the mail on server */
2013
2014     struct _clear_result_of_search_mail_on_server
2015     {
2016         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2017         int                     account_id;        /**< The account ID for clearing the result of search mail on server */
2018         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2019     } clear_result_of_search_mail_on_server;    /**< Noti data for clearing the result of search mail on server */
2020
2021     struct _expunge_mails_deleted_flagged
2022     {
2023         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2024         int                     account_id;        /**< The account ID for expunging the mails flagged for deleting */
2025         int                     mailbox_id;        /**< The mailbox ID for expunging the mails flagged for deleting */
2026         int                     on_server;         /**< The flag indicating whether the mail is on server for expunging the mails flagged for deleting */
2027         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2028     } expunge_mails_deleted_flagged;    /**< Noti data for expunging the mails flagged for deleting */
2029
2030     struct _get_resolve_recipients
2031     {
2032         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2033         int                     account_id;        /**< The account ID for getting the resolve recipients */
2034         char                   *email_address;     /**< The email address for getting the resolve recipients */
2035         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2036     } get_resolve_recipients;    /**< Noti data for getting the resolve recipients */
2037
2038     struct _validate_certificate
2039     {
2040         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2041         int                     account_id;        /**< The account ID for validating the certificate */
2042         char                   *email_address;     /**< The email address for validating the certifiate */
2043         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2044     } validate_certificate;    /**< Noti data for validating the certificate */
2045
2046     struct _add_mailbox
2047     {
2048         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2049         int                     account_id;        /**< The account ID for adding the mailbox */
2050         char                   *mailbox_path;      /**< The path of mailbox for adding the mailbox */
2051         char                   *mailbox_alias;     /**< The alias of mailbox for adding the mailbox */
2052         void                   *eas_data;          /**< The eas-data for adding the mailbox */
2053         int                     eas_data_length;   /**< The length of eas-data for adding the mailbox */
2054         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2055     } add_mailbox;    /**< Noti data for adding the mailbox */
2056
2057     struct _rename_mailbox
2058     {
2059         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2060         int                     account_id;        /**< The account ID for renaming the mailbox */
2061         int                     mailbox_id;        /**< The mailbox ID for renaming the mailbox */
2062         char                   *mailbox_name;      /**< The mailbox name for renaming the mailbox */
2063         char                   *mailbox_alias;     /**< The alias of mailbox for renaming the mailbox */
2064         void                   *eas_data;          /**< The eas-data for renaming the mailbox */
2065         int                     eas_data_length;   /**< The length of eas-data for renaming the mailbox */
2066         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2067     } rename_mailbox;    /**< Noti data for renaming the mailbox */
2068
2069     struct _delete_mailbox
2070     {
2071         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2072         int                     account_id;        /**< The account ID for deleting mailbox */
2073         int                     mailbox_id;        /**< The mailbox ID for deleting mailbox */
2074         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2075     } delete_mailbox;    /**< Noti data for deleting mailbox */
2076
2077     struct _cancel_sending_mail
2078     {
2079         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2080         int                     account_id;        /**< The account ID for canceled sending mail */
2081         int                     mail_id;           /**< The mail ID for canceled sending mail */
2082         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2083     } cancel_sending_mail;    /**< Noti data for canceled sending mail */
2084
2085     struct _delete_mailbox_ex
2086     {
2087         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2088         int                     account_id;        /**< The account ID for deleting mailbox (extention) */
2089         int                    *mailbox_id_array;  /**< The mailbox ID array for deleting mailbox (extention) */
2090         int                     mailbox_id_count;  /**< The mailbox ID count for deleting mailbox (extention) */
2091         int                     on_server;         /**< The on server for deleting mailbox (extention) */
2092         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2093     } delete_mailbox_ex;    /**< Noti data for deleting mailbox (extention) */
2094
2095     struct _send_mail_with_downloading_attachment_of_original_mail
2096     {
2097         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2098         int                     account_id;        /**< The account ID for downloading attachment */
2099         int                     mail_id;           /**< The mail ID for download attachment */
2100         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2101     } send_mail_with_downloading_attachment_of_original_mail;    /**< Noti data for send mail with downloading attachment of original mail */
2102
2103     struct _schedule_sending_mail
2104     {
2105         int                     handle;            /**< The job handle to be canceled. This value is issued by email-service. */
2106         int                     account_id;        /**< The account ID for scheduled sending mail */
2107         int                     mail_id;           /**< The mail ID for scheduled sending mail */
2108         time_t                  scheduled_time;    /**< The scheduled time for scheduled sending mail */
2109         char                   *multi_user_name;   /**< Speicifes the supporting for multi user (Since 2.4) */
2110     } schedule_sending_mail;    /**< Noti data for schedule sending mail */
2111 } ASNotiData;
2112
2113 /** @brief Enumeration for noti string types.
2114  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
2115 typedef enum
2116 {
2117     EMAIL_CONVERT_STRUCT_TYPE_MAIL_LIST_ITEM,      /**< specifies email_mail_list_t */
2118 } email_convert_struct_type_e;
2119
2120 /** @brief Enumeration for task types.
2121  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif */
2122 typedef enum {
2123     /* Sync tasks */
2124     EMAIL_SYNC_TASK_BOUNDARY_START                                          = 11000,    /**< Sync task for boundary start */
2125     /* Sync tasks for account - from 11000 */
2126     EMAIL_SYNC_TASK_ADD_ACCOUNT                                             = 11010,    /**< Sync task for adding the account */
2127     EMAIL_SYNC_TASK_DELETE_ACCOUNT                                          = 11020,    /**< Sync task for deleting the account */
2128     EMAIL_SYNC_TASK_UPDATE_ACCOUNT                                          = 11030,    /**< Sync task for updating the account */
2129     EMAIL_SYNC_TASK_GET_ACCOUNT                                             = 11040,    /**< Sync task for getting the account */
2130     EMAIL_SYNC_TASK_GET_ACCOUNT_LIST                                        = 11050,    /**< Sync task for getting the account list */
2131     EMAIL_SYNC_TASK_BACKUP_ACCOUNTS                                         = 11060,    /**< Sync task for backup the account */
2132     EMAIL_SYNC_TASK_RESTORE_ACCOUNTS                                        = 11070,    /**< Sync task for restoring the account */
2133     EMAIL_SYNC_TASK_GET_PASSWORD_LENGTH_OF_ACCOUNT                          = 11090,    /**< Sync task for getting the password length of account */
2134
2135     /* Sync tasks for mailbox - from 12000 */
2136     EMAIL_SYNC_TASK_GET_MAILBOX_COUNT                                       = 12010,    /**< Sync task for getting the mailbox count */
2137     EMAIL_SYNC_TASK_GET_MAILBOX_LIST                                        = 12020,    /**< Sync task for getting the mailbox list */
2138     EMAIL_SYNC_TASK_GET_SUB_MAILBOX_LIST                                    = 12030,    /**< Sync task for getting the sub-mailbox list */
2139     EMAIL_SYNC_TASK_SET_MAIL_SLOT_SIZE                                      = 12040,    /**< Sync task for setting the mail slot size */
2140     EMAIL_SYNC_TASK_SET_MAILBOX_TYPE                                        = 12050,    /**< Sync task for setting the mailbox type */
2141     EMAIL_SYNC_TASK_SET_LOCAL_MAILBOX                                       = 12060,    /**< Sync task for setting the local mailbox */
2142
2143     /* Sync tasks for mail - from 13000 */
2144     EMAIL_SYNC_TASK_GET_ATTACHMENT                                          = 13010,    /**< Sync task for getting the attachment */
2145     EMAIL_SYNC_TASK_CLEAR_RESULT_OF_SEARCH_MAIL_ON_SERVER                   = 13020,    /**< Sync task for clearing the result of search mail on server */
2146     EMAIL_SYNC_TASK_SCHEDULE_SENDING_MAIL                                   = 13030,    /**< Sync task for scheduling the sending mail */
2147     EMAIL_SYNC_TASK_UPDATE_ATTRIBUTE                                        = 13040,    /**< Sync task for updating the attribute */
2148
2149     /* Sync tasks for mail thread - from 14000 */
2150
2151     /* Sync tasks for rule - from 15000 */
2152
2153     /* Sync tasks for etc - from 16000 */
2154     EMAIL_SYNC_TASK_BOUNDARY_END                                            = 59999,    /**< Sync task for boundary end */
2155     /* Async tasks */
2156     EMAIL_ASYNC_TASK_BOUNDARY_START                                         = 60000,    /**< Async task for boundary start */
2157     /* Async tasks for account - from 61000 */
2158     EMAIL_ASYNC_TASK_VALIDATE_ACCOUNT                                       = 61010,    /**< Async task for validating the account */
2159     EMAIL_ASYNC_TASK_ADD_ACCOUNT_WITH_VALIDATION                            = 61020,    /**< Async task for adding the account with validation */
2160
2161     /* Async tasks for mailbox - from 62000 */
2162     EMAIL_ASYNC_TASK_ADD_MAILBOX                                            = 62010,    /**< Async task for adding the mailbox */
2163     EMAIL_ASYNC_TASK_DELETE_MAILBOX                                         = 62020,    /**< Async task for deleting the mailbox */
2164     EMAIL_ASYNC_TASK_RENAME_MAILBOX                                         = 62030,    /**< Async task for renaming the mailbox */
2165     EMAIL_ASYNC_TASK_DOWNLOAD_IMAP_MAILBOX_LIST                             = 62040,    /**< Async task for downloading the imap mailbox list */
2166     EMAIL_ASYNC_TASK_DELETE_MAILBOX_EX                                      = 62050,    /**< Async task for deleting the mailbox : extentiong version */
2167
2168     /* Async tasks for mail - from 63000 */
2169     EMAIL_ASYNC_TASK_ADD_MAIL                                               = 63010,    /**< Async task for adding the mail */
2170     EMAIL_ASYNC_TASK_ADD_READ_RECEIPT                                       = 63020,    /**< Async task for adding the read receipt */
2171
2172     EMAIL_ASYNC_TASK_UPDATE_MAIL                                            = 63030,    /**< Async task for updating the mail */
2173
2174     EMAIL_ASYNC_TASK_DELETE_MAIL                                            = 63040,    /**< Async task for deleting the mail */
2175     EMAIL_ASYNC_TASK_DELETE_ALL_MAIL                                        = 63050,    /**< Async task for deleting the all mails */
2176     EMAIL_ASYNC_TASK_EXPUNGE_MAILS_DELETED_FLAGGED                          = 63060,    /**< Async task for expunging the deleted flagged mails */
2177
2178     EMAIL_ASYNC_TASK_MOVE_MAIL                                              = 63070,    /**< Async task for moving the mail */
2179     EMAIL_ASYNC_TASK_MOVE_ALL_MAIL                                          = 63080,    /**< Async task for moving the all mails */
2180     EMAIL_ASYNC_TASK_MOVE_MAILS_TO_MAILBOX_OF_ANOTHER_ACCOUNT               = 63090,    /**< Async task for moving the mails to mailbox of another account */
2181
2182     EMAIL_ASYNC_TASK_SET_FLAGS_FIELD                                        = 63300,    /**< Async task for setting the flags field */
2183
2184     EMAIL_ASYNC_TASK_DOWNLOAD_MAIL_LIST                                     = 63400,    /**< Async task for downloading the mail list */
2185     EMAIL_ASYNC_TASK_DOWNLOAD_BODY                                          = 63410,    /**< Async taks for downloading the body */
2186     EMAIL_ASYNC_TASK_DOWNLOAD_ATTACHMENT                                    = 63420,    /**< Async task for downloading the attachment */
2187
2188     EMAIL_ASYNC_TASK_SEND_MAIL                                              = 63500,    /**< Async task for sending the mail */
2189     EMAIL_ASYNC_TASK_SEND_SAVED                                             = 63510,    /**< Async task for sending the saved */
2190     EMAIL_ASYNC_TASK_SEND_MAIL_WITH_DOWNLOADING_ATTACHMENT_OF_ORIGINAL_MAIL = 63520,    /**< Async task for sending the mail with downloading attachment of original mail */
2191
2192     EMAIL_ASYNC_TASK_SEARCH_MAIL_ON_SERVER                                  = 63600,    /**< Async task for searching the mail on server */
2193
2194     /* Async tasks for mail thread - from 64000 */
2195     EMAIL_ASYNC_TASK_MOVE_THREAD_TO_MAILBOX                                 = 64010,    /**< Async task for moving the thread to mailbox */
2196     EMAIL_ASYNC_TASK_DELETE_THREAD                                          = 64020,    /**< Async task for deleting the thread */
2197     EMAIL_ASYNC_TASK_MODIFY_SEEN_FLAG_OF_THREAD                             = 64030,    /**< Async task for modified the seen flag of thread */
2198
2199     /* Async tasks for rule - from 65000 */
2200
2201     /* Async tasks for etc - from 66000 */
2202     EMAIL_ASYNC_TASK_BOUNDARY_END                                           = 99999,    /**< Async tasks for boundary end*/
2203 } email_task_type_t;
2204
2205 typedef enum
2206 {
2207     EMAIL_TASK_STATUS_UNUSED                   = 0,    /**< The status of task is unused */
2208     EMAIL_TASK_STATUS_WAIT                     = 1,    /**< The status of task is waited */
2209     EMAIL_TASK_STATUS_STARTED                  = 2,    /**< The status of task is started */
2210     EMAIL_TASK_STATUS_IN_PROGRESS              = 3,    /**< The status of task is in progress */
2211     EMAIL_TASK_STATUS_FINISHED                 = 4,    /**< The status of task is finished */
2212     EMAIL_TASK_STATUS_FAILED                   = 5,    /**< The status of task is failed */
2213     EMAIL_TASK_STATUS_CANCELED                 = 6,    /**< The status of task is canceled */
2214     EMAIL_TASK_STATUS_SCHEDULED                = 7,    /**< The status of task is scheduled */
2215 } email_task_status_type_t;
2216
2217 typedef enum
2218 {
2219     EMAIL_TASK_PRIORITY_UNUSED                 = 0,    /**< Unused the priority task*/
2220     EMAIL_TASK_PRIORITY_SCHEDULED              = 1,    /**< Scheduled the priority task */
2221     EMAIL_TASK_PRIORITY_LOW                    = 3,    /**< The priority task is low */
2222     EMAIL_TASK_PRIORITY_MID                    = 5,    /**< The priority task is MID */
2223     EMAIL_TASK_PRIORITY_HIGH                   = 7,    /**< The priority task is HIGH */
2224     EMAIL_TASK_PRIORITY_BACK_GROUND_TASK       = 9,    /**< The priority task is back ground */
2225 } email_task_priority_t;
2226 /* Tasks */
2227
2228 #ifdef __cplusplus
2229 }
2230 #endif
2231
2232 /**
2233 * @}
2234 */
2235
2236 #endif /* __EMAIL_TYPES_H__ */