Posso creare un collegamento a un messaggio di posta elettronica specifico in Outlook?


63

Uso Outlook come client di posta elettronica al lavoro, ma non desidero utilizzarlo per gestire le mie attività e i miei compiti. (Invece, utilizzo file di testo semplice e la modalità org di Emacs.) Poiché molti elementi todo iniziano come e-mail nella mia casella di posta, ho spesso bisogno di fare riferimento a queste e-mail.

Esiste un modo intelligente per creare un collegamento (un URL) che apre una specifica e-mail in Outlook quando viene cliccato?


Qualcuno con sufficiente reputazione ripagare questa domanda, per favore? Stiamo parlando di (TAG =>) "org-mode".
Keks Dose

Risposte:


32

Puoi farlo con un po 'di codice in Outlook e un po' di codice in Emacs.

Innanzitutto, se si utilizza Outlook 2007, è necessario abilitare gli URL di Outlook con un'aggiunta del registro. Le istruzioni e il file di registro sono disponibili qui per gentile concessione di David Tan.

Successivamente, questa macro può essere aggiunta a Outlook e otterrà il GUID del messaggio di posta elettronica corrente, creerà un collegamento in modalità Org e lo depositerà negli Appunti.

'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

Come notato da koushik nei commenti, la doClipboard.SetTextparte può essere espansa per differenziare i diversi tipi di elementi:

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

Quasi lì, aggiungi questo pezzetto di lisp alla tua directory di emacs lisp per abilitare i collegamenti di 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

Infine, aggiorna il tuo file .emacs per includere il codice di collegamento di Outlook. Aggiungilo da qualche parte dopo aver impostato la modalità organizzazione.

