Microsoft Outlook is a personal information manager from Microsoft, available as a part of the Microsoft Office suite. Although often used mainly as an email application, it also includes a calendar, task manager, contact manager, note-taker, journal, and web browser.

Help would be appreciated (please provide code if possible)!

 1. Select part of the Outlook mail body with the mouse.
 2. Run the macro on the selection.

[Selected content of Outlook email body - before running macro]
Please send your mail to email@email.com. And also to hello@emails.com and email@email.com as well. But don't send to email@emails.com please.

[Current outcome]
Please send your mail to email@email.com. And also to hello@emails.com and emaemail@emails.com well. But don't send to email@emails.com please.

[Desired outcome]
Please send your mail to email@email.com. And also to hello@emails.com and email@email.com as well. But don't send to email@emails.com please.

[Outlook 2010 VBA code]
Sub MakeEmailHyperlink()
On Error GoTo ERR_MakeEmailHyperlink
    Dim objItem As Object
    Set objItem = Application.ActiveInspector.CurrentItem

    Dim objInsp As Outlook.Inspector
    Set objInsp = objItem.GetInspector

    Dim objDoc As Word.Document
    Set objDoc = objInsp.WordEditor

    Dim objWord As Word.Application
    Set objWord = objDoc.Application

    Dim objSel As Word.Selection
    Set objSel = objWord.Selection

    Dim objRegExp As RegExp
    Dim objMatches As MatchCollection
    Dim objMatch As Variant

    Set objRegExp = New RegExp
    With objRegExp
        .MultiLine = True
        .Global = True
        .IgnoreCase = True
        .Pattern = "\b[\S]+\@[\S]+\.com\b"
    End With

Open in new window

I'm needing to change the cursor in Outlook while a proc is running.

In Office x32 I use, and it works.

Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long
Private Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long
Private Const OCR_NORMAL = 32512
Private Const IDC_WAIT = 32514&

Sub CursorWait()
    Dim hCursor               As Long

    On Error GoTo Error_Handler

    hCursor = LoadCursor(ByVal 0&, IDC_WAIT)
    SetSystemCursor hCursor, OCR_NORMAL
    DestroyCursor hCursor

    On Error Resume Next
    Exit Sub

    MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
           "Error Number: " & Err.Number & vbCrLf & _
           "Error Source: CursorWait" & vbCrLf & _
           "Error Description: " & Err.Description & _
           Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
           , vbOKOnly + vbCritical, "An Error has Occurred!"
    Resume Error_Handler_Exit
End Sub

Sub CursorNormal()
    Dim hCursor               As Long

    On Error GoTo Error_Handler

    hCursor = LoadCursor(ByVal 0&, OCR_NORMAL)
    SetSystemCursor hCursor, IDC_WAIT
    DestroyCursor hCursor

    On Error Resume Next
    Exit Sub

    MsgBox "The following error has occurred" & 

Open in new window

Hi Experts,

I have a problem with one outlook client.
The clients said he has not send this emails.

We use Exchange Online and O365.

How to find out, who was the original sender ?
A client received this email, its spam.   I pulled the header from the email, and I was wondering if someone can assist in identifying which line shows a bogus inbound or outbound sending line? I went through it a couple times and this is my only source to identify where the sender came  from.

Received: from BN6PR2201MB1137.namprd22.prod.outlook.com
 (2603:10b6:404:8d::27) by BN6PR2201MB1746.namprd22.prod.outlook.com with
 HTTPS via BN6PR04CA0077.NAMPRD04.PROD.OUTLOOK.COM; Tue, 25 Feb 2020 19:51:11
