Outlook 365 Outlook Crashes on setting SaveSentMessageFolder

Status
Not open for further replies.

AlphonseG

New Member
Outlook version
Outlook 365 32 bit
Email Account
Office 365 Exchange
Using Outlook Desktop 365 with Office 365 Exchange. I have a single account with multiple shared mailboxes.
On replying to received messages I want to send from the shared mailbox that the message was addressed to.
When composing a new message, I want to set the SentOnBehalfOfName based on the current folder and save the sent message in the same folder.
With many, many hours of research and trials, I've come up with the below code.
Everything works as desired EXCEPT, saving the new message in the current folder. Setting SaveSentMessageFolder causes Outlook to crash and restart, disabling all VBA on restarting.
Setting it manually works fine. How can I set the SaveSentMessageFolder without crashing?

Code:
Public WithEvents myItem As Outlook.MailItem

Public WithEvents myOlInspectors As Outlook.Inspectors



Private Const conDefaultSendAddress As String = "mydefaultaddress"



Sub Initialize_Handler()

   On Error Resume Next

   Set myOlInspectors = Application.Inspectors

   If TypeName(Application.ActiveWindow) = "Explorer" Then

      Set myItem = Application.ActiveExplorer.Selection.item(1)

   ElseIf TypeName(Application.ActiveWindow) = "Inspector" Then

      Set myItem = Application.ActiveInspector.CurrentItem

   Else

      Set myItem = Nothing

   End If

End Sub



Private Sub Application_Startup()

   Initialize_Handler   '11/25/2022

End Sub



Private Sub myItem_Open(Cancel As Boolean)

'Set Send address and save folder for new email

Dim aE As Outlook.addressEntry

Dim strSaveFolder As String

Dim strFrom As String

Dim oFldr As Outlook.Folder



   If myItem.Recipients.Count = 0 Then

       strFrom = SendAddressForFolder

       myItem.Recipients.Add (strFrom) 'Issue with SentOnBehalfOfName

       myItem.Recipients.ResolveAll

       Set aE = myItem.Recipients(1).addressEntry

       myItem.Recipients.Remove (1)

       myItem.SentOnBehalfOfName = strFrom

       myItem.Sender = aE

       strSaveFolder = NewMailSaveFolder

       If strSaveFolder <> "" Then

         Set oFldr = FindOlFolder(Application.Session.Folders(1), strSaveFolder)

         Set myItem.SaveSentMessageFolder = oFldr 'crashes here

       End If

    End If

End Sub



Private Sub myOlInspectors_NewInspector(ByVal Inspector As Outlook.Inspector)

   Dim msg As Outlook.MailItem

 

   If Inspector.CurrentItem.Class = olMail Then

      Set msg = Inspector.CurrentItem

      If msg.Size = 0 Then

         Set myItem = Inspector.CurrentItem

         'can't set SentOnBehalfOfName here, it does not display

      End If

   End If

End Sub



Private Sub myItem_Forward(ByVal Forward As Object, Cancel As Boolean)

   Call AccountToSendViaEx(Forward, False)

End Sub



Private Sub myItem_Reply(ByVal Response As Object, Cancel As Boolean)

   Call AccountToSendViaEx(Response, True)

   Debug.Print "reply"

End Sub



Private Sub myItem_ReplyAll(ByVal Response As Object, Cancel As Boolean)

   Call AccountToSendViaEx(Response, True)

End Sub



Private Sub AccountToSendViaEx(ByRef Response As Object, ByVal replyAll As Boolean)

   Response.SentOnBehalfOfName = ReplyAddressUse

End Sub



Private Function ReplyAddressUse() As String

      Dim intRet As Integer

      Dim strAddress As String

      Dim recips As Outlook.Recipients

      Dim recip As Outlook.Recipient

      Dim pa As Outlook.PropertyAccessor

      Dim strRet As String

      Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"

        

10    On Error GoTo ErrLine

20       Set recips = myItem.Recipients

30       For Each recip In recips

