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
R Outlook ribbon menu default? Using Outlook 2
H Spam email in Gmail not visible in Outlook Using Outlook 3
J How to transfer Win 10 Outlook to new Windows 11 pc? Using Outlook 8
J Renegade spam URL line displayed in old local Outlook 365 email title Using Outlook 3
G Reduce whitespace in Outlook desktop Contact Cards display Using Outlook 3
C Outlook classic via 365 Using Outlook 2
Dr. Demento Analogous Outlook code to read info into an array (or collection or whatever) Outlook VBA and Custom Forms 7
S Repair Outlook Using Outlook 8
V Outlook Form ListBox is not editable Outlook VBA and Custom Forms 2
F Outlook's contacts Using Outlook 1
D Outlook 2003 stopped dead Using Outlook 2
G Cannot receive emails from gmail account in Outlook 365 Using Outlook 1
E "Cannot display the folder. MS Outlook cannot access the specified file location" Using Outlook 8
P Outlook 2016 Working Offline Using Outlook 2
Rupert Dragwater Cannot reestablish gmail (email address) account in Outlook 365 Using Outlook 11
O Outlook 365 synchronisieren Exchange Server Administration 1
kburrows Outlook Classic - JPG files are corrupted when opened or saved Using Outlook 3
F Sync Outlook Calendar Using Outlook 0
G Change default font size in sticky notes - Outlook Desktop 2021 Using Outlook 2
C VBA in "New Outlook?" Using Outlook 0
D New Outlook with Business Basic Plans Using Outlook 0
D Outlook 2021 not working with Outlook 2003 installed Using Outlook 5
D Outlook 2003 stopped working - get they dialog box asking for username & Password Using Outlook 2
T Outlook 2021 hangs in close on taskbar occasionally Using Outlook 1
M Duplicate removal feature in Outlook 2021 is faulty Using Outlook 2
D.Moore Outlook COM addins source folder Using Outlook 12
P Removing Outlook 365 Account from Send/Receive Using Outlook 3
kburrows Outlook Automatically Merging Contacts Using Outlook 2
A Outlook 2016 Outlook 2016 vs. New Outlook Using Outlook 4
D Outlook Desktop App Email Software Using Outlook 0
efire9207 VBA Outlook Contacts Outlook VBA and Custom Forms 6
M Outlook not logging in to server Using Outlook 0
J Outlook macro to run before email is being send Outlook VBA and Custom Forms 3
R Outlook 2021 change view Using Outlook 2
K Outlook font corrupted in some point sizes, resets on close/open Using Outlook 2
J Is the Windows Outlook Tasks module really going to be gone? Using Outlook 6
F Outlook 2010 and Hotmail Using Outlook 1
A Outlook 2021 needs 'enter' for people search Using Outlook 2
HarvMan Outlook 365 Inbox Font Using Outlook 8
Retired Geek Outlook on MAC delete duplicate Sent emails Using Outlook 0

Similar threads

Back
Top