(require 'org-outlook)

Ora puoi chiamare la macro (l'ho aggiunta alla mia barra degli strumenti in Outlook per un rapido accesso) e puoi creare rapidamente un link all'e-mail in Emacs.

Un problema, il GUID cambia quando si sposta un messaggio tra archivi documenti, quindi se si ottiene il GUID nel messaggio mentre si trova sul server Exchange e lo si sposta nel file PST locale, il collegamento cambierà. Spostare il messaggio prima di ottenere il GUID.


4
Questo è fantastico, grazie! Una semplificazione: non ho fatto confusione con il registro per abilitare gli URL di Outlook, ma ho appena cambiato la chiamata w32-shell-execute a questo: (w32-shell-execute "open" "C: / Program / Microsoft Office / Office12 / OUTLOOK.EXE "(concat" / seleziona "" outlook: "id)
Christian Berg

1
Grazie per questa risposta Ho scoperto che in qualche modo avevo bisogno di creare un modulo vuoto per evitare errori di compilazione su DataObject non definito.
Laurent '

@ChristianBerg: sto usando Outlook 2003, quindi forse posso avere hyperlink senza preoccuparmi del registro, ma la tua semplificazione non ha funzionato, Outlook non è riuscito a trovare l'URL. E ogni volta che ho fatto clic su un collegamento in Emacs, è stato avviato un nuovo processo di Outlook. Quindi mi sono attenuto alla grande soluzione dell'utente259 ...
Keks Dose il

1
Ho "graffiato questo mio prurito" un po 'di più in quanto ho dovuto registrare collegamenti ad alcuni appuntamenti per lavorare su elementi correlati (in modo da poter fare riferimento ad altre informazioni / allegati o rispondere a tutti quando ho aggiornamenti, ecc.). Ora questo può esportare mail, voci di calendario, contatti, note, voci di diario e almeno non fallirà quando invocato su altre voci. Il codice modificato è su pastebin.com/gNWLVNRk (posso fornire un diff se potrebbe aiutare, anche se non so come procedere in VBA). Non ho dovuto apportare altre modifiche (emacs-side o regsitry) affinché questo funzionasse da parte mia. HTH.
Koushik,

1
Per risolvere l'errore di tipo DataObject, il seguente ha funzionato per me. Nell'editor delle macro, vai su Strumenti-> Riferimenti. Fare clic su Sfoglia, selezionare il file C:\Windows\System32\fm20.dlle premere OK.
Hugo Ideler

6

Ho risolto questo problema scrivendo un semplice 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

Copia un collegamento dell'elemento (e-mail, voce di calendario, ...) che hai selezionato in Outlook negli Appunti:

Outlook:176CZREX7A79L9TG1T0AJ6HQ8DEBLTFS60HUQYKT2IXBBZ9ZZVA73MNRYVRWRL4RY0VCPQE1IB5GAWY0D8OSMOB4IFDV5OMG9NX2BBKGFA3IWSD62UCNVK0HD9GA80BIDZSBCZL7INCT

Puoi anche utilizzare un servizio di reindirizzamento in modo da ottenere un collegamento HTTP (poiché Outlook:probabilmente i collegamenti non vengono rilevati automaticamente se si incolla è da qualche parte, ma i collegamenti HTTP lo sono) ( download ), basta sostituire l'ultima riga con:

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

Nota che devi Outlook:prima far funzionare i link.
http://www.slipstick.com/problems/outlook-missing-outlook-protocol/ (scorrere fino a "Do It For Me")

Testato con Outlook 2010.


3

mi sono imbattuto in Linker applet.going per provarlo..puoi anche tu http://www.teamscope.com/otherpro/utilities.asp#linker

Ecco il marketing drible ..

Linker ™ per Windows® crea collegamenti ipertestuali ad elementi e cartelle in Outlook, nonché a file e cartelle in Esplora risorse. È un'applet della barra delle applicazioni che inserisce il collegamento ipertestuale negli Appunti di Windows. Il collegamento ipertestuale può quindi essere incollato in qualsiasi documento di Microsoft Office, pagina Web, messaggio di posta elettronica o qualsiasi documento che supporti i collegamenti ipertestuali.

Saluti dal soleggiato Sudafrica!


Linker funziona a volte, altre volte non così tanto. Nel complesso sembra abbastanza pieno in Win 7 + Outlook 2010
Andy,

Utilizzando Office Pro Plus 2016 + Win 10 Pro, e non ha funzionato. Si interrompe quando si accede ai collegamenti che erano stati copiati, quindi quando si fa clic su \\ <indirizzo e-mail> \ Bozze \ ~, l'app sconosciuta viene rilevata da Win 10 e quindi si interrompe.
Nasri Najib,

1

Non sono sicuro di fare riferimento a un'e-mail specifica, ma a seconda del tuo sistema potresti essere in grado di copiare l'e-mail nella stessa posizione dell'elemento todo. Basta trascinare / rilasciare la posta in una cartella o sul desktop e creerà una copia della posta che puoi trattare come un normale file.

Se si utilizzano file .doc o più "avanzati" rispetto a .txt, è possibile collegarsi a questo file di messaggi di Outlook.


1
Vado con quella soluzione. Ecco il mio nuovo flusso di lavoro: trascina la posta in una cartella temporanea. Crea l'elemento todo in modalità organizzazione. Aggiungere il file del messaggio come allegato all'elemento: Cc Ca m (il file del messaggio viene spostato nella cartella degli allegati). Successivamente posso aprire il messaggio dall'elemento todo premendo Cc Ca o.
Christian Berg,


0

Non senza una sorta di codice personalizzato. Gli URI di Outlook possono portarti nella cartella contenente all'interno di Outlook, ma questo è tutto. Dovresti elaborare una strategia di archiviazione intelligente in linea con la tua strategia di collegamento per ottenere risultati più dettagliati.


Altre risposte mostrano che è possibile, quindi il downvote.
Saaru Lindestøkke,

0

Probabilmente il tuo requisito è diverso dal mio.

Outook 2013> Scheda Messaggio (la tua visualizzazione normale)> Pulsante "Azioni"> Visualizza nel browser

Quindi ottengo quel link dal browser.

Spero che ti aiuti


2
Sembrava promettente, ma Outlook 2013per me questo crea un .mhtfile in AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook` and opens that in IE using a 'mhtml:file://.. url, quindi non andare.
Miserabile variabile

0

È possibile copiare un messaggio di posta elettronica di Outlook su OneNote (visualizzato come un'icona di lettera gialla), quindi fare clic con il pulsante destro del mouse e selezionare "collegamento al paragrafo", quindi incollare il collegamento in un altro documento in grado di funzionare con i collegamenti.

Ma comunque, Microsoft avrebbe dovuto rendere tutto questo il collegamento a un'e-mail una funzionalità standard. Era una caratteristica così utile di Lotus Notes.


È una funzione utile. Ma qual è il modello di sicurezza? Vuoi che un cattivo ti mandi un link in un'email che potresti aprire per caso? GUID, certo, non visibili all'esterno - a meno che non perdano ...
Krazy Glew

0

Non ho crediti di reputazione sufficienti per inserire un commento alla risposta accettata sopra, ma volevo inserire un riferimento incrociato per una revisione all'eccellente risposta fornita da @ user25995 - che ho pubblicato su (emacs) StackExchange .

Sulla base di un commento che ho ricevuto ad una domanda ho postato lì, ho cambiato l'uso di (deprecato) org-add-link-typea org-link-set-parametersed ha incluso un export:funzione, in modo che il back-end di esportazione HTML mi ha dato un correttamente formattato <a href="outlook:...">tipo di collegamento.


Il commento non deve essere inviato come risposta a causa della tua incapacità di inviare un commento effettivo.
Ramhound,

2
@Ramhound - Mi sono preso cura di indicare la risposta accettata, anche fornendo un link e riconoscendo l'autore. Ho quindi offerto una piccola revisione che evita l'uso di una funzione che è ora obsoleta. Non intendevo violare il protocollo qui - esiste un modo corretto di comunicarlo se non ho abbastanza punti Brownie per commentare la risposta accettata?
Kwoodham,

-1

Uso Wunderlist per gestire le mie attività e ho scoperto che con il componente aggiuntivo Wunderlist per Outlook posso creare nuove attività direttamente da un messaggio di posta elettronica e Wunderlist crea automaticamente un collegamento nelle note dell'attività al messaggio originale. Alcune cose da tenere a mente:

  1. Sposto sempre prima il messaggio in una cartella perché (l'ultima volta che ho controllato) l'URL si interrompe se in seguito si sposta il messaggio in un'altra cartella.
  2. Anche se esiste un componente aggiuntivo per il desktop di Outlook, non sembra includere il collegamento, quindi utilizzo Outlook sul Web quando voglio creare un'attività.
  3. Ho provato questo solo con Outlook sul Web per Office 365 utilizzando un account di posta elettronica aziendale. Presumo che funzioni ugualmente bene con gli account Office 365 consumer, ma non l'ho provato.
  4. Anche se non usi Wunderlist, puoi registrarti e utilizzarlo per generare l'URL quando ne hai bisogno.

E solo per divulgazione, lavoro per Microsoft, anche se non sono associato ai team di Outlook o Wunderlist.


1
Si prega di leggere di nuovo attentamente la domanda. La tua risposta non risponde alla domanda originale. OP sta usando emacs.
DavidPostill

@DavidPostill Rispettosamente, pensavo di averlo fatto. Ecco perché ho incluso il n. 4 come modo per ottenere un URL per un messaggio che può quindi essere archiviato ovunque, anche in un file di testo.
AJSkew,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.