There's been a lot of changes in respect of MailMerge with LibreOffice 5.2 onwards and I've been caught out by some of these changes and raised bug reports for -

bug 102951 <https://bugs.documentfoundation.org/show_bug.cgi?id=102951> for the MailMerge wizard which has been resolved as just a change of the MailMerge GUI being split;

bug 102010 <https://bugs.documentfoundation.org/show_bug.cgi?id=102010> which is still waiting for a fix

Anyway, I've moved on and done some testing of the SendMail part of MailMerge and encountered what appears to be a race condition. In that if I generate a MailMerge for 2 recipients -

1. the email for the second recipient appears to be never sent and
   definitely never ever received.
2. the success of the email for the first recipient is that it always
   looks like it's been sent but mostly it's never received. When it is
   received it is occasionally corrupted.

However if I put in 2 sleeps in the file sw/source/ui/dbui/mmoutputtypepage.cxx as per this git diff, below, I consistently see the emails being sent and received successfully. This would appear to suggest that it's thread related though I have no knowledge of threads so I could be way of the mark here.

Unrelated, I've done some changes to the file mailmerge.py to enable me to send messages through the "mail.btinternet.com" smtp server so it would be good to discuss these changes with someone. Any suggestions as to who?

For the suspected race condition should I raise a bug with my findings or wait to discuss with someone more knowledgeable?

Alex

index 5e42b2f..52db84c 100644
--- a/sw/source/ui/dbui/mmoutputtypepage.cxx
+++ b/sw/source/ui/dbui/mmoutputtypepage.cxx
@@ -36,6 +36,13 @@
 #include <maildispatcher.hxx>
 #include <imaildsplistener.hxx>

+#ifdef _WIN32
+#include <windows.h>
+#else
+#include <unistd.h>
+#include <time.h>
+#endif
+
 using namespace ::com::sun::star;

SwMailMergeOutputTypePage::SwMailMergeOutputTypePage(SwMailMergeWizard* pParent)
@@ -313,6 +320,8 @@ void SwSendMailDialog::dispose()
     {
         try
         {
+        sleep(1);
+
             if(m_pImpl->xMailDispatcher->isStarted())
                 m_pImpl->xMailDispatcher->stop();
if(m_pImpl->xConnectedMailService.is() && m_pImpl->xConnectedMailService->isConnected())
@@ -482,6 +491,7 @@ void  SwSendMailDialog::IterateMails()
         if(m_pConfigItem->IsMailReplyTo())
pMessage->setReplyToAddress(m_pConfigItem->GetMailReplyTo());
         pMessage->addRecipient( pCurrentMailDescriptor->sEMail );
+    sleep(1);
         pMessage->SetSenderName( m_pConfigItem->GetMailDisplayName() );
         pMessage->SetSenderAddress( m_pConfigItem->GetMailAddress() );
if(!pCurrentMailDescriptor->sAttachmentURL.isEmpty())




_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to