summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/libmailwrapper/smtpwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/smtpwrapper.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
index 4764b77..281b88e 100644
--- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
@@ -480,25 +480,25 @@ char *SMTPwrapper::getFrom( mailmime *mail )
480void SMTPwrapper::progress( size_t current, size_t maximum ) 480void SMTPwrapper::progress( size_t current, size_t maximum )
481{ 481{
482 if (SMTPwrapper::sendProgress) { 482 if (SMTPwrapper::sendProgress) {
483 SMTPwrapper::sendProgress->setSingleMail(current, maximum ); 483 SMTPwrapper::sendProgress->setSingleMail(current, maximum );
484 qApp->processEvents(); 484 qApp->processEvents();
485 } 485 }
486} 486}
487 487
488void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) 488void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box)
489{ 489{
490 if (!mail) return; 490 if (!mail) return;
491 QString localfolders = AbstractMail::defaultLocalfolder(); 491 QString localfolders = AbstractMail::defaultLocalfolder();
492 MBOXwrapper*wrap = new MBOXwrapper(localfolders); 492 AbstractMail*wrap = AbstractMail::getWrapper(localfolders);
493 wrap->storeMessage(mail,length,box); 493 wrap->storeMessage(mail,length,box);
494 delete wrap; 494 delete wrap;
495} 495}
496 496
497void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp ) 497void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp )
498{ 498{
499 clist *rcpts = 0; 499 clist *rcpts = 0;
500 char *from, *data; 500 char *from, *data;
501 size_t size; 501 size_t size;
502 502
503 if ( smtp == NULL ) { 503 if ( smtp == NULL ) {
504 return; 504 return;
@@ -507,29 +507,27 @@ void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp )
507 507
508 mailmessage * msg = 0; 508 mailmessage * msg = 0;
509 msg = mime_message_init(mail); 509 msg = mime_message_init(mail);
510 mime_message_set_tmpdir(msg,getenv( "HOME" )); 510 mime_message_set_tmpdir(msg,getenv( "HOME" ));
511 int r = mailmessage_fetch(msg,&data,&size); 511 int r = mailmessage_fetch(msg,&data,&size);
512 mime_message_detach_mime(msg); 512 mime_message_detach_mime(msg);
513 mailmessage_free(msg); 513 mailmessage_free(msg);
514 if (r != MAIL_NO_ERROR || !data) { 514 if (r != MAIL_NO_ERROR || !data) {
515 if (data) free(data); 515 if (data) free(data);
516 qDebug("Error fetching mime..."); 516 qDebug("Error fetching mime...");
517 return; 517 return;
518 } 518 }
519 QString tmp = data;
520 tmp.replace(QRegExp("\r+",true,false),"");
521 msg = 0; 519 msg = 0;
522 if (later) { 520 if (later) {
523 storeMail((char*)tmp.data(),tmp.length(),"Outgoing"); 521 storeMail(data,size,"Outgoing");
524 if (data) free( data ); 522 if (data) free( data );
525 Config cfg( "mail" ); 523 Config cfg( "mail" );
526 cfg.setGroup( "Status" ); 524 cfg.setGroup( "Status" );
527 cfg.writeEntry( "outgoing", ++m_queuedMail ); 525 cfg.writeEntry( "outgoing", ++m_queuedMail );
528 emit queuedMails( m_queuedMail ); 526 emit queuedMails( m_queuedMail );
529 return; 527 return;
530 } 528 }
531 from = getFrom( mail ); 529 from = getFrom( mail );
532 rcpts = createRcptList( mail->mm_data.mm_message.mm_fields ); 530 rcpts = createRcptList( mail->mm_data.mm_message.mm_fields );
533 smtpSend(from,rcpts,data,size,smtp); 531 smtpSend(from,rcpts,data,size,smtp);
534 if (data) {free(data);} 532 if (data) {free(data);}
535 if (from) {free(from);} 533 if (from) {free(from);}
@@ -627,25 +625,25 @@ void SMTPwrapper::sendMail(const Mail&mail,SMTPaccount*aSmtp,bool later )
627 sendProgress = new progressMailSend(); 625 sendProgress = new progressMailSend();
628 sendProgress->show(); 626 sendProgress->show();
629 sendProgress->setMaxMails(1); 627 sendProgress->setMaxMails(1);
630 smtpSend( mimeMail,later,smtp); 628 smtpSend( mimeMail,later,smtp);
631 qDebug("Clean up done"); 629 qDebug("Clean up done");
632 sendProgress->hide(); 630 sendProgress->hide();
633 delete sendProgress; 631 delete sendProgress;
634 sendProgress = 0; 632 sendProgress = 0;
635 mailmime_free( mimeMail ); 633 mailmime_free( mimeMail );
636 } 634 }
637} 635}
638 636
639int SMTPwrapper::sendQueuedMail(MBOXwrapper*wrap,SMTPaccount*smtp,RecMail*which) 637int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,SMTPaccount*smtp,RecMail*which)
640{ 638{
641 size_t curTok = 0; 639 size_t curTok = 0;
642 mailimf_fields *fields = 0; 640 mailimf_fields *fields = 0;
643 mailimf_field*ffrom = 0; 641 mailimf_field*ffrom = 0;
644 clist *rcpts = 0; 642 clist *rcpts = 0;
645 char*from = 0; 643 char*from = 0;
646 int res = 0; 644 int res = 0;
647 645
648 encodedString * data = wrap->fetchRawBody(*which); 646 encodedString * data = wrap->fetchRawBody(*which);
649 if (!data) return 0; 647 if (!data) return 0;
650 int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); 648 int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields );
651 if (err != MAILIMF_NO_ERROR) { 649 if (err != MAILIMF_NO_ERROR) {
@@ -676,25 +674,25 @@ int SMTPwrapper::sendQueuedMail(MBOXwrapper*wrap,SMTPaccount*smtp,RecMail*which)
676 } 674 }
677 return res; 675 return res;
678} 676}
679 677
680/* this is a special fun */ 678/* this is a special fun */
681bool SMTPwrapper::flushOutbox(SMTPaccount*smtp) 679bool SMTPwrapper::flushOutbox(SMTPaccount*smtp)
682{ 680{
683 bool returnValue = true; 681 bool returnValue = true;
684 682
685 if (!smtp) return false; 683 if (!smtp) return false;
686 684
687 QString localfolders = AbstractMail::defaultLocalfolder(); 685 QString localfolders = AbstractMail::defaultLocalfolder();
688 MBOXwrapper*wrap = new MBOXwrapper(localfolders); 686 AbstractMail*wrap = AbstractMail::getWrapper(localfolders);
689 if (!wrap) { 687 if (!wrap) {
690 qDebug("memory error"); 688 qDebug("memory error");
691 return false; 689 return false;
692 } 690 }
693 QList<RecMail> mailsToSend; 691 QList<RecMail> mailsToSend;
694 QList<RecMail> mailsToRemove; 692 QList<RecMail> mailsToRemove;
695 QString mbox("Outgoing"); 693 QString mbox("Outgoing");
696 wrap->listMessages(mbox,mailsToSend); 694 wrap->listMessages(mbox,mailsToSend);
697 if (mailsToSend.count()==0) { 695 if (mailsToSend.count()==0) {
698 delete wrap; 696 delete wrap;
699 return false; 697 return false;
700 } 698 }