Nachricht eindeutig erkennen

25/02/2009 - 12:43 von Tamara Mikes | Report spam
Salü alle zusammen

Ich kàmpfe noch immer mit meinem Problem, eine Mail eindeutig zu erkennen. Folgenden Code
habe ich geschrieben um alle Mails zu durchlaufen:

Private Sub LoopItems(Items As Outlook.Items)
'Alle Items in einem Folder durchlaufen

Dim obj As Object
For Each obj In Items

'Ein Fehler kann auftreten z.B. bei einer
'Lesebestàtigung
On Error Resume Next
Call HandleMailItem(obj, Items.Parent.FolderPath)

If Err <> 0 Then
Debug.Print "Fehler beim Speichern in Tabelle"
Debug.Print Err.Description
Debug.Print obj

'Stop
Err.Clear
End If

On Error GoTo 0
Next

End Sub

Das funktioniert soweit ganz gut. In HandleMailItem versuche ich nun eine eindutige
Identifizierung des Mails zu erhalten. Dazu habe ich mal folgendes probiert.:


Const PR_TRANSPORT_MESSAGE_HEADERS = &H7D001E ' Feldkonstante für
Mailheader

Dim objSafeMailItem As Object
Dim objMail As Outlook.MailItem
Dim strHeader As String
Dim strBody As String

' Set objSafeMailItem = New Redemption.SafeMailItem

' Set objMail = ActiveExplorer.Selection(1)
Set objMail = Item 'Bestehendes Item verwenden
Set objSafeMailItem.Item = objMail

strHeader = objSafeMailItem.Fields(PR_TRANSPORT_MESSAGE_HEADERS)

With objMail
strBody = .HTMLBody
.HTMLBody = "[Internetheader - Beginn]<br/>" & _
strHeader & vbCrLf & "[Internetheader - Ende]" & .HTMLBody
.PrintOut
.HTMLBody = strBody
.Save
End With

Set objSafeMailItem = Nothing


Hier bekomme ich aber bereits bei objSafeMailItem.Item = objMail ein Fehler.


Dann habe ich folgendes Probiert:

Const PR_SENDER_EMAIL_ADDRESS = &HC1F001E
Const PR_TRANSPORT_MESSAGE_HEADERS = &H7D001E
Debug.Print "S: "; Item.Sender; ": "; .Subject
Debug.Print "A: "; Item.Fields(PR_SENDER_EMAIL_ADDRESS)
Debug.Print "H: "; Item.Fields(PR_TRANSPORT_MESSAGE_HEADERS)

Hier bekomme ich dass .Subject ein unzureichender Verweis wàre. Ich habe Microsoft CDO
1.21 Library genommen. Müsste ich einen anderen Verweis verwenden?

Dann habe ich mit item.entryID versucht, diese scheint sich aber je nach Speicherort zu
veràndern und entspricht nicht einer eindeutigen Kennung des Mails.

Wie komme ich an die Message-ID ran bei meinem Code?

Vielen Dank für Hinweise
Gruss Tamara
 

Lesen sie die antworten

#1 Peter Marchert
25/02/2009 - 17:20 | Warnen spam
On 25 Feb., 12:43, "Tamara Mikes" wrote:
Salü alle zusammen



Guten Tag Tamara,

Ich kàmpfe noch immer mit meinem Problem, eine Mail eindeutig zu erkennen. Folgenden Code
habe ich geschrieben um alle Mails zu durchlaufen:

Set objSafeMailItem.Item = objMail
Hier bekomme ich aber bereits bei objSafeMailItem.Item = objMail ein Fehler.



Die Zuweisung erfolgt ohne "Set".

Dann habe ich folgendes Probiert:

    Const PR_SENDER_EMAIL_ADDRESS = &HC1F001E
    Const PR_TRANSPORT_MESSAGE_HEADERS = &H7D001E
    Debug.Print "S:  "; Item.Sender; ": "; .Subject
    Debug.Print "A:  "; Item.Fields(PR_SENDER_EMAIL_ADDRESS)
    Debug.Print "H:  "; Item.Fields(PR_TRANSPORT_MESSAGE_HEADERS)

Hier bekomme ich dass .Subject ein unzureichender Verweis wàre.



Da wurde nur das "Item" vergessen: Debug.Print "S: "; Item.Sender; ":
"; Item.Subject

Freundlicher Gruß
Peter Marchert

Infos, Workshops & Software für
Outlook®: www.outlook-stuff.com

Ähnliche fragen