Hallo Leute, bekomme meine Serienmails nicht versendet und benötige HilfeLaufzeitfehler.png . Bin am verzweifeln über folgende Fehlermeldung "Attachment" kann den Ausdruck outMail.Send nicht erkennen und wird bei Debugging gelb hinterlegt. outMail.Display funktioniert einwandfrei!
Hat jemand eine Idee was an dem Code nicht stimmt?
Public Sub SendSerialEmail()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim emailTo As String
Dim emailSubject As String
Dim emailText As String
Dim outApp As Outlook.Application
Dim outMail As Outlook.MailItem
Dim outlookStarted As Boolean
On Error Resume Next
Set outApp = GetObject(, "Outlook.Application")
On Error GoTo 0
If outApp Is Nothing Then
Set outApp = CreateObject("Outlook.Application")
outlookStarted = True
End If
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Firstname, LastName, Subject, HTML, EmailAddress, Sender_ " & _
" FROM ABF_Mail")
Do Until rs.EOF
emailSender = Trim(rs.Fields("Sender_").Value)
emailTo = Trim(rs.Fields("FirstName").Value & " " & rs.Fields("LastName").Value) & _
" <" & rs.Fields("EmailAddress").Value & ">"
emailSubject = Trim(rs.Fields("Subject").Value)
If IsNull(rs.Fields("FirstName").Value) Then
emailSubject = emailSubject & " for " & _
rs.Fields("FirstName").Value & " " & rs.Fields("LastName").Value
End If
emailText = Trim("Hallo " & rs.Fields("FirstName").Value) & "," & vbCrLf & vbCrLf & _
Trim(rs.Fields("HTML").Value)
Set outMail = outApp.CreateItem(olMailItem)
With outMail
outMail.SendUsingAccount = GetAccountByEmail(outApp, rs.Fields("Sender_").Value)
.Attachments.Add "D:\Anhang\JHV_2023.pdf"
End With
Set outMail = outApp.CreateItem(olMailItem)
outMail.To = emailTo
outMail.Subject = emailSubject
outMail.Body = emailText
outMail.Send
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
If outlookStarted Then
outApp.Quit
End If
Set outMail = Nothing
Set outApp = Nothing
End Sub
Der Code ist recht seltsam. Innerhalb der Schleife erzeugst du nach dem zuweisen des Anhangs ein neues Mail?
Welchen Sinn soll das machen?
Aber grundsätzlich ist der Code ja unproblematisch.
Das Problem würde ich bei den Inhalten der Variablen vermuten, oder dein Outlook hat ein generelles Problem.
Beim Code selbst kann man ja nicht wirklich was falsch machen.
Zitat von: Re_Do am Juni 16, 2023, 15:47:21Set outMail = outApp.CreateItem(olMailItem)
With outMail
outMail.SendUsingAccount = GetAccountByEmail(outApp, rs.Fields("Sender_").Value)
.Attachments.Add "D:\Anhang\JHV_2023.pdf"
End With
Set outMail = outApp.CreateItem(olMailItem)
outMail.To = emailTo
outMail.Subject = emailSubject
outMail.Body = emailText
outMail.Send
Zitat von: Re_Do am Juni 16, 2023, 15:47:21Bin am verzweifeln über folgende Fehlermeldung "Attachment" kann den Ausdruck outMail.Send nicht erkennen und wird bei Debugging gelb hinterlegt.
Was ist denn jetzt die Fehlermeldung?
""Attachment" kann den Ausdruck outMail.Send nicht erkennen"?
oder die Meldung aus deinem Screenshot?
Was du im Text geschrieben hast, ergibt in dem Kontext keinen Sinn, daher vermute ich, es ist die Meldung "Outlook kennt mindestens einen Namen nicht" aus dem Screenshot, um die es geht.
Diese Meldung dürfte dadurch verursacht werden, dass du in dem Outlook.MailItem einen Empfänger eingetragen hast, der weder eine in sich gültige Adresse darstellt, noch in einem der Outlook Adressbücher gefunden werden kann.
PS: Ich möchte mich
@markusxy anschließen. Unabhängig von der Fehlermledung ergibt dein Code ergibt so insgesamt eher wenig Sinn.