If you use Outlook, you can use the following macro to put a hypertext
link into your MLO tasks. If you use Outlook with Zimbra (as opposed
to Exchange), it'll keep the same OID, even if you move the message or
delete it. Tres helpful:
Rem
Rem Stolen from
http://mutable.net/blog/archive/2006/09/02/how_to_hyperlink_to_microsoft_outlook_messages.aspx
Rem
Sub pet_CopyItemIDs()
Dim myOLApp As Application
Dim myNameSpace As NameSpace
Dim currentMessage As MailItem
Dim ClipBoard As String
Dim DataO As DataObject
' Housekeeping: set up the macro environment
Set myOLApp = CreateObject("Outlook.Application")
Set myNameSpace = myOLApp.GetNamespace("MAPI")
' Figure out if the active window is a list of messages or one
message
' in its own window
' On Error GoTo QuitIfError ' But if there's a problem, skip it
Select Case myOLApp.ActiveWindow.Class
' The active window is a list of messages (folder); this means
there
' might be several selected messages
Case olExplorer
' build the clipboard string
For Each currentMessage In
myOLApp.ActiveExplorer.Selection
ClipBoard = GetMsgDetails(currentMessage, ClipBoard)
Next
' The active window is a message window, meaning there will
only
' be one selected message (the one in this window)
Case olInspector
' build the clipboard string
ClipBoard = GetMsgDetails
(myOLApp.ActiveInspector.CurrentItem, _
ClipBoard)
' can't handle any other kind of window; anything else will be
ignored
End Select
QuitIfError: ' Come here if there was some kind of problem
Set myOLApp = Nothing
Set myNameSpace = Nothing
Set currentMessage = Nothing
Set DataO = New DataObject
DataO.Clear
DataO.SetText ClipBoard
DataO.PutInClipboard
Set DataO = Nothing
End Sub
Function GetMsgDetails(Item As MailItem, Details As String) As String
If Details <> "" Then
Details = Details + vbCrLf
End If
Details = Details + "Date: " + CStr(Item.SentOn) + vbCrLf
Details = Details + "Subject: " + Item.Subject + vbCrLf
Details = Details + "Sent by: " + Item.SenderName + vbCrLf
Details = Details + "To: " + Item.To + vbCrLf
Details = Details + "Outlook:" + Item.EntryID + vbCrLf + vbCrLf
GetMsgDetails = Details
End Function