diff --git a/kmcomposewin.cpp b/kmcomposewin.cpp index 8eb9a3e62..7f370b50d 100644 --- a/kmcomposewin.cpp +++ b/kmcomposewin.cpp @@ -3588,6 +3588,20 @@ void KMComposeWin::slotContinuePrint( bool rc ) } } +//---------------------------------------------------------------------------- +bool KMComposeWin::validateAddresses( QWidget * parent, const QString & addresses ) +{ + QString brokenAddress; + KPIM::EmailParseResult errorCode = KMMessage::isValidEmailAddressList( KMMessage::expandAliases( addresses ), brokenAddress ); + if ( !( errorCode == KPIM::AddressOk || errorCode == KPIM::AddressEmpty ) ) { + QString errorMsg( "

" + brokenAddress + + "

" + KPIM::emailParseResultToString( errorCode ) + + "

" ); + KMessageBox::sorry( parent, errorMsg, i18n("Invalid Email Address") ); + return false; + } + return true; +} //---------------------------------------------------------------------------- void KMComposeWin::doSend(int aSendNow, bool saveInDrafts) @@ -3620,40 +3634,16 @@ void KMComposeWin::doSend(int aSendNow, bool saveInDrafts) } // Validate the To:, CC: and BCC fields - if ( !to().isEmpty() ) { - QString brokenAddress; - KPIM::EmailParseResult errorCode = KMMessage::isValidEmailAddressList( KMMessage::expandAliases( to()), brokenAddress ); - if ( errorCode != KPIM::AddressOk ) { - QString errorMsg( "

" + brokenAddress + - "

" + KPIM::emailParseResultToString( errorCode ) + - "

" ); - KMessageBox::sorry( this, errorMsg, i18n("Invalid Email Address") ); - return; - } + if ( !validateAddresses( this, to().stripWhiteSpace() ) ) { + return; } - if ( !cc().isEmpty() ) { - QString brokenAddress; - KPIM::EmailParseResult errorCode = KMMessage::isValidEmailAddressList( KMMessage::expandAliases( cc()), brokenAddress); - if ( errorCode != KPIM::AddressOk ) { - QString errorMsg( "

" + brokenAddress + - "

" + KPIM::emailParseResultToString( errorCode ) + - "

" ); - KMessageBox::sorry( this, errorMsg, i18n("Invalid Email Address") ); - return; - } + if ( !validateAddresses( this, cc().stripWhiteSpace() ) ) { + return; } - if ( !bcc().isEmpty() ) { - QString brokenAddress; - KPIM::EmailParseResult errorCode = KMMessage::isValidEmailAddressList( KMMessage::expandAliases( bcc()), brokenAddress); - if ( errorCode != KPIM::AddressOk ) { - QString errorMsg( "

" + brokenAddress + - "

" + KPIM::emailParseResultToString( errorCode ) + - "

" ); - KMessageBox::sorry( this, errorMsg, i18n("Invalid Email Address") ); - return; - } + if ( !validateAddresses( this, bcc().stripWhiteSpace() ) ) { + return; } if (subject().isEmpty()) diff --git a/kmcomposewin.h b/kmcomposewin.h index 5a66ad42a..d111ca808 100644 --- a/kmcomposewin.h +++ b/kmcomposewin.h @@ -801,6 +801,11 @@ private: */ void cleanupAutoSave(); + /** + * Validate email addresses + */ + static bool KMComposeWin::validateAddresses( QWidget * parent, const QString & addresses ); + protected slots: /** * Compress an attachemnt with the given index