40          Set pa = recip.PropertyAccessor

50          strAddress = pa.GetProperty(PR_SMTP_ADDRESS)

60          If strAddress Like "*@mydomain*" Then

70             strRet = strAddress

80             Exit For

90          End If

100      Next recip

110      If strRet <> "" Then

120         ReplyAddressUse = strRet

130      Else

140         ReplyAddressUse = SendAddressForFolder

150      End If

ExitLine:

160      On Error Resume Next

170      Set recips = Nothing

180      Set recip = Nothing

190      Set pa = Nothing

200      Exit Function



ErrLine:

210      MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & "Line: " & Erl

220      Resume ExitLine

        

End Function



Private Function SendAddressForFolder() As String

Dim strCurrentFolder As String

Dim strRet As String

   strCurrentFolder = Application.ActiveExplorer.CurrentFolder

   Select Case strCurrentFolder

   Case "mydesiredfolder1"

      strRet = "mysharedmailbox1"

   Case "mydesiredfolder2"

      strRet = "mysharedmailbox2"

   Case "mydesiredfolder3"

      strRet = "mysharedmailbox3"

   Case Else

      strRet = conDefaultSendAddress

   End Select

SendAddressForFolder = strRet

End Function



Private Function NewMailSaveFolder() As String

Dim strCurrentFolder As String

Dim strRet As String

   strCurrentFolder = Application.ActiveExplorer.CurrentFolder

   Select Case strCurrentFolder

   Case "mydesiredfolder1"

      strRet = strCurrentFolder

   Case Else

      strRet = ""

   End Select

   NewMailSaveFolder = strRet

End Function



Private Function FindOlFolder(ByRef objRootFolder As Object, ByVal strName As String) As Outlook.Folder

Dim objFldr As Outlook.Folder

   For Each objFldr In objRootFolder.Folders

      If objFldr.Name = strName Then

         Set FindOlFolder = objFldr

         Exit For

      ElseIf objFldr.Folders.Count > 0 Then

         Set FindOlFolder = FindOlFolder(objFldr, strName)

         If Not FindOlFolder Is Nothing Then

            Exit For

         End If

      End If

   Next

End Function



Private Sub Application_ItemLoad(ByVal item As Object)

   Call Initialize_Handler

End Sub
 
Last edited by a moderator:
On replying to received messages I want to send from the shared mailbox that the message was addressed to.
This should work natively if you have send as permissions
Everything works as desired EXCEPT, saving the new message in the current folder.
Current folder or current mailbox sent folder?

If current folder, are you getting the correct folder?
.
I'll need to test it to see if I can repro -
 
