Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I use Outlook as my email client at work, but I don't want to use it to manage my tasks and todos. (Instead I use plain text files and Emacs org-mode.) Since many todo items start out as mails in my inbox, I often need to reference these mails.

Is there some clever way to create a link (a URL) that opens a specific email in Outlook when clicked?

share|improve this question
    
Would anybody with sufficient reputation retag this question, please? We are talking about (TAG =>) "org-mode". –  Keks Dose Jan 30 '12 at 13:43
add comment

6 Answers

up vote 20 down vote accepted

You can do this with a little bit of code in Outlook and a little bit of code in Emacs.

First, if you're using Outlook 2007 you'll need to enable Outlook URLs with a registry addition. Instructions and the registry file can be found here courtesy of David Tan.

Next, this macro can be added to Outlook and will get the GUID of the current email message, create a Org-Mode link and deposit it into the clipboard.

'Adds a link to the currently selected message to the clipboard
Sub AddLinkToMessageInClipboard()

   Dim objMail As Outlook.MailItem
   Dim doClipboard As New DataObject

   'One and ONLY one message muse be selected
   If Application.ActiveExplorer.Selection.Count <> 1 Then
       MsgBox ("Select one and ONLY one message.")
       Exit Sub
   End If

   Set objMail = Application.ActiveExplorer.Selection.Item(1)
   doClipboard.SetText "[[outlook:" + objMail.EntryID + "][MESSAGE: " + objMail.Subject + " (" + objMail.SenderName + ")]]"
   doClipboard.PutInClipboard

End Sub

Almost there, add this little bit of lisp to your emacs lisp directory to enable Outlook links.

;;; org-outlook.el - Support for links to Outlook items in Org

(require 'org)

(org-add-link-type "outlook" 'org-outlook-open)

(defun org-outlook-open (id)
   "Open the Outlook item identified by ID.  ID should be an Outlook GUID."
   (w32-shell-execute "open" (concat "outlook:" id)))

(provide 'org-outlook)

;;; org-outlook.el ends here

And lastly, update your .emacs file to include the Outlook link code. Just add this somewhere after org-mode is setup.

(require 'org-outlook)

Now you can call the macro (I added it to my toolbar in Outlook for quick access) and you can quickly create a link to the email in Emacs.

One gotcha, GUID's change when you move a message between document stores, so if you get the GUID to the message while it's on your Exchange server and then move it to your local PST file the link will change. Move the message before you get the GUID.

share|improve this answer
3  
This is great, thank you! One simplification: I didn't mess with the registry to enable Outlook URLs, instead I just changed the w32-shell-execute call to this: (w32-shell-execute "open" "C:/Programme/Microsoft Office/Office12/OUTLOOK.EXE" (concat "/select " "outlook:" id) –  Christian Berg Jan 26 '10 at 15:17
1  
Thanks for this answer. I found out that I somewhat needed to create an empty form to prevent compilation error on undefined DataObject. –  Laurent' Nov 5 '11 at 13:24
    
@ChristianBerg: I'm using Outlook 2003, so maybe I can have hyperlinks without bothering with the registry, but your simplification did not work, Outlook was unable to find the URL. And every time I clicked on a link in Emacs, a new outlook-process was started. So I sticked to the great solution by user259... –  Keks Dose Jan 26 '12 at 13:56
    
This is fantastic ! Thank you for providing this solution. I tried it with outlook 2007 with the registry tweak and it worked like a charm ! I found 1 issue if I ran the macro when I had a meeting invite / appointment selected. The code threw an exception. Since I use it only on the inbox I solved this by Dim objMail as Object instead of MailItem - however this may not be the right solution since the code could still fail if the item selected doesn't have Subject/ SenderName members. The code could probably check if the selected item is of proper type and provide a MsgBox if it is not. –  koushik Feb 22 '12 at 15:23
1  
I "scratched this itch" of mine a bit more as I had to record links to some appointments for working on related items (so I can refer ot info / attachments therein or reply all when I have updates etc). Now this can export mails, calendar items, contacts, notes, journal entries and at least will not fail when invoked on other entries. The modified code is at pastebin.com/gNWLVNRk (I can provide a diff if it would help - though I don't know how to make on in VBA). I didn't have to make any other change (emacs-side or regsitry) for this to work on my end. HTH. –  koushik Jul 23 '12 at 13:50
show 1 more comment

Not without some kind of custom code. The Outlook URI's can get you to the containing folder within Outlook, but that's about it. You would need to come up with a clever filing strategy that aligned with your linking strategy to get more granular.

share|improve this answer
add comment

I'm not sure about referencing a specific email but depending on your system you might be able to copy the email to the same location as the todo item. Just drag/drop the mail to a folder or the desktop and it will create a copy of the mail that you can treat as a normal file.

If you would be using .doc or more "advanced" files than .txt you could then link to this Outlook message file.

share|improve this answer
1  
I'll go with that solution. Here's my new workflow: Drag the mail to a temporary folder. Create the todo item in org-mode. Add the message file as an attachment to the item: C-c C-a m (the message file is moved to the attachments folder). Later I can open the message from the todo item by pressing C-c C-a o. –  Christian Berg Nov 18 '09 at 16:07
add comment

came across Linker applet.going to try it out..you may want to as well http://www.teamscope.com/otherpro/utilities.asp#linker

Here's the marketing drible..

Linker™ for Windows® creates hyperlinks to items and folders in Outlook, and to files and folders in Windows Explorer. It is a system tray applet places the hyperlink in the Windows clipboard. The hyperlink can then be pasted into any Microsoft Office document, web page, e-mail message, or any document that supports hyperlinks.

Greetings from sunny South Africa!

share|improve this answer
    
Linker works sometimes, other times not so much. Overall feels quite buggy in Win 7 + Outlook 2010 –  Andy Jan 15 at 19:00
add comment

I prefer to copy the Outlook Item content to the system clipboard and then yank it into an Org-mode note.

http://www.emacswiki.org/emacs/PlannerModeContrib#toc10

share|improve this answer
add comment

Probably your requirement is different with mine.

Outook 2013 > Message Tab(your normal view) > 'Actions' Button > View in Browser

Then I get that link from the browser.

Hope that help

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.