• Outlook User
  • New Outlook app
  • Outlook.com
  • Outlook Mac
  • Outlook & iCloud
  • Developer
  • Microsoft 365 Admin
    • Common Problems
    • Microsoft 365
    • Outlook BCM
    • Utilities & Addins

Macro to Export Outlook Fields to Excel

Slipstick Systems

› Developer › Code Samples › Macro to Export Outlook Fields to Excel

Last reviewed on September 17, 2021     285 Comments

This macro collects the fields from each Outlook message in a selection and writes the values of the fields to an Excel worksheet. It's easily adapted to work with any field and any Outlook item type.

In Excel 2016, rCount is finding the last USED line, not the next blank line. Use rCount = rCount + 1 to move down one line.

Write Outlook data to a spreadsheet

Updated November 25 2017 to get all recipient addresses.
Updated October 20 2017 to create a new workbook (user will need to save it). Also added column names and adjusted the column widths.

If you want to run the macro on all messages in the selected folder, use this file. In addition, it will create the workbook if it doesn't exist and add the columns headers if needed.

An Excel version of this macro is available in a workbook template here or as a text file here. The workbook code removes hyperlinked URLs from the messages (for easier reading in Excel).

Option Explicit
 Sub CopyToExcel()
 Dim xlApp As Object
 Dim xlWB As Object
 Dim xlSheet As Object
 Dim rCount As Long
 Dim bXStarted As Boolean
 Dim enviro As String
 Dim strPath As String

 Dim currentExplorer As Explorer
 Dim Selection As Selection
 Dim olItem As Outlook.MailItem
 Dim obj As Object
 Dim strColA, strColB, strColC, strColD, strColE As String
               
' Get Excel set up
     On Error Resume Next
     Set xlApp = GetObject(, "Excel.Application")
     If Err <> 0 Then
         Application.StatusBar = "Please wait while Excel source is opened ... "
         Set xlApp = CreateObject("Excel.Application")
         bXStarted = True
     End If
     On Error GoTo 0
     
'## Open a specific workbook to input the data
'the path of the workbook under the windows user account
'enviro = CStr(Environ("USERPROFILE"))
' strPath = enviro & "\Documents\test.xlsx"
'     Set xlWB = xlApp.Workbooks.Open(strPath)
'     Set xlSheet = xlWB.Sheets("Sheet1")
'## End Specific workbook

'## Use New Workbook
Set xlWB = xlApp.Workbooks.Add
Set xlSheet = xlWB.Sheets("Sheet1")
'## end use new workbook

' Add column names
  xlSheet.Range("A1") = "Sender"
  xlSheet.Range("B1") = "Sender address"
  xlSheet.Range("C1") = "Message Body"
  xlSheet.Range("D1") = "Sent To"
  xlSheet.Range("E1") = "Recieved Time"

' Process the message record
    
  On Error Resume Next
'Find the next empty line of the worksheet
rCount = xlSheet.Range("A" & xlSheet.Rows.Count).End(-4162).Row
'needed for Exchange 2016. Remove if causing blank lines.
rCount = rCount + 1

' get the values from outlook
Set currentExplorer = Application.ActiveExplorer
Set Selection = currentExplorer.Selection
  For Each obj In Selection

    Set olItem = obj
    
 'collect the fields
    strColA = olItem.SenderName
    strColB = olItem.SenderEmailAddress
    strColC = olItem.Body
    strColD = olItem.To
    strColE = olItem.ReceivedTime
    
'### Get all recipient addresses
' instead of To names
Dim strRecipients As String
Dim Recipient As Outlook.Recipient
For Each Recipient In olItem.Recipients
 strRecipients = Recipient.Address & "; " & strRecipients
 Next Recipient

  strColD = strRecipients
'### end all recipients addresses

'### Get the Exchange address
' if not using Exchange, this block can be removed
 Dim olEU As Outlook.ExchangeUser
 Dim oEDL As Outlook.ExchangeDistributionList
 Dim recip As Outlook.Recipient
 Set recip = Application.Session.CreateRecipient(strColB)

