2 * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 2005-2007 DINH Viet Hoa and the Claws Mail team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #include <libetpan/libetpan.h>
27 #define IMAP_SET_MAX_COUNT 500
29 void imap_main_set_timeout(int sec);
30 void imap_main_init(gboolean skip_ssl_cert_check);
31 void imap_main_done(void);
33 void imap_init(Folder * folder);
34 void imap_done(Folder * folder);
36 int imap_threaded_connect(Folder * folder, const char * server, int port);
37 int imap_threaded_connect_ssl(Folder * folder, const char * server, int port);
38 struct mailimap_capability_data * imap_threaded_capability(Folder *folder, int *ok);
39 int imap_threaded_connect_cmd(Folder * folder, const char * command,
40 const char * server, int port);
42 void imap_threaded_disconnect(Folder * folder);
44 int imap_threaded_list(Folder * folder, const char * base,
45 const char * wildcard,
47 int imap_threaded_lsub(Folder * folder, const char * base,
48 const char * wildcard,
50 int imap_threaded_login(Folder * folder,
51 const char * login, const char * password,
53 int imap_threaded_status(Folder * folder, const char * mb,
54 struct mailimap_mailbox_data_status ** data_status,
56 int imap_threaded_close(Folder * folder);
58 int imap_threaded_noop(Folder * folder, unsigned int * p_exists,
59 unsigned int *p_recent,
60 unsigned int *p_expunge,
61 unsigned int *p_unseen,
62 unsigned int *p_uidnext,
63 unsigned int *p_uidval);
64 int imap_threaded_starttls(Folder * folder, const gchar *host, int port);
65 int imap_threaded_create(Folder * folder, const char * mb);
66 int imap_threaded_rename(Folder * folder,
67 const char * mb, const char * new_name);
68 int imap_threaded_delete(Folder * folder, const char * mb);
69 int imap_threaded_select(Folder * folder, const char * mb,
70 gint * exists, gint * recent, gint * unseen,
71 guint32 * uid_validity, gint * can_create_flags);
72 int imap_threaded_examine(Folder * folder, const char * mb,
73 gint * exists, gint * recent, gint * unseen,
74 guint32 * uid_validity);
75 int imap_threaded_subscribe(Folder * folder, const char * mb,
79 IMAP_SEARCH_TYPE_SIMPLE,
80 IMAP_SEARCH_TYPE_SEEN,
81 IMAP_SEARCH_TYPE_UNSEEN,
82 IMAP_SEARCH_TYPE_ANSWERED,
83 IMAP_SEARCH_TYPE_FLAGGED,
84 IMAP_SEARCH_TYPE_DELETED,
87 int imap_threaded_search(Folder * folder, int search_type,
88 struct mailimap_set * set, clist ** result);
90 int imap_threaded_fetch_uid(Folder * folder, uint32_t first_index,
93 void imap_fetch_uid_list_free(carray * uid_list);
95 int imap_threaded_fetch_uid_flags(Folder * folder, uint32_t first_index,
96 carray ** fetch_result);
98 void imap_fetch_uid_flags_list_free(carray * uid_flags_list);
100 int imap_threaded_fetch_content(Folder * folder, uint32_t msg_index,
102 const char * filename);
104 struct imap_fetch_env_info {
111 int imap_threaded_fetch_env(Folder * folder, struct mailimap_set * set,
112 carray ** p_env_list);
114 void imap_fetch_env_free(carray * env_list);
116 int imap_threaded_append(Folder * folder, const char * mailbox,
117 const char * filename,
118 struct mailimap_flag_list * flag_list,
121 int imap_threaded_expunge(Folder * folder);
123 int imap_threaded_copy(Folder * folder, struct mailimap_set * set,
124 const char * mb, struct mailimap_set **source,
125 struct mailimap_set **dest);
127 int imap_threaded_store(Folder * folder, struct mailimap_set * set,
128 struct mailimap_store_att_flags * store_att_flags);
130 void imap_threaded_cancel(Folder * folder);