Posso criar um link para uma mensagem de email específica no Outlook?

63

Uso o Outlook como meu cliente de email no trabalho, mas não quero usá-lo para gerenciar minhas tarefas e todos. (Em vez disso, uso arquivos de texto sem formatação e o modo organizacional do Emacs.) Como muitos itens de tarefas começam como emails na minha caixa de entrada, muitas vezes preciso fazer referência a esses emails.

Existe alguma maneira inteligente de criar um link (uma URL) que abre um email específico no Outlook quando clicado?

Christian Berg
fonte
Alguém com reputação suficiente repetiria essa pergunta, por favor? Estamos falando sobre (TAG =>) "org-mode".
Keks Dose

Respostas:

32

Você pode fazer isso com um pouco de código no Outlook e um pouco de código no Emacs.

Primeiro, se você estiver usando o Outlook 2007, precisará habilitar os URLs do Outlook com uma adição do registro. As instruções e o arquivo do registro podem ser encontrados aqui, cortesia de David Tan.

Em seguida, essa macro pode ser adicionada ao Outlook e obterá o GUID da mensagem de email atual, criará um link de modo organizacional e depositará na área de transferência.

'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 observou nos comentários, a doClipboard.SetTextpeça pode ser expandida para diferenciar entre diferentes tipos de itens:

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

Quase lá, adicione este pouco de lisp ao diretório emacs lisp para ativar os links do 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

Por fim, atualize o arquivo .emacs para incluir o código do link do Outlook. Basta adicionar isso em algum lugar após a configuração do modo organizacional.