If InStr(1, strColB, "/") > 0 Then
' if exchange, get smtp address
    Select Case recip.AddressEntry.AddressEntryUserType
       Case OlAddressEntryUserType.olExchangeUserAddressEntry
         Set olEU = recip.AddressEntry.GetExchangeUser
         If Not (olEU Is Nothing) Then
             strColB = olEU.PrimarySmtpAddress
         End If
       Case OlAddressEntryUserType.olOutlookContactAddressEntry
         Set olEU = recip.AddressEntry.GetExchangeUser
         If Not (olEU Is Nothing) Then
            strColB = olEU.PrimarySmtpAddress
         End If
       Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry
         Set oEDL = recip.AddressEntry.GetExchangeDistributionList
         If Not (oEDL Is Nothing) Then
            strColB = olEU.PrimarySmtpAddress
         End If
     End Select
End If
' ### End Exchange section

'write them in the excel sheet
  xlSheet.Range("A" & rCount) = strColA ' sender name
  xlSheet.Range("B" & rCount) = strColB ' sender address
  xlSheet.Range("C" & rCount) = strColC ' message body
  xlSheet.Range("D" & rCount) = strColD ' sent to
  xlSheet.Range("E" & rCount) = strColE ' recieved time
 
'Next row
  rCount = rCount + 1
Next
' size the cells
    xlSheet.Columns("A:E").EntireColumn.AutoFit
    xlSheet.Columns("C:C").ColumnWidth = 100
    xlSheet.Columns("D:D").ColumnWidth = 30
    xlSheet.Range("A2").Select
    xlSheet.Columns("A:E").VerticalAlignment = xlTop

 
 xlApp.Visible = True

' to save but not close
'xlWB.Save

' to save and close
'     xlWB.Close 1
'     If bXStarted Then
'         xlApp.Quit
'     End If
' end save and close
    
     Set olItem = Nothing
     Set obj = Nothing
     Set currentExplorer = Nothing
     Set xlSheet = Nothing
     Set xlWB = Nothing
     Set xlApp = Nothing
 End Sub

Automate using an ItemAdd or Run a Script Macro

With a few slight modifications, we can watch a folder for new messages and process new mail as it arrives.

This set of macros needs to go into ThisOutlookSession.

Warning: If too many messages come in at one time, the macro could fail.

If you need to filter the messages that added to the spreadsheet you have two options: use an If statement to exit the macro or convert it to a Run a Rule script.

If you use an if Statement, it should be the first line of the bjItems_ItemAdd macro.

Private Sub objItems_ItemAdd(ByVal Item As Object)
If InStr(1, Item.Subject, "Tip") = 0 Then Exit Sub

For a run a script rule, delete Private Sub objItems_ItemAdd(ByVal Item As Object) and all of the lines above it then use this as the macro name and create your rule.
Public Sub ShowMessage(Item As Outlook.MailItem)

Option Explicit
Private objNS As Outlook.NameSpace
Private WithEvents objItems As Outlook.Items

Private Sub Application_Startup()
 
Dim objWatchFolder As Outlook.Folder
Set objNS = Application.GetNamespace("MAPI")

'Set the folder and items to watch:
' Use this for a folder in your default data file
Set objWatchFolder = objNS.GetDefaultFolder(olFolderInbox)

' to watch a folder in a non-default data file
' seehttp://slipstick.me/qf for GetFolderPath Function
' Set objWatchFolder = GetFolderPath("me@domain.com\Inbox")

Set objItems = objWatchFolder.Items

Set objWatchFolder = Nothing
End Sub

Private Sub objItems_ItemAdd(ByVal Item As Object)
 Dim xlApp As Object
 Dim xlWB As Object
 Dim xlSheet As Object
 Dim rCount As Long
 Dim bXStarted As Boolean
 Dim enviro As String
 Dim strPath As String

 Dim strColB, strColC, strColD, strColE, strColF As String
               
' Get Excel set up
enviro = CStr(Environ("USERPROFILE"))
'the path of the workbook
 strPath = enviro & "\Documents\test.xlsx"
     On Error Resume Next
     Set xlApp = GetObject(, "Excel.Application")
     If Err <> 0 Then
         Application.StatusBar = "Please wait while Excel source is opened ... "
         Set xlApp = CreateObject("Excel.Application")
         bXStarted = True
     End If
     On Error GoTo 0
     'Open the workbook to input the data
     Set xlWB = xlApp.Workbooks.Open(strPath)
     Set xlSheet = xlWB.Sheets("Sheet1")
    ' Process the message record
    
    On Error Resume Next
