Versenden von E-Mails aus Excel VBA - Namen Nicht Erkannt
Ich bin mit dem folgenden code zum versenden einer Mail aus excel mit outlook:
Private Sub SendEmail()
Set OutlookApp = CreateObject("Outlook.Application")
Set OlObjects = OutlookApp.GetNamespace("MAPI")
Set newmsg = OutlookApp.CreateItem(olMailItem)
newmsg.Recipients.Add ("[email protected]; [email protected]; [email protected]")
newmsg.Subject = "Test Mail"
newmsg.Body = "This is a test email."
'newmsg.Display
newmsg.Send
End Sub
Der code funktioniert Prima, jedoch bekomme ich die folgende Fehlermeldung von Outlook beim Versuch zu senden, E-Mail:
ErrorScreen http://im58.gulfup.com/GRENlB.png
Das merkwürdige ist, dass wenn ich die neue Nachricht zu öffnen, die für zwei oder drei Minuten die Namen automatisch aufgelöst:
Arbeiten http://im74.gulfup.com/qmOYGQ.png
Aber das ist nichts für mich, da ich nicht möchte, dass die Meldung angezeigt wird, bevor es gesendet wird. Ich bin auf der Suche, um es zu senden, sobald ich den code ausführen.
Anregungen oder provisorischen Lösungen, werden geschätzt.
Als seitliche Anmerkung: ich habe versucht, aktivieren Sie "Zulassen Kommas als E-Mail-Trennzeichen" die option in outlook, und verwenden Sie dann die Kommas anstatt der Semikolons, aber ich bin immer noch vor dem gleichen problem.
UPDATE:
Unten ist der code arbeiten, wie pro Dmitry Streblechenko ist Antwort:
Private Sub SendEmail()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
Set OlObjects = OutApp.GetNamespace("MAPI")
Set OutMail = OutApp.CreateItem(olMailItem)
On Error Resume Next
With OutMail
.To = ("[email protected]; [email protected]; [email protected]")
.Subject = "Test Mail"
.Body = "This is a test email."
'.Display
.Send
End With
End Sub
- Ich glaube
newmsg.Recipients.Add ("[email protected]; [email protected]; [email protected]")
ist das problem. Es ist eine lange Zeit, seit ich Tat dies, aber ich erinnere mich an den Namen Hinzugefügt werden muss, getrennt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann nicht übergeben werden mehrere Namen beim Empfänger.Add - erhalten Sie einen einzelnen Empfänger mit Namen "[email protected]; [email protected]; [email protected]". Entweder rufen Sie die Empfänger.Fügen Sie 3 mal, einmal für jeden Empfänger oder legen Sie die Eigenschaft - Sie analysieren mehrere Namen.
newmsg.Recipients.Add
und verwendet dieTo
Eigenschaft, ganz gelöst ist das problem. Danke.Sollten Sie einen Aufruf zu
ResolveAll
ausdrücklich zu beheben alle Empfänger.Ansonsten, die Auflösung erfolgt automatisch, nach einer kurzen Wartezeit.
Beispiel:
Code kopiert aus hier.