96 votes

Puis-je créer un lien vers un message électronique spécifique dans Outlook ?

J'utilise Outlook comme client de messagerie au travail, mais je ne veux pas l'utiliser pour gérer mes tâches et mes todos. (J'utilise plutôt des fichiers de texte brut et le mode org d'Emacs.) Comme de nombreux éléments à faire commencent par des courriels dans ma boîte de réception, j'ai souvent besoin de faire référence à ces courriels.

Existe-t-il un moyen astucieux de créer un lien (une URL) qui ouvre un courriel spécifique dans Outlook lorsqu'on clique dessus ?

46voto

Vous pouvez le faire avec un peu de code dans Outlook et un peu de code dans Emacs.

Tout d'abord, si vous utilisez Outlook 2007, vous devez activer les URL d'Outlook par un ajout au registre. Les instructions et le fichier de registre peuvent être trouvés ici avec l'aimable autorisation de David Tan.

Ensuite, cette macro peut être ajoutée à Outlook et récupérera le GUID du message électronique en cours, créera un lien en mode Org et le déposera dans le presse-papiers.

'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

Comme koushik noté dans les commentaires, le doClipboard.SetText peut être étendue pour différencier les différents types d'articles :

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

Vous y êtes presque, ajoutez ce petit bout de lisp à votre répertoire emacs lisp pour activer les liens 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

Et enfin, mettez à jour votre fichier .emacs pour inclure le code de lien Outlook. Il suffit de l'ajouter quelque part après la configuration de org-mode.

(require 'org-outlook)

Maintenant, vous pouvez appeler la macro (je l'ai ajoutée à ma barre d'outils dans Outlook pour un accès rapide) et vous pouvez rapidement créer un lien vers l'e-mail dans Emacs.

Si vous obtenez le GUID du message alors qu'il se trouve sur votre serveur Exchange et que vous le déplacez ensuite vers votre fichier PST local, le lien sera modifié. Déplacez le message avant d'obtenir le GUID.

8voto

barnabas Points 11

J'ai résolu ce problème en écrivant un simple vbscript ( télécharger ) :

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

Elle copie dans le presse-papiers un lien vers l'élément (courriel, entrée du calendrier, ...) que vous avez sélectionné dans Outlook :

Outlook:176CZREX7A79L9TG1T0AJ6HQ8DEBLTFS60HUQYKT2IXBBZ9ZZVA73MNRYVRWRL4RY0VCPQE1IB5GAWY0D8OSMOB4IFDV5OMG9NX2BBKGFA3IWSD62UCNVK0HD9GA80BIDZSBCZL7INCT

Vous pouvez même utiliser un service de redirection afin d'obtenir un lien HTTP (car Outlook: ne sont probablement pas détectés automatiquement si vous les collez quelque part, mais les liens HTTP le sont) ( télécharger ), il suffit de remplacer la dernière ligne par :

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

Notez que vous devez faire Outlook: les liens fonctionnent d'abord.
http://www.slipstick.com/problems/outlook-missing-outlook-protocol/ (faire défiler vers le bas jusqu'à "Do It For Me")

Testé avec Outlook 2010.

4voto

kwoodham Points 31

Je n'ai pas suffisamment de crédits de réputation pour mettre un commentaire à la réponse acceptée ci-dessus, mais je voulais mettre une référence croisée pour une révision de l'excellente réponse fournie par @user25995 - que j'ai postée sur (emacs) StackExchange .

Sur la base d'un commentaire reçu à la suite d'une question que j'ai postée ici, j'ai modifié l'utilisation de (déprécié) org-add-link-type a org-link-set-parameters et comprenait un export: de sorte que le backend d'exportation HTML me donne un format correct <a href="outlook:..."> type de lien.

3voto

Je suis tombé sur l'applet Linker. Je vais l'essayer vous pourriez aussi le faire. http://www.teamscope.com/otherpro/utilities.asp#linker

Voici le drible du marketing..

Linker™ pour Windows® crée des hyperliens vers des éléments et des dossiers dans Outlook, et vers des fichiers et des dossiers dans l'Explorateur Windows. Il s'agit d'une applet de la barre d'état système qui place l'hyperlien dans le presse-papiers de Windows. L'hyperlien peut ensuite être collé dans n'importe quel document Microsoft Office, page Web, message électronique ou tout autre document prenant en charge les hyperliens.

Salutations depuis l'Afrique du Sud ensoleillée !

3voto

Umiboshi Points 21

Vous pouvez copier un e-mail Outlook dans OneNote (il apparaît sous la forme d'une icône de lettre jaune), puis cliquer avec le bouton droit de la souris et sélectionner " lien vers le paragraphe ", et enfin coller le lien dans un autre document qui peut fonctionner avec des liens.

Quoi qu'il en soit, Microsoft aurait dû faire de la possibilité de créer un lien vers un e-mail une fonction standard. C'était une fonction tellement utile de Lotus Notes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X