(require 'org-outlook)

Agora você pode chamar a macro (eu a adicionei à minha barra de ferramentas no Outlook para acesso rápido) e criar rapidamente um link para o email no Emacs.

Uma dica: a alteração do GUID quando você move uma mensagem entre armazenamentos de documentos; portanto, se você obtiver o GUID na mensagem enquanto ela estiver no servidor Exchange e depois movê-lo para o arquivo PST local, o link será alterado. Mova a mensagem antes de obter o GUID.

Saaru Lindestøkke
fonte
4
Isso é ótimo, obrigado! Uma simplificação: não mexi no registro para habilitar os URLs do Outlook, apenas alterei a chamada w32-shell-execute para: (w32-shell-execute "open" "C: / Programa / Microsoft Office / Office12 / OUTLOOK.EXE "(concat" / selecione "" outlook: "id)"
Christian Berg
11
Obrigado por esta resposta. Descobri que era necessário criar um formulário vazio para evitar erros de compilação no DataObject indefinido.
Laurent '
@ChristianBerg: Estou usando o Outlook 2003, então talvez eu possa ter hiperlinks sem me preocupar com o registro, mas sua simplificação não funcionou, o Outlook não conseguiu encontrar o URL. E toda vez que eu clicava em um link no Emacs, um novo processo de perspectiva era iniciado. Então eu colada ao grande solução por user259 ...
Keks Dose
11
Eu "coçei essa coceira" um pouco mais, pois tive que gravar links para alguns compromissos para trabalhar em itens relacionados (para que eu possa consultar outras informações / anexos ou responder tudo quando tiver atualizações, etc.). Agora isso pode exportar e-mails, itens de calendário, contatos, anotações, lançamentos contábeis manuais e, pelo menos, não falhará quando invocados em outras entradas. O código modificado está em pastebin.com/gNWLVNRk (posso fornecer um diff se isso ajudar - embora eu não saiba como criar no VBA). Não precisei fazer nenhuma outra alteração (emacs-side ou regsitry) para que isso funcionasse do meu lado. HTH.
koushik
11
Para resolver o erro do tipo DataObject, o seguinte funcionou para mim. No editor de macro, vá para Ferramentas-> Referências. Clique em procurar, selecione o arquivo C:\Windows\System32\fm20.dlle pressione OK.
Hugo Ideler
6

Eu resolvi isso escrevendo um vbscript simples ( 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

Ele copia um link do elemento (Email, entrada do Calendário, ...) que você selecionou no Outlook para a sua área de transferência:

Outlook:176CZREX7A79L9TG1T0AJ6HQ8DEBLTFS60HUQYKT2IXBBZ9ZZVA73MNRYVRWRL4RY0VCPQE1IB5GAWY0D8OSMOB4IFDV5OMG9NX2BBKGFA3IWSD62UCNVK0HD9GA80BIDZSBCZL7INCT

Você pode até usar um serviço de redirecionamento para obter um link HTTP (porque os Outlook:links provavelmente não serão detectados automaticamente se você colar estiver em algum lugar, mas os links HTTP estiverem) ( download ), basta substituir a última linha por:

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

Observe que você precisa fazer os Outlook:links funcionarem primeiro.
http://www.slipstick.com/problems/outlook-missing-outlook-protocol/ (role para baixo até "Faça isso por mim")

Testado com o Outlook 2010.

fnkr
fonte
3

deparei com o applet do Linker. indo experimentá-lo ... você também pode querer http://www.teamscope.com/otherpro/utilities.asp#linker

Aqui está o marketing drible ..

O Linker ™ para Windows® cria hiperlinks para itens e pastas no Outlook e para arquivos e pastas no Windows Explorer. É um applet da bandeja do sistema que coloca o hiperlink na área de transferência do Windows. O hiperlink pode ser colado em qualquer documento do Microsoft Office, página da Web, mensagem de email ou qualquer documento que ofereça suporte a hiperlinks.

Saudações da ensolarada África do Sul!


fonte
O Linker funciona algumas vezes, outras nem tanto. No geral, sente-se bastante problemático no Windows 7 + Outlook 2010
Andy
Usando o Office Pro Plus 2016 + Win 10 Pro, e não funcionou. Ele é interrompido ao acessar os links que foram copiados - portanto, ao clicar em \\ <endereço de email> \ Rascunhos \ ~ test, o aplicativo desconhecido é capturado pelo win 10 e é interrompido.
Nasri Najib
1

Não tenho certeza sobre a referência a um email específico, mas dependendo do seu sistema, você poderá copiar o email no mesmo local que o item de tarefa. Basta arrastar / soltar o correio em uma pasta ou na área de trabalho e ele criará uma cópia do correio que você pode tratar como um arquivo normal.

Se você estiver usando arquivos .doc ou mais "avançados" que .txt, poderá vincular esse arquivo de mensagens do Outlook.

Paxxi
fonte
11
Eu vou com essa solução. Aqui está o meu novo fluxo de trabalho: Arraste o email para uma pasta temporária. Crie o item de tarefa no modo organizacional. Adicione o arquivo de mensagens como um anexo ao item: Cc Ca m (o arquivo de mensagens é movido para a pasta de anexos). Posteriormente, posso abrir a mensagem do item de tarefa pressionando Cc Ca o.
9119 Christian Berg
0

Não sem algum tipo de código personalizado. Os URIs do Outlook podem levá-lo para a pasta que contém o Outlook, mas é isso. Você precisaria criar uma estratégia de arquivamento inteligente, alinhada à sua estratégia de vinculação, para ficar mais granular.

squillman
fonte
Outras respostas mostram que é possível, daí o voto negativo.
Saaru Lindestøkke
0

Provavelmente sua exigência é diferente da minha.

Outook 2013> Guia Mensagem (sua visão normal)> Botão 'Ações'> Visualizar no navegador

Então eu recebo esse link do navegador.

Espero que ajude

Frank
fonte
2
Isso parecia promissor, mas, Outlook 2013para mim, isso cria um .mhtarquivo em AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook` and opens that in IE using a 'mhtml:file://.. url, então não vá.
Variável miserável
0

Você pode copiar um email do Outlook para o OneNote (aparece como um ícone de letra amarela), clicar com o botão direito do mouse e selecionar 'link para parágrafo' e colar o link em outro documento que possa funcionar com links.

Mas, de qualquer forma, a Microsoft deveria ter feito dessa coisa toda a vinculação a um email um recurso padrão. Era um recurso tão útil do Lotus Notes.

Umiboshi
fonte
É um recurso útil. Mas, qual é o modelo de segurança? Você quer que um vilão envie um link em um e-mail para abrir acidentalmente? GUIDs, com certeza, não são visíveis do lado de fora - a menos que vazem ...
Krazy Glew
0

Não tenho créditos de reputação suficientes para comentar a resposta aceita acima, mas queria fazer uma referência cruzada para uma revisão da excelente resposta fornecida pelo @ user25995 - que publiquei no (emacs) StackExchange .

Com base em um comentário que recebi de uma pergunta publicada lá, mudei o uso de (descontinuado) org-add-link-typepara org-link-set-parameterse incluí uma export:função para que o back-end de exportação HTML me desse um <a href="outlook:...">tipo de link formatado corretamente .

Kwoodham
fonte
O comentário não deve ser enviado como resposta devido à sua incapacidade de enviar um comentário real.
Ramhound
2
@ Ramhound - Eu me esforcei para apontar para a resposta aceita, mesmo fornecendo um link e reconhecendo o autor. A seguir, ofereci uma pequena revisão que evita o uso de uma função que agora está obsoleta. Eu não pretendia violar o protocolo aqui - existe uma maneira correta de comunicar isso se eu não tiver pontos suficientes de Brownie para comentar a resposta aceita?
kwoodham
-1

Eu uso o Wunderlist para gerenciar minhas tarefas e descobri que, com o suplemento Wunderlist para Outlook , posso criar novas tarefas diretamente de uma mensagem de email e o Wunderlist cria automaticamente um link nas notas da tarefa para a mensagem original. Algumas coisas a ter em mente:

  1. Eu sempre movo a mensagem para uma pasta primeiro porque (da última vez que verifiquei) o URL quebra se você mais tarde mover a mensagem para outra pasta.
  2. Embora exista um suplemento para a área de trabalho do Outlook, ele não parece incluir o link; portanto, uso o Outlook na Web quando quero criar uma tarefa.
  3. Eu só tentei isso com o Outlook na Web para Office 365 usando uma conta de email corporativa. Suponho que ele funcione igualmente bem com as contas do Office 365 do consumidor, mas não tentei.
  4. Mesmo que você não use o Wunderlist, você pode se inscrever e usá-lo para gerar o URL quando necessário.

E apenas para divulgação, trabalho para a Microsoft, embora não esteja associado às equipes do Outlook ou do Wunderlist.

AJSkew
fonte
11
Por favor, leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original. OP está usando emacs.
DavidPostill
@DavidPostill Respeitosamente, pensei que sim. Por isso, incluí o número 4 como uma maneira de obter um URL para uma mensagem que pode ser armazenada em qualquer lugar, inclusive em um arquivo de texto.
precisa saber é o seguinte