'Find the next empty line of the worksheet
rCount = xlSheet.Range("B" & xlSheet.Rows.Count).End(-4162).Row
'needed for Exchange 2016. Remove if causing blank lines.
rCount = rCount + 1

 'collect the fields
    strColC = Item.SenderEmailAddress
    strColB = Item.SenderName
    strColD = Item.Body
    strColE = Item.To
    strColF = Item.ReceivedTime

' Get the Exchange address
' if not using Exchange, this block can be removed
 Dim olEU As Outlook.ExchangeUser
 Dim oEDL As Outlook.ExchangeDistributionList
 Dim recip As Outlook.Recipient
 Set recip = Application.session.CreateRecipient(strColC)

 If InStr(1, strColC, "/") > 0 Then
' if exchange, get smtp address
     Select Case recip.AddressEntry.AddressEntryUserType
       Case OlAddressEntryUserType.olExchangeUserAddressEntry
         Set olEU = recip.AddressEntry.GetExchangeUser
         If Not (olEU Is Nothing) Then
             strColC = olEU.PrimarySmtpAddress
         End If
       Case OlAddressEntryUserType.olOutlookContactAddressEntry
         Set olEU = recip.AddressEntry.GetExchangeUser
         If Not (olEU Is Nothing) Then
            strColC = olEU.PrimarySmtpAddress
         End If
       Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry
         Set oEDL = recip.AddressEntry.GetExchangeDistributionList
         If Not (oEDL Is Nothing) Then
            strColC = olEU.PrimarySmtpAddress
         End If
     End Select
End If
' End Exchange section

'write them in the excel sheet
  xlSheet.Range("B" & rCount) = strColB
  xlSheet.Range("c" & rCount) = strColC
  xlSheet.Range("d" & rCount) = strColD
  xlSheet.Range("e" & rCount) = strColE
  xlSheet.Range("f" & rCount) = strColF
 
'Next row
  rCount = rCount + 1

     xlWB.Close 1
     If bXStarted Then
         xlApp.Quit
     End If
    
     Set xlApp = Nothing
     Set xlWB = Nothing
     Set xlSheet = Nothing
 End Sub

How to use macros

First: You will need macro security set to low during testing.

To check your macro security in Outlook 2010 or 2013, go to File, Options, Trust Center and open Trust Center Settings, and change the Macro Settings. In Outlook 2007 and older, it’s at Tools, Macro Security.

After you test the macro and see that it works, you can either leave macro security set to low or sign the macro.

Open the VBA Editor by pressing Alt+F11 on your keyboard.

To put the code in a module:

  1. Right click on Project1 and choose Insert > Module
  2. Copy and paste the macro into the new module.

More information as well as screenshots are at How to use the VBA Editor

Macro to Export Outlook Fields to Excel was last modified: September 17th, 2021 by Diane Poremsky

Related Posts:

  • Send Email to Addresses in an Excel Workbook
  • Log Messages and Attachment Names
  • Use VBA to create a Mail Merge from Excel
  • Copy data from Outlook email tables to Excel

About Diane Poremsky

A Microsoft Outlook Most Valuable Professional (MVP) since 1999, Diane is the author of several books, including Outlook 2013 Absolute Beginners Book. She also created video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.

Subscribe
Notify of
285 Comments
newest
oldest most voted
Inline Feedbacks
View all comments

Martin
September 28, 2021 6:05 am

Hi Diane - I love your work, and maybe depend on it a little too much!

I'm having an odd issue with your code.

