¿Puedo crear un enlace a un mensaje de correo electrónico específico en Outlook?


63

Uso Outlook como mi cliente de correo electrónico en el trabajo, pero no quiero usarlo para administrar mis tareas y todos. (En cambio, uso archivos de texto sin formato y el modo de organización de Emacs). Dado que muchos elementos de tareas comienzan como correos en mi bandeja de entrada, a menudo necesito hacer referencia a estos correos.

¿Hay alguna forma inteligente de crear un enlace (una URL) que abra un correo electrónico específico en Outlook al hacer clic?


¿Alguien con suficiente reputación retomaría esta pregunta, por favor? Estamos hablando de (TAG =>) "org-mode".
Keks Dose

Respuestas:


32

Puede hacer esto con un poco de código en Outlook y un poco de código en Emacs.

Primero, si está utilizando Outlook 2007, deberá habilitar las URL de Outlook con una adición de registro. Las instrucciones y el archivo de registro se pueden encontrar aquí por cortesía de David Tan.

A continuación, esta macro se puede agregar a Outlook y obtendrá el GUID del mensaje de correo electrónico actual, creará un enlace de modo Org y lo depositará en el portapapeles.

'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

Como koushik señaló en los comentarios, la doClipboard.SetTextparte se puede expandir para diferenciar entre diferentes tipos de elementos:

If objMail.Class = olMail Then
    doClipboard.SetText "[[outlook:" + objMail.EntryID + "][MESSAGE: " + objMail.Subject + " (" + objMail.SenderName + ")]]"
ElseIf objMail.Class = olAppointment Then
    doClipboard.SetText "[[outlook:" + objMail.EntryID + "][MEETING: " + objMail.Subject + " (" + objMail.Organizer + ")]]"
ElseIf objMail.Class = olTask Then
    doClipboard.SetText "[[outlook:" + objMail.EntryID + "][TASK: " + objMail.Subject + " (" + objMail.Owner + ")]]"
ElseIf objMail.Class = olContact Then
    doClipboard.SetText "[[outlook:" + objMail.EntryID + "][CONTACT: " + objMail.Subject + " (" + objMail.FullName + ")]]"
ElseIf objMail.Class = olJournal Then
    doClipboard.SetText "[[outlook:" + objMail.EntryID + "][JOURNAL: " + objMail.Subject + " (" + objMail.Type + ")]]"
ElseIf objMail.Class = olNote Then
    doClipboard.SetText "[[outlook:" + objMail.EntryID + "][NOTE: " + objMail.Subject + " (" + " " + ")]]"
Else
    doClipboard.SetText "[[outlook:" + objMail.EntryID + "][ITEM: " + objMail.Subject + " (" + objMail.MessageClass + ")]]"    
End If

Casi allí, agregue este poco de lisp a su directorio de emacs lisp para habilitar los enlaces de 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

Y, por último, actualice su archivo .emacs para incluir el código de enlace de Outlook. Simplemente agregue esto en algún lugar después de configurar org-mode.