Received: from DM3PR14CA0133.namprd14.prod.outlook.com (2603:10b6:0:53::17) by
 BN6PR2201MB1137.namprd22.prod.outlook.com (2603:10b6:405:36::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.21; Tue, 25 Feb
 2020 19:51:09 +0000
Received: from DM3NAM05FT043.eop-nam05.prod.protection.outlook.com
 (2603:10b6:0:53:cafe::96) by DM3PR14CA0133.outlook.office365.com
 (2603:10b6:0:53::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.18 via Frontend
 Transport; Tue, 25 Feb 2020 19:51:08 +0000
Authentication-Results: spf=fail (sender IP is
 smtp.mailfrom=birdair.com; superiorsiti.mail.onmicrosoft.com; dkim=pass
 (signature was verified)
 dmarc=none action=none header.from=birdair.com;
Received-SPF: Fail (protection.outlook.com: domain of birdair.com does not

Open in new window

Recently we went through the process of adding employee photos to AD.  The photos were all added with the CodeTwo Active Directory Photos tool and resized so all are under the 1MB limitation (most are around 40-50KB).

After adding the photos we are experiencing issues with the Outlook clients specifically:
- opening an email from coworkers > print > print screen and Outlook goes to "Not Responding"
- creating an email with other coworkers > save it as a draft > go to drafts folder and try to open email Outlook goes to "Not Responding"

I have done an exhaustive search and cannot find any info regarding these issues.

We are using:
- Exchange 2016
- Outlook 2013 clients
- Server 2008R2SP1 domain controllers

Any insights would be greatly appreciated.
Thank you!
Back in the day you could use apps like PocketMirror etc. that would keep folders in Outlook in sync with each other. Now with API's, Zapier, and the like you can use the "cloud" to keep databases in sync. Looking for a way to keep Icloud Contacts(Iphone) and Outlook Contacts (Office 365 Premium/Exchange) in sync

Windows 10 with Outlook 2019 and Office 365 Business Premium Mail setup and iCloud app installed to Sync Icloud Contacts in iCloud folder in Outlook

iPhone 8 with phone contacts (synced with iCloud contacts) and Outlook App (Sync'd with Office 365 Business Premium/Exchange)

Need app that runs in Outlook on Windows machine or maybe some API service that will sync the Icloud Contacts to the Office 365 Business Premium/Exchange Contacts so that when either databases are updated the sync pushes through both ways.
Historically I've kept lots of email locally on my laptop.  This includes historical email, but also email with links, product license codes/keys, etc.

With my old laptop, I would clone my laptop regularly and copy my Outlook offline folders even more regularly to a thumb drive.

I got a new laptop and I can no longer use Outlook for my personal email, so I've switched to Thunderbird.  I'd like to improve on my previous approach by using my OneDrive for these files, which should keep me from losing almost any mail.

Does anyone know of a process to move the offline TB folders in their default location to a One Drive folder?  Is it as simple as copying them and changing where Thunderbird looks?
Hello all

Below is a Sample that I have in multiple spreadsheets

AlarmID      Zone      Stime      Etime      StoreOpen      Comments
M1253      Bdoor      1:53      1:59      Y      
M5243      Bdoor      1:02      1:03      N                     Please research
M8696      Fdoor      1:04      1:06      N                     Second time this week
M4586      Roof      3:48      3:53      Y      

I would like to add a button to the spreadsheets that would generate 1 email with only the alarms there the StoreOpen column is N.  I think some sort of loop through a range in excel would work.

For example with the information above the email could contain 2 records in the body of the email and would look something like below  (the most should only be 5 so not too long):

To: anyperson@anyemail.com
Subject: Alarm Alert

Please review the following Alarms:

AlarmID: M5243
Zone: Bdoor
Comments: Please Research

AlarmID: M8696
Stime: 1:04
ETime 1:06
Comments: Second Time this week
I need to automate a task in Outlook.

I need a button in an email form to open an email in a new forwarding form, change the From: field to another account and add a particular address in the To: field then send the message. This will change a 6 click & 1 keystrake operation into 1 click.

I expect this can be done with VB code assigned to a custom button the the ribbon or the Quick Access Toolbar

Thanks in advance

Simple question. Is O365 uses TLS protocol to send email or we need to activate this function?


in a previous ask to "Convert Months to Days for Total price Calculation". I had an issue with entering a "Renewal Date" into the userform. In the attached workbook is the fix.  

This issue was fixed but changes are not incorporated into this worksheet 29173473a.xlsm. Please incorporate the fixed code.



I need help with converting the attached link file worksheets Original Quote and RAW_DATA to a Table format with the ability to convert back to a range while having the code to still function correctly.

I have a problem sending email attachments from my Outlook account to various Yahoo email accounts.  The email arrives fine, but the attachments are somehow corrupted into something that cannot be opened.  Below is a screen shot of the message I get when I attempt to download a PDF file, though the same happens with Word attachments.  And there is no "open" option available.  It seems as though all the attachments are renamed to some version of "di-mail.ymail.com":

Yahoo Attachment Problem
Please help.


I'm looking for a way to move email I have in an Outlook *.pst file to Thunderbird that actually works.

I used to use Outlook for personal email, which I kept in a *.pst file.  The company policy has changed however and I cannot use Outlook for personal email any longer.

My personal email is Gmail and Thunderbird has been a long-time supplier of a solid email product so I installed that and it works fine, however I have thousands of email in a hierarchy of perhaps a hundred folders I need to move over.

I've tried uploading to gmail folders from Outlook on another computer, however that's a complete joke.  Files don't show up.  The equivalent of folders in email don't get created.  Just a disaster.

I've downloaded a thunderbird extension for import, however it fails while throwing windows errors.

I have yet to find a program that can move the email (and the folder hierarchy) into Thunderbird, so I'm writing to see if anyone can recommend one that will actually work.  Free or otherwise.
Hello all.

I am experiencing an issue with a critical user who is currently in an ongoing litigation from 2013.   Currently his O365 sent folder only is showing emails from 2015 on.   He needs to be able to locate emails prior to 2015.   When the original migration was done from their old exchange environment to O365 by default we took everything that was in the onprem exchange and sucked it into O365.   However a year later we are being told there was more mail then what is currently listed.   I found a link on Microsofts retention policy


This is a very confusing article.   Because of O365 default retention policy that we are unable to get mail before 2015.   Has anyone run across this?  This is critical that they are able to retrieve sent messages prior.   If he logs into portal.office.com the mail only goes back to 2015 so policy somehow kicked in I think when the migration was done and only did 5 years worth.   But I have a feeling when the migration took place there was more than 5 years, so I am hoping perhaps email is sitting somewhere in MS cloud and can be retrieved prior to 2015.   As always appreciate the help.

P.S. I am reading that after the retention policy date is exceeded email goes into an archive.   Is this retrievable?
I have an Excel VBA module that sends an email that includes a hyperlink to a network drive location (that may have spaces). I have some code that sort of works but needs a bit of help...

  Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    strbody = managername & "," & vbNewLine & vbNewLine & _
              "Data has been dumped from the survey controller on project number " & newjob & ".  The name of the file is: " & vbNewLine & vbNewLine & _
              filefromname & vbNewLine & vbNewLine & _
              "and it is located in the following folder:" & vbNewLine & vbNewLine & _
            "<a href=""<file:///" & GetFolder & ">"">" & GetFolder & "</a>" & vbNewLine & vbNewLine & _
                "Comments:" & vbNewLine & surveynotes
    MsgBox strbody
    On Error Resume Next
    With OutMail
        .To = manageremail
        .Subject = "Some survey points have been downloaded on one of your projects"
        .Body = strbody
        'You can add a file like this
        '.Attachments.Add ("C:\test.txt")
        .Send   'or use .Display
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing

Open in new window

The email sends no problem, and the extra chevrons in the string help me pick folders that have spaces in them.  But when the user gets the email, they see the hyperlink source code in the Outlook email like this: (PS - the link works no problem)

HTML is showing
instead of seeing it neatly like this:

What I want it to look like
If I grab the "strbody" variable and paste it into dreamweaver or some other editor, it looks fine, but when the Outlook email is received, the HTML code for the link shows up.  What can I do so that the user doesn't see all the <a href> text that goes with the hyperlink?

Thanks very much!

For the first time in almost a year of using Office 365, Outlook just today started giving me an error upon trying to open Word document attachments.

It gives me that error message saying that Word experienced an error trying to open the file.

This error even appears if I save the attachment on my desktop and try to open it.

I tried several suggestions that I found online, but none of them work.

And, this issue only occurs with Outlook Desktop - not Web Outlook.

Please let me know how to eliminate this issue.

Thank you!  Much appreciated!

Software Engineer
Hi All,

Recently i delegated one user mailbox. It is showing under my mailbox in outlook. but i can see only inbox items.

is it possible to add delegated user sent items on my outlook.
I have a client that deleted all of his deleted emails & swears that took alot of his inbox & folders...

I do have a backup of all his emails, but when I replace the .ost as soon as it goes it syncs with GMAIL it re-deletes all of his emails to its current state.

Is there a way to make the OLD .ost be the correct & the GMAIL sync to that ?  I could not find where it was talking about unchecking "cached email"

He is using Outlook & I want to use his OLD .ost to be the correct email & then update from there.

Any direction would be great.  Thank you.
I have an excel file with Name email address and html file location.
I need to automate this process.
i.e. Send email based on the email address and html content in the email.
I have a client with over  30 order takers.Right now each user sends out their orders user via Outlook using their Outlook account so they see the outgoing email in their sent box. They also want all these emails to go into a generic sent box so that anyone can see all the emails sent by anyone else. They use Outlook 2016 with an Exchange server. Is this possible with their current software?
I have a PDF file with a size of 175 MB that I am trying to send to a recipient from my Downloads folder using right click send to mail recipient and nothing happens when I do so. I tried a different file and it went through. after that I realized it could be the file size which in this case it was a lot larger than the file that got sent. I know Outlook had 25 MB file size but I was reading and I came a cross that there was an increase in limit to 150 MB using cloud based Outlook which I am not familiar with. See Google search hit""Microsoft has increased the maximum size of an e-mail message that can be sent by an organization using its cloud-based Office 365 services to 150MB. Previously, a single Office 365 e-mail message could be 25MB max. ... IT pros can change these settings for individual users via Office 365's Exchange Admin Center..
Can someone advise me on how to go about sending this file? hopefully an easy method if all possible.

Thank you,
Basem Khawaja
what is the difference in mail flow between exchange 2013 and exchange 2016 and exchange online

what are the tools used for troubleshooting exchange issues

is there any article which mentions about some important exchange issues faced on exchange 2013, 2016 or office 365

what is the difference between rpc over https and mapi over http
Has anyone seen or noticed iPhone users that run the Outlook app for their O365 account that have shared mailboxes simply disappear out of the clear blue?   One of my users just called in and states both of his shared mailboxes were gone out of his outlook but his primary account was still there.  He swears he didn't delete them manually because it would have meant he would have physically had to have removed both, however he claims they just disappeared.   I walked him through re-adding them both and they appeared.   Figured I'd ask.

I found the following code that will scrub Outlook calendar and put appointments in Excel spreadsheet.  I'd like the code to apply to a specific calendar titled 'Projects'.  How can I modify the code so its only pulling from that specific calendar?

Option Explicit 
Sub ListAppointments() 
    Dim olApp As Object 
    Dim olNS As Object 
    Dim olFolder As Object 
    Dim olApt As Object 
    Dim NextRow As Long 
    Set olApp = CreateObject("Outlook.Application") 
    Set olNS = olApp.GetNamespace("MAPI") 
    Set olFolder = olNS.GetDefaultFolder(9) 'olFolderCalendar
    Range("A1:D1").Value = Array("Subject", "Start", "End", "Location") 
    NextRow = 2 
    For Each olApt In olFolder.Items 
        Cells(NextRow, "A").Value = olApt.Subject 
        Cells(NextRow, "B").Value = olApt.Start 
        Cells(NextRow, "C").Value = olApt.End 
        Cells(NextRow, "D").Value = olApt.Location 
        NextRow = NextRow + 1 
    Next olApt 
    Set olApt = Nothing 
    Set olFolder = Nothing 
    Set olNS = Nothing 
    Set olApp = Nothing 
End Sub

Open in new window







Microsoft Outlook is a personal information manager from Microsoft, available as a part of the Microsoft Office suite. Although often used mainly as an email application, it also includes a calendar, task manager, contact manager, note-taker, journal, and web browser.