?
Solved

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

Posted on 2013-01-04
5
Medium Priority
?
349 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 58
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 2000 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 58
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

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

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

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Suggested Courses

741 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