summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp
index b0dd1b8..a6688ed 100644
--- a/kmicromail/libmailwrapper/imapwrapper.cpp
+++ b/kmicromail/libmailwrapper/imapwrapper.cpp
@@ -61,7 +61,7 @@ void IMAPwrapper::progress( QString m )
static QString mProgrMess;
if ( m != QString::null ) {
mProgrMess = m;
- mCurrent = 0;
+ mCurrent = 1;
return;
}
QString mess;
@@ -69,6 +69,7 @@ void IMAPwrapper::progress( QString m )
if ( mMax ) mess = mProgrMess +tr(" message %1 of %2").arg( mCurrent++).arg(mMax);
else mess = mProgrMess +tr(" message %1").arg( mCurrent++);
Global::statusMessage(mess);
+ qDebug("Progress %s %s", mess.latin1(), m.latin1());
qApp->processEvents();
}
bool IMAPwrapper::start_tls(bool force_tls)
@@ -233,6 +234,9 @@ void IMAPwrapper::logout()
void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb)
{
+
+ int tryAgain = 1;
+ while ( tryAgain >= 0 ) {
int err = MAILIMAP_NO_ERROR;
clist *result = 0;
clistcell *current;
@@ -256,11 +260,15 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma
return;
} else {
}
-
+ progress( tr("Fetch "));
+ mMax = last;
+ //qDebug("last %d ", last);
Global::statusMessage(tr("Fetching header list"));
qApp->processEvents();
/* the range has to start at 1!!! not with 0!!!! */
- set = mailimap_set_new_interval( 1, last );
+ //LR the access to web.de imap server is no working with value 1
+ qDebug("interval %d - %d ", tryAgain, last-1+tryAgain );
+ set = mailimap_set_new_interval( tryAgain, last );
fetchType = mailimap_fetch_type_new_fetch_att_list_empty();
mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_envelope());
mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_flags());
@@ -274,10 +282,12 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma
QString date,subject,from;
if ( err == MAILIMAP_NO_ERROR ) {
+ tryAgain = -1;
mailimap_msg_att * msg_att;
int i = 0;
for (current = clist_begin(result); current != 0; current=clist_next(current)) {
++i;
+ //qDebug("iii %d ",i);
msg_att = (mailimap_msg_att*)current->data;
RecMail*m = parse_list_result(msg_att);
if (m) {
@@ -291,10 +301,17 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma
}
Global::statusMessage(tr("Mailbox has %1 mails").arg(target.count()));
} else {
+ --tryAgain;
+ --tryAgain;
+ if ( tryAgain < 0 )
Global::statusMessage(tr("Error fetching headers: %1").arg(m_imap->imap_response));
+ else
+ qDebug("try again... ");
}
+
if (result) mailimap_fetch_list_free(result);
}
+}
QValueList<Opie::Core::OSmartPointer<Folder> >* IMAPwrapper::listFolders()
{
@@ -952,7 +969,7 @@ void IMAPwrapper::deleteMailList(const QValueList<RecMailP>&target)
mMax = count;
- //progress( tr("Delete"));
+ progress( tr("Delete"));
QProgressBar wid ( count );
wid.setCaption( tr("Deleting ..."));