我可以在Outlook中创建指向特定电子邮件的链接吗?


63

我将Outlook用作工作中的电子邮件客户端,但是我不想使用它来管理任务和待办事项。(相反,我使用纯文本文件和Emacs org-mode。)由于许多待办事项开始时都是收件箱中的邮件,因此我经常需要引用这些邮件。

是否有某种巧妙的方法来创建链接(URL),该链接在单击时会在Outlook中打开特定的电子邮件?


信誉良好的人是否可以重提这个问题?我们正在谈论(TAG =>)“ org-mode”。
Keks Dose 2012年

Answers:


32

您可以使用Outlook中的一些代码和Emacs中的一些代码来完成此操作。

首先,如果您使用的是Outlook 2007,则需要通过添加注册表来启用Outlook URL。说明和注册表文件可在此处找到David Tan提供。

接下来,可以将该宏添加到Outlook,并获取当前电子邮件的GUID,创建组织模式链接并将其保存到剪贴板。

'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

几乎在那儿,将这点lisp添加到emacs lisp目录中即可启用Outlook链接。

;;; 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

最后,更新您的.emacs文件以包括Outlook链接代码。只需在组织模式设置后将其添加到某处即可。

(require 'org-outlook)

现在,您可以调用宏(我将其添加到Outlook中的工具栏中以便快速访问),并且可以在Emacs中快速创建指向电子邮件的链接。

一个陷阱,当您在文档存储之间移动邮件时,GUID发生了变化,因此,如果在Exchange服务器上将GUID移至邮件中,然后将其移至本地PST文件,则链接将更改。在获得GUID之前先移动消息。


4
太好了,谢谢!一种简化:我没有弄乱注册表以启用Outlook URL,而是将w32-shell-execute调用更改为:(w32-shell-execute“ open”“ C:/ Programme / Microsoft Office / Office12 / OUTLOOK.EXE“(concat” / select“” outlook:“ id)
Christian Berg,2010年

1
感谢您的回答。我发现我有点需要创建一个空表单来防止未定义的DataObject上的编译错误。
劳伦(Laurent)

@ChristianBerg:我使用的是Outlook 2003,所以也许我可以拥有超链接而不用担心注册表,但是您的简化没有用,Outlook无法找到URL。每次我单击Emacs中的链接时,都会启动一个新的Outlook流程。因此,我坚持使用user259的出色解决方案...
Keks Dose 2012年

1
我不得不“抓痒”,因为我不得不记录一些与相关项目相关的约会的链接(所以我可以在其中引用ot信息/附件,或者在我有更新时回复所有信息等等)。现在,这可以导出邮件,日历项,联系人,便笺,日记条目,并且至少在其他条目上调用时不会失败。修改后的代码位于pastebin.com/gNWLVNRk(如果有帮助,我可以提供一个差异-尽管我不知道如何在VBA中使用它)。我无需进行任何其他更改(emacs端或注册表),就可以在我的终端上工作。HTH。
koushik 2012年

1
为了解决DataObject类型错误,以下对我有用。在宏编辑器中,转到“工具”->“参考”。单击浏览,选择文件C:\Windows\System32\fm20.dll,然后按确定。
雨果·伊德勒

6

我通过编写一个简单的vbscript(下载)解决了这个问题:

Set Outlook = CreateObject("Outlook.Application")
Set SelectedItem = Outlook.ActiveExplorer.Selection.Item(1)
Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "cmd", "/c echo Outlook:" & SelectedItem.entryID & " | clip", "", "runas", 1

它将您当前在Outlook中选择的元素(电子邮件,日历项等)的链接复制到剪贴板:

Outlook:176CZREX7A79L9TG1T0AJ6HQ8DEBLTFS60HUQYKT2IXBBZ9ZZVA73MNRYVRWRL4RY0VCPQE1IB5GAWY0D8OSMOB4IFDV5OMG9NX2BBKGFA3IWSD62UCNVK0HD9GA80BIDZSBCZL7INCT

您甚至可以使用重定向服务,以便获得HTTP链接(因为Outlook:如果将粘贴粘贴到某位置,但HTTP链接位于此位置,则可能不会自动检测到链接)(下载),只需将最后一行替换为:

Shell.ShellExecute "cmd", "/c echo https://api.fnkr.net/goto/jsclient/raw/?closeAfter=500#Outlook:" & SelectedItem.entryID & " | clip", "", "runas", 1

请注意,您需要首先使Outlook:链接起作用。
http://www.slipstick.com/problems/outlook-missing-outlook-protocol/(向下滚动到“为我做”)

经过Outlook 2010测试。


3

遇到Linker applet.go尝试一下。.您可能还想 http://www.teamscope.com/otherpro/utilities.asp#linker

这是市场营销专家。

Windows®的Linker™创建指向Outlook中项目和文件夹以及Windows资源管理器中文件和文件夹的超链接。它是一个系统任务栏小程序,用于将超链接放置在Windows剪贴板中。然后,可以将超链接粘贴到任何Microsoft Office文档,网页,电子邮件或任何支持超链接的文档中。

来自南非阳光明媚的问候!


链接器有时可以正常工作,而其他时候则不是很多。在Win 7 + Outlook 2010中,总体感觉很差劲
Andy

使用Office Pro Plus 2016 + Win 10 Pro,它不起作用。当访问已复制的链接时,它会中断-因此,当单击\\ <电子邮件地址> \ Drafts \〜test时,win 10会拾取未知的应用程序,因此它会中断。
纳斯里·纳吉

1

我不确定要引用特定的电子邮件,但是根据您的系统,您可能可以将电子邮件复制到待办事项所在的位置。只需将邮件拖放到文件夹或桌面上,它将创建该邮件的副本,您可以将其视为普通文件。

如果要使用.doc或比.txt更多的“高级”文件,则可以链接到此Outlook邮件文件。


1
我将采用该解决方案。这是我的新工作流程:将邮件拖到一个临时文件夹中。在组织模式下创建待办事项。将邮件文件作为附件添加到以下项目:Cc Ca m(邮件文件已移至附件文件夹)。稍后,我可以通过按Cc Ca o打开待办事项中的消息。
Christian Berg


0

并非没有某种定制代码。Outlook URI可以将您带到Outlook中的包含文件夹,仅此而已。您需要提出一个巧妙的归档策略,使其与链接策略保持一致,以获得更细致的显示。


其他答案表明这是有可能的,因此是低票。
SaaruLindestøkke23

0

可能您的要求与我的不同。

Outook 2013>“消息”选项卡(您的常规视图)>“操作”按钮>在浏览器中查看

然后,我从浏览器获得该链接。

希望对您有所帮助


2
这似乎很有希望,但是Outlook 2013对我来说,这会.mhtAppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook` and opens that in IE using a 'mhtml:file://.. url中创建一个文件,所以请不要尝试。
可悲的变量

0

您可以将Outlook电子邮件复制到OneNote(以黄色字母图标出现),然后右键单击并选择“链接到段落”,然后将链接粘贴到可以使用链接的另一个文档中。

但是无论如何,Microsoft应该已经使链接电子邮件的整个过程成为标准功能。这是Lotus Notes的有用功能。


这是一个有用的功能。但是,什么是安全模型?您是否想让坏人在电子邮件中向您发送可能会意外打开的链接?GUID,当然,外面不可见-除非它们泄漏...
Krazy Glew

0

我没有足够的声誉来对上面接受的答案发表评论,但是我想对@ user25995提供的出色答案进行修订以进行交叉引用-我在(emacs) StackExchange上发布了该答案。

根据收到的关于我在此处发布的问题的评论,我将(不推荐使用)的用法更改为org-add-link-typeorg-link-set-parameters并包含一个export:函数,以便HTML导出后端为我提供了格式正确的<a href="outlook:...">链接类型。


由于您无法提交实际评论,因此不应将评论作为答案提交。
Ramhound

2
@Ramhound-即使提供了链接并感谢作者,我还是竭尽全力指出已接受的答案。然后,我提供了一个小的修订版本,避免使用现在不建议使用的函数。我不打算在这里违反协议-如果我没有足够的布朗尼分数来评论接受的答案,有没有正确的沟通方式?
kwoodham '17

-1

我使用Wunderlist来管理任务,发现使用OutlookWunderlist加载项,我可以直接从电子邮件中创建新任务,而Wunderlist会在任务说明中自动创建指向原始消息的链接。请记住以下几点:

  1. 我总是先将邮件移到一个文件夹,因为(上次我检查过)如果以后将邮件移到另一个文件夹,URL会中断。
  2. 即使Outlook桌面有一个外接程序,它似乎也不包含链接,因此当我要创建任务时,我在Web上使用Outlook。
  3. 我仅使用公司电子邮件帐户在Office 365的Web上的Outlook上尝试了此操作。我认为它与消费者Office 365帐户同样有效,但是还没有尝试过。
  4. 即使您不使用Wunderlist,也可以注册并在需要时使用它生成URL。

仅出于公开目的,我确实为Microsoft工作,尽管我与Outlook或Wunderlist团队均无关。


1
请仔细阅读问题。您的答案没有回答原始问题。OP正在使用emacs
DavidPostill

@DavidPostill恭喜,我以为我做到了。这就是为什么我将#4作为获取消息URL的一种方式,然后将该消息存储在任何地方(包括文本文件中)的原因。
AJSkew
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.