-rw-r--r-- | noncore/net/mail/editaccounts.cpp | 20 | ||||
-rw-r--r-- | noncore/net/mail/editaccounts.h | 2 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/settings.cpp | 4 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/smtpwrapper.cpp | 206 | ||||
-rw-r--r-- | noncore/net/mail/smtpconfigui.ui | 275 |
5 files changed, 328 insertions, 179 deletions
diff --git a/noncore/net/mail/editaccounts.cpp b/noncore/net/mail/editaccounts.cpp index 0c0ecaf..9fc97e8 100644 --- a/noncore/net/mail/editaccounts.cpp +++ b/noncore/net/mail/editaccounts.cpp | |||
@@ -372,9 +372,19 @@ SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, | |||
372 | 372 | ||
373 | connect( sslBox, SIGNAL( toggled( bool ) ), SLOT( slotSSL( bool ) ) ); | 373 | connect( ComboBox1, SIGNAL( activated( int ) ), SLOT( slotConnectionToggle( int ) ) ); |
374 | ComboBox1->insertItem( "Only if available", 0 ); | ||
375 | ComboBox1->insertItem( "Always, Negotiated", 1 ); | ||
376 | ComboBox1->insertItem( "Connect on secure port", 2 ); | ||
377 | ComboBox1->insertItem( "Run command instead", 3 ); | ||
378 | CommandEdit->hide(); | ||
379 | ComboBox1->setCurrentItem( data->ConnectionType() ); | ||
374 | } | 380 | } |
375 | 381 | ||
376 | void SMTPconfig::slotSSL( bool enabled ) | 382 | void SMTPconfig::slotConnectionToggle( int index ) |
377 | { | 383 | { |
378 | if ( enabled ) { | 384 | // 2 is ssl connection |
385 | if ( index == 2 ) { | ||
379 | portLine->setText( SMTP_SSL_PORT ); | 386 | portLine->setText( SMTP_SSL_PORT ); |
387 | } else if ( index == 3 ) { | ||
388 | portLine->setText( SMTP_PORT ); | ||
389 | CommandEdit->show(); | ||
380 | } else { | 390 | } else { |
@@ -389,3 +399,3 @@ void SMTPconfig::fillValues() | |||
389 | portLine->setText( data->getPort() ); | 399 | portLine->setText( data->getPort() ); |
390 | sslBox->setChecked( data->getSSL() ); | 400 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
391 | loginBox->setChecked( data->getLogin() ); | 401 | loginBox->setChecked( data->getLogin() ); |
@@ -400,3 +410,3 @@ void SMTPconfig::accept() | |||
400 | data->setPort( portLine->text() ); | 410 | data->setPort( portLine->text() ); |
401 | data->setSSL( sslBox->isChecked() ); | 411 | data->setConnectionType( ComboBox1->currentItem() ); |
402 | data->setLogin( loginBox->isChecked() ); | 412 | data->setLogin( loginBox->isChecked() ); |
diff --git a/noncore/net/mail/editaccounts.h b/noncore/net/mail/editaccounts.h index fb4be71..d51e299 100644 --- a/noncore/net/mail/editaccounts.h +++ b/noncore/net/mail/editaccounts.h | |||
@@ -116,3 +116,2 @@ public: | |||
116 | public slots: | 116 | public slots: |
117 | void slotSSL( bool enabled ); | ||
118 | void fillValues(); | 117 | void fillValues(); |
@@ -120,2 +119,3 @@ public slots: | |||
120 | protected slots: | 119 | protected slots: |
120 | void slotConnectionToggle( int index ); | ||
121 | void accept(); | 121 | void accept(); |
diff --git a/noncore/net/mail/libmailwrapper/settings.cpp b/noncore/net/mail/libmailwrapper/settings.cpp index 83e51e3..7b6a58d 100644 --- a/noncore/net/mail/libmailwrapper/settings.cpp +++ b/noncore/net/mail/libmailwrapper/settings.cpp | |||
@@ -285,2 +285,3 @@ SMTPaccount::SMTPaccount() | |||
285 | ssl = false; | 285 | ssl = false; |
286 | connectionType = 1; | ||
286 | login = false; | 287 | login = false; |
@@ -299,2 +300,3 @@ SMTPaccount::SMTPaccount( QString filename ) | |||
299 | ssl = false; | 300 | ssl = false; |
301 | connectionType = 1; | ||
300 | login = false; | 302 | login = false; |
@@ -327,2 +329,3 @@ void SMTPaccount::read() | |||
327 | ssl = conf->readBoolEntry( "SSL" ); | 329 | ssl = conf->readBoolEntry( "SSL" ); |
330 | connectionType = conf->readNumEntry( "ConnectionType" ); | ||
328 | login = conf->readBoolEntry( "Login" ); | 331 | login = conf->readBoolEntry( "Login" ); |
@@ -344,2 +347,3 @@ void SMTPaccount::save() | |||
344 | conf->writeEntry( "SSL", ssl ); | 347 | conf->writeEntry( "SSL", ssl ); |
348 | conf->writeEntry( "ConnectionType", connectionType ); | ||
345 | conf->writeEntry( "Login", login ); | 349 | conf->writeEntry( "Login", login ); |
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp index 08f6bb7..085d5e4 100644 --- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp | |||
@@ -27,4 +27,3 @@ progressMailSend*SMTPwrapper::sendProgress = 0; | |||
27 | SMTPwrapper::SMTPwrapper( Settings *s ) | 27 | SMTPwrapper::SMTPwrapper( Settings *s ) |
28 | : QObject() | 28 | : QObject() { |
29 | { | ||
30 | settings = s; | 29 | settings = s; |
@@ -42,4 +41,3 @@ void SMTPwrapper::emitQCop( int queued ) { | |||
42 | 41 | ||
43 | QString SMTPwrapper::mailsmtpError( int errnum ) | 42 | QString SMTPwrapper::mailsmtpError( int errnum ) { |
44 | { | ||
45 | switch ( errnum ) { | 43 | switch ( errnum ) { |
@@ -84,4 +82,3 @@ QString SMTPwrapper::mailsmtpError( int errnum ) | |||
84 | 82 | ||
85 | mailimf_mailbox *SMTPwrapper::newMailbox(const QString&name, const QString&mail ) | 83 | mailimf_mailbox *SMTPwrapper::newMailbox(const QString&name, const QString&mail ) { |
86 | { | ||
87 | return mailimf_mailbox_new( strdup( name.latin1() ), | 84 | return mailimf_mailbox_new( strdup( name.latin1() ), |
@@ -90,7 +87,7 @@ mailimf_mailbox *SMTPwrapper::newMailbox(const QString&name, const QString&mail | |||
90 | 87 | ||
91 | mailimf_address_list *SMTPwrapper::parseAddresses(const QString&addr ) | 88 | mailimf_address_list *SMTPwrapper::parseAddresses(const QString&addr ) { |
92 | { | ||
93 | mailimf_address_list *addresses; | 89 | mailimf_address_list *addresses; |
94 | 90 | ||
95 | if ( addr.isEmpty() ) return NULL; | 91 | if ( addr.isEmpty() ) |
92 | return NULL; | ||
96 | 93 | ||
@@ -141,4 +138,3 @@ mailimf_address_list *SMTPwrapper::parseAddresses(const QString&addr ) | |||
141 | 138 | ||
142 | mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) | 139 | mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) { |
143 | { | ||
144 | mailimf_fields *fields; | 140 | mailimf_fields *fields; |
@@ -152,15 +148,20 @@ mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) | |||
152 | sender = newMailbox( mail.getName(), mail.getMail() ); | 148 | sender = newMailbox( mail.getName(), mail.getMail() ); |
153 | if ( sender == NULL ) goto err_free; | 149 | if ( sender == NULL ) |
150 | goto err_free; | ||
154 | 151 | ||
155 | fromBox = newMailbox( mail.getName(), mail.getMail() ); | 152 | fromBox = newMailbox( mail.getName(), mail.getMail() ); |
156 | if ( fromBox == NULL ) goto err_free_sender; | 153 | if ( fromBox == NULL ) |
154 | goto err_free_sender; | ||
157 | 155 | ||
158 | from = mailimf_mailbox_list_new_empty(); | 156 | from = mailimf_mailbox_list_new_empty(); |
159 | if ( from == NULL ) goto err_free_fromBox; | 157 | if ( from == NULL ) |
158 | goto err_free_fromBox; | ||
160 | 159 | ||
161 | err = mailimf_mailbox_list_add( from, fromBox ); | 160 | err = mailimf_mailbox_list_add( from, fromBox ); |
162 | if ( err != MAILIMF_NO_ERROR ) goto err_free_from; | 161 | if ( err != MAILIMF_NO_ERROR ) |
162 | goto err_free_from; | ||
163 | 163 | ||
164 | to = parseAddresses( mail.getTo() ); | 164 | to = parseAddresses( mail.getTo() ); |
165 | if ( to == NULL ) goto err_free_from; | 165 | if ( to == NULL ) |
166 | goto err_free_from; | ||
166 | 167 | ||
@@ -172,3 +173,4 @@ mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) | |||
172 | NULL, NULL, subject ); | 173 | NULL, NULL, subject ); |
173 | if ( fields == NULL ) goto err_free_reply; | 174 | if ( fields == NULL ) |
175 | goto err_free_reply; | ||
174 | 176 | ||
@@ -176,6 +178,8 @@ mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) | |||
176 | strdup( USER_AGENT ) ); | 178 | strdup( USER_AGENT ) ); |
177 | if ( xmailer == NULL ) goto err_free_fields; | 179 | if ( xmailer == NULL ) |
180 | goto err_free_fields; | ||
178 | 181 | ||
179 | err = mailimf_fields_add( fields, xmailer ); | 182 | err = mailimf_fields_add( fields, xmailer ); |
180 | if ( err != MAILIMF_NO_ERROR ) goto err_free_xmailer; | 183 | if ( err != MAILIMF_NO_ERROR ) |
184 | goto err_free_xmailer; | ||
181 | 185 | ||
@@ -184,12 +188,19 @@ mailimf_fields *SMTPwrapper::createImfFields(const Mail&mail ) | |||
184 | err_free_xmailer: | 188 | err_free_xmailer: |
185 | if (xmailer) mailimf_field_free( xmailer ); | 189 | if (xmailer) |
190 | mailimf_field_free( xmailer ); | ||
186 | err_free_fields: | 191 | err_free_fields: |
187 | if (fields) mailimf_fields_free( fields ); | 192 | if (fields) |
193 | mailimf_fields_free( fields ); | ||
188 | err_free_reply: | 194 | err_free_reply: |
189 | if (reply) mailimf_address_list_free( reply ); | 195 | if (reply) |
190 | if (bcc) mailimf_address_list_free( bcc ); | 196 | mailimf_address_list_free( reply ); |
191 | if (cc) mailimf_address_list_free( cc ); | 197 | if (bcc) |
192 | if (to) mailimf_address_list_free( to ); | 198 | mailimf_address_list_free( bcc ); |
199 | if (cc) | ||
200 | mailimf_address_list_free( cc ); | ||
201 | if (to) | ||
202 | mailimf_address_list_free( to ); | ||
193 | err_free_from: | 203 | err_free_from: |
194 | if (from) mailimf_mailbox_list_free( from ); | 204 | if (from) |
205 | mailimf_mailbox_list_free( from ); | ||
195 | err_free_fromBox: | 206 | err_free_fromBox: |
@@ -197,5 +208,7 @@ err_free_fromBox: | |||
197 | err_free_sender: | 208 | err_free_sender: |
198 | if (sender) mailimf_mailbox_free( sender ); | 209 | if (sender) |
210 | mailimf_mailbox_free( sender ); | ||
199 | err_free: | 211 | err_free: |
200 | if (subject) free( subject ); | 212 | if (subject) |
213 | free( subject ); | ||
201 | qDebug( "createImfFields - error" ); | 214 | qDebug( "createImfFields - error" ); |
@@ -205,4 +218,3 @@ err_free: | |||
205 | 218 | ||
206 | mailmime *SMTPwrapper::buildTxtPart(const QString&str ) | 219 | mailmime *SMTPwrapper::buildTxtPart(const QString&str ) { |
207 | { | ||
208 | mailmime *txtPart; | 220 | mailmime *txtPart; |
@@ -215,18 +227,24 @@ mailmime *SMTPwrapper::buildTxtPart(const QString&str ) | |||
215 | strdup( "iso-8859-1" ) ); | 227 | strdup( "iso-8859-1" ) ); |
216 | if ( param == NULL ) goto err_free; | 228 | if ( param == NULL ) |
229 | goto err_free; | ||
217 | 230 | ||
218 | content = mailmime_content_new_with_str( "text/plain" ); | 231 | content = mailmime_content_new_with_str( "text/plain" ); |
219 | if ( content == NULL ) goto err_free_param; | 232 | if ( content == NULL ) |
233 | goto err_free_param; | ||
220 | 234 | ||
221 | err = clist_append( content->ct_parameters, param ); | 235 | err = clist_append( content->ct_parameters, param ); |
222 | if ( err != MAILIMF_NO_ERROR ) goto err_free_content; | 236 | if ( err != MAILIMF_NO_ERROR ) |
237 | goto err_free_content; | ||
223 | 238 | ||
224 | fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_8BIT); | 239 | fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_8BIT); |
225 | if ( fields == NULL ) goto err_free_content; | 240 | if ( fields == NULL ) |
241 | goto err_free_content; | ||
226 | 242 | ||
227 | txtPart = mailmime_new_empty( content, fields ); | 243 | txtPart = mailmime_new_empty( content, fields ); |
228 | if ( txtPart == NULL ) goto err_free_fields; | 244 | if ( txtPart == NULL ) |
245 | goto err_free_fields; | ||
229 | 246 | ||
230 | err = mailmime_set_body_text( txtPart, (char*)str.data(), str.length() ); | 247 | err = mailmime_set_body_text( txtPart, (char*)str.data(), str.length() ); |
231 | if ( err != MAILIMF_NO_ERROR ) goto err_free_txtPart; | 248 | if ( err != MAILIMF_NO_ERROR ) |
249 | goto err_free_txtPart; | ||
232 | 250 | ||
@@ -248,4 +266,3 @@ err_free: | |||
248 | 266 | ||
249 | mailmime *SMTPwrapper::buildFilePart(const QString&filename,const QString&mimetype,const QString&TextContent ) | 267 | mailmime *SMTPwrapper::buildFilePart(const QString&filename,const QString&mimetype,const QString&TextContent ) { |
250 | { | ||
251 | mailmime * filePart = 0; | 268 | mailmime * filePart = 0; |
@@ -327,4 +344,3 @@ mailmime *SMTPwrapper::buildFilePart(const QString&filename,const QString&mimety | |||
327 | 344 | ||
328 | void SMTPwrapper::addFileParts( mailmime *message,const QList<Attachment>&files ) | 345 | void SMTPwrapper::addFileParts( mailmime *message,const QList<Attachment>&files ) { |
329 | { | ||
330 | const Attachment *it; | 346 | const Attachment *it; |
@@ -352,4 +368,3 @@ void SMTPwrapper::addFileParts( mailmime *message,const QList<Attachment>&files | |||
352 | 368 | ||
353 | mailmime *SMTPwrapper::createMimeMail(const Mail &mail ) | 369 | mailmime *SMTPwrapper::createMimeMail(const Mail &mail ) { |
354 | { | ||
355 | mailmime *message, *txtPart; | 370 | mailmime *message, *txtPart; |
@@ -359,6 +374,8 @@ mailmime *SMTPwrapper::createMimeMail(const Mail &mail ) | |||
359 | fields = createImfFields( mail ); | 374 | fields = createImfFields( mail ); |
360 | if ( fields == NULL ) goto err_free; | 375 | if ( fields == NULL ) |
376 | goto err_free; | ||
361 | 377 | ||
362 | message = mailmime_new_message_data( NULL ); | 378 | message = mailmime_new_message_data( NULL ); |
363 | if ( message == NULL ) goto err_free_fields; | 379 | if ( message == NULL ) |
380 | goto err_free_fields; | ||
364 | 381 | ||
@@ -368,6 +385,8 @@ mailmime *SMTPwrapper::createMimeMail(const Mail &mail ) | |||
368 | 385 | ||
369 | if ( txtPart == NULL ) goto err_free_message; | 386 | if ( txtPart == NULL ) |
387 | goto err_free_message; | ||
370 | 388 | ||
371 | err = mailmime_smart_add_part( message, txtPart ); | 389 | err = mailmime_smart_add_part( message, txtPart ); |
372 | if ( err != MAILIMF_NO_ERROR ) goto err_free_txtPart; | 390 | if ( err != MAILIMF_NO_ERROR ) |
391 | goto err_free_txtPart; | ||
373 | 392 | ||
@@ -389,4 +408,3 @@ err_free: | |||
389 | 408 | ||
390 | mailimf_field *SMTPwrapper::getField( mailimf_fields *fields, int type ) | 409 | mailimf_field *SMTPwrapper::getField( mailimf_fields *fields, int type ) { |
391 | { | ||
392 | mailimf_field *field; | 410 | mailimf_field *field; |
@@ -406,4 +424,3 @@ mailimf_field *SMTPwrapper::getField( mailimf_fields *fields, int type ) | |||
406 | 424 | ||
407 | void SMTPwrapper::addRcpts( clist *list, mailimf_address_list *addr_list ) | 425 | void SMTPwrapper::addRcpts( clist *list, mailimf_address_list *addr_list ) { |
408 | { | ||
409 | clistiter *it, *it2; | 426 | clistiter *it, *it2; |
@@ -427,4 +444,3 @@ void SMTPwrapper::addRcpts( clist *list, mailimf_address_list *addr_list ) | |||
427 | 444 | ||
428 | clist *SMTPwrapper::createRcptList( mailimf_fields *fields ) | 445 | clist *SMTPwrapper::createRcptList( mailimf_fields *fields ) { |
429 | { | ||
430 | clist *rcptList; | 446 | clist *rcptList; |
@@ -455,4 +471,3 @@ clist *SMTPwrapper::createRcptList( mailimf_fields *fields ) | |||
455 | 471 | ||
456 | char *SMTPwrapper::getFrom( mailimf_field *ffrom) | 472 | char *SMTPwrapper::getFrom( mailimf_field *ffrom) { |
457 | { | ||
458 | char *from = NULL; | 473 | char *from = NULL; |
@@ -471,4 +486,3 @@ char *SMTPwrapper::getFrom( mailimf_field *ffrom) | |||
471 | 486 | ||
472 | char *SMTPwrapper::getFrom( mailmime *mail ) | 487 | char *SMTPwrapper::getFrom( mailmime *mail ) { |
473 | { | ||
474 | /* no need to delete - its just a pointer to structure content */ | 488 | /* no need to delete - its just a pointer to structure content */ |
@@ -479,4 +493,3 @@ char *SMTPwrapper::getFrom( mailmime *mail ) | |||
479 | 493 | ||
480 | void SMTPwrapper::progress( size_t current, size_t maximum ) | 494 | void SMTPwrapper::progress( size_t current, size_t maximum ) { |
481 | { | ||
482 | if (SMTPwrapper::sendProgress) { | 495 | if (SMTPwrapper::sendProgress) { |
@@ -487,5 +500,5 @@ void SMTPwrapper::progress( size_t current, size_t maximum ) | |||
487 | 500 | ||
488 | void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) | 501 | void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) { |
489 | { | 502 | if (!mail) |
490 | if (!mail) return; | 503 | return; |
491 | QString localfolders = AbstractMail::defaultLocalfolder(); | 504 | QString localfolders = AbstractMail::defaultLocalfolder(); |
@@ -497,4 +510,3 @@ void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) | |||
497 | 510 | ||
498 | void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp ) | 511 | void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp ) { |
499 | { | ||
500 | clist *rcpts = 0; | 512 | clist *rcpts = 0; |
@@ -515,3 +527,4 @@ void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp ) | |||
515 | if (r != MAIL_NO_ERROR || !data) { | 527 | if (r != MAIL_NO_ERROR || !data) { |
516 | if (data) free(data); | 528 | if (data) |
529 | free(data); | ||
517 | qDebug("Error fetching mime..."); | 530 | qDebug("Error fetching mime..."); |
@@ -522,3 +535,4 @@ void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp ) | |||
522 | storeMail(data,size,"Outgoing"); | 535 | storeMail(data,size,"Outgoing"); |
523 | if (data) free( data ); | 536 | if (data) |
537 | free( data ); | ||
524 | Config cfg( "mail" ); | 538 | Config cfg( "mail" ); |
@@ -532,9 +546,13 @@ void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp ) | |||
532 | smtpSend(from,rcpts,data,size,smtp); | 546 | smtpSend(from,rcpts,data,size,smtp); |
533 | if (data) {free(data);} | 547 | if (data) { |
534 | if (from) {free(from);} | 548 | free(data); |
535 | if (rcpts) smtp_address_list_free( rcpts ); | 549 | } |
550 | if (from) { | ||
551 | free(from); | ||
552 | } | ||
553 | if (rcpts) | ||
554 | smtp_address_list_free( rcpts ); | ||
536 | } | 555 | } |
537 | 556 | ||
538 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMTPaccount *smtp ) | 557 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMTPaccount *smtp ) { |
539 | { | ||
540 | const char *server, *user, *pass; | 558 | const char *server, *user, *pass; |
@@ -548,3 +566,11 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
548 | server = smtp->getServer().latin1(); | 566 | server = smtp->getServer().latin1(); |
549 | ssl = smtp->getSSL(); | 567 | |
568 | // FIXME: currently only TLS and Plain work. | ||
569 | |||
570 | ssl = false; | ||
571 | |||
572 | if ( smtp->ConnectionType() == 2 ) { | ||
573 | ssl = true; | ||
574 | } | ||
575 | |||
550 | port = smtp->getPort().toUInt(); | 576 | port = smtp->getPort().toUInt(); |
@@ -552,3 +578,4 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
552 | session = mailsmtp_new( 20, &progress ); | 578 | session = mailsmtp_new( 20, &progress ); |
553 | if ( session == NULL ) goto free_mem; | 579 | if ( session == NULL ) |
580 | goto free_mem; | ||
554 | 581 | ||
@@ -562,6 +589,13 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
562 | } | 589 | } |
563 | if ( err != MAILSMTP_NO_ERROR ) {qDebug("Error init connection");result = 0;goto free_mem_session;} | 590 | if ( err != MAILSMTP_NO_ERROR ) { |
591 | qDebug("Error init connection"); | ||
592 | result = 0; | ||
593 | goto free_mem_session; | ||
594 | } | ||
564 | 595 | ||
565 | err = mailsmtp_init( session ); | 596 | err = mailsmtp_init( session ); |
566 | if ( err != MAILSMTP_NO_ERROR ) {result = 0; goto free_con_session;} | 597 | if ( err != MAILSMTP_NO_ERROR ) { |
598 | result = 0; | ||
599 | goto free_con_session; | ||
600 | } | ||
567 | 601 | ||
@@ -580,3 +614,4 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
580 | } else { | 614 | } else { |
581 | result = 0; goto free_con_session; | 615 | result = 0; |
616 | goto free_con_session; | ||
582 | } | 617 | } |
@@ -588,3 +623,4 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
588 | err = mailsmtp_auth( session, (char*)user, (char*)pass ); | 623 | err = mailsmtp_auth( session, (char*)user, (char*)pass ); |
589 | if ( err == MAILSMTP_NO_ERROR ) qDebug("auth ok"); | 624 | if ( err == MAILSMTP_NO_ERROR ) |
625 | qDebug("auth ok"); | ||
590 | qDebug( "Done auth!" ); | 626 | qDebug( "Done auth!" ); |
@@ -597,3 +633,4 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT | |||
597 | qDebug("Error sending mail: %s",mailsmtpError(err).latin1()); | 633 | qDebug("Error sending mail: %s",mailsmtpError(err).latin1()); |
598 | result = 0; goto free_con_session; | 634 | result = 0; |
635 | goto free_con_session; | ||
599 | } | 636 | } |
@@ -611,4 +648,3 @@ free_mem: | |||
611 | 648 | ||
612 | void SMTPwrapper::sendMail(const Mail&mail,SMTPaccount*aSmtp,bool later ) | 649 | void SMTPwrapper::sendMail(const Mail&mail,SMTPaccount*aSmtp,bool later ) { |
613 | { | ||
614 | mailmime * mimeMail; | 650 | mailmime * mimeMail; |
@@ -637,4 +673,3 @@ void SMTPwrapper::sendMail(const Mail&mail,SMTPaccount*aSmtp,bool later ) | |||
637 | 673 | ||
638 | int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,SMTPaccount*smtp,RecMail*which) | 674 | int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,SMTPaccount*smtp,RecMail*which) { |
639 | { | ||
640 | size_t curTok = 0; | 675 | size_t curTok = 0; |
@@ -647,3 +682,4 @@ int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,SMTPaccount*smtp,RecMail*which | |||
647 | encodedString * data = wrap->fetchRawBody(*which); | 682 | encodedString * data = wrap->fetchRawBody(*which); |
648 | if (!data) return 0; | 683 | if (!data) |
684 | return 0; | ||
649 | int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); | 685 | int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); |
@@ -679,7 +715,7 @@ int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,SMTPaccount*smtp,RecMail*which | |||
679 | /* this is a special fun */ | 715 | /* this is a special fun */ |
680 | bool SMTPwrapper::flushOutbox(SMTPaccount*smtp) | 716 | bool SMTPwrapper::flushOutbox(SMTPaccount*smtp) { |
681 | { | ||
682 | bool returnValue = true; | 717 | bool returnValue = true; |
683 | 718 | ||
684 | if (!smtp) return false; | 719 | if (!smtp) |
720 | return false; | ||
685 | 721 | ||
diff --git a/noncore/net/mail/smtpconfigui.ui b/noncore/net/mail/smtpconfigui.ui index f5ce8cb..d4151a9 100644 --- a/noncore/net/mail/smtpconfigui.ui +++ b/noncore/net/mail/smtpconfigui.ui | |||
@@ -13,4 +13,4 @@ | |||
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>241</width> | 14 | <width>335</width> |
15 | <height>321</height> | 15 | <height>426</height> |
16 | </rect> | 16 | </rect> |
@@ -30,3 +30,3 @@ | |||
30 | <name>margin</name> | 30 | <name>margin</name> |
31 | <number>2</number> | 31 | <number>3</number> |
32 | </property> | 32 | </property> |
@@ -34,53 +34,79 @@ | |||
34 | <name>spacing</name> | 34 | <name>spacing</name> |
35 | <number>2</number> | 35 | <number>3</number> |
36 | </property> | 36 | </property> |
37 | <widget> | 37 | <widget> |
38 | <class>QLayoutWidget</class> | 38 | <class>QLabel</class> |
39 | <property stdset="1"> | ||
40 | <name>name</name> | ||
41 | <cstring>accountLabel</cstring> | ||
42 | </property> | ||
43 | <property stdset="1"> | ||
44 | <name>text</name> | ||
45 | <string>Account</string> | ||
46 | </property> | ||
47 | </widget> | ||
48 | <widget> | ||
49 | <class>QLineEdit</class> | ||
39 | <property stdset="1"> | 50 | <property stdset="1"> |
40 | <name>name</name> | 51 | <name>name</name> |
41 | <cstring>Layout4</cstring> | 52 | <cstring>accountLine</cstring> |
42 | </property> | 53 | </property> |
43 | <property> | 54 | <property> |
44 | <name>layoutSpacing</name> | 55 | <name>toolTip</name> |
56 | <string>Name of the Account</string> | ||
45 | </property> | 57 | </property> |
46 | <grid> | 58 | </widget> |
59 | <widget> | ||
60 | <class>Line</class> | ||
47 | <property stdset="1"> | 61 | <property stdset="1"> |
48 | <name>margin</name> | 62 | <name>name</name> |
49 | <number>0</number> | 63 | <cstring>line1</cstring> |
50 | </property> | 64 | </property> |
51 | <property stdset="1"> | 65 | <property stdset="1"> |
52 | <name>spacing</name> | 66 | <name>sizePolicy</name> |
53 | <number>2</number> | 67 | <sizepolicy> |
68 | <hsizetype>1</hsizetype> | ||
69 | <vsizetype>0</vsizetype> | ||
70 | </sizepolicy> | ||
54 | </property> | 71 | </property> |
55 | <widget row="0" column="0" rowspan="1" colspan="2" > | 72 | <property stdset="1"> |
56 | <class>QLabel</class> | 73 | <name>orientation</name> |
74 | <enum>Horizontal</enum> | ||
75 | </property> | ||
76 | </widget> | ||
77 | <widget> | ||
78 | <class>QLayoutWidget</class> | ||
57 | <property stdset="1"> | 79 | <property stdset="1"> |
58 | <name>name</name> | 80 | <name>name</name> |
59 | <cstring>accountLabel</cstring> | 81 | <cstring>Layout20</cstring> |
60 | </property> | 82 | </property> |
83 | <hbox> | ||
61 | <property stdset="1"> | 84 | <property stdset="1"> |
62 | <name>text</name> | 85 | <name>margin</name> |
63 | <string>Account</string> | 86 | <number>0</number> |
64 | </property> | 87 | </property> |
65 | </widget> | 88 | <property stdset="1"> |
66 | <widget row="8" column="2" > | 89 | <name>spacing</name> |
67 | <class>QLineEdit</class> | 90 | <number>6</number> |
91 | </property> | ||
92 | <widget> | ||
93 | <class>QLayoutWidget</class> | ||
68 | <property stdset="1"> | 94 | <property stdset="1"> |
69 | <name>name</name> | 95 | <name>name</name> |
70 | <cstring>passLine</cstring> | 96 | <cstring>Layout18</cstring> |
71 | </property> | 97 | </property> |
98 | <vbox> | ||
72 | <property stdset="1"> | 99 | <property stdset="1"> |
73 | <name>enabled</name> | 100 | <name>margin</name> |
74 | <bool>false</bool> | 101 | <number>0</number> |
75 | </property> | 102 | </property> |
76 | <property stdset="1"> | 103 | <property stdset="1"> |
77 | <name>echoMode</name> | 104 | <name>spacing</name> |
78 | <enum>Password</enum> | 105 | <number>6</number> |
79 | </property> | 106 | </property> |
80 | </widget> | 107 | <widget> |
81 | <widget row="4" column="0" rowspan="1" colspan="3" > | 108 | <class>QLabel</class> |
82 | <class>QCheckBox</class> | ||
83 | <property stdset="1"> | 109 | <property stdset="1"> |
84 | <name>name</name> | 110 | <name>name</name> |
85 | <cstring>sslBox</cstring> | 111 | <cstring>serverLabel</cstring> |
86 | </property> | 112 | </property> |
@@ -88,10 +114,10 @@ | |||
88 | <name>text</name> | 114 | <name>text</name> |
89 | <string>Use SSL</string> | 115 | <string>Server</string> |
90 | </property> | 116 | </property> |
91 | </widget> | 117 | </widget> |
92 | <widget row="6" column="0" rowspan="1" colspan="3" > | 118 | <widget> |
93 | <class>QCheckBox</class> | 119 | <class>QLabel</class> |
94 | <property stdset="1"> | 120 | <property stdset="1"> |
95 | <name>name</name> | 121 | <name>name</name> |
96 | <cstring>loginBox</cstring> | 122 | <cstring>portLabel</cstring> |
97 | </property> | 123 | </property> |
@@ -99,17 +125,23 @@ | |||
99 | <name>text</name> | 125 | <name>text</name> |
100 | <string>Use Login</string> | 126 | <string>Port</string> |
101 | </property> | 127 | </property> |
102 | </widget> | 128 | </widget> |
103 | <widget row="0" column="2" > | 129 | </vbox> |
104 | <class>QLineEdit</class> | 130 | </widget> |
131 | <widget> | ||
132 | <class>QLayoutWidget</class> | ||
105 | <property stdset="1"> | 133 | <property stdset="1"> |
106 | <name>name</name> | 134 | <name>name</name> |
107 | <cstring>accountLine</cstring> | 135 | <cstring>Layout19</cstring> |
108 | </property> | 136 | </property> |
109 | <property> | 137 | <vbox> |
110 | <name>toolTip</name> | 138 | <property stdset="1"> |
111 | <string>Name of the Account</string> | 139 | <name>margin</name> |
140 | <number>0</number> | ||
112 | </property> | 141 | </property> |
113 | </widget> | 142 | <property stdset="1"> |
114 | <widget row="2" column="1" rowspan="1" colspan="2" > | 143 | <name>spacing</name> |
144 | <number>6</number> | ||
145 | </property> | ||
146 | <widget> | ||
115 | <class>QLineEdit</class> | 147 | <class>QLineEdit</class> |
@@ -124,3 +156,3 @@ | |||
124 | </widget> | 156 | </widget> |
125 | <widget row="7" column="2" > | 157 | <widget> |
126 | <class>QLineEdit</class> | 158 | <class>QLineEdit</class> |
@@ -128,21 +160,14 @@ | |||
128 | <name>name</name> | 160 | <name>name</name> |
129 | <cstring>userLine</cstring> | 161 | <cstring>portLine</cstring> |
130 | </property> | 162 | </property> |
131 | <property stdset="1"> | 163 | <property> |
132 | <name>enabled</name> | 164 | <name>toolTip</name> |
133 | <bool>false</bool> | 165 | <string>Port of the SMTP Server</string> |
134 | </property> | 166 | </property> |
135 | </widget> | 167 | </widget> |
136 | <widget row="8" column="0" rowspan="1" colspan="2" > | 168 | </vbox> |
137 | <class>QLabel</class> | 169 | </widget> |
138 | <property stdset="1"> | 170 | </hbox> |
139 | <name>name</name> | ||
140 | <cstring>passLabel</cstring> | ||
141 | </property> | ||
142 | <property stdset="1"> | ||
143 | <name>text</name> | ||
144 | <string>Password</string> | ||
145 | </property> | ||
146 | </widget> | 171 | </widget> |
147 | <widget row="3" column="0" > | 172 | <widget> |
148 | <class>QLabel</class> | 173 | <class>QLabel</class> |
@@ -150,3 +175,3 @@ | |||
150 | <name>name</name> | 175 | <name>name</name> |
151 | <cstring>portLabel</cstring> | 176 | <cstring>TextLabel1</cstring> |
152 | </property> | 177 | </property> |
@@ -154,17 +179,13 @@ | |||
154 | <name>text</name> | 179 | <name>text</name> |
155 | <string>Port</string> | 180 | <string>Use secure sockets:</string> |
156 | </property> | 181 | </property> |
157 | </widget> | 182 | </widget> |
158 | <widget row="2" column="0" > | 183 | <widget> |
159 | <class>QLabel</class> | 184 | <class>QComboBox</class> |
160 | <property stdset="1"> | 185 | <property stdset="1"> |
161 | <name>name</name> | 186 | <name>name</name> |
162 | <cstring>serverLabel</cstring> | 187 | <cstring>ComboBox1</cstring> |
163 | </property> | ||
164 | <property stdset="1"> | ||
165 | <name>text</name> | ||
166 | <string>Server</string> | ||
167 | </property> | 188 | </property> |
168 | </widget> | 189 | </widget> |
169 | <widget row="3" column="1" rowspan="1" colspan="2" > | 190 | <widget> |
170 | <class>QLineEdit</class> | 191 | <class>QLineEdit</class> |
@@ -172,10 +193,10 @@ | |||
172 | <name>name</name> | 193 | <name>name</name> |
173 | <cstring>portLine</cstring> | 194 | <cstring>CommandEdit</cstring> |
174 | </property> | 195 | </property> |
175 | <property> | 196 | <property stdset="1"> |
176 | <name>toolTip</name> | 197 | <name>text</name> |
177 | <string>Port of the SMTP Server</string> | 198 | <string>ssh $SERVER exec</string> |
178 | </property> | 199 | </property> |
179 | </widget> | 200 | </widget> |
180 | <widget row="1" column="0" rowspan="1" colspan="3" > | 201 | <widget> |
181 | <class>Line</class> | 202 | <class>Line</class> |
@@ -183,3 +204,3 @@ | |||
183 | <name>name</name> | 204 | <name>name</name> |
184 | <cstring>line1</cstring> | 205 | <cstring>line2</cstring> |
185 | </property> | 206 | </property> |
@@ -188,3 +209,3 @@ | |||
188 | <sizepolicy> | 209 | <sizepolicy> |
189 | <hsizetype>3</hsizetype> | 210 | <hsizetype>1</hsizetype> |
190 | <vsizetype>0</vsizetype> | 211 | <vsizetype>0</vsizetype> |
@@ -197,3 +218,44 @@ | |||
197 | </widget> | 218 | </widget> |
198 | <widget row="7" column="0" rowspan="1" colspan="2" > | 219 | <widget> |
220 | <class>QCheckBox</class> | ||
221 | <property stdset="1"> | ||
222 | <name>name</name> | ||
223 | <cstring>loginBox</cstring> | ||
224 | </property> | ||
225 | <property stdset="1"> | ||
226 | <name>text</name> | ||
227 | <string>Use Login</string> | ||
228 | </property> | ||
229 | </widget> | ||
230 | <widget> | ||
231 | <class>QLayoutWidget</class> | ||
232 | <property stdset="1"> | ||
233 | <name>name</name> | ||
234 | <cstring>Layout17</cstring> | ||
235 | </property> | ||
236 | <hbox> | ||
237 | <property stdset="1"> | ||
238 | <name>margin</name> | ||
239 | <number>0</number> | ||
240 | </property> | ||
241 | <property stdset="1"> | ||
242 | <name>spacing</name> | ||
243 | <number>6</number> | ||
244 | </property> | ||
245 | <widget> | ||
246 | <class>QLayoutWidget</class> | ||
247 | <property stdset="1"> | ||
248 | <name>name</name> | ||
249 | <cstring>Layout15</cstring> | ||
250 | </property> | ||
251 | <vbox> | ||
252 | <property stdset="1"> | ||
253 | <name>margin</name> | ||
254 | <number>0</number> | ||
255 | </property> | ||
256 | <property stdset="1"> | ||
257 | <name>spacing</name> | ||
258 | <number>6</number> | ||
259 | </property> | ||
260 | <widget> | ||
199 | <class>QLabel</class> | 261 | <class>QLabel</class> |
@@ -208,21 +270,59 @@ | |||
208 | </widget> | 270 | </widget> |
209 | <widget row="5" column="0" rowspan="1" colspan="3" > | 271 | <widget> |
210 | <class>Line</class> | 272 | <class>QLabel</class> |
211 | <property stdset="1"> | 273 | <property stdset="1"> |
212 | <name>name</name> | 274 | <name>name</name> |
213 | <cstring>line2</cstring> | 275 | <cstring>passLabel</cstring> |
214 | </property> | 276 | </property> |
215 | <property stdset="1"> | 277 | <property stdset="1"> |
216 | <name>sizePolicy</name> | 278 | <name>text</name> |
217 | <sizepolicy> | 279 | <string>Password</string> |
218 | <hsizetype>3</hsizetype> | 280 | </property> |
219 | <vsizetype>0</vsizetype> | 281 | </widget> |
220 | </sizepolicy> | 282 | </vbox> |
283 | </widget> | ||
284 | <widget> | ||
285 | <class>QLayoutWidget</class> | ||
286 | <property stdset="1"> | ||
287 | <name>name</name> | ||
288 | <cstring>Layout16</cstring> | ||
289 | </property> | ||
290 | <vbox> | ||
291 | <property stdset="1"> | ||
292 | <name>margin</name> | ||
293 | <number>0</number> | ||
221 | </property> | 294 | </property> |
222 | <property stdset="1"> | 295 | <property stdset="1"> |
223 | <name>orientation</name> | 296 | <name>spacing</name> |
224 | <enum>Horizontal</enum> | 297 | <number>6</number> |
225 | </property> | 298 | </property> |
299 | <widget> | ||
300 | <class>QLineEdit</class> | ||
301 | <property stdset="1"> | ||
302 | <name>name</name> | ||
303 | <cstring>userLine</cstring> | ||
304 | </property> | ||
305 | <property stdset="1"> | ||
306 | <name>enabled</name> | ||
307 | <bool>false</bool> | ||
308 | </property> | ||
309 | </widget> | ||
310 | <widget> | ||
311 | <class>QLineEdit</class> | ||
312 | <property stdset="1"> | ||
313 | <name>name</name> | ||
314 | <cstring>passLine</cstring> | ||
315 | </property> | ||
316 | <property stdset="1"> | ||
317 | <name>enabled</name> | ||
318 | <bool>false</bool> | ||
319 | </property> | ||
320 | <property stdset="1"> | ||
321 | <name>echoMode</name> | ||
322 | <enum>Password</enum> | ||
323 | </property> | ||
324 | </widget> | ||
325 | </vbox> | ||
226 | </widget> | 326 | </widget> |
227 | </grid> | 327 | </hbox> |
228 | </widget> | 328 | </widget> |
@@ -255,3 +355,2 @@ | |||
255 | <tabstop>portLine</tabstop> | 355 | <tabstop>portLine</tabstop> |
256 | <tabstop>sslBox</tabstop> | ||
257 | <tabstop>loginBox</tabstop> | 356 | <tabstop>loginBox</tabstop> |