-rw-r--r-- | kmicromail/libmailwrapper/smtpwrapper.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/kmicromail/libmailwrapper/smtpwrapper.cpp b/kmicromail/libmailwrapper/smtpwrapper.cpp index 448a2e9..a6c12e4 100644 --- a/kmicromail/libmailwrapper/smtpwrapper.cpp +++ b/kmicromail/libmailwrapper/smtpwrapper.cpp @@ -214,16 +214,17 @@ void SMTPwrapper::connect_server() port = m_SmtpAccount->getPort().toUInt(); m_smtp = mailsmtp_new( 20, &progress ); if ( m_smtp == NULL ) { /* no failure message cause this happens when problems with memory - than we we can not display any messagebox */ return; } + //m_smtp->auth = MAILSMTP_AUTH_LOGIN; int err = MAILSMTP_NO_ERROR; ; // odebug << "Servername " << server << " at port " << port << "" << oendl; if ( ssl ) { qDebug("smtp: ssl_connect "); err = mailsmtp_ssl_connect( m_smtp, server.latin1(), port ); } else { ; // odebug << "No SSL session" << oendl; @@ -247,29 +248,38 @@ void SMTPwrapper::connect_server() } if (result && try_tls) { qDebug("Smpt: Try TLS... "); err = start_smtp_tls(); if (err != MAILSMTP_NO_ERROR) { try_tls = false; qDebug("Smpt: No TLS possible "); } else { - err = mailesmtp_ehlo(m_smtp); - if ( err != MAILSMTP_NO_ERROR ) - result = 0; - else - qDebug("Smpt: Using TLS "); + qDebug("Smpt: Using TLS "); } } + //qDebug("mailesmtp_ehlo %d ",err ); if (!try_tls && force_tls) { result = 0; failuretext = i18n("Error init SMTP tls:%1").arg(mailsmtpError(err)); + } + if ( mailesmtp_ehlo(m_smtp) != MAILSMTP_NO_ERROR ) { + qDebug("Smpt: ehlo failed "); + result = 0; } - + else { + //qDebug("Smpt: auth is %d -- %d %d",m_smtp->auth, MAILSMTP_AUTH_LOGIN, MAILSMTP_AUTH_PLAIN); + if ( m_smtp->auth & MAILSMTP_AUTH_LOGIN && m_smtp->auth & MAILSMTP_AUTH_PLAIN ) { + qDebug("Smpt: Using MAILSMTP_AUTH_LOGIN "); + m_smtp->auth -= MAILSMTP_AUTH_PLAIN; + //qDebug("Smpt: auth is %d -- %d %d",m_smtp->auth, MAILSMTP_AUTH_LOGIN, MAILSMTP_AUTH_PLAIN); + } + } + if (result==1 && m_SmtpAccount->getLogin() ) { ; // odebug << "smtp with auth" << oendl; if ( m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty() ) { // get'em LoginDialog login( m_SmtpAccount->getUser(), m_SmtpAccount->getPassword(), NULL, 0, true ); login.show(); if ( QDialog::Accepted == login.exec() ) { |