Hallo Leute,
ich möchte gerne eine neue E-Mail mittels der DvAPI erstellen und diese dann öffnen, damit der User sie vor dem Versand nochmal prüfen kann. Dazu habe ich in Visual Basic 6 folgende Code erstellt, der bei uns (David 10) auch funktioniert:
Private Sub CreateMail()
Dim TobitMailItem As DvApi32.MailItem
Dim TobitArchive As DvApi32.Archive
Dim MessageItems As DvApi32.MessageItems
Dim Filename As String
Dim i As Long
Dim TobitProgname As String
Dim TobitMessageItem2 As DvApi32.MessageItem2
Dim TobitMessageItems2 As DvApi32.MessageItems2
On Error GoTo Fehler
Set TobitArchive = myTobitAccount.GetSpecialArchive(DvArchivePersonalOut)
Set TobitMailItem = TobitArchive.NewItem(DvEMailItem)
With TobitMailItem
.Options.UserHold = True
.Subject = "Testemail " & Format$(Now, "HH:MM:SS")
.BodyText.PlainText = "Sehr geehrte Damen und Herren, " & vbCrLf & " dies ist ein Test!"
Call .Recipients.Add("test@googlemail.com")
If FileExist2(AttachmentTX.Text) Then
Call .Attachments.Add(AttachmentTX.Text, "Attachment")
End If
Call .Save(TobitArchive, DvMsgSelEMail)
End With
Set TobitMailItem = Nothing
Set TobitArchive = myTobitAccount.GetSpecialArchive(DvArchivePersonalOut)
Set TobitMessageItems2 = TobitArchive.GetArchiveEntries(DvFilterOnlyEMail)
Set TobitMessageItem2 = TobitMessageItems2.Item(0)
Dim RegistryOBJ As RegistryCLS
Dim RegSettingOBJ As RegSettingCLS
'HKEY_CURRENT_USER\Software\Tobit\Tobit InfoCenter\Settings
Set RegistryOBJ = New RegistryCLS
With RegistryOBJ
Set RegSettingOBJ = .ReadSetting(CurrentUser, "Software\Tobit\Tobit InfoCenter\Settings", "ProgramDirectory")
TobitProgname = csgCheckPath(RegSettingOBJ.Setting) & "DVWIN32.EXE"
End With
Set RegistryOBJ = Nothing
Set RegSettingOBJ = Nothing
'Genereller Aufbau für das Aufrufen von Einträgen aus dem Tobit Archive System
'Syntax: DVWIN32.EXE [PATH] /POS=n /SA=n (+ weitere Modifier s.u.)
'a.. POS = Position in Archive.DAT
'a.. SA = Typ (9 = Job, 34 = Archive)
'Shell "C:\Programme\Tobit InfoCenter\DVWIN32.EXE " & oArchive.ID & " /SA=34 /POS=iPosNo", vbNormalFocus
Dim ShellStr As String
ShellStr = TobitProgname
ShellStr = ShellStr & " " & TobitArchive.ID & " /SA34 /POS=" & TobitMessageItem2.Fields("RecNo").Value
Shell ShellStr, vbNormalFocus
Call myTobitAccount.Logoff
Exit Sub
Fehler:
Call AddLog(CStr(Err.Number) & ": " & Err.Description)
Err.Clear
Exit Sub
End Sub
Alles anzeigen
Bei unserem Kunden, der David 11 im Einsatz hat, öffnet sich die falsche E-Mail. Nach einigen Tests sieht es für mich so aus, als würde die API nicht raffen, dass gerade ein neues Mailitem erstellt und gespeichert wurde.
Denn in dem Rückgabewert hier ist die neue Mail nicht enthalten:
Auch ein Logoff und erneutes Logon am Tobitserver vor dem Auslesen des Archives mittels GetArchiveEntries bringen keine Abhilfe. Habt Ihr eine Idee wie man das lösen kann? Der Support von Tobit war leider keine Hilfe...