2010-11-22 3 views
1

Nous avons créé un script qui ouvre automatiquement la nouvelle fenêtre de courrier Microsoft Outlook. Certaines choses doivent déjà être remplies. Cela fonctionne jusqu'à présent:Get EntryID de nouveau courrier

Set Arguments = WScript.Arguments 
If Arguments.Count > 4 Then 
    Set Outlook = CreateObject("Outlook.Application") 
    Set BodyObject = CreateObject("Scripting.FileSystemObject") 
    Set Mail = Outlook.CreateItem(0) 

    Mail.To = Arguments(0) 
    Mail.CC = Arguments(1) 
    Mail.BCC = Arguments(2) 
    Mail.Subject = Arguments(3) 

    Set BodyFile = BodyObject.OpenTextFile(Arguments(4)) 
    Mail.Body = BodyFile.ReadAll 
    BodyFile.Close 

    For Counter = 5 to (Arguments.Count - 1) 
     Mail.Attachments.Add Arguments(Counter) 
    Next 

    Mail.Display 
End If 

Mais savons que nous voulons savoir si ce courrier est envoyé par l'utilisateur, et nous voulons aussi connaître la EntryID de ce courrier, afin que nous puissions le chercher plus tard.

Maintenant Mail.Display ne renvoie rien et le programme se termine juste. Il n'attend pas que la fenêtre soit fermée. Donc, après Mail.Display, il devrait y avoir quelque chose comme: Mail.Wait, ou un événement Mail send afin que nous puissions obtenir l'EntryID.

Quelqu'un pourrait-il nous aider?

Merci à l'avance, Gillis et Emiel

+0

J'ai le même problème, sauf que j'essaye d'atteindre la même chose dans VB.Net. J'ai essayé de récupérer l'EntryID de l'événement Write qui se produit une fois que le MailItem a été envoyé. Pas beaucoup de chance cependant. Avez-vous réussi à résoudre ce problème? – Zolomon

Répondre

1

Je viens de trouver une solution probable de here:

Vous devez attendre et obtenir la valeur EntryID après que l'article a été livré de la Boîte d'envoi Pour ce faire, souscrivez à l'événement Folder.Items.ItemAdd dans le dossier Éléments envoyés. Cet événement transmet le nouvel élément ajouté, c'est-à-dire , en tant qu'argument.

+0

Je vais voir si je peux obtenir un exemple de travail. – Zolomon

0

L'élément doit exister d'abord dans Outlook pour avoir une valeur EntryID, utilisez la propriété Enregistrer et aller chercher son EntryID juste après

Mail.Save 
strEntryID = Mail.EntryID 

J'ai un échantillon écrit en VBA pour l'enregistrement de notes à partir d'Access forme à Outlook

Dim outobj As Outlook.Application 
    Dim outappt As Outlook.NoteItem 
    Set outobj = CreateObject("outlook.application") 
    Set outappt = outobj.CreateItem(olNoteItem) 
    With outappt 
    If Not IsNull(Me!strBody) Then .Body = Me!strBody 
    .Save 
    Me!strEID = .EntryID 
    End With 
Questions connexes