summaryrefslogtreecommitdiff
path: root/noncore/net/mail/pop3wrapper.h
blob: ef972c86b79f943e8d30fa1f1d2218a81fddaa7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef __POP3WRAPPER
#define __POP3WRAPPER

#include "mailwrapper.h"
#include "abstractmail.h"

class RecMail;
class RecBody;
struct mailpop3;

class POP3wrapper : public AbstractMail
{
    Q_OBJECT

public:
    POP3wrapper( POP3account *a );
    virtual ~POP3wrapper();
    /* mailbox will be ignored */
    virtual void listMessages(const QString & mailbox, QList<RecMail> &target );
    virtual QList<Folder>* listFolders();
    virtual QString fetchPart(const RecMail&mail,const RecPart&part);
    virtual void deleteMail(const RecMail&mail);

    RecBody fetchBody( const RecMail &mail );
    static void pop3_progress( size_t current, size_t maximum );

protected:
    void login();
    void logout();

private:
    RecMail *parseHeader( const char *header );
    RecBody parseBody( const char *message );
    QString parseMailboxList( mailimf_mailbox_list *list );
    QString parseMailbox( mailimf_mailbox *box );
    QString parseGroup( mailimf_group *group );
    QString parseAddressList( mailimf_address_list *list );
    QString parseDateTime( mailimf_date_time *date );
    POP3account *account;
    mailpop3 *m_pop3;
};

#endif