Diffstat (limited to 'noncore/net/mail/libmailwrapper/smtpwrapper.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/smtpwrapper.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp index 085d5e4..7671133 100644 --- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp | |||
@@ -6,6 +6,7 @@ | |||
6 | #include <string.h> | 6 | #include <string.h> |
7 | #include <qdir.h> | 7 | #include <qdir.h> |
8 | #include <qt.h> | 8 | #include <qt.h> |
9 | #include <qmessagebox.h> | ||
9 | 10 | ||
10 | #include <qpe/config.h> | 11 | #include <qpe/config.h> |
11 | #include <qpe/qcopenvelope_qws.h> | 12 | #include <qpe/qcopenvelope_qws.h> |
@@ -554,6 +555,17 @@ void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp ) { | |||
554 | smtp_address_list_free( rcpts ); | 555 | smtp_address_list_free( rcpts ); |
555 | } | 556 | } |
556 | 557 | ||
558 | void SMTPwrapper::storeFailedMail(const char*data,unsigned int size, const char*failuremessage) | ||
559 | { | ||
560 | if (data) { | ||
561 | storeMail(data,size,"Sendfailed"); | ||
562 | } | ||
563 | if (failuremessage) { | ||
564 | QMessageBox::critical(0,tr("Error sending mail"), | ||
565 | tr("<center>%1</center>").arg(failuremessage)); | ||
566 | } | ||
567 | } | ||
568 | |||
557 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMTPaccount *smtp ) { | 569 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMTPaccount *smtp ) { |
558 | const char *server, *user, *pass; | 570 | const char *server, *user, *pass; |
559 | bool ssl; | 571 | bool ssl; |
@@ -589,12 +601,14 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
589 | } | 601 | } |
590 | if ( err != MAILSMTP_NO_ERROR ) { | 602 | if ( err != MAILSMTP_NO_ERROR ) { |
591 | qDebug("Error init connection"); | 603 | qDebug("Error init connection"); |
604 | storeFailedMail(data,size,mailsmtpError(err)); | ||
592 | result = 0; | 605 | result = 0; |
593 | goto free_mem_session; | 606 | goto free_mem_session; |
594 | } | 607 | } |
595 | 608 | ||
596 | err = mailsmtp_init( session ); | 609 | err = mailsmtp_init( session ); |
597 | if ( err != MAILSMTP_NO_ERROR ) { | 610 | if ( err != MAILSMTP_NO_ERROR ) { |
611 | storeFailedMail(data,size,mailsmtpError(err)); | ||
598 | result = 0; | 612 | result = 0; |
599 | goto free_con_session; | 613 | goto free_con_session; |
600 | } | 614 | } |
@@ -621,15 +635,23 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
621 | } | 635 | } |
622 | qDebug( "session->auth: %i", session->auth); | 636 | qDebug( "session->auth: %i", session->auth); |
623 | err = mailsmtp_auth( session, (char*)user, (char*)pass ); | 637 | err = mailsmtp_auth( session, (char*)user, (char*)pass ); |
624 | if ( err == MAILSMTP_NO_ERROR ) | 638 | if ( err == MAILSMTP_NO_ERROR ) { |
625 | qDebug("auth ok"); | 639 | qDebug("auth ok"); |
640 | } else { | ||
641 | storeFailedMail(data,size,tr("Authentification failed")); | ||
642 | result = 0; | ||
643 | goto free_con_session; | ||
644 | } | ||
626 | qDebug( "Done auth!" ); | 645 | qDebug( "Done auth!" ); |
627 | } else { | 646 | } else { |
628 | qDebug("SMTP without auth"); | 647 | qDebug("SMTP without auth"); |
648 | result = 0; | ||
649 | goto free_con_session; | ||
629 | } | 650 | } |
630 | 651 | ||
631 | err = mailsmtp_send( session, from, rcpts, data, size ); | 652 | err = mailsmtp_send( session, from, rcpts, data, size ); |
632 | if ( err != MAILSMTP_NO_ERROR ) { | 653 | if ( err != MAILSMTP_NO_ERROR ) { |
654 | storeFailedMail(data,size,mailsmtpError(err)); | ||
633 | qDebug("Error sending mail: %s",mailsmtpError(err).latin1()); | 655 | qDebug("Error sending mail: %s",mailsmtpError(err).latin1()); |
634 | result = 0; | 656 | result = 0; |
635 | goto free_con_session; | 657 | goto free_con_session; |