mit dem nachstehenden Code:
-----------------------------------------
Sub versenden()
Do While i < 100
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
.To = "test@keinemail.de"
.Subject = "Test"
.HTMLBody = "<html><body>Test-Mail</body></html>"
.Display
Application.Wait Now + TimeSerial(0, 0, 1)
SendKeys "%S", True
'Sendkeys-Schleife:
dim z%
z = 1
Do While z < 10
.Display
SendKeys "%{s}", True
z = z + 1
DoEvents
Loop
End With
Set objOutlook = Nothing
Set objOutlookRecip = Nothing
Set objOutlookMsg = Nothing
i = i + 1
Loop
End Sub
-----------------------------
will ich die Sicherheitsfragen in OL umgehen (.Display und sendkeys "%s"). Das funktioniert auch weitgehend. Problem aber: Die sendkeys-Methode ist nicht sehr zuverlässig. Manchmal bliebt die Mail im nach ".Display" angezeigten Fenster "hängen". Um etwas mehr Zuverlässigkeit zu erzielen, möchte ich in einer folgenden Schleife einige Male die beiden Befehle ".Display" und sendkeys"%s" ausführen. Problem hierbei: Fehlermeldung, wenn die Mail(objOutlookMsg ) doch bereits verschickt wurde: "Das Objekt wurde verschoben oder gelöscht."
Um das zu verhindern, würde ich die Schleife gerne nur dann ausführen, wenn objOutlookMsg noch nicht versendet wurde. Wie läßt sich das abfragen? 'If Is Nothing objOutlookMsg Then' hilft hier ebenso wenig weiter (da Objekt noch existiert) wie 'If objOutlookMsg = "" Then'. Auch die Abfrage objOutlookMsg.sent funktioniert nur, solange die Mail noch nicht versendet wurde (Msgbox-AW: false). Hat jemand eine Idee / Lösung?
Vielen Dank für Eurere Tipps und Anregungen!
Viele Grüße
Björn