## KolabMailImapClient KolabMailImapClient — the Kolab2 IMAP client |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    struct              KolabMailImapClientClass;
    gboolean            kolab_mail_imap_client_bringup      (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_configure    (KolabMailImapClient *self,
                                                             KolabSettingsHandler *ksettings,
                                                             KolabMailMimeBuilder *mimebuilder,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_create_folder
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_delete       (KolabMailImapClient *self,
                                                             KolabMailHandle *kmailhandle,
                                                             gboolean imapuid_only,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_delete_folder
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_exists_folder
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);
    KolabFolderTypeID   kolab_mail_imap_client_get_folder_type
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_go_offline   (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_go_online    (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);
    KolabFolderSummary * kolab_mail_imap_client_query_folder_summary
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);
    GList *             kolab_mail_imap_client_query_foldernames
                                                            (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);
    GList *             kolab_mail_imap_client_query_foldernames_anon
                                                            (gpointer self,
                                                             GCancellable *cancellable,
                                                             GError **err);
    GHashTable *        kolab_mail_imap_client_query_summaries
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             const gchar *sexp,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_retrieve     (KolabMailImapClient *self,
                                                             KolabMailHandle *kmailhandle,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_shutdown     (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);
    gboolean            kolab_mail_imap_client_store        (KolabMailImapClient *self,
                                                             KolabMailHandle *kmailhandle,
                                                             const gchar *foldername,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);

## Description

This class is the Kolab2 mail access wrapper. It is comprised of at least the following

- a CamelKolabIMAPXStore object
- a CamelKolabSession object
- some glue code / convenience code

This wrapper uses CamelKolabIMAPXStore and CamelKolabSession the way Evolution uses a camel provider, if possible in a simplified fashion (no other "provider" than CamelKolabIMAPXStore needs to be supported). The glue code aggregates as many fixed IMAPX-sequences as possible to provide a friendly API for use in KolabMailAccess.

Searching for emails based Kolab UID as well as based on search expressions is available.

Additional functionality like the assembly and disassembly of (Kolab) mail parts and handling of MIME message parts is done mainly via the KolabMailMimeBuilder class.

This class does not take care of offline PIM email management (transactions, syncing, ...). This is taken care of in another class, namely KolabMailSynchronizer.

## Details

### struct KolabMailImapClientClass

    struct KolabMailImapClientClass {
    	GObjectClass parent_class;
    };

### kolab_mail_imap_client_bringup ()

    gboolean            kolab_mail_imap_client_bringup      (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_configure ()

    gboolean            kolab_mail_imap_client_configure    (KolabMailImapClient *self,
                                                             KolabSettingsHandler *ksettings,
                                                             KolabMailMimeBuilder *mimebuilder,
                                                             GError **err);

### kolab_mail_imap_client_create_folder ()

    gboolean            kolab_mail_imap_client_create_folder
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_delete ()

    gboolean            kolab_mail_imap_client_delete       (KolabMailImapClient *self,
                                                             KolabMailHandle *kmailhandle,
                                                             gboolean imapuid_only,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_delete_folder ()

    gboolean            kolab_mail_imap_client_delete_folder
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_exists_folder ()

    gboolean            kolab_mail_imap_client_exists_folder
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_get_folder_type ()

    KolabFolderTypeID   kolab_mail_imap_client_get_folder_type
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_go_offline ()

    gboolean            kolab_mail_imap_client_go_offline   (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_go_online ()

    gboolean            kolab_mail_imap_client_go_online    (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_query_folder_summary ()

    KolabFolderSummary * kolab_mail_imap_client_query_folder_summary
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_query_foldernames ()

    GList *             kolab_mail_imap_client_query_foldernames
                                                            (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_query_foldernames_anon ()

    GList *             kolab_mail_imap_client_query_foldernames_anon
                                                            (gpointer self,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_query_summaries ()

    GHashTable *        kolab_mail_imap_client_query_summaries
                                                            (KolabMailImapClient *self,
                                                             const gchar *foldername,
                                                             const gchar *sexp,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_retrieve ()

    gboolean            kolab_mail_imap_client_retrieve     (KolabMailImapClient *self,
                                                             KolabMailHandle *kmailhandle,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_shutdown ()

    gboolean            kolab_mail_imap_client_shutdown     (KolabMailImapClient *self,
                                                             GCancellable *cancellable,
                                                             GError **err);

### kolab_mail_imap_client_store ()

    gboolean            kolab_mail_imap_client_store        (KolabMailImapClient *self,
                                                             KolabMailHandle *kmailhandle,
                                                             const gchar *foldername,
                                                             gboolean update,
                                                             GCancellable *cancellable,
                                                             GError **err);

## See Also

CamelKolabIMAPXStore, CamelKolabSession