Thank you for the reply. Sorry for the delayed response as I didn't get an email notification. I tweaked my preferences, so hopefully will get them now.
This should work natively if you have send as permissions
No, it does not work natively. I do have the permissions and regularly send via the different mailboxes.
Background - I had been using POP for many years. While the main account and each shared mailbox were separate 'accounts' in Outlook, there was only one folder tree. Even with that, I still had to use code to reply/forward using the received email address.
I just switched to Exchange connection because Microsoft is disabling basic authentication Jan 1 and won't enable MFA for POP. When I did that, Outlook created a separate folder tree for each mailbox - what a mess. After much research, I found that removing permission on the shared mailboxes via PowerShell, then adding them back, with automapping flag = false, eliminated all of the extra folder trees, leaving me with one manageable tree. I still had to use the code for reply/forward. Just had to tweak it to assign SentOnBehalfOfName instead of an 'account'.
Current folder or current mailbox sent folder?
Current folder.
If current folder, are you getting the correct folder?
Yes, I stepped through and checked. Even made sure I declared the variable as an Outlook.Folder, not just an object (had tried that initially). BTW, my version is 16.0.12624.20278 32bit.
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
B Outlook 2016 Outlook crashes when trying to print certain emails Using Outlook 5
D Outlook 2007 crashes when opening an email Using Outlook 2
O Outlook 2016 crashes at start Using Outlook 14
mrje1 Outlook 2016 Manual Email Account Setup, what is the Office 365 option etc., and Crashes Using Outlook 0
Diane Poremsky Outlook crashes when viewing HTML Messages Using Outlook 0
Diane Poremsky Outlook Crashes When You Reply or Create a New Message Using Outlook 0
J Outlook 2013 crashes saving VBA & clicking tools | digital signature Outlook VBA and Custom Forms 1
U outlook 2010 freezes/crashes when opening encrypted e-mails Using Outlook 0
T Outlook Connector crashes outlook! Outlook VBA and Custom Forms 1
M Outlook 2007 crashes with BCM BCM (Business Contact Manager) 1
J column with actual email address in Outlook Classic Using Outlook 2
S Not receving all email since converting from Outlook 2007 to Outlook Classic Using Outlook 3
Rupert Dragwater Outlook 365 taking too long to synchronize each time email is being checked Using Outlook 17
Hornblower409 Outlook VBA Code Example - Unified inbox in Outlook Classic Outlook VBA and Custom Forms 5
J Need replacement for iTunes to locally (USB) sync. iPhone 17 to Classic Outlook 2024 Using Outlook 4
Thomas Fast Best way to manage incoming customer emails automatically in Outlook? Using Outlook 1
I Outlook 2024 Windows 11 Gmail - sudden log in problems Using Outlook 13
S Outlook Classic on 2024 Using Outlook 10
L Fresh Install of Windows 11, saved previous image, how to retrieve Outlook Contacts Using Outlook 10
C Can't Use Custom Contact form in Outlook Classic since early January 2026 Outlook VBA and Custom Forms 7
e_a_g_l_e_p_i Need help updating email in Outlook 2021 Using Outlook 10
V Outlook spam filter misbehaving Using Outlook 9
L what are the downsides of running both classic and new outlook on same win 11 pc? Using Outlook 2
P Preventing permanent deletions in Outlook on the Web Using Outlook 0
L any trick to embedding images in new outlook and outlook on the web contacts? Using Outlook 4
L new outlook contacts searching Using Outlook 5
R Outlook 2010 Outlook 2010 migration question Using Outlook 2
W New Outlook PEOPLE blank Using Outlook 6
C New Outlook issues with Gmail, particularly labels/folders Using Outlook 3
E What is the next workaround for macro in New Outlook 1.2025.1111.100 Outlook VBA and Custom Forms 3
E Need to digitally sign macro but VBA\Outlook crash Outlook VBA and Custom Forms 4
P Outlook 2003 no longer opens "without" Folder List Showing in Navigation Pane Using Outlook 2
Hornblower409 Outlook 2010 - Never ending update Using Outlook 0
V Outlook created new profile? Using Outlook 1
J Outlook inbox question Using Outlook 4
T How to Add AT&T Contacts to Outlook 365 Using Outlook 5
F Outlook 2021 outlook on iPhone Using Outlook 1
F Outlook 2021 Outlook on iPhone asks for password Using Outlook 0
P ics calendar entries suddenly open up new Outlook Using Outlook 3
P Outlook "forgets" password until system rebooted Using Outlook 2
N Why does Outlook keeping adding to the email address I have in my notes portion of a contact? Using Outlook 2
M Anyone integrated AI website builders with Outlook for automated client communications? Using Outlook 4
V Gmail in Outlook Using Outlook 2
T Where has the Copilot icon gone in my Outlook desktop client? Using Outlook 10
P New way by Microsoft to get people to use the new Outlook Using Outlook 4
C How to keep emails in account in Outlook after closing the IMAP account Using Outlook 1
cymumtaz IMAP calendars in New Outlook Using Outlook 5
T Constantly Have To Log In To Outlook On The Web Using Outlook.com accounts in Outlook 2
T Cannot Find Outlook Noted On Android Using Outlook 4
O Outlook 2024 not showing that messages are replied to or forwarded Using Outlook 3

Similar threads

Back
Top