Hi,
Ich greife aus einer VisualBasic-Applikation auf die gesendeten Mails des aktuellen Users zu:
Nun meldet mir einer der Anwender (auch noch der, auf dessen speziellen Wunsch diese Funktion eingebaut wurde), dass die Software die gesendete Mail nicht findet. An meinem Rechner funktioniert es, daher denke ich nicht, dass es ein Problem von VB.NET ist (deshalb poste ich das jetzt auch hier), wir haben eigentlich unternehmensweit alle die gleiche Office-Installation (kleinere Variationen im Patch-Status wären zwar möglich, größere Abweichuingen sind aber unwahrscheinlich, weil die IT regelmäßig Updates für alle Rechner ausrollt), an einer grundlegend anderen Version kann es auch nicht liegen, Office Automatisierungs-Upgrade ist auch installiert, sonst könnte meine Software die Mail gar nicht erst erstellen.
Der Ordner heisst bei ihm "Gesendete Objekte" und bei mir "SentItems", insofern besteht schon ein Unterschied zu dem System, auf dem es getestet wurde, da ich aber über GetDefaultFolder(olFolderSentMail) zugreife, sollte es keinen Unterschied machen, welche Spracheinstellung gewählt ist, oder?
Woran könnte es liegen, also welche Unterschiede könnten sonst noch bestehen, die dieses Fehlverhalten auslösen?
Gruß
Martin Dietz
Ich greife aus einer VisualBasic-Applikation auf die gesendeten Mails des aktuellen Users zu:
Code:
Private Sub EmailAusSentSpeichern() Wait(5) ' Bei großen Attachments dauert's etwas länger Dim o As Outlook.Application = GetObject(, "Outlook.Application") Dim Filter As String = "[Subject]='" & SubjectWhenSent & "'" Dim mailfolder As Outlook.MAPIFolder = o.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) Dim MItems As Object = mailfolder.Items Dim ret As Outlook.MailItem = MItems.Find(Filter) If ret Is Nothing Then ShowError("Die Mail konnte in Ihrem Sent-Ordner nicht gefunden werden, bitte speichern Sie die gesendete Mail selbst aus dem Sent-Ordner ins Dokumentenverzeichnis.") Else Dim mailToSave As Outlook.MailItem = ret While ret IsNot Nothing 'suche das neueste MailItem mit angegebenem Subject Dim dummy As Object = MItems.FindNext() If dummy IsNot Nothing Then ret = TryCast(dummy, Outlook.MailItem) If ret Is Nothing Then Exit While If ret.CreationTime > mailToSave.CreationTime Then mailToSave = ret End If ret = dummy End While If DateDiff(DateInterval.Minute, mailToSave.SentOn, Now) > 4 Then ShowWarning("Fehler beim Speichern der gesendeten Mail: Die neueste passende Mail ist mindestens 5 Minuten alt. " & vbCrLf & _ "Aus Sicherheitsgründen wird die gespeicherte ungesendete Mail nicht überschrieben, sondern die gesendete erhält den Namenszusatz '_sent'" & vbCrLf & _ "Bitte überprüfen Sie die entsprechenden Dateien am Speicherort und Speichern Sie ggf. selbst die Mail aus Ihrem Sent-Ordner.", "Speichern der gesendeten Mail") SaveFilename = IO.Path.Combine(IO.Path.GetDirectoryName(SaveFilename), IO.Path.GetFileNameWithoutExtension(SaveFilename) & "_sent" & IO.Path.GetExtension(SaveFilename)) End If Try mailToSave.SaveAs(SaveFilename) Catch ex As Exception ShowInternalError("Fehler beim Speichern der Mail. Bitte speichern Sie diese Mail direkt aus Outlook heraus.") End Try End If End Sub
Der Ordner heisst bei ihm "Gesendete Objekte" und bei mir "SentItems", insofern besteht schon ein Unterschied zu dem System, auf dem es getestet wurde, da ich aber über GetDefaultFolder(olFolderSentMail) zugreife, sollte es keinen Unterschied machen, welche Spracheinstellung gewählt ist, oder?
Woran könnte es liegen, also welche Unterschiede könnten sonst noch bestehen, die dieses Fehlverhalten auslösen?
Gruß
Martin Dietz
Comment