summaryrefslogtreecommitdiffabout
path: root/kmicromail
Unidiff
Diffstat (limited to 'kmicromail') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/libmailwrapper/abstractmail.cpp3
-rw-r--r--kmicromail/libmailwrapper/smtpwrapper.cpp7
2 files changed, 8 insertions, 2 deletions
diff --git a/kmicromail/libmailwrapper/abstractmail.cpp b/kmicromail/libmailwrapper/abstractmail.cpp
index ed5c898..870985e 100644
--- a/kmicromail/libmailwrapper/abstractmail.cpp
+++ b/kmicromail/libmailwrapper/abstractmail.cpp
@@ -163,48 +163,51 @@ void AbstractMail::deleteMailList(const QValueList<RecMailP>&target)
163 163
164void AbstractMail::downloadNewMails(const FolderP&fromFolder, AbstractMail*targetMail ) 164void AbstractMail::downloadNewMails(const FolderP&fromFolder, AbstractMail*targetMail )
165{ 165{
166 //qDebug("AbstractMail::downloadNewMails %s ", fromFolder->getName().latin1()); 166 //qDebug("AbstractMail::downloadNewMails %s ", fromFolder->getName().latin1());
167 // get local folder 167 // get local folder
168 Account * acc = getAccount(); 168 Account * acc = getAccount();
169 if ( !acc ) return; 169 if ( !acc ) return;
170 QString lfName = acc->getLocalFolder(); 170 QString lfName = acc->getLocalFolder();
171 if ( lfName.isEmpty() ) 171 if ( lfName.isEmpty() )
172 lfName = acc->getAccountName(); 172 lfName = acc->getAccountName();
173 // create local folder 173 // create local folder
174 if ( !targetMail->createMbox(lfName)) 174 if ( !targetMail->createMbox(lfName))
175 { 175 {
176 QMessageBox::critical(0,i18n("Error creating new Folder"), 176 QMessageBox::critical(0,i18n("Error creating new Folder"),
177 i18n("Error while creating new folder\n%1\n\nCancelling action.").arg(lfName)); 177 i18n("Error while creating new folder\n%1\n\nCancelling action.").arg(lfName));
178 return; 178 return;
179 } 179 }
180 QValueList<RecMailP> t; 180 QValueList<RecMailP> t;
181 listMessages(fromFolder->getName(),t,acc->getMaxMailSize() ); 181 listMessages(fromFolder->getName(),t,acc->getMaxMailSize() );
182 if ( t.count() == 0 ) { 182 if ( t.count() == 0 ) {
183 qDebug("There are no new messages %s", fromFolder->getName().latin1()); 183 qDebug("There are no new messages %s", fromFolder->getName().latin1());
184 Global::statusMessage(i18n("There are no new messages")); 184 Global::statusMessage(i18n("There are no new messages"));
185 return; 185 return;
186 } 186 }
187 Global::statusMessage(i18n("%1 :Downloading mails..."). arg(acc->getAccountName()));
188 qDebug(i18n("%1 :Downloading mails..."). arg(acc->getAccountName()));
189 qApp->processEvents();
187 QValueList<RecMailP> e; 190 QValueList<RecMailP> e;
188 targetMail->listMessages(lfName,e,acc->getMaxMailSize() ); 191 targetMail->listMessages(lfName,e,acc->getMaxMailSize() );
189 //qDebug("target has mails %d ", e.count()); 192 //qDebug("target has mails %d ", e.count());
190 QValueList<RecMailP> n; 193 QValueList<RecMailP> n;
191 int iii = 0; 194 int iii = 0;
192 int count = t.count(); 195 int count = t.count();
193 while (iii < count ) { 196 while (iii < count ) {
194 RecMailP r = (*t.at( iii )); 197 RecMailP r = (*t.at( iii ));
195 bool found = false; 198 bool found = false;
196 int jjj = 0; 199 int jjj = 0;
197 int countE = e.count(); 200 int countE = e.count();
198 while (jjj < countE ) { 201 while (jjj < countE ) {
199 RecMailP re = (*e.at( jjj )); 202 RecMailP re = (*e.at( jjj ));
200 if ( re->isEqual(r) ) { 203 if ( re->isEqual(r) ) {
201 found = true; 204 found = true;
202 break; 205 break;
203 } 206 }
204 ++jjj; 207 ++jjj;
205 } 208 }
206 if ( !found ) { 209 if ( !found ) {
207 //qDebug("AAAdate *%s* ", r->isodate.latin1() ); 210 //qDebug("AAAdate *%s* ", r->isodate.latin1() );
208 n.append( r ); 211 n.append( r );
209 } 212 }
210 ++iii; 213 ++iii;
diff --git a/kmicromail/libmailwrapper/smtpwrapper.cpp b/kmicromail/libmailwrapper/smtpwrapper.cpp
index 845c71c..448a2e9 100644
--- a/kmicromail/libmailwrapper/smtpwrapper.cpp
+++ b/kmicromail/libmailwrapper/smtpwrapper.cpp
@@ -185,96 +185,99 @@ int SMTPwrapper::start_smtp_tls()
185 return MAILSMTP_ERROR_IN_PROCESSING; 185 return MAILSMTP_ERROR_IN_PROCESSING;
186 } 186 }
187 return err; 187 return err;
188} 188}
189 189
190void SMTPwrapper::connect_server() 190void SMTPwrapper::connect_server()
191{ 191{
192 QString server, user, pass; 192 QString server, user, pass;
193 bool ssl; 193 bool ssl;
194 uint16_t port; 194 uint16_t port;
195 ssl = false; 195 ssl = false;
196 bool try_tls = false; 196 bool try_tls = false;
197 bool force_tls=false; 197 bool force_tls=false;
198 QString failuretext = ""; 198 QString failuretext = "";
199 199
200 if (m_smtp || !m_SmtpAccount) { 200 if (m_smtp || !m_SmtpAccount) {
201 return; 201 return;
202 } 202 }
203 server = m_SmtpAccount->getServer(); 203 server = m_SmtpAccount->getServer();
204 if ( m_SmtpAccount->ConnectionType() == 3 ) { 204 if ( m_SmtpAccount->ConnectionType() == 3 ) {
205 ssl = true; 205 ssl = true;
206 try_tls = false; 206 try_tls = false;
207 } else if (m_SmtpAccount->ConnectionType() == 2) { 207 } else if (m_SmtpAccount->ConnectionType() == 2) {
208 force_tls = true; 208 force_tls = true;
209 try_tls = true;
209 } else if (m_SmtpAccount->ConnectionType() == 1) { 210 } else if (m_SmtpAccount->ConnectionType() == 1) {
210 try_tls = true; 211 try_tls = true;
211 } 212 }
212 int result = 1; 213 int result = 1;
213 port = m_SmtpAccount->getPort().toUInt(); 214 port = m_SmtpAccount->getPort().toUInt();
214 215
215 m_smtp = mailsmtp_new( 20, &progress ); 216 m_smtp = mailsmtp_new( 20, &progress );
216 if ( m_smtp == NULL ) { 217 if ( m_smtp == NULL ) {
217 /* no failure message cause this happens when problems with memory - than we 218 /* no failure message cause this happens when problems with memory - than we
218 we can not display any messagebox */ 219 we can not display any messagebox */
219 return; 220 return;
220 } 221 }
221 222
222 int err = MAILSMTP_NO_ERROR; 223 int err = MAILSMTP_NO_ERROR;
223 ; // odebug << "Servername " << server << " at port " << port << "" << oendl; 224 ; // odebug << "Servername " << server << " at port " << port << "" << oendl;
224 if ( ssl ) { 225 if ( ssl ) {
225 qDebug("smtp: ssl_connect "); 226 qDebug("smtp: ssl_connect ");
226 err = mailsmtp_ssl_connect( m_smtp, server.latin1(), port ); 227 err = mailsmtp_ssl_connect( m_smtp, server.latin1(), port );
227 } else { 228 } else {
228 ; // odebug << "No SSL session" << oendl; 229 ; // odebug << "No SSL session" << oendl;
229 err = mailsmtp_socket_connect( m_smtp, server.latin1(), port ); 230 err = mailsmtp_socket_connect( m_smtp, server.latin1(), port );
230 } 231 }
231 if ( err != MAILSMTP_NO_ERROR ) { 232 if ( err != MAILSMTP_NO_ERROR ) {
232 qDebug("Error init SMTP connection" ); 233 qDebug("Error init SMTP connection" );
233 failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err)); 234 failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err));
234 result = 0; 235 result = 0;
235 } 236 }
236 237
237 qDebug("SMTP connection inited "); 238 qDebug("SMTP connection inited ");
238 /* switch to tls after init 'cause there it will send the ehlo */ 239 /* switch to tls after init 'cause there it will send the ehlo */
239 if (result) { 240 if (result) {
240 err = mailsmtp_init( m_smtp ); 241 err = mailsmtp_init( m_smtp );
241 if (err != MAILSMTP_NO_ERROR) { 242 if (err != MAILSMTP_NO_ERROR) {
242 result = 0; 243 result = 0;
243 qDebug("Error init SMTP connection "); 244 qDebug("Error init SMTP connection ");
244 failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err)); 245 failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err));
245 } 246 }
246 } 247 }
247 if (result && try_tls) { 248 if (result && try_tls) {
248 qDebug("Smpt: Try tls "); 249 qDebug("Smpt: Try TLS... ");
249 err = start_smtp_tls(); 250 err = start_smtp_tls();
250 if (err != MAILSMTP_NO_ERROR) { 251 if (err != MAILSMTP_NO_ERROR) {
251 try_tls = false; 252 try_tls = false;
252 qDebug("no tls "); 253 qDebug("Smpt: No TLS possible ");
253 } else { 254 } else {
254 err = mailesmtp_ehlo(m_smtp); 255 err = mailesmtp_ehlo(m_smtp);
255 if ( err != MAILSMTP_NO_ERROR ) 256 if ( err != MAILSMTP_NO_ERROR )
256 result = 0; 257 result = 0;
258 else
259 qDebug("Smpt: Using TLS ");
257 } 260 }
258 } 261 }
259 //qDebug("mailesmtp_ehlo %d ",err ); 262 //qDebug("mailesmtp_ehlo %d ",err );
260 if (!try_tls && force_tls) { 263 if (!try_tls && force_tls) {
261 result = 0; 264 result = 0;
262 failuretext = i18n("Error init SMTP tls:%1").arg(mailsmtpError(err)); 265 failuretext = i18n("Error init SMTP tls:%1").arg(mailsmtpError(err));
263 } 266 }
264 267
265 if (result==1 && m_SmtpAccount->getLogin() ) { 268 if (result==1 && m_SmtpAccount->getLogin() ) {
266 ; // odebug << "smtp with auth" << oendl; 269 ; // odebug << "smtp with auth" << oendl;
267 if ( m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty() ) { 270 if ( m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty() ) {
268 // get'em 271 // get'em
269 LoginDialog login( m_SmtpAccount->getUser(), 272 LoginDialog login( m_SmtpAccount->getUser(),
270 m_SmtpAccount->getPassword(), NULL, 0, true ); 273 m_SmtpAccount->getPassword(), NULL, 0, true );
271 login.show(); 274 login.show();
272 if ( QDialog::Accepted == login.exec() ) { 275 if ( QDialog::Accepted == login.exec() ) {
273 // ok 276 // ok
274 user = login.getUser(); 277 user = login.getUser();
275 pass = login.getPassword(); 278 pass = login.getPassword();
276 } else { 279 } else {
277 result = 0; 280 result = 0;
278 failuretext=i18n("Login aborted - \nstoring mail to localfolder"); 281 failuretext=i18n("Login aborted - \nstoring mail to localfolder");
279 } 282 }
280 } else { 283 } else {