From d97029895b3e3e6299e759e52629c04b1eac217f Mon Sep 17 00:00:00 2001 From: Jan-Marek Glogowski Date: Fri, 8 Jan 2016 18:22:04 +0100 Subject: MM: abort email MM without an email DB column Change-Id: Ia35a64d08f47af577426749712fa37c3b3b0b6e6 --- sw/source/uibase/dbui/dbmgr.cxx | 47 +++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx index 0751476d3687..8331a44637d1 100644 --- a/sw/source/uibase/dbui/dbmgr.cxx +++ b/sw/source/uibase/dbui/dbmgr.cxx @@ -952,12 +952,6 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell, const bool bNeedsTempFiles = ( bMT_EMAIL || bMT_FILE ); const bool bCreateSingleFile = rMergeDescriptor.bCreateSingleFile; - ::rtl::Reference< MailDispatcher > xMailDispatcher; - OUString sMailBodyMimeType; - rtl_TextEncoding sMailEncoding = ::osl_getThreadTextEncoding(); - - bool bNoError = true; - // Setup for dumping debugging documents static const char *sMaxDumpDocs = nullptr; static sal_Int32 nMaxDumpDocs = 0; @@ -970,27 +964,23 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell, nMaxDumpDocs = rtl_ustr_toInt32(reinterpret_cast( sMaxDumpDocs ), 10); } - if( bMT_EMAIL ) - { - xMailDispatcher.set( new MailDispatcher(rMergeDescriptor.xSmtpServer)); - if(!rMergeDescriptor.bSendAsAttachment && rMergeDescriptor.bSendAsHTML) - { - sMailBodyMimeType = "text/html; charset="; - sMailBodyMimeType += OUString::createFromAscii( - rtl_getBestMimeCharsetFromTextEncoding( sMailEncoding )); - SvxHtmlOptions& rHtmlOptions = SvxHtmlOptions::Get(); - sMailEncoding = rHtmlOptions.GetTextEncoding(); - } - else - sMailBodyMimeType = "text/plain; charset=UTF-8; format=flowed"; - } + ::rtl::Reference< MailDispatcher > xMailDispatcher; + OUString sMailBodyMimeType; + rtl_TextEncoding sMailEncoding = ::osl_getThreadTextEncoding(); + + bool bNoError = true; uno::Reference< beans::XPropertySet > xColumnProp; { // Check for (mandatory) email or (optional) filename column SwDBFormatData aColumnDBFormat; bool bColumnName = !rMergeDescriptor.sDBcolumn.isEmpty(); - if( bColumnName ) + if( ! bColumnName ) + { + if( bMT_EMAIL ) + return false; + } + else { uno::Reference< sdbcx::XColumnsSupplier > xColsSupp( pImpl->pMergeData->xResultSet, uno::UNO_QUERY ); uno::Reference xCols = xColsSupp->getColumns(); @@ -1001,6 +991,21 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell, aColumnDBFormat.xFormatter = pImpl->pMergeData->xFormatter; aColumnDBFormat.aNullDate = pImpl->pMergeData->aNullDate; + + if( bMT_EMAIL ) + { + xMailDispatcher.set( new MailDispatcher(rMergeDescriptor.xSmtpServer)); + if(!rMergeDescriptor.bSendAsAttachment && rMergeDescriptor.bSendAsHTML) + { + sMailBodyMimeType = "text/html; charset="; + sMailBodyMimeType += OUString::createFromAscii( + rtl_getBestMimeCharsetFromTextEncoding( sMailEncoding )); + SvxHtmlOptions& rHtmlOptions = SvxHtmlOptions::Get(); + sMailEncoding = rHtmlOptions.GetTextEncoding(); + } + else + sMailBodyMimeType = "text/plain; charset=UTF-8; format=flowed"; + } } // Try saving the source document -- cgit