Solved

E-mails sent from MS Acess Application get stuck in Sent folder

Posted on 2013-01-04
5
347 Views
Last Modified: 2013-01-07
We have a function in MS Access that sends e-mails using Outlook.  This was working fine, then our company upgraded to an Outlook 2010 Exchange server.  Now this doesn't work anymore.   The e-mails are in the Sent folder, but never reach the recipients.  However, if you open the messages in the Sent folder and reply to all, they do get to the recipients.

Here is the source...


'SendMAPIEmailto replace the older one
 Public Function SendMAPIEmail(strTo As String, _
           strSubject As String, _
           strMessageBody As String, _
           Optional strAttachmentPaths As String, _
           Optional strCC As String, _
           Optional strBCC As String, _
           Optional strReplyTo As String, _
           Optional dtDTWhen As Date) As Boolean
         
   Dim mailItem As Outlook.mailItem
   Dim bSuccess As Boolean

   ' assume success but set error trap
   bSuccess = True
   lastOutlookErrorDesc = ""

 On Error GoTo SendMAPIEmail_Error

  ' if calling in a loop perhaps remove then clean, at end of loop
   InitOutlook
   If Not olApp Is Nothing Then
    Set mailItem = olApp.CreateItem(olMailItem)

    mailItem.To = strTo
    mailItem.Subject = strSubject

    ' mailItem.Display
    ' If we need HTML - we can use this:
    ' mailItem.HTMLBody = strMessageBody
    mailItem.Body = strMessageBody
   
    '------------ add all the optional items
    ' attachments
    If Not IsMissing(strAttachmentPaths) Then
     If (strAttachmentPaths <> "") Then
      Dim myAttachements As Outlook.Attachments
      Set myAttachements = mailItem.Attachments
      ' may need a little more work here
      myAttachements.Add strAttachmentPaths
     End If
    End If
    ' CC string
    If Not IsMissing(strCC) Then
     If strCC <> "" Then
      mailItem.CC = strCC
     End If
    End If
    ' BCC string
    If Not IsMissing(strBCC) Then
     mailItem.BCC = strBCC
    End If
    ' ReplyTo string
    If Not IsMissing(strReplyTo) Then
      If strReplyTo <> "" Then
        mailItem.ReplyRecipients.Add strReplyTo
      End If
    End If
    ' dtDTWhen string
    If Not IsMissing(dtDTWhen) Then
     mailItem.DeferredDeliveryTime = dtDTWhen
    End If
 '   When debugging this is useful
 '   mailItem.Display

    mailItem.Send

'    GoTo EndSend
   End If

SendMAPIEmail_Exit:
 ' clean up and exit
   CleanUp
   SendMAPIEmail = bSuccess
   On Error GoTo 0
   Exit Function

 ' if we get here then something wne wrong
SendMAPIEmail_Error:
   bSuccess = False
   lastOutlookErrorDesc = Err.DESCRIPTION
   Resume SendMAPIEmail_Exit

 End Function
0
Comment
Question by:jribble
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 57
ID: 38746647
Sounds like the problem is in Exchange.  I would look at the message tracking to see what the issue is.

If it's in the "sent" folder, Outlook considers it sent.

Jim.
0
 
LVL 74

Accepted Solution

by:
Jeffrey Coachman earned 500 total points
ID: 38751053
Try commenting out the all the code regarding "dtDTWhen"
Not sure why it is needed, but it seems to have something to do with "sending" the email, ...this would be a good place to start your investigation.
0
 
LVL 57
ID: 38751071
I missed that; good catch!

Jim.
0
 

Author Closing Comment

by:jribble
ID: 38751500
Removing the dtDTWhen related statments solved the problem.  E-mails are now coming through to my Inbox.
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 38751691
Great,

Again, that was just a shot in the dark...
;-)

As I stated, I was not sure what that was, or why it was needed...

Furthermore, I am not sure why it may have worked before, but does not work now...
(I'm no Exchange Expert...)

;-)


Jeff
0

Featured Post

Increase your protection from Zero Day threats!

Running two Antivirus' is never a good idea.
Taking advantage of Multiple Security layers on the other hand can often save your hide.
See which top notch security software brands have been proven to happily coexist together.
Reduce your chances of becoming a statistic.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Having trouble getting your hands on Dynamics 365 Field Service or Project Service trial? Worry No More!!!
The view will learn how to download and install SIMTOOLS and FORMLIST into Excel, how to use SIMTOOLS to generate a Monte Carlo simulation of 30 sales calls, and how to calculate the conditional probability based on the results of the Monte Carlo …
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…

737 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question