When I have a block of emails selected (e.g. a month's worth), the macro gets to a point as it moves down the list of emails where it will not update the sender / sender address / message body / Sent To values BUT the Received Time will properly output row-by-row.

It isn't the particular email that is causing issues, because if I select the day the email is sent, I will get proper output - one spreadsheet row per email.

Because it works up to a point and then stops working for some (not all) of the olItem fields, I can't even begin to troubleshoot it. Can you help?

0
0
Reply
Diane Poremsky
Author
Reply to  Martin
September 28, 2021 7:49 am

Any idea what the point is? A few others reported problems at something like 200 messages - I understood for them that it just stopped - not that one field worked. I exported some 40,000 messages last weeks, no problem (it took 15 min or more to complete.)

Are the messages all emails? If you have reports, meeting invites or other non-mail mailed items, it should error but could be trying to export them - they don't have all the same fields though. (Should have sender, subject, and date.)

if you need non-mail items exported, change Dim olItem As Outlook.MailItem to Dim olItem As Object, if you don't need them exported, make this change:

For Each obj In Selection
if obj,messageclass = "IPM.Note" then
Set olItem = obj

----snipped---

rCount = rCount + 1

end if
Next

0
0
Reply
Martin
Reply to  Diane Poremsky
October 12, 2022 5:04 pm

Hi Diane

I don't know if the original commenter was me or not, but I have a suspiciously similar problem after 244 rows output out of 2016 total. Have tried the two variations you have mentioned above, with no success. Did you ever get a fix that worked for the other people you mentioned?

0
0
Reply
Diane Poremsky
Author
Reply to  Martin
October 12, 2022 11:59 pm

No, not that I know of.

It always dies after 244 rows?

0
0
Reply
Martin
Reply to  Diane Poremsky
October 13, 2022 2:04 pm

Just run it again with a different selection of emails (a filtered month; 381 total), sorted ascending.
This time, row 248 (including header) is the last row with different sender/sender address/message body/sent to. These values just repeat from row 249 onward (as mentioned, only the Received Time corresponds to an email after this point).

Do the same thing again with that filtered month but in descending order, and the last properly output row is row 238.

Perplexing.

0
0
Reply
Martin
Reply to  Diane Poremsky
October 13, 2022 2:05 pm

FYI, 248 ascending vs 238 descending is not a typo.

0
0
Reply
Muhammad K Khan
June 23, 2021 4:02 am

hi how can i get only email address (to,cc,from field) all folders using that script, and duplicate removal.

Last edited 4 years ago by Muhammad K Khan
0
0
Reply
Diane Poremsky
Author
Reply to  Muhammad K Khan
June 27, 2021 9:11 pm

If you want all addresses it was sent to, you need to get the recipients.

'### Get all recipient addresses
' instead of To names
Dim strRecipients As String
Dim Recipient As Outlook.Recipient
For Each Recipient In olItem.Recipients
strRecipients = Recipient.Address & "; " & strRecipients
Next Recipient

strColD = strRecipients
'### end all recipients addresses

Remove the fields you don't want here -
'write them in the excel sheet
xlSheet.Range("A" & rCount) = strColA ' sender name
xlSheet.Range("B" & rCount) = strColB ' sender address
xlSheet.Range("C" & rCount) = strColC ' message body
xlSheet.Range("D" & rCount) = strColD ' sent to
xlSheet.Range("E" & rCount) = strColE ' recieved time

0
0
Reply
N Pacheco
May 25, 2021 9:08 am

Hello. In your email, you know how you can put a category heading on an email... is there a way to import that information as well as the subject, body, and sender into Excel? Thanks....

0
0
Reply
Diane Poremsky
Author
Reply to  N Pacheco
May 26, 2021 2:17 pm

Dang clipboard = nothing like pasting the wrong answer. :)

Yes, you can get the categories - it is .categories:

For example:
strColE = olItem.Categories

0
0
Reply
Diane Poremsky
Author
Reply to  N Pacheco
May 26, 2021 2:23 pm

The export function built into outlook would include it - but the body field is messed up when exporting.

The macro would use this;

 'collect the fields
  strColC = Item.SenderEmailAddress
  strColB = Item.SenderName
  strColD = Item.Body
  strColE = Item.To
  strColF = Item.ReceivedTime
 strColG = Item.Categories

'write them in the excel sheet
 xlSheet.Range("B" & rCount) = strColB
 xlSheet.Range("c" & rCount) = strColC
 xlSheet.Range("d" & rCount) = strColD
 xlSheet.Range("e" & rCount) = strColE
 xlSheet.Range("f" & rCount) = strColF
xlSheet.Range("g" & rCount) = strColG

0
0
Reply
Iuri
November 23, 2020 3:48 pm

Hey there, nice addition btw !

Also wanted to know like Tommy if the "in Folder" field is possible to be added through macro.

0
0
Reply
Diane Poremsky
Author
Reply to  Iuri
November 25, 2020 1:07 am

item.Parent will get the folder name the item is in.
item.Parent.FolderPath gets the folder path

Contacts
\\Kevin\Contacts

Last edited 5 years ago by Diane Poremsky
0
0
Reply
RHarrill
October 8, 2020 8:27 am

