summaryrefslogtreecommitdiffabout
path: root/kmicromail
Side-by-side diff
Diffstat (limited to 'kmicromail') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/editaccounts.cpp12
-rw-r--r--kmicromail/libmailwrapper/smtpwrapper.cpp21
2 files changed, 27 insertions, 6 deletions
diff --git a/kmicromail/editaccounts.cpp b/kmicromail/editaccounts.cpp
index 49049f6..2c0f2d8 100644
--- a/kmicromail/editaccounts.cpp
+++ b/kmicromail/editaccounts.cpp
@@ -347,6 +347,7 @@ void IMAPconfig::slotConnectionToggle( int index )
if ( index == 2 )
{
portLine->setText( IMAP_SSL_PORT );
+ CommandEdit->hide();
}
else if ( index == 3 )
{
@@ -356,6 +357,7 @@ void IMAPconfig::slotConnectionToggle( int index )
else
{
portLine->setText( IMAP_PORT );
+ CommandEdit->hide();
}
}
@@ -428,6 +430,7 @@ void POP3config::slotConnectionToggle( int index )
if ( index == 2 )
{
portLine->setText( POP3_SSL_PORT );
+ CommandEdit->hide();
}
else if ( index == 3 )
{
@@ -437,6 +440,7 @@ void POP3config::slotConnectionToggle( int index )
else
{
portLine->setText( POP3_PORT );
+ CommandEdit->hide();
}
}
@@ -520,12 +524,13 @@ void SMTPconfig::chooseSig()
}
void SMTPconfig::slotConnectionToggle( int index )
{
- // 2 is ssl connection
- if ( index == 2 )
+ // 3 is ssl connection
+ if ( index == 3 )
{
portLine->setText( SMTP_SSL_PORT );
+ CommandEdit->hide();
}
- else if ( index == 3 )
+ else if ( index == 4 )
{
portLine->setText( SMTP_PORT );
CommandEdit->show();
@@ -533,6 +538,7 @@ void SMTPconfig::slotConnectionToggle( int index )
else
{
portLine->setText( SMTP_PORT );
+ CommandEdit->hide();
}
}
diff --git a/kmicromail/libmailwrapper/smtpwrapper.cpp b/kmicromail/libmailwrapper/smtpwrapper.cpp
index 872a460..845c71c 100644
--- a/kmicromail/libmailwrapper/smtpwrapper.cpp
+++ b/kmicromail/libmailwrapper/smtpwrapper.cpp
@@ -244,7 +244,7 @@ void SMTPwrapper::connect_server()
failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err));
}
}
- if (try_tls) {
+ if (result && try_tls) {
qDebug("Smpt: Try tls ");
err = start_smtp_tls();
if (err != MAILSMTP_NO_ERROR) {
@@ -252,6 +252,8 @@ void SMTPwrapper::connect_server()
qDebug("no tls ");
} else {
err = mailesmtp_ehlo(m_smtp);
+ if ( err != MAILSMTP_NO_ERROR )
+ result = 0;
}
}
//qDebug("mailesmtp_ehlo %d ",err );
@@ -290,6 +292,10 @@ void SMTPwrapper::connect_server()
}
}
}
+ if ( result == 0 ) {
+ mailsmtp_free(m_smtp);
+ m_smtp = 0;
+ }
}
void SMTPwrapper::disc_server()
@@ -346,7 +352,11 @@ bool SMTPwrapper::sendMail(const Opie::Core::OSmartPointer<Mail>&mail,bool later
sendProgress->hide();
delete sendProgress;
sendProgress = 0;
- mailmime_free( mimeMail );
+ mailmime_free( mimeMail );
+ if ( m_smtp ) {
+ mailsmtp_free(m_smtp);
+ m_smtp = 0;
+ }
}
return result;
}
@@ -458,6 +468,7 @@ bool SMTPwrapper::flushOutbox() {
m_SmtpAccount->setUser(oldUser);
m_SmtpAccount->setPassword(oldPw);
}
+
KConfig cfg( locateLocal("config", "kopiemailrc" ) );
cfg.setGroup( "Status" );
m_queuedMail = mailsToSend.count();
@@ -467,6 +478,10 @@ bool SMTPwrapper::flushOutbox() {
delete sendProgress;
sendProgress = 0;
wrap->deleteMails(mbox,mailsToRemove);
- delete wrap;
+ delete wrap;
+ if ( m_smtp ) {
+ mailsmtp_free(m_smtp);
+ m_smtp = 0;
+ }
return returnValue;
}