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
@@ -59,50 +59,60 @@ void IMAPwrapper::login()
59 return; 59 return;
60 } 60 }
61 } 61 }
62 server = account->getServer().latin1(); 62 server = account->getServer().latin1();
63 port = account->getPort().toUInt(); 63 port = account->getPort().toUInt();
64 if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { 64 if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) {
65 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); 65 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true );
66 login.show(); 66 login.show();
67 if ( QDialog::Accepted == login.exec() ) { 67 if ( QDialog::Accepted == login.exec() ) {
68 // ok 68 // ok
69 user = login.getUser().latin1(); 69 user = login.getUser().latin1();
70 pass = login.getPassword().latin1(); 70 pass = login.getPassword().latin1();
71 } else { 71 } else {
72 // cancel 72 // cancel
73 qDebug( "IMAP: Login canceled" ); 73 qDebug( "IMAP: Login canceled" );
74 return; 74 return;
75 } 75 }
76 } else { 76 } else {
77 user = account->getUser().latin1(); 77 user = account->getUser().latin1();
78 pass = account->getPassword().latin1(); 78 pass = account->getPassword().latin1();
79 } 79 }
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 );
88 } 98 }
89 99
90 if ( err != MAILIMAP_NO_ERROR && 100 if ( err != MAILIMAP_NO_ERROR &&
91 err != MAILIMAP_NO_ERROR_AUTHENTICATED && 101 err != MAILIMAP_NO_ERROR_AUTHENTICATED &&
92 err != MAILIMAP_NO_ERROR_NON_AUTHENTICATED ) { 102 err != MAILIMAP_NO_ERROR_NON_AUTHENTICATED ) {
93 QString failure = ""; 103 QString failure = "";
94 if (err == MAILIMAP_ERROR_CONNECTION_REFUSED) { 104 if (err == MAILIMAP_ERROR_CONNECTION_REFUSED) {
95 failure="Connection refused"; 105 failure="Connection refused";
96 } else { 106 } else {
97 failure="Unknown failure"; 107 failure="Unknown failure";
98 } 108 }
99 Global::statusMessage(tr("error connecting imap server: %1").arg(failure)); 109 Global::statusMessage(tr("error connecting imap server: %1").arg(failure));
100 mailimap_free( m_imap ); 110 mailimap_free( m_imap );
101 m_imap = 0; 111 m_imap = 0;
102 return; 112 return;
103 } 113 }
104 114
105 /* login */ 115 /* login */
106 err = mailimap_login_simple( m_imap, (char*)user, (char*)pass ); 116 err = mailimap_login_simple( m_imap, (char*)user, (char*)pass );
107 if ( err != MAILIMAP_NO_ERROR ) { 117 if ( err != MAILIMAP_NO_ERROR ) {
108 Global::statusMessage(tr("error logging in imap server: %1").arg(m_imap->imap_response)); 118 Global::statusMessage(tr("error logging in imap server: %1").arg(m_imap->imap_response));
@@ -348,88 +358,88 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
348 addresslist = address_list_to_stringlist(head->env_to->to_list); 358 addresslist = address_list_to_stringlist(head->env_to->to_list);
349 m->setTo(addresslist); 359 m->setTo(addresslist);
350 } 360 }
351 if (head->env_cc!=NULL) { 361 if (head->env_cc!=NULL) {
352 addresslist = address_list_to_stringlist(head->env_cc->cc_list); 362 addresslist = address_list_to_stringlist(head->env_cc->cc_list);
353 m->setCC(addresslist); 363 m->setCC(addresslist);
354 } 364 }
355 if (head->env_bcc!=NULL) { 365 if (head->env_bcc!=NULL) {
356 addresslist = address_list_to_stringlist(head->env_bcc->bcc_list); 366 addresslist = address_list_to_stringlist(head->env_bcc->bcc_list);
357 m->setBcc(addresslist); 367 m->setBcc(addresslist);
358 } 368 }
359 if (head->env_reply_to!=NULL) { 369 if (head->env_reply_to!=NULL) {
360 addresslist = address_list_to_stringlist(head->env_reply_to->rt_list); 370 addresslist = address_list_to_stringlist(head->env_reply_to->rt_list);
361 if (addresslist.count()) { 371 if (addresslist.count()) {
362 m->setReplyto(addresslist.first()); 372 m->setReplyto(addresslist.first());
363 } 373 }
364 } 374 }
365 m->setMsgid(QString(head->env_message_id)); 375 m->setMsgid(QString(head->env_message_id));
366 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_INTERNALDATE) { 376 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_INTERNALDATE) {
367#if 0 377#if 0
368 mailimap_date_time*d = item->att_data.att_static->att_data.att_internal_date; 378 mailimap_date_time*d = item->att_data.att_static->att_data.att_internal_date;
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 }
376 } 386 }
377 /* msg is already deleted */ 387 /* msg is already deleted */
378 if (mFlags.testBit(FLAG_DELETED) && m) { 388 if (mFlags.testBit(FLAG_DELETED) && m) {
379 delete m; 389 delete m;
380 m = 0; 390 m = 0;
381 } 391 }
382 if (m) { 392 if (m) {
383 m->setFlags(mFlags); 393 m->setFlags(mFlags);
384 m->setMsgsize(size); 394 m->setMsgsize(size);
385 } 395 }
386 return m; 396 return m;
387} 397}
388 398
389RecBody IMAPwrapper::fetchBody(const RecMail&mail) 399RecBody IMAPwrapper::fetchBody(const RecMail&mail)
390{ 400{
391 RecBody body; 401 RecBody body;
392 const char *mb; 402 const char *mb;
393 int err = MAILIMAP_NO_ERROR; 403 int err = MAILIMAP_NO_ERROR;
394 clist *result = 0; 404 clist *result = 0;
395 clistcell *current; 405 clistcell *current;
396 mailimap_fetch_att *fetchAtt = 0; 406 mailimap_fetch_att *fetchAtt = 0;
397 mailimap_fetch_type *fetchType = 0; 407 mailimap_fetch_type *fetchType = 0;
398 mailimap_set *set = 0; 408 mailimap_set *set = 0;
399 mailimap_body*body_desc = 0; 409 mailimap_body*body_desc = 0;
400 410
401 mb = mail.getMbox().latin1(); 411 mb = mail.getMbox().latin1();
402 412
403 login(); 413 login();
404 if (!m_imap) { 414 if (!m_imap) {
405 return body; 415 return body;
406 } 416 }
407 err = selectMbox(mail.getMbox()); 417 err = selectMbox(mail.getMbox());
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();
415 fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt); 425 fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt);
416 err = mailimap_fetch( m_imap, set, fetchType, &result ); 426 err = mailimap_fetch( m_imap, set, fetchType, &result );
417 mailimap_set_free( set ); 427 mailimap_set_free( set );
418 mailimap_fetch_type_free( fetchType ); 428 mailimap_fetch_type_free( fetchType );
419 429
420 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { 430 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) {
421 mailimap_msg_att * msg_att; 431 mailimap_msg_att * msg_att;
422 msg_att = (mailimap_msg_att*)current->data; 432 msg_att = (mailimap_msg_att*)current->data;
423 mailimap_msg_att_item*item = (mailimap_msg_att_item*)msg_att->att_list->first->data; 433 mailimap_msg_att_item*item = (mailimap_msg_att_item*)msg_att->att_list->first->data;
424 QValueList<int> path; 434 QValueList<int> path;
425 body_desc = item->att_data.att_static->att_data.att_body; 435 body_desc = item->att_data.att_static->att_data.att_body;
426 traverseBody(mail,body_desc,body,0,path); 436 traverseBody(mail,body_desc,body,0,path);
427 } else { 437 } else {
428 qDebug("error fetching body: %s",m_imap->imap_response); 438 qDebug("error fetching body: %s",m_imap->imap_response);
429 } 439 }
430 if (result) mailimap_fetch_list_free(result); 440 if (result) mailimap_fetch_list_free(result);
431 return body; 441 return body;
432} 442}
433 443
434QStringList IMAPwrapper::address_list_to_stringlist(clist*list) 444QStringList IMAPwrapper::address_list_to_stringlist(clist*list)
435{ 445{
@@ -474,89 +484,89 @@ QStringList IMAPwrapper::address_list_to_stringlist(clist*list)
474 484
475encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>&path,bool internal_call) 485encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>&path,bool internal_call)
476{ 486{
477 encodedString*res=new encodedString; 487 encodedString*res=new encodedString;
478 int err; 488 int err;
479 mailimap_fetch_type *fetchType; 489 mailimap_fetch_type *fetchType;
480 mailimap_set *set; 490 mailimap_set *set;
481 clistcell*current,*cur; 491 clistcell*current,*cur;
482 mailimap_section_part * section_part = 0; 492 mailimap_section_part * section_part = 0;
483 mailimap_section_spec * section_spec = 0; 493 mailimap_section_spec * section_spec = 0;
484 mailimap_section * section = 0; 494 mailimap_section * section = 0;
485 mailimap_fetch_att * fetch_att = 0; 495 mailimap_fetch_att * fetch_att = 0;
486 496
487 login(); 497 login();
488 if (!m_imap) { 498 if (!m_imap) {
489 return res; 499 return res;
490 } 500 }
491 if (!internal_call) { 501 if (!internal_call) {
492 err = selectMbox(mail.getMbox()); 502 err = selectMbox(mail.getMbox());
493 if ( err != MAILIMAP_NO_ERROR ) { 503 if ( err != MAILIMAP_NO_ERROR ) {
494 return res; 504 return res;
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 ) {
504 id_list = clist_new(); 514 id_list = clist_new();
505 for (unsigned j=0; j < path.count();++j) { 515 for (unsigned j=0; j < path.count();++j) {
506 uint32_t * p_id = (uint32_t *)malloc(sizeof(*p_id)); 516 uint32_t * p_id = (uint32_t *)malloc(sizeof(*p_id));
507 *p_id = path[j]; 517 *p_id = path[j];
508 clist_append(id_list,p_id); 518 clist_append(id_list,p_id);
509 } 519 }
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;
527 mailimap_msg_att_item*msg_att_item; 537 mailimap_msg_att_item*msg_att_item;
528 for(cur = clist_begin(msg_att->att_list) ; cur != NULL ; cur = clist_next(cur)) { 538 for(cur = clist_begin(msg_att->att_list) ; cur != NULL ; cur = clist_next(cur)) {
529 msg_att_item = (mailimap_msg_att_item*)clist_content(cur); 539 msg_att_item = (mailimap_msg_att_item*)clist_content(cur);
530 if (msg_att_item->att_type == MAILIMAP_MSG_ATT_ITEM_STATIC) { 540 if (msg_att_item->att_type == MAILIMAP_MSG_ATT_ITEM_STATIC) {
531 if (msg_att_item->att_data.att_static->att_type == MAILIMAP_MSG_ATT_BODY_SECTION) { 541 if (msg_att_item->att_data.att_static->att_type == MAILIMAP_MSG_ATT_BODY_SECTION) {
532 char*text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part; 542 char*text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part;
533 /* detach - we take over the content */ 543 /* detach - we take over the content */
534 msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = 0L; 544 msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = 0L;
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 }
542 if (result) mailimap_fetch_list_free(result); 552 if (result) mailimap_fetch_list_free(result);
543 return res; 553 return res;
544} 554}
545 555
546/* current_recursion is for recursive calls. 556/* current_recursion is for recursive calls.
547 current_count means the position inside the internal loop! */ 557 current_count means the position inside the internal loop! */
548void IMAPwrapper::traverseBody(const RecMail&mail,mailimap_body*body,RecBody&target_body, 558void IMAPwrapper::traverseBody(const RecMail&mail,mailimap_body*body,RecBody&target_body,
549 int current_recursion,QValueList<int>recList,int current_count) 559 int current_recursion,QValueList<int>recList,int current_count)
550{ 560{
551 if (!body || current_recursion>=10) { 561 if (!body || current_recursion>=10) {
552 return; 562 return;
553 } 563 }
554 switch (body->bd_type) { 564 switch (body->bd_type) {
555 case MAILIMAP_BODY_1PART: 565 case MAILIMAP_BODY_1PART:
556 { 566 {
557 QValueList<int>countlist = recList; 567 QValueList<int>countlist = recList;
558 countlist.append(current_count); 568 countlist.append(current_count);
559 RecPart currentPart; 569 RecPart currentPart;
560 mailimap_body_type_1part*part1 = body->bd_data.bd_body_1part; 570 mailimap_body_type_1part*part1 = body->bd_data.bd_body_1part;
561 QString id(""); 571 QString id("");
562 currentPart.setPositionlist(countlist); 572 currentPart.setPositionlist(countlist);
@@ -643,65 +653,65 @@ void IMAPwrapper::fillSinglePart(RecPart&target_part,mailimap_body_type_1part*De
643} 653}
644 654
645void IMAPwrapper::fillSingleTextPart(RecPart&target_part,mailimap_body_type_text*which) 655void IMAPwrapper::fillSingleTextPart(RecPart&target_part,mailimap_body_type_text*which)
646{ 656{
647 if (!which) { 657 if (!which) {
648 return; 658 return;
649 } 659 }
650 QString sub; 660 QString sub;
651 sub = which->bd_media_text; 661 sub = which->bd_media_text;
652 qDebug("Type= text/%s",which->bd_media_text); 662 qDebug("Type= text/%s",which->bd_media_text);
653 target_part.setSubtype(sub.lower()); 663 target_part.setSubtype(sub.lower());
654 target_part.setLines(which->bd_lines); 664 target_part.setLines(which->bd_lines);
655 fillBodyFields(target_part,which->bd_fields); 665 fillBodyFields(target_part,which->bd_fields);
656} 666}
657 667
658void IMAPwrapper::fillSingleMsgPart(RecPart&target_part,mailimap_body_type_msg*which) 668void IMAPwrapper::fillSingleMsgPart(RecPart&target_part,mailimap_body_type_msg*which)
659{ 669{
660 if (!which) { 670 if (!which) {
661 return; 671 return;
662 } 672 }
663 target_part.setSubtype("rfc822"); 673 target_part.setSubtype("rfc822");
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());
675 if (which->bd_ext_mpart && which->bd_ext_mpart->bd_parameter && which->bd_ext_mpart->bd_parameter->pa_list) { 685 if (which->bd_ext_mpart && which->bd_ext_mpart->bd_parameter && which->bd_ext_mpart->bd_parameter->pa_list) {
676 clistcell*cur = 0; 686 clistcell*cur = 0;
677 mailimap_single_body_fld_param*param=0; 687 mailimap_single_body_fld_param*param=0;
678 for (cur = clist_begin(which->bd_ext_mpart->bd_parameter->pa_list);cur!=NULL;cur=clist_next(cur)) { 688 for (cur = clist_begin(which->bd_ext_mpart->bd_parameter->pa_list);cur!=NULL;cur=clist_next(cur)) {
679 param = (mailimap_single_body_fld_param*)cur->data; 689 param = (mailimap_single_body_fld_param*)cur->data;
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
687void IMAPwrapper::fillSingleBasicPart(RecPart&target_part,mailimap_body_type_basic*which) 697void IMAPwrapper::fillSingleBasicPart(RecPart&target_part,mailimap_body_type_basic*which)
688{ 698{
689 if (!which) { 699 if (!which) {
690 return; 700 return;
691 } 701 }
692 QString type,sub; 702 QString type,sub;
693 switch (which->bd_media_basic->med_type) { 703 switch (which->bd_media_basic->med_type) {
694 case MAILIMAP_MEDIA_BASIC_APPLICATION: 704 case MAILIMAP_MEDIA_BASIC_APPLICATION:
695 type = "application"; 705 type = "application";
696 break; 706 break;
697 case MAILIMAP_MEDIA_BASIC_AUDIO: 707 case MAILIMAP_MEDIA_BASIC_AUDIO:
698 type = "audio"; 708 type = "audio";
699 break; 709 break;
700 case MAILIMAP_MEDIA_BASIC_IMAGE: 710 case MAILIMAP_MEDIA_BASIC_IMAGE:
701 type = "image"; 711 type = "image";
702 break; 712 break;
703 case MAILIMAP_MEDIA_BASIC_MESSAGE: 713 case MAILIMAP_MEDIA_BASIC_MESSAGE:
704 type = "message"; 714 type = "message";
705 break; 715 break;
706 case MAILIMAP_MEDIA_BASIC_VIDEO: 716 case MAILIMAP_MEDIA_BASIC_VIDEO:
707 type = "video"; 717 type = "video";
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
@@ -143,70 +143,72 @@ QString IMAPaccount::getUniqueFileName()
143{ 143{
144 int num = 0; 144 int num = 0;
145 QString unique; 145 QString unique;
146 146
147 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); 147 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" );
148 148
149 QStringList imap = dir.entryList( "imap-*" ); 149 QStringList imap = dir.entryList( "imap-*" );
150 do { 150 do {
151 unique.setNum( num++ ); 151 unique.setNum( num++ );
152 } while ( imap.contains( "imap-" + unique ) > 0 ); 152 } while ( imap.contains( "imap-" + unique ) > 0 );
153 153
154 return unique; 154 return unique;
155} 155}
156 156
157void IMAPaccount::read() 157void IMAPaccount::read()
158{ 158{
159 Config *conf = new Config( getFileName(), Config::File ); 159 Config *conf = new Config( getFileName(), Config::File );
160 conf->setGroup( "IMAP Account" ); 160 conf->setGroup( "IMAP Account" );
161 accountName = conf->readEntry( "Account","" ); 161 accountName = conf->readEntry( "Account","" );
162 if (accountName.isNull()) accountName = ""; 162 if (accountName.isNull()) accountName = "";
163 server = conf->readEntry( "Server","" ); 163 server = conf->readEntry( "Server","" );
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 = "";
170 password = conf->readEntryCrypt( "Password","" ); 171 password = conf->readEntryCrypt( "Password","" );
171 if (password.isNull()) password = ""; 172 if (password.isNull()) password = "";
172 prefix = conf->readEntry("MailPrefix",""); 173 prefix = conf->readEntry("MailPrefix","");
173 if (prefix.isNull()) prefix = ""; 174 if (prefix.isNull()) prefix = "";
174 offline = conf->readBoolEntry("Offline",false); 175 offline = conf->readBoolEntry("Offline",false);
175 delete conf; 176 delete conf;
176} 177}
177 178
178void IMAPaccount::save() 179void IMAPaccount::save()
179{ 180{
180 qDebug( "saving " + getFileName() ); 181 qDebug( "saving " + getFileName() );
181 Settings::checkDirectory(); 182 Settings::checkDirectory();
182 183
183 Config *conf = new Config( getFileName(), Config::File ); 184 Config *conf = new Config( getFileName(), Config::File );
184 conf->setGroup( "IMAP Account" ); 185 conf->setGroup( "IMAP Account" );
185 conf->writeEntry( "Account", accountName ); 186 conf->writeEntry( "Account", accountName );
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);
192 conf->writeEntry( "Offline",offline); 194 conf->writeEntry( "Offline",offline);
193 conf->write(); 195 conf->write();
194 delete conf; 196 delete conf;
195} 197}
196 198
197 199
198QString IMAPaccount::getFileName() 200QString IMAPaccount::getFileName()
199{ 201{
200 return (QString) getenv( "HOME" ) + "/Applications/opiemail/imap-" + file; 202 return (QString) getenv( "HOME" ) + "/Applications/opiemail/imap-" + file;
201} 203}
202 204
203POP3account::POP3account() 205POP3account::POP3account()
204 : Account() 206 : Account()
205{ 207{
206 file = POP3account::getUniqueFileName(); 208 file = POP3account::getUniqueFileName();
207 accountName = "New POP3 Account"; 209 accountName = "New POP3 Account";
208 ssl = false; 210 ssl = false;
209 connectionType = 1; 211 connectionType = 1;
210 type = "POP3"; 212 type = "POP3";
211 port = POP3_PORT; 213 port = POP3_PORT;
212} 214}