imap.h - rohrpost - A commandline mail client to change the world as we see it.
 (HTM) git clone git://r-36.net/rohrpost
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       imap.h (2887B)
       ---
            1 /*
            2  * Copy me if you can.
            3  * by 20h
            4  */
            5 
            6 #ifndef __IMAP_H__
            7 #define __IMAP_H__
            8 
            9 #include "net.h"
           10 #include "llist.h"
           11 #include "parser.h"
           12 
           13 typedef struct imap_t imap_t;
           14 struct imap_t {
           15         net_t *fd;
           16         int msgid;
           17 
           18         char *netspec;
           19         char *user;
           20         char *pass;
           21 
           22         char *imaperror;
           23 
           24         char *selected;
           25 
           26         int starttls;
           27 
           28         llist_t *caps;
           29         parser_t *parser;
           30 };
           31 
           32 imap_t *imap_new(char *netspec, char *user, char *pass);
           33 void imap_free(imap_t *imap);
           34 
           35 int imap_isstratom(char *key);
           36 
           37 void imap_die(imap_t *imap, char *fmt, ...);
           38 
           39 llist_t *imap_llist2ids(char *cfgn, char *mailbox, llist_t *ids);
           40 llist_t *imap_str2ids(char *cfgn, char *mailbox, char *str);
           41 llist_t *imap_argv2ids(char *cfgn, char *mailbox, int argc, char *argv[]);
           42 char *imap_ids2str(llist_t *ids);
           43 
           44 void imap_cmd(imap_t *imap, char *cmd, ...);
           45 void imap_simplecmd(imap_t *imap, char *cmd);
           46 int imap_parseline(imap_t *imap, llist_t **ret);
           47 int imap_result(imap_t *imap, llist_t **ret);
           48 int imap_simpleresult(imap_t *imap);
           49 
           50 int imap_connect(imap_t *imap);
           51 int imap_closefolder(imap_t *imap);
           52 void imap_close(imap_t *imap);
           53 int imap_capabilityset(imap_t *imap, llist_t *retcaps);
           54 int imap_capability(imap_t *imap);
           55 int imap_starttls(imap_t *imap);
           56 int imap_authenticate(imap_t *imap);
           57 int imap_init(imap_t *imap);
           58 
           59 int imap_append(imap_t *imap, char *mb, llist_t *flags, char *tdate,
           60                 char *msg);
           61 int imap_noop(imap_t *imap);
           62 int imap_logout(imap_t *imap);
           63 int imap_expunge(imap_t *imap);
           64 int imap_copy(imap_t *imap, llist_t *ids, char *tomb);
           65 int imap_createfolder(imap_t *imap, char *mb);
           66 int imap_deletefolder(imap_t *imap, char *mb);
           67 llist_t *imap_fetch(imap_t *imap, llist_t *ids, char *req);
           68 llist_t *imap_fetchprepare(imap_t *imap, llist_t *ids, char *req);
           69 llist_t *imap_fetchbody(imap_t *imap, llist_t *ids);
           70 llist_t *imap_fetchheaders(imap_t *imap, llist_t *ids);
           71 llist_t *imap_fetchpart(imap_t  *imap, llist_t *ids, char *part);
           72 llist_t *imap_fetchraw(imap_t *imap, llist_t *ids);
           73 llist_t *imap_status(imap_t *imap, char *mb);
           74 llist_t *imap_listresponse(imap_t *imap, char *cmd);
           75 llist_t *imap_subscribed(imap_t *imap);
           76 llist_t *imap_listfolders(imap_t *imap);
           77 llist_t *imap_statuses(imap_t *imap);
           78 int imap_renamefolder(imap_t *imap, char *old, char *new);
           79 llist_t *imap_search(imap_t *imap, char *pattern);
           80 llist_t *imap_sort(imap_t *imap, char *criteria, char *pattern);
           81 llist_t *imap_thread(imap_t *imap, char *algorithm, char *pattern);
           82 int imap_select(imap_t *imap, char *mb);
           83 int imap_store(imap_t *imap, llist_t *ids, char *item, llist_t *flags);
           84 int imap_setflags(imap_t *imap, llist_t *ids, llist_t *flags);
           85 int imap_delflags(imap_t *imap, llist_t *ids, llist_t *flags);
           86 llist_t *imap_getflags(imap_t *imap, llist_t *ids);
           87 int imap_delete(imap_t *imap, llist_t *ids);
           88 int imap_move(imap_t *imap, llist_t *ids, char *mb);
           89 int imap_subscribe(imap_t *imap, char *mb);
           90 int imap_unsubscribe(imap_t *imap, char *mb);
           91 
           92 #endif
           93