author | zautrix <zautrix> | 2004-07-03 19:26:15 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-07-03 19:26:15 (UTC) |
commit | cc67ce39cdd7730caee878da3b191d76cad9479f (patch) (side-by-side diff) | |
tree | a19e8297fdf060845e1a81b58afe5272a58c3b61 /kmicromail/libmailwrapper/smtpwrapper.cpp | |
parent | 55413f404aa7a59bfbf38f9f91fabb595eca57ad (diff) | |
download | kdepimpi-cc67ce39cdd7730caee878da3b191d76cad9479f.zip kdepimpi-cc67ce39cdd7730caee878da3b191d76cad9479f.tar.gz kdepimpi-cc67ce39cdd7730caee878da3b191d76cad9479f.tar.bz2 |
better error handling
Diffstat (limited to 'kmicromail/libmailwrapper/smtpwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/libmailwrapper/smtpwrapper.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/kmicromail/libmailwrapper/smtpwrapper.cpp b/kmicromail/libmailwrapper/smtpwrapper.cpp index 04a21ea..6a1b505 100644 --- a/kmicromail/libmailwrapper/smtpwrapper.cpp +++ b/kmicromail/libmailwrapper/smtpwrapper.cpp @@ -97,57 +97,58 @@ void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) { return; QString localfolders = AbstractMail::defaultLocalfolder(); AbstractMail*wrap = AbstractMail::getWrapper(localfolders); wrap->createMbox(box); wrap->storeMessage(mail,length,box); delete wrap; } -void SMTPwrapper::smtpSend( mailmime *mail,bool later) { +bool SMTPwrapper::smtpSend( mailmime *mail,bool later) { clist *rcpts = 0; char *from, *data; size_t size; from = data = 0; mailmessage * msg = 0; msg = mime_message_init(mail); mime_message_set_tmpdir(msg,getenv( "HOME" )); int r = mailmessage_fetch(msg,&data,&size); mime_message_detach_mime(msg); mailmessage_free(msg); if (r != MAIL_NO_ERROR || !data) { if (data) free(data); - ; // odebug << "Error fetching mime..." << oendl; - return; + qDebug("Error fetching mime... "); + return false; } msg = 0; if (later) { storeMail(data,size,"Outgoing"); if (data) free( data ); Config cfg( "mail" ); cfg.setGroup( "Status" ); cfg.writeEntry( "outgoing", ++m_queuedMail ); emit queuedMails( m_queuedMail ); - return; + return true; } from = getFrom( mail ); rcpts = createRcptList( mail->mm_data.mm_message.mm_fields ); - smtpSend(from,rcpts,data,size); + bool result = smtpSend(from,rcpts,data,size); if (data) { free(data); } if (from) { free(from); } if (rcpts) smtp_address_list_free( rcpts ); + return result; } void SMTPwrapper::storeFailedMail(const char*data,unsigned int size, const char*failuremessage) { if (data) { storeMail(data,size,"Sendfailed"); } if (failuremessage) { @@ -311,34 +312,36 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) storeFailedMail(data,size,failuretext); } else { ; // odebug << "Mail sent." << oendl; storeMail(data,size,"Sent"); } return result; } -void SMTPwrapper::sendMail(const Opie::Core::OSmartPointer<Mail>&mail,bool later ) +bool SMTPwrapper::sendMail(const Opie::Core::OSmartPointer<Mail>&mail,bool later ) { mailmime * mimeMail; - + bool result = true; mimeMail = createMimeMail(mail ); - if ( mimeMail == NULL ) { - ; // odebug << "sendMail: error creating mime mail" << oendl; + if ( mimeMail == 0 ) { + qDebug("SMTP wrapper:Error creating mail! "); + return false; } else { sendProgress = new progressMailSend(); sendProgress->show(); sendProgress->setMaxMails(1); - smtpSend( mimeMail,later); + result = smtpSend( mimeMail,later); ; // odebug << "Clean up done" << oendl; sendProgress->hide(); delete sendProgress; sendProgress = 0; mailmime_free( mimeMail ); } + return result; } int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,const RecMailP&which) { size_t curTok = 0; mailimf_fields *fields = 0; mailimf_field*ffrom = 0; clist *rcpts = 0; char*from = 0; |