summaryrefslogtreecommitdiff
authoralwin <alwin>2003-12-13 22:35:35 (UTC)
committer alwin <alwin>2003-12-13 22:35:35 (UTC)
commitb0a71314013a3367767526b68928a7168b4ad460 (patch) (side-by-side diff)
tree9f223458a7f029fad43f7db126b527ad49d60ce4
parentf1fa9ca873169e803fcc28cecd756a3edaa30ec4 (diff)
downloadopie-b0a71314013a3367767526b68928a7168b4ad460.zip
opie-b0a71314013a3367767526b68928a7168b4ad460.tar.gz
opie-b0a71314013a3367767526b68928a7168b4ad460.tar.bz2
deleting a mail in a imap server implemented
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/abstractmail.h2
-rw-r--r--noncore/net/mail/imapwrapper.cpp32
-rw-r--r--noncore/net/mail/imapwrapper.h5
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.h2
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp32
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.h5
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp5
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.h2
-rw-r--r--noncore/net/mail/pop3wrapper.cpp5
-rw-r--r--noncore/net/mail/pop3wrapper.h2
10 files changed, 80 insertions, 12 deletions
diff --git a/noncore/net/mail/abstractmail.h b/noncore/net/mail/abstractmail.h
index bc8938f..0a1719d 100644
--- a/noncore/net/mail/abstractmail.h
+++ b/noncore/net/mail/abstractmail.h
@@ -22,4 +22,4 @@ public:
virtual RecBody fetchBody(const RecMail&mail)=0;
- virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false)=0;
virtual QString fetchPart(const RecMail&mail,const RecPart&part)=0;
+ virtual void deleteMail(const RecMail&mail)=0;
diff --git a/noncore/net/mail/imapwrapper.cpp b/noncore/net/mail/imapwrapper.cpp
index 3222c7e..a01a2a9 100644
--- a/noncore/net/mail/imapwrapper.cpp
+++ b/noncore/net/mail/imapwrapper.cpp
@@ -698 +698,33 @@ QString IMAPwrapper::fetchPart(const RecMail&mail,const RecPart&part)
}
+
+void IMAPwrapper::deleteMail(const RecMail&mail)
+{
+ mailimap_flag_list*flist;
+ mailimap_set *set;
+ mailimap_store_att_flags * store_flags;
+ int err;
+ login();
+ if (!m_imap) {
+ return;
+ }
+ const char *mb = mail.getMbox().latin1();
+ err = mailimap_select( m_imap, (char*)mb);
+ if ( err != MAILIMAP_NO_ERROR ) {
+ qDebug("error selecting mailbox for delete: %s",m_imap->imap_response);
+ return;
+ }
+ flist = mailimap_flag_list_new_empty();
+ mailimap_flag_list_add(flist,mailimap_flag_new_deleted());
+ store_flags = mailimap_store_att_flags_new_set_flags(flist);
+ set = mailimap_set_new_single(mail.getNumber());
+ err = mailimap_store(m_imap,set,store_flags);
+ if (err != MAILIMAP_NO_ERROR) {
+ qDebug("error deleting mail: %s",m_imap->imap_response);
+ return;
+ }
+ err = mailimap_expunge(m_imap);
+ if (err != MAILIMAP_NO_ERROR) {
+ qDebug("error deleting mail: %s",m_imap->imap_response);
+ }
+ qDebug("Delete successfull");
+}
diff --git a/noncore/net/mail/imapwrapper.h b/noncore/net/mail/imapwrapper.h
index f88457a..4f4d575 100644
--- a/noncore/net/mail/imapwrapper.h
+++ b/noncore/net/mail/imapwrapper.h
@@ -25,4 +25,5 @@ public:
virtual RecBody fetchBody(const RecMail&mail);
- virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
virtual QString fetchPart(const RecMail&mail,const RecPart&part);
+ virtual void deleteMail(const RecMail&mail);
+
static void imap_progress( size_t current, size_t maximum );
@@ -33,2 +34,4 @@ protected:
void logout();
+
+ virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h
index bc8938f..0a1719d 100644
--- a/noncore/net/mail/libmailwrapper/abstractmail.h
+++ b/noncore/net/mail/libmailwrapper/abstractmail.h
@@ -22,4 +22,4 @@ public:
virtual RecBody fetchBody(const RecMail&mail)=0;
- virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false)=0;
virtual QString fetchPart(const RecMail&mail,const RecPart&part)=0;
+ virtual void deleteMail(const RecMail&mail)=0;
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
index 3222c7e..a01a2a9 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
@@ -698 +698,33 @@ QString IMAPwrapper::fetchPart(const RecMail&mail,const RecPart&part)
}
+
+void IMAPwrapper::deleteMail(const RecMail&mail)
+{
+ mailimap_flag_list*flist;
+ mailimap_set *set;
+ mailimap_store_att_flags * store_flags;
+ int err;
+ login();
+ if (!m_imap) {
+ return;
+ }
+ const char *mb = mail.getMbox().latin1();
+ err = mailimap_select( m_imap, (char*)mb);
+ if ( err != MAILIMAP_NO_ERROR ) {
+ qDebug("error selecting mailbox for delete: %s",m_imap->imap_response);
+ return;
+ }
+ flist = mailimap_flag_list_new_empty();
+ mailimap_flag_list_add(flist,mailimap_flag_new_deleted());
+ store_flags = mailimap_store_att_flags_new_set_flags(flist);
+ set = mailimap_set_new_single(mail.getNumber());
+ err = mailimap_store(m_imap,set,store_flags);
+ if (err != MAILIMAP_NO_ERROR) {
+ qDebug("error deleting mail: %s",m_imap->imap_response);
+ return;
+ }
+ err = mailimap_expunge(m_imap);
+ if (err != MAILIMAP_NO_ERROR) {
+ qDebug("error deleting mail: %s",m_imap->imap_response);
+ }
+ qDebug("Delete successfull");
+}
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h
index f88457a..4f4d575 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.h
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.h
@@ -25,4 +25,5 @@ public:
virtual RecBody fetchBody(const RecMail&mail);
- virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
virtual QString fetchPart(const RecMail&mail,const RecPart&part);
+ virtual void deleteMail(const RecMail&mail);
+
static void imap_progress( size_t current, size_t maximum );
@@ -33,2 +34,4 @@ protected:
void logout();
+
+ virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index 903ef4d..62523bf 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -281,3 +281,3 @@ QList<Folder>* POP3wrapper::listFolders()
-QString POP3wrapper::fetchPart(const RecMail&,const QValueList<int>&,bool)
+QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
{
@@ -286,5 +286,4 @@ QString POP3wrapper::fetchPart(const RecMail&,const QValueList<int>&,bool)
-QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
+void POP3wrapper::deleteMail(const RecMail&)
{
- return "";
}
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.h b/noncore/net/mail/libmailwrapper/pop3wrapper.h
index 3b24564..ef972c8 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.h
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.h
@@ -20,4 +20,4 @@ public:
virtual QList<Folder>* listFolders();
- virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
virtual QString fetchPart(const RecMail&mail,const RecPart&part);
+ virtual void deleteMail(const RecMail&mail);
diff --git a/noncore/net/mail/pop3wrapper.cpp b/noncore/net/mail/pop3wrapper.cpp
index 903ef4d..62523bf 100644
--- a/noncore/net/mail/pop3wrapper.cpp
+++ b/noncore/net/mail/pop3wrapper.cpp
@@ -281,3 +281,3 @@ QList<Folder>* POP3wrapper::listFolders()
-QString POP3wrapper::fetchPart(const RecMail&,const QValueList<int>&,bool)
+QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
{
@@ -286,5 +286,4 @@ QString POP3wrapper::fetchPart(const RecMail&,const QValueList<int>&,bool)
-QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
+void POP3wrapper::deleteMail(const RecMail&)
{
- return "";
}
diff --git a/noncore/net/mail/pop3wrapper.h b/noncore/net/mail/pop3wrapper.h
index 3b24564..ef972c8 100644
--- a/noncore/net/mail/pop3wrapper.h
+++ b/noncore/net/mail/pop3wrapper.h
@@ -20,4 +20,4 @@ public:
virtual QList<Folder>* listFolders();
- virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
virtual QString fetchPart(const RecMail&mail,const RecPart&part);
+ virtual void deleteMail(const RecMail&mail);