Forum Discussion

Kendethar's avatar
Kendethar
Iron Contributor
Apr 11, 2022

SOLVED - Disable Junk Folder

Hello,

 

     I had a persisting issue of important E-mails going into my junk folder, under my nose, causing a couple instances of trouble at my job. I turned off automatic filtering but it made absolutely no difference. The lowest level of auto filtering stated it would still send blocked senders to my junk folder but I have very few senders that are blocked and the E-mails that Outlook would send to junk were from people at work who had never E-mailed me before.

 

Of course, there is always a need for junk folders. We all know those pesky insurance companies that you got a quote from once then using their unsubscribe is seemingly vain. My spam folder has and is always just the domains I listed to go to it, and nothing else - has never given me issues, unlike junk. So, I researched a fix to this issue to no avail. I then tried to delete or disable the junk folder but it is a default folder of Outlook, so not possible. So, I looked into VBA and came up with code from researching varying sources.

 

This is what I came up with, posted for anyone else that may have this issue. If there is an easier way and/or suggestions to improve the code further, please let me know.  

Private Sub Application_ItemLoad(ByVal Item As Object)
Call Disable_JunkFolder
'Note: This sub will run on application startup.
End Sub
Sub Disable_JunkFolder()

'''ENABLE THIS CODE:
'Click the File tab > Options > Trust Center > Trust Center Settings > Macro Settings > select _
"Enable all macros" > OK > OK

'''APPLY THIS CODE:
'Click the File tab > Options > Customize Ribbon > Under "Customize the Classic Ribbon" and under "Main Tabs", _
select the "Developer" check box > OK > click the Developer tab > Visual Basic > select "ThisOutlookSession" > _
paste all this code > at the top left of the code window, click the "Save VbaProject.OTM" button (Ctrl+S)

'''DISABLE THIS CODE:
'Remove single quotation mark in front of "Exit Sub" (add symbol back to re-enable) or permanently delete all _
this code then save.

'Exit Sub
Dim Folder_Inbox As Outlook.Folder
Dim Folder_Junk As Outlook.Folder
Dim Outlook_EmailAccount As Outlook.Store
Dim Notification_Item_All As String, Notification_Acc As String, Noted_Acc_Count As Integer
Notification_Item_All = "Recovered the E-mail(s): """
Noted_Acc_Count = 0
On Error Resume Next
    For Each Outlook_EmailAccount In Application.Session.Stores
    Set Folder_Inbox = Outlook_EmailAccount.GetDefaultFolder(olFolderInbox)
    Set Folder_Junk = Outlook_EmailAccount.GetDefaultFolder(olFolderJunk)
        While InStr(Folder_Junk, "Spam") = False And Folder_Junk.Items.Count <> 0
        'While InStr(Folder_Junk, "Junk") And Folder_Junk.Items.Count <> 0 '(Can be used instead)
            For Each Item In Folder_Junk.Items
            If Notification_Item_All = "Recovered the E-mail(s): """ Then
            Notification_Item_All = Notification_Item_All & Item.Subject & """"
            Else: Notification_Item_All = Notification_Item_All & ", """ & Item.Subject & """"
            End If
            If InStr(Notification_Acc, Outlook_EmailAccount) = False Then
            If Noted_Acc_Count = 0 Then
            Noted_Acc_Count = Noted_Acc_Count + 1: Notification_Acc = Outlook_EmailAccount
            Else: Notification_Acc = Notification_Acc & ", " & Outlook_EmailAccount
            End If: End If
            Item.Move Folder_Inbox
            Next
        Wend
    Next
If Notification_Item_All <> "Recovered the E-mail(s): """ Then
Notification_Item_All = Notification_Item_All & " from the junk folder in: " & Notification_Acc
MsgBox Notification_Item_All, vbInformation, "Microsoft Outlook - E-mail Recovery": End If '(Can disable this MsgBox with single quotation mark)

'Note: This code does not include any spam folder.
'Note: This code applies to all associated accounts saved within the Outlook Application.

'''Code credit:
'Kenneth Nelson
'https://techcommunity.microsoft.com/t5/outlook/solved-disable-junk-folder/m-p/3281531

'''Original code credits:
'https://stackoverflow.com/questions/47992801/vba-move-mail-from-junk-to-inbox
'https://stackoverflow.com/questions/38191434/switching-between-accounts-then-looping-through-email
'https://docs.microsoft.com/en-us/office/vba/api/outlook.oldefaultfolders
'https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.subject

End Sub