Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Mail versenden "outMail.Send" funktioniert nicht

Begonnen von Re_Do, Juni 16, 2023, 15:47:21

⏪ vorheriges - nächstes ⏩

Re_Do

Hallo Leute, bekomme meine Serienmails nicht versendet und benötige HilfeSie dürfen in diesem Board keine Dateianhänge sehen. . 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

markusxy

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


PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor