Могу ли я создать ссылку на конкретное сообщение электронной почты в Outlook?

67341
Christian Berg

Я использую Outlook в качестве почтового клиента на работе, но я не хочу использовать его для управления своими задачами и задачами. (Вместо этого я использую простые текстовые файлы и Emacs org-mode.) Поскольку многие элементы todo начинаются как письма в моем почтовом ящике, мне часто приходится ссылаться на эти письма.

Есть ли какой-нибудь умный способ создать ссылку (URL), которая открывает конкретное письмо в Outlook при нажатии?

58
Кто-нибудь с достаточной репутацией пометит этот вопрос? Речь идет о (TAG =>) «орг-режиме». Keks Dose 12 лет назад 0

10 ответов на вопрос

29

Вы можете сделать это с небольшим количеством кода в Outlook и небольшим количеством кода в Emacs.

Во-первых, если вы используете Outlook 2007, вам нужно включить URL-адреса Outlook с добавлением реестра. Инструкции и файл реестра можно найти здесь благодаря любезности Дэвида Тана.

Затем этот макрос можно добавить в Outlook, и он получит GUID текущего сообщения электронной почты, создаст ссылку в режиме Org и поместит ее в буфер обмена.

'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 

Почти там, добавьте этот маленький список в каталог 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. Просто добавьте это куда-нибудь после настройки org-mode.

(require 'org-outlook) 

Теперь вы можете вызвать макрос (я добавил его на свою панель инструментов в Outlook для быстрого доступа), и вы можете быстро создать ссылку на электронную почту в Emacs.

Одно замечание: изменение GUID при перемещении сообщения между хранилищами документов, поэтому, если вы получите GUID для сообщения, пока оно находится на вашем сервере Exchange, а затем переместите его в локальный файл PST, ссылка изменится. Переместите сообщение, прежде чем вы получите GUID.

Это здорово, спасибо! Одно упрощение: я не связывался с реестром для включения URL-адресов Outlook, вместо этого я просто изменил вызов w32-shell-execute на этот: (w32-shell-execute "open" "C: / Program / Microsoft Office / Office12 / OUTLOOK.EXE "(concat" / select "" outlook: "id) Christian Berg 14 лет назад 3
Спасибо за этот ответ. Я обнаружил, что мне нужно создать пустую форму, чтобы предотвратить ошибку компиляции в неопределенном DataObject. Laurent' 12 лет назад 1
@ChristianBerg: я использую Outlook 2003, поэтому, возможно, у меня могут быть гиперссылки, не беспокоясь о реестре, но ваше упрощение не сработало, Outlook не смог найти URL. И каждый раз, когда я нажимал на ссылку в Emacs, запускался новый процесс outlook. Поэтому я остановился на отличном решении пользователя259 ... Keks Dose 12 лет назад 0
Это фантастика ! Спасибо за предоставление этого решения. Я попробовал это с outlook 2007 с настройкой реестра, и это работало как шарм! Я обнаружил 1 проблему, если запустил макрос, когда у меня выбрано приглашение на встречу / встречу. Код бросил исключение. Поскольку я использую его только для входящих сообщений, я решил это с помощью Dim objMail как объекта, а не MailItem - однако это может быть неправильным решением, поскольку код все равно может завершиться ошибкой, если выбранный элемент не имеет членов Subject / SenderName. Код, вероятно, может проверить, имеет ли выбранный элемент правильный тип, и предоставить MsgBox, если это не так. koushik 12 лет назад 0
Я немного «поцарапал этот зуд», так как мне приходилось записывать ссылки на некоторые встречи для работы над связанными элементами (чтобы я мог ссылаться на информацию / вложения в них или отвечать всем, когда у меня есть обновления и т. Д.). Теперь он может экспортировать письма, элементы календаря, контакты, заметки, записи журнала и, по крайней мере, не будет работать при вызове других записей. Модифицированный код находится по адресу http://pastebin.com/gNWLVNRk (я могу предоставить diff, если это поможет - хотя я не знаю, как это сделать в VBA). Мне не нужно было вносить какие-либо другие изменения (на стороне emacs или regsitry), чтобы это работало на моем конце. НТН. koushik 12 лет назад 1
@koushik: Спасибо за отличный сценарий. Где вы прошли эти ссылки? Синтаксис [[url] [description]] не распознается внешним видом ... Simon 11 лет назад 0
Я получил ошибку неизвестного типа для DataObject. После опробования различных опций, таких как [добавить ссылку на формы Microsoft] (https://blog.jonschneider.com/2009/12/fix-excel-vba-user-defined-type-not.html), которые не были доступны для добавив, и другие, я наткнулся на https://www.excelforum.com/excel-programming-vba-macros/338020-dataobject-and-cliboard.html и добавил фиктивную форму пользователя, и она начала работать Miserable Variable 5 лет назад 0
5
fnkr

I solved this by writing a simple vbscript (download):

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 

It copies a link of the element (Email, Calendar entry, ...) you have currently selected in Outlook to your clipboard:

Outlook:176CZREX7A79L9TG1T0AJ6HQ8DEBLTFS60HUQYKT2IXBBZ9ZZVA73MNRYVRWRL4RY0VCPQE1IB5GAWY0D8OSMOB4IFDV5OMG9NX2BBKGFA3IWSD62UCNVK0HD9GA80BIDZSBCZL7INCT 

You can even use a redirection service so that you get a HTTP link (because Outlook: links are probably not detected automatically if you paste is somewhere, but HTTP links are) (download), just replace the last line with:

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

Note that you need to make Outlook: links working first.
http://www.slipstick.com/problems/outlook-missing-outlook-protocol/ (scroll down to "Do It For Me")

Tested with Outlook 2010.

3

наткнулся на Linker applet.going, чтобы попробовать это .. вы можете также хотеть http://www.teamscope.com/otherpro/utilities.asp#linker

Вот маркетинговая капелька ..

Linker ™ для Windows® создает гиперссылки на элементы и папки в Outlook, а также на файлы и папки в проводнике Windows. Это апплет в системном трее помещает гиперссылку в буфер обмена Windows. Затем гиперссылка может быть вставлена ​​в любой документ Microsoft Office, веб-страницу, сообщение электронной почты или любой документ, который поддерживает гиперссылки.

Привет из солнечной Южной Африки!

Линкер работает иногда, иногда не так много. В целом чувствует себя довольно глючно в Win 7 + Outlook 2010 Andy 10 лет назад 0
Использование Office Pro Plus 2016 + Win 10 Pro, и это не сработало. Он ломается при доступе к ссылкам, которые были скопированы - поэтому при нажатии \\\ Drafts \ ~ test, неизвестное приложение подхватывается win 10, поэтому оно ломается. Nasri Najib 6 лет назад 0
1
squillman

Не без какого-то специального кода. URI Outlook может привести вас к папке, содержащейся в Outlook, но это все. Вам нужно будет придумать умную стратегию подачи, которая бы соответствовала вашей стратегии связывания, чтобы получить более детальную информацию.

1
Paxxi

Я не уверен относительно ссылки на конкретное электронное письмо, но в зависимости от вашей системы вы можете скопировать электронное письмо в то же место, что и элемент todo. Просто перетащите письмо в папку или на рабочий стол, и оно создаст копию письма, которое вы можете рассматривать как обычный файл.

Если вы будете использовать .doc или более «продвинутые» файлы, чем .txt, вы можете ссылаться на этот файл сообщений Outlook.

Я пойду с этим решением. Вот мой новый рабочий процесс: перетащите почту во временную папку. Создайте элемент todo в режиме org. Добавьте файл сообщения в качестве вложения к элементу: Cc Ca m (файл сообщения перемещается в папку вложений). Позже я могу открыть сообщение из пункта todo, нажав Cc Ca o. Christian Berg 14 лет назад 1
1
Raymond Zeitler

Я предпочитаю копировать содержимое элемента Outlook в системный буфер обмена, а затем вставлять его в заметку в режиме Org.

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

0
Frank

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

Это казалось многообещающим, но в `Outlook 2013` для меня это создает файл` .mht` в `AppData \ Local \ Microsoft \ Windows \ Temporary Internet Files \ Content.Outlook \` и открывает его в IE с помощью mhtml: file: // .. `URL так что не ходи. Miserable Variable 9 лет назад 2
0
Umiboshi

Вы можете скопировать электронную почту Outlook в OneNote (появляется в виде желтой буквы), затем щелкнуть правой кнопкой мыши и выбрать «ссылка на абзац», а затем вставить ссылку в другой документ, который может работать со ссылками.

Но, в любом случае, Microsoft должна была сделать все, что связано с электронной почтой, стандартной функцией. Это была такая полезная функция Lotus Notes.

0
AJSkew

Я использовал Wunderlist для управления своими задачами и обнаружил, что с помощью надстройки Wunderlist для Outlook я могу создавать новые задачи непосредственно из сообщения электронной почты, а Wunderlist автоматически создает ссылку в примечаниях к исходному сообщению. Несколько вещей, которые нужно иметь в виду:

  1. Сначала я всегда перемещаю сообщение в папку, потому что (последний раз, когда я проверял) URL-адрес разрывается, если вы позже переместите сообщение в другую папку.
  2. Несмотря на то, что есть надстройка для рабочего стола Outlook, она, похоже, не содержит ссылку, поэтому я использую Outlook в Интернете, когда хочу создать задачу.
  3. Я пробовал это только с Outlook в Интернете для Office 365, используя корпоративную учетную запись электронной почты. Я предполагаю, что он одинаково хорошо работает с учетными записями Office 365, но еще не пробовал.
  4. Даже если вы не используете Wunderlist, вы можете зарегистрироваться и использовать его для создания URL-адреса, когда вам это нужно.

И только для разглашения, я работаю на Microsoft, хотя я не связан ни с командами Outlook, ни с Wunderlist.

Пожалуйста, внимательно прочитайте вопрос. Ваш ответ ** не ** отвечает на оригинальный вопрос. OP использует `emacs`. DavidPostill 8 лет назад 1
@DavidPostill С уважением, я думал, что сделал. Вот почему я включил № 4 в качестве способа получения URL-адреса для сообщения, которое затем можно сохранить в любом месте, в том числе в текстовом файле. AJSkew 8 лет назад 0
0
kwoodham

У меня недостаточно репутационных кредитов, чтобы добавить комментарий к принятому ответу выше, но я хотел добавить перекрестную ссылку для исправления превосходного ответа, предоставленного @ user25995 - который я разместил на (emacs) StackExchange .

На основе комментариев я получил на вопрос, который я разместил там, я изменил использование (устаревшее), org-add-link-typeчтобы org-link-set-parametersи включал в себя export:функцию так, что экспорт HTML бэкенд дал мне правильно отформатированный <a href="outlook:...">тип ссылки.

Комментарий не должен быть представлен как ответ из-за вашей неспособности предоставить фактический комментарий. Ramhound 7 лет назад 0
@Ramhound - я старался указывать на принятый ответ, даже предоставляя ссылку и признавая автора. Затем я предложил небольшую ревизию, которая позволяет избежать использования функции, которая в настоящее время устарела. Я не собирался нарушать протокол здесь - есть ли правильный способ сообщить об этом, если у меня недостаточно очков Брауни, чтобы прокомментировать принятый ответ? kwoodham 7 лет назад 0