(require 'org-outlook)

Ahora puede llamar a la macro (la agregué a mi barra de herramientas en Outlook para un acceso rápido) y puede crear rápidamente un enlace al correo electrónico en Emacs.

Uno tiene, el GUID cambia cuando mueve un mensaje entre almacenes de documentos, por lo que si obtiene el GUID del mensaje mientras está en su servidor de Exchange y luego lo mueve a su archivo PST local, el enlace cambiará. Mueva el mensaje antes de obtener el GUID.


44
Esto es genial, gracias! Una simplificación: no me metí con el registro para habilitar las URL de Outlook, en su lugar, simplemente cambié la llamada w32-shell-execute a esto: (w32-shell-execute "open" "C: / Program / Microsoft Office / Office12 / OUTLOOK.EXE "(concat" / select "" outlook: "id)
Christian Berg

1
Gracias por esta respuesta Descubrí que necesitaba crear un formulario vacío para evitar errores de compilación en DataObject indefinido.
Laurent '

@ChristianBerg: estoy usando Outlook 2003, así que tal vez pueda tener hipervínculos sin molestarme con el registro, pero su simplificación no funcionó, Outlook no pudo encontrar la URL. Y cada vez que hacía clic en un enlace en Emacs, se iniciaba un nuevo proceso de perspectiva. Así que me quedé con la gran solución del usuario259 ...
Keks Dose

1
"Me rasqué este picor" un poco más, ya que tuve que grabar enlaces a algunas citas para trabajar en elementos relacionados (para que pueda consultar información / archivos adjuntos o responder todo cuando tenga actualizaciones, etc.). Ahora esto puede exportar correos, elementos de calendario, contactos, notas, entradas de diario y al menos no fallará cuando se invoque en otras entradas. El código modificado está en pastebin.com/gNWLVNRk (puedo proporcionar un diff si ayudaría, aunque no sé cómo hacerlo en VBA). No tuve que hacer ningún otro cambio (emacs-side o regsitry) para que esto funcione de mi parte. HTH
koushik

1
Para resolver el error de tipo DataObject, lo siguiente funcionó para mí. En el editor de macros, vaya a Herramientas-> Referencias. Haga clic en Examinar, seleccione el archivo C:\Windows\System32\fm20.dlly presione OK.
Hugo Ideler

6

Resolví esto escribiendo un simple vbscript ( descarga ):

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

Copia un enlace del elemento (correo electrónico, entrada de calendario, ...) que ha seleccionado actualmente en Outlook en su portapapeles:

Outlook:176CZREX7A79L9TG1T0AJ6HQ8DEBLTFS60HUQYKT2IXBBZ9ZZVA73MNRYVRWRL4RY0VCPQE1IB5GAWY0D8OSMOB4IFDV5OMG9NX2BBKGFA3IWSD62UCNVK0HD9GA80BIDZSBCZL7INCT

Incluso puede usar un servicio de redireccionamiento para obtener un enlace HTTP (porque los Outlook:enlaces probablemente no se detectan automáticamente si pega en algún lugar, pero los enlaces HTTP sí lo están) ( descargar ), simplemente reemplace la última línea con:

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

Tenga en cuenta que Outlook:primero debe hacer que los enlaces funcionen.
http://www.slipstick.com/problems/outlook-missing-outlook-protocol/ (desplácese hacia abajo hasta "Do It For Me")

Probado con Outlook 2010.


3

encontré el applet Linker. yendo a probarlo ... quizás también quieras http://www.teamscope.com/otherpro/utilities.asp#linker

Aquí está el drible de marketing.

Linker ™ para Windows® crea hipervínculos a elementos y carpetas en Outlook, y a archivos y carpetas en el Explorador de Windows. Es un applet de la bandeja del sistema que coloca el hipervínculo en el portapapeles de Windows. El hipervínculo se puede pegar en cualquier documento de Microsoft Office, página web, mensaje de correo electrónico o cualquier documento que admita hipervínculos.

¡Saludos desde la soleada Sudáfrica!


Linker funciona a veces, otras veces no tanto. En general se siente bastante defectuoso en Win 7 + Outlook 2010
Andy

Usando Office Pro Plus 2016 + Win 10 Pro, y no funcionó. Se rompe al acceder a los enlaces que se han copiado, por lo que al hacer clic en la prueba \\ <dirección de correo electrónico> \ Drafts \ ~, la aplicación desconocida se recupera al ganar 10, por lo que se rompe.
Nasri Najib

1

No estoy seguro de hacer referencia a un correo electrónico específico, pero dependiendo de su sistema, es posible que pueda copiar el correo electrónico en la misma ubicación que el elemento de tareas pendientes. Simplemente arrastre / suelte el correo a una carpeta o al escritorio y creará una copia del correo que puede tratar como un archivo normal.

Si utilizara .doc o más archivos "avanzados" que .txt, podría vincular a este archivo de mensaje de Outlook.


1
Iré con esa solución. Aquí está mi nuevo flujo de trabajo: arrastre el correo a una carpeta temporal. Cree el elemento de tarea en modo org. Agregue el archivo de mensaje como archivo adjunto al elemento: Cc Ca m (el archivo de mensaje se mueve a la carpeta de archivos adjuntos). Más tarde, puedo abrir el mensaje desde el elemento de tareas presionando Cc Ca o.
Christian Berg


0

No sin algún tipo de código personalizado. Los URI de Outlook pueden llevarlo a la carpeta que contiene dentro de Outlook, pero eso es todo. Tendría que idear una estrategia de archivo inteligente que se alineara con su estrategia de vinculación para ser más granular.


Otras respuestas muestran que es posible, de ahí el voto negativo.
Saaru Lindestøkke

0

Probablemente su requerimiento es diferente al mío.

Outook 2013> Pestaña Mensaje (su vista normal)> Botón 'Acciones'> Ver en el navegador

Luego obtengo ese enlace del navegador.

Espero que ayuda


2
Esto parecía prometedor, pero Outlook 2013para mí esto crea un .mhtarchivo en AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook` and opens that in IE using a 'mhtml:file://.. url, así que no vayas.
Variable miserable

0

Puede copiar un correo electrónico de Outlook a OneNote (viene como un icono de letra amarilla), luego haga clic derecho y seleccione 'vincular al párrafo', y luego pegue el vínculo en otro documento que pueda funcionar con vínculos.

Pero de todos modos, Microsoft debería haber hecho de todo esto de vincular a un correo electrónico una característica estándar. Fue una característica muy útil de Lotus Notes.


Es una característica útil. Pero, ¿cuál es el modelo de seguridad? ¿Quieres que un chico malo te envíe un enlace en un correo electrónico que podrías abrir por accidente? GUID, claro, no visible afuera - a menos que tengan fugas ...
Krazy Glew

0

No tengo suficientes créditos de reputación para hacer un comentario a la respuesta aceptada anteriormente, pero quería poner una referencia cruzada para una revisión de la excelente respuesta proporcionada por @ user25995, que publiqué en (emacs) StackExchange .

Sobre la base de un comentario que he recibido a una pregunta que he publicado allí, he cambiado el uso de (en desuso) org-add-link-typea org-link-set-parameterse incluyó una export:función para que el servidor de exportación HTML me dio un formato correcto <a href="outlook:...">tipo de enlace.


Los comentarios no deben enviarse como respuesta debido a su incapacidad para enviar un comentario real.
Ramhound

2
@Ramhound: me esforcé por señalar la respuesta aceptada, incluso al proporcionar un enlace y reconocer al autor. Luego ofrecí una pequeña revisión que evita el uso de una función que ahora está en desuso. No tenía la intención de violar el protocolo aquí: ¿hay una forma correcta de comunicar esto si no tengo suficientes puntos Brownie para comentar sobre la respuesta aceptada?
kwoodham

-1

Utilizo Wunderlist para administrar mis tareas y descubrí que con el complemento Wunderlist para Outlook puedo crear nuevas tareas directamente desde un mensaje de correo electrónico y Wunderlist crea automáticamente un enlace en las notas de la tarea al mensaje original. Un par de cosas a tener en cuenta:

  1. Siempre muevo el mensaje a una carpeta primero porque (la última vez que revisé) la URL se rompe si luego mueves el mensaje a otra carpeta.
  2. Aunque hay un complemento para el escritorio de Outlook, no parece incluir el enlace, por lo que uso Outlook en la Web cuando quiero crear una tarea.
  3. Solo he intentado esto con Outlook en la Web para Office 365 usando una cuenta de correo electrónico corporativo. Supongo que funciona igual de bien con las cuentas de Office 365 del consumidor, pero no lo he probado.
  4. Incluso si no usa Wunderlist, puede registrarse y usarlo para generar la URL cuando la necesite.

Y solo para divulgación, trabajo para Microsoft, aunque no estoy asociado con los equipos de Outlook o Wunderlist.


1
Por favor lea la pregunta otra vez cuidadosamente. Su respuesta no responde a la pregunta original. OP está usando emacs.
DavidPostill

@DavidPostill Respetuosamente, pensé que sí. Es por eso que incluí el # 4 como una forma de obtener una URL a un mensaje que luego puede almacenarse en cualquier lugar, incluso en un archivo de texto.
AJSkew
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.