summaryrefslogtreecommitdiff
path: root/noncore/net/mail/pop3wrapper.h
blob: 8d3addad30d95b860779cfa0c414f4b82ea605f6 (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
44
45
46
47
48
#ifndef __POP3WRAPPER
#define __POP3WRAPPER

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

class RecMail;
class RecBody;
class encodedString;
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 fetchTextPart(const RecMail&mail,const RecPart&part);
    virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part);
    virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part);

    virtual void deleteMail(const RecMail&mail);
    virtual void answeredMail(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