Hi Diane Thank you for all the great vba code for exporting emails to Excel. It has been years since I coded with vba so your examples made the project go much faster. I am having one issue. The Received Date in the email is in UK date format dd-mm-yyyy. When it exports, it exports to a USA date format - mm-dd-yyyy. So 08-10-2020 becomes 10-08-2020 so to us - that reads 10 Aug 2020 not 8 Oct 2020. Changing the format in Exceldoes not get around this problem. Do you have any ideas on how to resolve? Kind regards

0
0
Reply
Diane Poremsky
Author
Reply to  RHarrill
November 25, 2020 1:09 am

Try using this:
Format(olItem.ReceivedTime, "dd-mm-yyyy")

0
0
Reply
Tim
June 8, 2020 9:30 am

Is it possible to grab the data from .msg files within a folder rather than from Outlook?

0
0
Reply
Diane Poremsky
Author
Reply to  Tim
June 9, 2020 8:41 am

Get the Send/receive date msg files saved on the computer? Only if you open the message - its not saved in the metadata exposed in the file system. So yeah, its possible, but is a bit slower.

0
0
Reply
Dianne
May 12, 2020 8:05 am

Oh this is what I'm looking for but need to add other fields. Category, Name of Attachment, In Folder, In Sub-folder.

Please can you help?

0
0
Reply
Tommy
April 25, 2020 11:38 am

Hi Dianne,
Thanks for the great code and your assume comments!
Just one thing i could not find back on your site.

How can i loop trough folders directly underneed from an shared EX mailbox?

->Inbox (loop trough each mail)
------->folder 1 to 40 (loop trough each mail)

Thank You!!!!!!!

0
0
Reply
Tommy
Reply to  Tommy
April 25, 2020 11:44 am

In addition, this is what i use successfully to access the inbox.

Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set objOwner = OutlookNamespace.CreateRecipient("test@test.com")
Set objFolder = OutlookNamespace.GetSharedDefaultFolder(objOwner, olFolderInbox)
Set objItems = objFolder.Items
  
 For Each obj In objItems
Set olItem = obj

1
0
Reply
Tommy
Reply to  Tommy
April 30, 2020 11:02 am

Hey Dianne,
Now iam baffled. If i run the code, slight modified in outlook, no problems.
If i run it trough excel, i get only the Inbox, not the sub-folders.

objFolder shows only 1 folder, not my 40 sub-folders. Any thoughts?

0
0
Reply
Tommy
Reply to  Tommy
April 27, 2020 8:07 pm

Hi Dianne,
Nevermind got it.
VBA is awsume, i had no idea how cool it is!!!!

0
0
Reply

Visit Slipstick Forums.
What's New at Slipstick.com

Latest EMO: Vol. 30 Issue 36

Subscribe to Exchange Messaging Outlook






Support Services

Do you need help setting up Outlook, moving your email to a new computer, migrating or configuring Office 365, or just need some one-on-one assistance?

Our Sponsors

CompanionLink
ReliefJet
  • Popular
  • Latest
  • Week Month All
  • Use Classic Outlook, not New Outlook
  • How to Remove the Primary Account from Outlook
  • Reset the New Outlook Profile
  • Adjusting Outlook's Zoom Setting in Email
  • This operation has been cancelled due to restrictions
  • How to Hide or Delete Outlook's Default Folders
  • Disable "Always ask before opening" Dialog
  • Removing Suggested Accounts in New Outlook
  • Remove a password from an Outlook *.pst File
  • Syncing Outlook with an Android smartphone
  • Opt out of Microsoft 365 Companion Apps
  • Mail Templates in Outlook for Windows (and Web)
  • Urban legend: Microsoft Deletes Old Outlook.com Messages
  • Buttons in the New Message Notifications
  • Move Deleted Items to Another Folder Automatically
  • Open Outlook Templates using PowerShell
  • Count and List Folders in Classic Outlook
  • Google Workspace and Outlook with POP Mail
  • Import EML Files into New Outlook
  • Opening PST files in New Outlook
Ajax spinner

Recent Bugs List

Microsoft keeps a running list of issues affecting recently released updates at Fixes or workarounds for recent issues in classic Outlook (Windows).

For new Outlook for Windows: Fixes or workarounds for recent issues in new Outlook for Windows .

Outlook for Mac Recent issues: Fixes or workarounds for recent issues in Outlook for Mac

Outlook.com Recent issues: Fixes or workarounds for recent issues on Outlook.com

Office Update History

Update history for supported Office versions is at Update history for Office

