author | zautrix <zautrix> | 2005-03-11 19:26:02 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-03-11 19:26:02 (UTC) |
commit | 1166a4797a91cedd5002a3513d5028c5e86016f0 (patch) (unidiff) | |
tree | 8e7443bc887a15dcf3852abd36e6e61f2e6bddad /kmicromail | |
parent | 71462ba8ef1803787bba6793f1adb85987eb57df (diff) | |
download | kdepimpi-1166a4797a91cedd5002a3513d5028c5e86016f0.zip kdepimpi-1166a4797a91cedd5002a3513d5028c5e86016f0.tar.gz kdepimpi-1166a4797a91cedd5002a3513d5028c5e86016f0.tar.bz2 |
better kopi export
-rw-r--r-- | kmicromail/editaccounts.cpp | 12 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/smtpwrapper.cpp | 21 |
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 | |||
@@ -326,57 +326,59 @@ void SelectMailType::slotSelection( const QString &sel ) | |||
326 | */ | 326 | */ |
327 | 327 | ||
328 | IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | 328 | IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) |
329 | : IMAPconfigUI( parent, name, modal, flags ) | 329 | : IMAPconfigUI( parent, name, modal, flags ) |
330 | { | 330 | { |
331 | data = account; | 331 | data = account; |
332 | 332 | ||
333 | //fillValues(); | 333 | //fillValues(); |
334 | 334 | ||
335 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); | 335 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); |
336 | ComboBox1->insertItem( "Only if available", 0 ); | 336 | ComboBox1->insertItem( "Only if available", 0 ); |
337 | ComboBox1->insertItem( "Always, Negotiated", 1 ); | 337 | ComboBox1->insertItem( "Always, Negotiated", 1 ); |
338 | ComboBox1->insertItem( "Connect on secure port", 2 ); | 338 | ComboBox1->insertItem( "Connect on secure port", 2 ); |
339 | ComboBox1->insertItem( "Run command instead", 3 ); | 339 | ComboBox1->insertItem( "Run command instead", 3 ); |
340 | CommandEdit->hide(); | 340 | CommandEdit->hide(); |
341 | fillValues(); | 341 | fillValues(); |
342 | // ComboBox1->setCurrentItem( data->ConnectionType() ); | 342 | // ComboBox1->setCurrentItem( data->ConnectionType() ); |
343 | } | 343 | } |
344 | 344 | ||
345 | void IMAPconfig::slotConnectionToggle( int index ) | 345 | void IMAPconfig::slotConnectionToggle( int index ) |
346 | { | 346 | { |
347 | if ( index == 2 ) | 347 | if ( index == 2 ) |
348 | { | 348 | { |
349 | portLine->setText( IMAP_SSL_PORT ); | 349 | portLine->setText( IMAP_SSL_PORT ); |
350 | CommandEdit->hide(); | ||
350 | } | 351 | } |
351 | else if ( index == 3 ) | 352 | else if ( index == 3 ) |
352 | { | 353 | { |
353 | portLine->setText( IMAP_PORT ); | 354 | portLine->setText( IMAP_PORT ); |
354 | CommandEdit->show(); | 355 | CommandEdit->show(); |
355 | } | 356 | } |
356 | else | 357 | else |
357 | { | 358 | { |
358 | portLine->setText( IMAP_PORT ); | 359 | portLine->setText( IMAP_PORT ); |
360 | CommandEdit->hide(); | ||
359 | } | 361 | } |
360 | } | 362 | } |
361 | 363 | ||
362 | void IMAPconfig::fillValues() | 364 | void IMAPconfig::fillValues() |
363 | { | 365 | { |
364 | accountLine->setText( data->getAccountName() ); | 366 | accountLine->setText( data->getAccountName() ); |
365 | serverLine->setText( data->getServer() ); | 367 | serverLine->setText( data->getServer() ); |
366 | portLine->setText( data->getPort() ); | 368 | portLine->setText( data->getPort() ); |
367 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 369 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
368 | userLine->setText( data->getUser() ); | 370 | userLine->setText( data->getUser() ); |
369 | passLine->setText( data->getPassword() ); | 371 | passLine->setText( data->getPassword() ); |
370 | prefixLine->setText(data->getPrefix()); | 372 | prefixLine->setText(data->getPrefix()); |
371 | localFolder->setText( data->getLocalFolder() ); | 373 | localFolder->setText( data->getLocalFolder() ); |
372 | int max = data->getMaxMailSize() ; | 374 | int max = data->getMaxMailSize() ; |
373 | if ( max ) { | 375 | if ( max ) { |
374 | CheckBoxDown->setChecked( true ); | 376 | CheckBoxDown->setChecked( true ); |
375 | SpinBoxDown->setValue ( max ); | 377 | SpinBoxDown->setValue ( max ); |
376 | } else { | 378 | } else { |
377 | CheckBoxDown->setChecked( false ); | 379 | CheckBoxDown->setChecked( false ); |
378 | SpinBoxDown->setValue ( 5 ); | 380 | SpinBoxDown->setValue ( 5 ); |
379 | } | 381 | } |
380 | CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() ); | 382 | CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() ); |
381 | } | 383 | } |
382 | 384 | ||
@@ -407,57 +409,59 @@ void IMAPconfig::accept() | |||
407 | */ | 409 | */ |
408 | 410 | ||
409 | POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | 411 | POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, WFlags flags ) |
410 | : POP3configUI( parent, name, modal, flags ) | 412 | : POP3configUI( parent, name, modal, flags ) |
411 | { | 413 | { |
412 | data = account; | 414 | data = account; |
413 | //fillValues(); | 415 | //fillValues(); |
414 | 416 | ||
415 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); | 417 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); |
416 | ComboBox1->insertItem( "Only if available", 0 ); | 418 | ComboBox1->insertItem( "Only if available", 0 ); |
417 | ComboBox1->insertItem( "Always, Negotiated", 1 ); | 419 | ComboBox1->insertItem( "Always, Negotiated", 1 ); |
418 | ComboBox1->insertItem( "Connect on secure port", 2 ); | 420 | ComboBox1->insertItem( "Connect on secure port", 2 ); |
419 | ComboBox1->insertItem( "Run command instead", 3 ); | 421 | ComboBox1->insertItem( "Run command instead", 3 ); |
420 | CommandEdit->hide(); | 422 | CommandEdit->hide(); |
421 | fillValues(); | 423 | fillValues(); |
422 | //ComboBox1->setCurrentItem( data->ConnectionType() ); | 424 | //ComboBox1->setCurrentItem( data->ConnectionType() ); |
423 | } | 425 | } |
424 | 426 | ||
425 | void POP3config::slotConnectionToggle( int index ) | 427 | void POP3config::slotConnectionToggle( int index ) |
426 | { | 428 | { |
427 | // 2 is ssl connection | 429 | // 2 is ssl connection |
428 | if ( index == 2 ) | 430 | if ( index == 2 ) |
429 | { | 431 | { |
430 | portLine->setText( POP3_SSL_PORT ); | 432 | portLine->setText( POP3_SSL_PORT ); |
433 | CommandEdit->hide(); | ||
431 | } | 434 | } |
432 | else if ( index == 3 ) | 435 | else if ( index == 3 ) |
433 | { | 436 | { |
434 | portLine->setText( POP3_PORT ); | 437 | portLine->setText( POP3_PORT ); |
435 | CommandEdit->show(); | 438 | CommandEdit->show(); |
436 | } | 439 | } |
437 | else | 440 | else |
438 | { | 441 | { |
439 | portLine->setText( POP3_PORT ); | 442 | portLine->setText( POP3_PORT ); |
443 | CommandEdit->hide(); | ||
440 | } | 444 | } |
441 | } | 445 | } |
442 | 446 | ||
443 | void POP3config::fillValues() | 447 | void POP3config::fillValues() |
444 | { | 448 | { |
445 | accountLine->setText( data->getAccountName() ); | 449 | accountLine->setText( data->getAccountName() ); |
446 | serverLine->setText( data->getServer() ); | 450 | serverLine->setText( data->getServer() ); |
447 | portLine->setText( data->getPort() ); | 451 | portLine->setText( data->getPort() ); |
448 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 452 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
449 | userLine->setText( data->getUser() ); | 453 | userLine->setText( data->getUser() ); |
450 | passLine->setText( data->getPassword() ); | 454 | passLine->setText( data->getPassword() ); |
451 | localFolder->setText( data->getLocalFolder() ); | 455 | localFolder->setText( data->getLocalFolder() ); |
452 | int max = data->getMaxMailSize() ; | 456 | int max = data->getMaxMailSize() ; |
453 | if ( max ) { | 457 | if ( max ) { |
454 | CheckBoxDown->setChecked( true ); | 458 | CheckBoxDown->setChecked( true ); |
455 | SpinBoxDown->setValue ( max ); | 459 | SpinBoxDown->setValue ( max ); |
456 | } else { | 460 | } else { |
457 | CheckBoxDown->setChecked( false ); | 461 | CheckBoxDown->setChecked( false ); |
458 | SpinBoxDown->setValue ( 5 ); | 462 | SpinBoxDown->setValue ( 5 ); |
459 | } | 463 | } |
460 | CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() ); | 464 | CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() ); |
461 | } | 465 | } |
462 | 466 | ||
463 | void POP3config::accept() | 467 | void POP3config::accept() |
@@ -499,61 +503,63 @@ SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, | |||
499 | icon = SmallIcon("fileopen"); | 503 | icon = SmallIcon("fileopen"); |
500 | SignaturButton->setText(""); | 504 | SignaturButton->setText(""); |
501 | SignaturButton->setIconSet (icon ) ; | 505 | SignaturButton->setIconSet (icon ) ; |
502 | SignaturButton->setMaximumSize ( SignaturButton->sizeHint().height()+4,SignaturButton->sizeHint().height()) ; | 506 | SignaturButton->setMaximumSize ( SignaturButton->sizeHint().height()+4,SignaturButton->sizeHint().height()) ; |
503 | connect( SignaturButton, SIGNAL( clicked() ), this, SLOT( chooseSig() ) ); | 507 | connect( SignaturButton, SIGNAL( clicked() ), this, SLOT( chooseSig() ) ); |
504 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); | 508 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); |
505 | ComboBox1->insertItem( "No secure connection, no TLS", 0 ); | 509 | ComboBox1->insertItem( "No secure connection, no TLS", 0 ); |
506 | ComboBox1->insertItem( "Only if available, try TLS", 1 ); | 510 | ComboBox1->insertItem( "Only if available, try TLS", 1 ); |
507 | ComboBox1->insertItem( "Always, use TLS", 2 ); | 511 | ComboBox1->insertItem( "Always, use TLS", 2 ); |
508 | ComboBox1->insertItem( "Connect on secure port (SSL)", 3 ); | 512 | ComboBox1->insertItem( "Connect on secure port (SSL)", 3 ); |
509 | ComboBox1->insertItem( "Run command instead", 4 ); | 513 | ComboBox1->insertItem( "Run command instead", 4 ); |
510 | CommandEdit->hide(); | 514 | CommandEdit->hide(); |
511 | fillValues(); | 515 | fillValues(); |
512 | //ComboBox1->setCurrentItem( data->ConnectionType() ); | 516 | //ComboBox1->setCurrentItem( data->ConnectionType() ); |
513 | } | 517 | } |
514 | void SMTPconfig::chooseSig() | 518 | void SMTPconfig::chooseSig() |
515 | { | 519 | { |
516 | QString lnk = KFileDialog::getOpenFileName( "", "Choose Signatur File", this ); | 520 | QString lnk = KFileDialog::getOpenFileName( "", "Choose Signatur File", this ); |
517 | if ( !lnk.isEmpty() ) { | 521 | if ( !lnk.isEmpty() ) { |
518 | SignaturEdit->setText( lnk ); | 522 | SignaturEdit->setText( lnk ); |
519 | } | 523 | } |
520 | } | 524 | } |
521 | void SMTPconfig::slotConnectionToggle( int index ) | 525 | void SMTPconfig::slotConnectionToggle( int index ) |
522 | { | 526 | { |
523 | // 2 is ssl connection | 527 | // 3 is ssl connection |
524 | if ( index == 2 ) | 528 | if ( index == 3 ) |
525 | { | 529 | { |
526 | portLine->setText( SMTP_SSL_PORT ); | 530 | portLine->setText( SMTP_SSL_PORT ); |
531 | CommandEdit->hide(); | ||
527 | } | 532 | } |
528 | else if ( index == 3 ) | 533 | else if ( index == 4 ) |
529 | { | 534 | { |
530 | portLine->setText( SMTP_PORT ); | 535 | portLine->setText( SMTP_PORT ); |
531 | CommandEdit->show(); | 536 | CommandEdit->show(); |
532 | } | 537 | } |
533 | else | 538 | else |
534 | { | 539 | { |
535 | portLine->setText( SMTP_PORT ); | 540 | portLine->setText( SMTP_PORT ); |
541 | CommandEdit->hide(); | ||
536 | } | 542 | } |
537 | } | 543 | } |
538 | 544 | ||
539 | void SMTPconfig::fillValues() | 545 | void SMTPconfig::fillValues() |
540 | { | 546 | { |
541 | accountLine->setText( data->getAccountName() ); | 547 | accountLine->setText( data->getAccountName() ); |
542 | serverLine->setText( data->getServer() ); | 548 | serverLine->setText( data->getServer() ); |
543 | portLine->setText( data->getPort() ); | 549 | portLine->setText( data->getPort() ); |
544 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 550 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
545 | loginBox->setChecked( data->getLogin() ); | 551 | loginBox->setChecked( data->getLogin() ); |
546 | userLine->setText( data->getUser() ); | 552 | userLine->setText( data->getUser() ); |
547 | passLine->setText( data->getPassword() ); | 553 | passLine->setText( data->getPassword() ); |
548 | SignaturEdit->setText( data->getSigFile() ); | 554 | SignaturEdit->setText( data->getSigFile() ); |
549 | } | 555 | } |
550 | 556 | ||
551 | void SMTPconfig::accept() | 557 | void SMTPconfig::accept() |
552 | { | 558 | { |
553 | data->setAccountName( accountLine->text() ); | 559 | data->setAccountName( accountLine->text() ); |
554 | data->setServer( serverLine->text() ); | 560 | data->setServer( serverLine->text() ); |
555 | data->setPort( portLine->text() ); | 561 | data->setPort( portLine->text() ); |
556 | data->setConnectionType( ComboBox1->currentItem() ); | 562 | data->setConnectionType( ComboBox1->currentItem() ); |
557 | data->setLogin( loginBox->isChecked() ); | 563 | data->setLogin( loginBox->isChecked() ); |
558 | data->setUser( userLine->text() ); | 564 | data->setUser( userLine->text() ); |
559 | data->setPassword( passLine->text() ); | 565 | data->setPassword( passLine->text() ); |
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 | |||
@@ -223,94 +223,100 @@ void SMTPwrapper::connect_server() | |||
223 | ; // odebug << "Servername " << server << " at port " << port << "" << oendl; | 223 | ; // odebug << "Servername " << server << " at port " << port << "" << oendl; |
224 | if ( ssl ) { | 224 | if ( ssl ) { |
225 | qDebug("smtp: ssl_connect "); | 225 | qDebug("smtp: ssl_connect "); |
226 | err = mailsmtp_ssl_connect( m_smtp, server.latin1(), port ); | 226 | err = mailsmtp_ssl_connect( m_smtp, server.latin1(), port ); |
227 | } else { | 227 | } else { |
228 | ; // odebug << "No SSL session" << oendl; | 228 | ; // odebug << "No SSL session" << oendl; |
229 | err = mailsmtp_socket_connect( m_smtp, server.latin1(), port ); | 229 | err = mailsmtp_socket_connect( m_smtp, server.latin1(), port ); |
230 | } | 230 | } |
231 | if ( err != MAILSMTP_NO_ERROR ) { | 231 | if ( err != MAILSMTP_NO_ERROR ) { |
232 | qDebug("Error init SMTP connection" ); | 232 | qDebug("Error init SMTP connection" ); |
233 | failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err)); | 233 | failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err)); |
234 | result = 0; | 234 | result = 0; |
235 | } | 235 | } |
236 | 236 | ||
237 | qDebug("SMTP connection inited "); | 237 | qDebug("SMTP connection inited "); |
238 | /* switch to tls after init 'cause there it will send the ehlo */ | 238 | /* switch to tls after init 'cause there it will send the ehlo */ |
239 | if (result) { | 239 | if (result) { |
240 | err = mailsmtp_init( m_smtp ); | 240 | err = mailsmtp_init( m_smtp ); |
241 | if (err != MAILSMTP_NO_ERROR) { | 241 | if (err != MAILSMTP_NO_ERROR) { |
242 | result = 0; | 242 | result = 0; |
243 | qDebug("Error init SMTP connection "); | 243 | qDebug("Error init SMTP connection "); |
244 | failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err)); | 244 | failuretext = i18n("Error init SMTP connection:\n%1").arg(mailsmtpError(err)); |
245 | } | 245 | } |
246 | } | 246 | } |
247 | if (try_tls) { | 247 | if (result && try_tls) { |
248 | qDebug("Smpt: Try tls "); | 248 | qDebug("Smpt: Try tls "); |
249 | err = start_smtp_tls(); | 249 | err = start_smtp_tls(); |
250 | if (err != MAILSMTP_NO_ERROR) { | 250 | if (err != MAILSMTP_NO_ERROR) { |
251 | try_tls = false; | 251 | try_tls = false; |
252 | qDebug("no tls "); | 252 | qDebug("no tls "); |
253 | } else { | 253 | } else { |
254 | err = mailesmtp_ehlo(m_smtp); | 254 | err = mailesmtp_ehlo(m_smtp); |
255 | if ( err != MAILSMTP_NO_ERROR ) | ||
256 | result = 0; | ||
255 | } | 257 | } |
256 | } | 258 | } |
257 | //qDebug("mailesmtp_ehlo %d ",err ); | 259 | //qDebug("mailesmtp_ehlo %d ",err ); |
258 | if (!try_tls && force_tls) { | 260 | if (!try_tls && force_tls) { |
259 | result = 0; | 261 | result = 0; |
260 | failuretext = i18n("Error init SMTP tls:%1").arg(mailsmtpError(err)); | 262 | failuretext = i18n("Error init SMTP tls:%1").arg(mailsmtpError(err)); |
261 | } | 263 | } |
262 | 264 | ||
263 | if (result==1 && m_SmtpAccount->getLogin() ) { | 265 | if (result==1 && m_SmtpAccount->getLogin() ) { |
264 | ; // odebug << "smtp with auth" << oendl; | 266 | ; // odebug << "smtp with auth" << oendl; |
265 | if ( m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty() ) { | 267 | if ( m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty() ) { |
266 | // get'em | 268 | // get'em |
267 | LoginDialog login( m_SmtpAccount->getUser(), | 269 | LoginDialog login( m_SmtpAccount->getUser(), |
268 | m_SmtpAccount->getPassword(), NULL, 0, true ); | 270 | m_SmtpAccount->getPassword(), NULL, 0, true ); |
269 | login.show(); | 271 | login.show(); |
270 | if ( QDialog::Accepted == login.exec() ) { | 272 | if ( QDialog::Accepted == login.exec() ) { |
271 | // ok | 273 | // ok |
272 | user = login.getUser(); | 274 | user = login.getUser(); |
273 | pass = login.getPassword(); | 275 | pass = login.getPassword(); |
274 | } else { | 276 | } else { |
275 | result = 0; | 277 | result = 0; |
276 | failuretext=i18n("Login aborted - \nstoring mail to localfolder"); | 278 | failuretext=i18n("Login aborted - \nstoring mail to localfolder"); |
277 | } | 279 | } |
278 | } else { | 280 | } else { |
279 | user = m_SmtpAccount->getUser(); | 281 | user = m_SmtpAccount->getUser(); |
280 | pass = m_SmtpAccount->getPassword(); | 282 | pass = m_SmtpAccount->getPassword(); |
281 | } | 283 | } |
282 | ; // odebug << "session->auth: " << m_smtp->auth << "" << oendl; | 284 | ; // odebug << "session->auth: " << m_smtp->auth << "" << oendl; |
283 | if (result) { | 285 | if (result) { |
284 | err = mailsmtp_auth( m_smtp, (char*)user.latin1(), (char*)pass.latin1() ); | 286 | err = mailsmtp_auth( m_smtp, (char*)user.latin1(), (char*)pass.latin1() ); |
285 | if ( err == MAILSMTP_NO_ERROR ) { | 287 | if ( err == MAILSMTP_NO_ERROR ) { |
286 | qDebug("Smtp authentification ok "); | 288 | qDebug("Smtp authentification ok "); |
287 | } else { | 289 | } else { |
288 | failuretext = i18n("Authentification failed"); | 290 | failuretext = i18n("Authentification failed"); |
289 | result = 0; | 291 | result = 0; |
290 | } | 292 | } |
291 | } | 293 | } |
292 | } | 294 | } |
295 | if ( result == 0 ) { | ||
296 | mailsmtp_free(m_smtp); | ||
297 | m_smtp = 0; | ||
298 | } | ||
293 | } | 299 | } |
294 | 300 | ||
295 | void SMTPwrapper::disc_server() | 301 | void SMTPwrapper::disc_server() |
296 | { | 302 | { |
297 | if (m_smtp) { | 303 | if (m_smtp) { |
298 | mailsmtp_quit( m_smtp ); | 304 | mailsmtp_quit( m_smtp ); |
299 | mailsmtp_free( m_smtp ); | 305 | mailsmtp_free( m_smtp ); |
300 | m_smtp = 0; | 306 | m_smtp = 0; |
301 | } | 307 | } |
302 | } | 308 | } |
303 | 309 | ||
304 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) | 310 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) |
305 | { | 311 | { |
306 | int err,result; | 312 | int err,result; |
307 | QString failuretext = ""; | 313 | QString failuretext = ""; |
308 | 314 | ||
309 | connect_server(); | 315 | connect_server(); |
310 | 316 | ||
311 | result = 1; | 317 | result = 1; |
312 | if (m_smtp) { | 318 | if (m_smtp) { |
313 | err = mailsmtp_send( m_smtp, from, rcpts, data, size ); | 319 | err = mailsmtp_send( m_smtp, from, rcpts, data, size ); |
314 | if ( err != MAILSMTP_NO_ERROR ) { | 320 | if ( err != MAILSMTP_NO_ERROR ) { |
315 | qDebug("Error sending mail"); | 321 | qDebug("Error sending mail"); |
316 | failuretext=i18n("Error sending mail:\n%1").arg(mailsmtpError(err)); | 322 | failuretext=i18n("Error sending mail:\n%1").arg(mailsmtpError(err)); |
@@ -325,49 +331,53 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) | |||
325 | } else { | 331 | } else { |
326 | ; // odebug << "Mail sent." << oendl; | 332 | ; // odebug << "Mail sent." << oendl; |
327 | storeMail(data,size,"Sent"); | 333 | storeMail(data,size,"Sent"); |
328 | } | 334 | } |
329 | return result; | 335 | return result; |
330 | } | 336 | } |
331 | 337 | ||
332 | bool SMTPwrapper::sendMail(const Opie::Core::OSmartPointer<Mail>&mail,bool later ) | 338 | bool SMTPwrapper::sendMail(const Opie::Core::OSmartPointer<Mail>&mail,bool later ) |
333 | { | 339 | { |
334 | mailmime * mimeMail; | 340 | mailmime * mimeMail; |
335 | bool result = true; | 341 | bool result = true; |
336 | mimeMail = createMimeMail(mail ); | 342 | mimeMail = createMimeMail(mail ); |
337 | if ( mimeMail == 0 ) { | 343 | if ( mimeMail == 0 ) { |
338 | qDebug("SMTP wrapper:Error creating mail! "); | 344 | qDebug("SMTP wrapper:Error creating mail! "); |
339 | return false; | 345 | return false; |
340 | } else { | 346 | } else { |
341 | sendProgress = new progressMailSend(); | 347 | sendProgress = new progressMailSend(); |
342 | sendProgress->show(); | 348 | sendProgress->show(); |
343 | sendProgress->setMaxMails(1); | 349 | sendProgress->setMaxMails(1); |
344 | result = smtpSend( mimeMail,later); | 350 | result = smtpSend( mimeMail,later); |
345 | ; // odebug << "Clean up done" << oendl; | 351 | ; // odebug << "Clean up done" << oendl; |
346 | sendProgress->hide(); | 352 | sendProgress->hide(); |
347 | delete sendProgress; | 353 | delete sendProgress; |
348 | sendProgress = 0; | 354 | sendProgress = 0; |
349 | mailmime_free( mimeMail ); | 355 | mailmime_free( mimeMail ); |
356 | if ( m_smtp ) { | ||
357 | mailsmtp_free(m_smtp); | ||
358 | m_smtp = 0; | ||
359 | } | ||
350 | } | 360 | } |
351 | return result; | 361 | return result; |
352 | } | 362 | } |
353 | 363 | ||
354 | int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,const RecMailP&which) { | 364 | int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,const RecMailP&which) { |
355 | size_t curTok = 0; | 365 | size_t curTok = 0; |
356 | mailimf_fields *fields = 0; | 366 | mailimf_fields *fields = 0; |
357 | mailimf_field*ffrom = 0; | 367 | mailimf_field*ffrom = 0; |
358 | clist *rcpts = 0; | 368 | clist *rcpts = 0; |
359 | char*from = 0; | 369 | char*from = 0; |
360 | int res = 0; | 370 | int res = 0; |
361 | 371 | ||
362 | encodedString * data = wrap->fetchRawBody(which); | 372 | encodedString * data = wrap->fetchRawBody(which); |
363 | if (!data) | 373 | if (!data) |
364 | return 0; | 374 | return 0; |
365 | int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); | 375 | int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); |
366 | if (err != MAILIMF_NO_ERROR) { | 376 | if (err != MAILIMF_NO_ERROR) { |
367 | delete data; | 377 | delete data; |
368 | delete wrap; | 378 | delete wrap; |
369 | return 0; | 379 | return 0; |
370 | } | 380 | } |
371 | 381 | ||
372 | rcpts = createRcptList( fields ); | 382 | rcpts = createRcptList( fields ); |
373 | ffrom = getField(fields, MAILIMF_FIELD_FROM ); | 383 | ffrom = getField(fields, MAILIMF_FIELD_FROM ); |
@@ -437,36 +447,41 @@ bool SMTPwrapper::flushOutbox() { | |||
437 | } else { | 447 | } else { |
438 | return true; | 448 | return true; |
439 | } | 449 | } |
440 | } | 450 | } |
441 | 451 | ||
442 | 452 | ||
443 | sendProgress = new progressMailSend(); | 453 | sendProgress = new progressMailSend(); |
444 | sendProgress->show(); | 454 | sendProgress->show(); |
445 | sendProgress->setMaxMails(mailsToSend.count()); | 455 | sendProgress->setMaxMails(mailsToSend.count()); |
446 | 456 | ||
447 | while (returnValue && mailsToSend.count()>0) { | 457 | while (returnValue && mailsToSend.count()>0) { |
448 | if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) { | 458 | if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) { |
449 | QMessageBox::critical(0,i18n("Error sending mail"), | 459 | QMessageBox::critical(0,i18n("Error sending mail"), |
450 | i18n("Error sending queued mail.\nBreaking.")); | 460 | i18n("Error sending queued mail.\nBreaking.")); |
451 | returnValue = false; | 461 | returnValue = false; |
452 | } | 462 | } |
453 | mailsToRemove.append((*mailsToSend.begin())); | 463 | mailsToRemove.append((*mailsToSend.begin())); |
454 | mailsToSend.remove(mailsToSend.begin()); | 464 | mailsToSend.remove(mailsToSend.begin()); |
455 | sendProgress->setCurrentMails(mailsToRemove.count()); | 465 | sendProgress->setCurrentMails(mailsToRemove.count()); |
456 | } | 466 | } |
457 | if (reset_user_value) { | 467 | if (reset_user_value) { |
458 | m_SmtpAccount->setUser(oldUser); | 468 | m_SmtpAccount->setUser(oldUser); |
459 | m_SmtpAccount->setPassword(oldPw); | 469 | m_SmtpAccount->setPassword(oldPw); |
460 | } | 470 | } |
471 | |||
461 | KConfig cfg( locateLocal("config", "kopiemailrc" ) ); | 472 | KConfig cfg( locateLocal("config", "kopiemailrc" ) ); |
462 | cfg.setGroup( "Status" ); | 473 | cfg.setGroup( "Status" ); |
463 | m_queuedMail = mailsToSend.count(); | 474 | m_queuedMail = mailsToSend.count(); |
464 | cfg.writeEntry( "outgoing", m_queuedMail ); | 475 | cfg.writeEntry( "outgoing", m_queuedMail ); |
465 | emit queuedMails( m_queuedMail ); | 476 | emit queuedMails( m_queuedMail ); |
466 | sendProgress->hide(); | 477 | sendProgress->hide(); |
467 | delete sendProgress; | 478 | delete sendProgress; |
468 | sendProgress = 0; | 479 | sendProgress = 0; |
469 | wrap->deleteMails(mbox,mailsToRemove); | 480 | wrap->deleteMails(mbox,mailsToRemove); |
470 | delete wrap; | 481 | delete wrap; |
482 | if ( m_smtp ) { | ||
483 | mailsmtp_free(m_smtp); | ||
484 | m_smtp = 0; | ||
485 | } | ||
471 | return returnValue; | 486 | return returnValue; |
472 | } | 487 | } |