summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
authorharlekin <harlekin>2004-01-10 00:32:04 (UTC)
committer harlekin <harlekin>2004-01-10 00:32:04 (UTC)
commit76cf4990cb4171a747ac31e9832f4ee694ced2cc (patch) (unidiff)
treece97c1b6b6e9f832cc09a71fe3e8e87551bb01bd /noncore/net/mail/libmailwrapper
parent241fb3509f6b62efda3c89f5bf9cec0dfba86b43 (diff)
downloadopie-76cf4990cb4171a747ac31e9832f4ee694ced2cc.zip
opie-76cf4990cb4171a747ac31e9832f4ee694ced2cc.tar.gz
opie-76cf4990cb4171a747ac31e9832f4ee694ced2cc.tar.bz2
new connection setting stuff for imap too
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp36
-rw-r--r--noncore/net/mail/libmailwrapper/settings.cpp2
2 files changed, 25 insertions, 13 deletions
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
index 4b633ea..1c22c26 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
@@ -80,8 +80,18 @@ void IMAPwrapper::login()
80 80
81 m_imap = mailimap_new( 20, &imap_progress ); 81 m_imap = mailimap_new( 20, &imap_progress );
82 82
83
84
83 /* connect */ 85 /* connect */
84 if (account->getSSL()) { 86
87 bool ssl = false;
88
89 if ( account->ConnectionType() == 2 ) {
90 ssl = true;
91 }
92
93 if ( ssl ) {
94 qDebug( "using ssl" );
85 err = mailimap_ssl_connect( m_imap, (char*)server, port ); 95 err = mailimap_ssl_connect( m_imap, (char*)server, port );
86 } else { 96 } else {
87 err = mailimap_socket_connect( m_imap, (char*)server, port ); 97 err = mailimap_socket_connect( m_imap, (char*)server, port );
@@ -369,7 +379,7 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
369 QDateTime da(QDate(d->dt_year,d->dt_month,d->dt_day),QTime(d->dt_hour,d->dt_min,d->dt_sec)); 379 QDateTime da(QDate(d->dt_year,d->dt_month,d->dt_day),QTime(d->dt_hour,d->dt_min,d->dt_sec));
370 qDebug("%i %i %i - %i %i %i",d->dt_year,d->dt_month,d->dt_day,d->dt_hour,d->dt_min,d->dt_sec); 380 qDebug("%i %i %i - %i %i %i",d->dt_year,d->dt_month,d->dt_day,d->dt_hour,d->dt_min,d->dt_sec);
371 qDebug(da.toString()); 381 qDebug(da.toString());
372#endif 382#endif
373 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_RFC822_SIZE) { 383 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_RFC822_SIZE) {
374 size = item->att_data.att_static->att_data.att_rfc822_size; 384 size = item->att_data.att_static->att_data.att_rfc822_size;
375 } 385 }
@@ -408,7 +418,7 @@ RecBody IMAPwrapper::fetchBody(const RecMail&mail)
408 if ( err != MAILIMAP_NO_ERROR ) { 418 if ( err != MAILIMAP_NO_ERROR ) {
409 return body; 419 return body;
410 } 420 }
411 421
412 /* the range has to start at 1!!! not with 0!!!! */ 422 /* the range has to start at 1!!! not with 0!!!! */
413 set = mailimap_set_new_interval( mail.getNumber(),mail.getNumber() ); 423 set = mailimap_set_new_interval( mail.getNumber(),mail.getNumber() );
414 fetchAtt = mailimap_fetch_att_new_bodystructure(); 424 fetchAtt = mailimap_fetch_att_new_bodystructure();
@@ -495,9 +505,9 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>
495 } 505 }
496 } 506 }
497 set = mailimap_set_new_single(mail.getNumber()); 507 set = mailimap_set_new_single(mail.getNumber());
498 508
499 clist*id_list = 0; 509 clist*id_list = 0;
500 510
501 /* if path == empty then its a request for the whole rfc822 mail and generates 511 /* if path == empty then its a request for the whole rfc822 mail and generates
502 a "fetch <id> (body[])" statement on imap server */ 512 a "fetch <id> (body[])" statement on imap server */
503 if (path.count()>0 ) { 513 if (path.count()>0 ) {
@@ -510,17 +520,17 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>
510 section_part = mailimap_section_part_new(id_list); 520 section_part = mailimap_section_part_new(id_list);
511 section_spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_PART, NULL, section_part, NULL); 521 section_spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_PART, NULL, section_part, NULL);
512 } 522 }
513 523
514 section = mailimap_section_new(section_spec); 524 section = mailimap_section_new(section_spec);
515 fetch_att = mailimap_fetch_att_new_body_section(section); 525 fetch_att = mailimap_fetch_att_new_body_section(section);
516 fetchType = mailimap_fetch_type_new_fetch_att(fetch_att); 526 fetchType = mailimap_fetch_type_new_fetch_att(fetch_att);
517 527
518 clist*result = 0; 528 clist*result = 0;
519 529
520 err = mailimap_fetch( m_imap, set, fetchType, &result ); 530 err = mailimap_fetch( m_imap, set, fetchType, &result );
521 mailimap_set_free( set ); 531 mailimap_set_free( set );
522 mailimap_fetch_type_free( fetchType ); 532 mailimap_fetch_type_free( fetchType );
523 533
524 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { 534 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) {
525 mailimap_msg_att * msg_att; 535 mailimap_msg_att * msg_att;
526 msg_att = (mailimap_msg_att*)current->data; 536 msg_att = (mailimap_msg_att*)current->data;
@@ -535,7 +545,7 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>
535 res->setContent(text,msg_att_item->att_data.att_static->att_data.att_body_section->sec_length); 545 res->setContent(text,msg_att_item->att_data.att_static->att_data.att_body_section->sec_length);
536 } 546 }
537 } 547 }
538 } 548 }
539 } else { 549 } else {
540 qDebug("error fetching text: %s",m_imap->imap_response); 550 qDebug("error fetching text: %s",m_imap->imap_response);
541 } 551 }
@@ -664,11 +674,11 @@ void IMAPwrapper::fillSingleMsgPart(RecPart&target_part,mailimap_body_type_msg*w
664 qDebug("Message part"); 674 qDebug("Message part");
665 /* we set this type to text/plain */ 675 /* we set this type to text/plain */
666 target_part.setLines(which->bd_lines); 676 target_part.setLines(which->bd_lines);
667 fillBodyFields(target_part,which->bd_fields); 677 fillBodyFields(target_part,which->bd_fields);
668} 678}
669 679
670void IMAPwrapper::fillMultiPart(RecPart&target_part,mailimap_body_type_mpart*which) 680void IMAPwrapper::fillMultiPart(RecPart&target_part,mailimap_body_type_mpart*which)
671{ 681{
672 if (!which) return; 682 if (!which) return;
673 QString sub = which->bd_media_subtype; 683 QString sub = which->bd_media_subtype;
674 target_part.setSubtype(sub.lower()); 684 target_part.setSubtype(sub.lower());
@@ -680,7 +690,7 @@ void IMAPwrapper::fillMultiPart(RecPart&target_part,mailimap_body_type_mpart*whi
680 if (param) { 690 if (param) {
681 target_part.addParameter(QString(param->pa_name).lower(),QString(param->pa_value)); 691 target_part.addParameter(QString(param->pa_name).lower(),QString(param->pa_value));
682 } 692 }
683 } 693 }
684 } 694 }
685} 695}
686 696
diff --git a/noncore/net/mail/libmailwrapper/settings.cpp b/noncore/net/mail/libmailwrapper/settings.cpp
index 7b6a58d..3279f39 100644
--- a/noncore/net/mail/libmailwrapper/settings.cpp
+++ b/noncore/net/mail/libmailwrapper/settings.cpp
@@ -164,6 +164,7 @@ void IMAPaccount::read()
164 if (server.isNull()) server=""; 164 if (server.isNull()) server="";
165 port = conf->readEntry( "Port","" ); 165 port = conf->readEntry( "Port","" );
166 if (port.isNull()) port="143"; 166 if (port.isNull()) port="143";
167 connectionType = conf->readNumEntry( "ConnectionType" );
167 ssl = conf->readBoolEntry( "SSL",false ); 168 ssl = conf->readBoolEntry( "SSL",false );
168 user = conf->readEntry( "User","" ); 169 user = conf->readEntry( "User","" );
169 if (user.isNull()) user = ""; 170 if (user.isNull()) user = "";
@@ -186,6 +187,7 @@ void IMAPaccount::save()
186 conf->writeEntry( "Server", server ); 187 conf->writeEntry( "Server", server );
187 conf->writeEntry( "Port", port ); 188 conf->writeEntry( "Port", port );
188 conf->writeEntry( "SSL", ssl ); 189 conf->writeEntry( "SSL", ssl );
190 conf->writeEntry( "ConnectionType", connectionType );
189 conf->writeEntry( "User", user ); 191 conf->writeEntry( "User", user );
190 conf->writeEntryCrypt( "Password", password ); 192 conf->writeEntryCrypt( "Password", password );
191 conf->writeEntry( "MailPrefix",prefix); 193 conf->writeEntry( "MailPrefix",prefix);