Outlook Suggestions and Feedback

Outlook Feedback covers Outlook as an email client, including Outlook Android, iOS, Mac, and Windows clients, as well as the browser extension (PWA) and Outlook on the web.

Outlook (new) Feedback. Use this for feedback and suggestions for Outlook (new).

Use Outlook.com Feedback for suggestions or feedback about Outlook.com accounts.

Other Microsoft 365 applications and services




New Outlook Articles

Opt out of Microsoft 365 Companion Apps

Mail Templates in Outlook for Windows (and Web)

Urban legend: Microsoft Deletes Old Outlook.com Messages

Buttons in the New Message Notifications

Move Deleted Items to Another Folder Automatically

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Google Workspace and Outlook with POP Mail

Import EML Files into New Outlook

Opening PST files in New Outlook

Newest Code Samples

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Insert Word Document into Email using VBA

Warn Before Deleting a Contact

Use PowerShell to Delete Attachments

Remove RE:, FWD:, and Other Prefixes from Subject Line

Change the Mailing Address Using PowerShell

Categorize @Mentioned Messages

Send an Email When You Open Outlook

Delete Old Calendar Events using VBA

VBA Basics

How to use the VBA Editor

Work with open item or selected item

Working with All Items in a Folder or Selected Items

VBA and non-default Outlook Folders

Backup and save your Outlook VBA macros

Get text using Left, Right, Mid, Len, InStr

Using Arrays in Outlook macros

Use RegEx to extract message text

Paste clipboard contents

Windows Folder Picker

Custom Forms

Designing Microsoft Outlook Forms

Set a custom form as default

Developer Resources

Developer Resources

Developer Tools

VBOffice.net samples

SlovakTech.com

Outlook MVP David Lee

Repair PST

Convert an OST to PST

Repair damaged PST file

Repair large PST File

Remove password from PST

Merge Two Data Files

Sync & Share Outlook Data

  • Share Calendar & Contacts
  • Synchronize two computers
  • Sync Calendar and Contacts Using Outlook.com
  • Sync Outlook & Android Devices
  • Sync Google Calendar with Outlook
  • Access Folders in Other Users Mailboxes

Diane Poremsky [Outlook MVP]

Make a donation

Mail Tools

Sending and Retrieval Tools

Mass Mail Tools

Compose Tools

Duplicate Remover Tools

Mail Tools for Outlook

Online Services

Calendar Tools

Schedule Management

Calendar Printing Tools

Calendar Reminder Tools

Calendar Dates & Data

Time and Billing Tools

Meeting Productivity Tools

Duplicate Remover Tools

Productivity

Productivity Tools

Automatic Message Processing Tools

Special Function Automatic Processing Tools

Housekeeping and Message Management

Task Tools

Project and Business Management Tools

Choosing the Folder to Save a Sent Message In

Run Rules on messages after reading

Help & Suggestions

Submit Outlook Feature Requests

Slipstick Support Services

Buy Microsoft 365 Office Software and Services

Visit Slipstick Forums.

What's New at Slipstick.com

Home | Outlook User | Exchange Administrator | Office 365 | Outlook.com | Outlook Developer
Outlook for Mac | Common Problems | Utilities & Addins | Tutorials
Outlook & iCloud Issues | Outlook Apps
EMO Archives | About Slipstick | Slipstick Forums
Submit New or Updated Outlook and Exchange Server Utilities

Send comments using our Feedback page
Copyright © 2025 Slipstick Systems. All rights reserved.
Slipstick Systems is not affiliated with Microsoft Corporation.

:wpds_smile::wpds_grin::wpds_wink::wpds_mrgreen::wpds_neutral::wpds_twisted::wpds_arrow::wpds_shock::wpds_unamused::wpds_cool::wpds_evil::wpds_oops::wpds_razz::wpds_roll::wpds_cry::wpds_eek::wpds_lol::wpds_mad::wpds_sad::wpds_exclamation::wpds_question::wpds_idea::wpds_hmm::wpds_beg::wpds_whew::wpds_chuckle::wpds_silly::wpds_envy::wpds_shutmouth:
wpDiscuz

Sign up for Exchange Messaging Outlook

Our weekly Outlook & Exchange newsletter (bi-weekly during the summer)






Please note: If you subscribed to Exchange Messaging Outlook before August 2019, please re-subscribe.

Never see this message again.

You are going to send email to

Move Comment