Thread wurde vom System oder vom Community-Team geschlossen.

Mails direkt aus Excel in VBA erstellen und versenden

Hallo Leute, ich möchte Mails direkt aus Excel in VBA erstellen und versenden. Ich schaffe es, das die Mail erstellt wird. Aber das absenden funktioniert einfach nicht. Was mache ich da falsch. Hat da jemand einen Tipp für mich?


[Betreff vom Moderator bearbeitet]


Sub PrepareEmailsFromListObject()
Dim ws As Worksheet
Dim lo As ListObject
Dim lr As ListRow
Dim MacScriptCommand As String
Dim Recipient As String
Dim Subject As String
Dim Body As String
Dim Name As String
Dim Anrede As String
Dim Betrag As String

' Setze das Arbeitsblatt und das ListObject
Set ws = ThisWorkbook.Sheets("Tabelle1")
Set lo = ws.ListObjects("MAIL")

' Schleife durch alle Zeilen im ListObject
For Each lr In lo.ListRows
' Empfänger, Name, Anrede und Betrag aus den Spalten holen
Recipient = lr.Range.Cells(1, lo.ListColumns("MAIL").Index).Value
Name = lr.Range.Cells(1, lo.ListColumns("NAME").Index).Value
Anrede = lr.Range.Cells(1, lo.ListColumns("Anrede").Index).Value
Betrag = lr.Range.Cells(1, lo.ListColumns("Betrag").Index).Value

' Betreff und Nachrichtentext erstellen
Subject = "Wichtige Information für " & Name
Body = Anrede & " " & Name & "," & vbCrLf & vbCrLf & _
"Hiermit informieren wir Sie über einen Betrag in Höhe von " & Betrag & "." & vbCrLf & vbCrLf & _
"Mit freundlichen Grüßen," & vbCrLf & "Ihr Team"

' AppleScript-Kommando definieren, um die Mail zu erstellen
MacScriptCommand = "tell application ""Mail""" & vbCrLf & _
"set newMessage to make new outgoing message with properties {subject:""" & Subject & """, content:""" & Body & """}" & vbCrLf & _
"tell newMessage" & vbCrLf & _
"make new to recipient with properties {address:""" & Recipient & """}" & vbCrLf & _
"set visible to true" & vbCrLf & _
"end tell" & vbCrLf & _
"activate" & vbCrLf & _
"end tell"



' AppleScript über VBA ausführen
On Error Resume Next ' Fehler abfangen, falls etwas schiefgeht
MacScript (MacScriptCommand)
On Error GoTo 0 ' Fehlerabfangmodus beenden

Next lr

' Aufräumen
Set lo = Nothing
Set ws = Nothing
End Sub



MacBook Air 15″, macOS 15.0

Gepostet am 30. Sept. 2024 22:01

Antworten
3 Antworten

01. Okt. 2024 14:24 als Antwort auf sloroh

Hallo sloroh,


vielen Dank für Deine Rückmeldung. Es ist schade, dass die Anpassung nicht wie erhofft funktioniert hat. Wenn die E-Mail zwar erstellt und geöffnet wird, aber nicht automatisch gesendet wird, könnten die Sicherheitsvorkehrungen von macOS das Versenden über AppleScript blockieren.


Es wäre sinnvoll, die Sicherheitseinstellungen zu überprüfen und sicherzustellen, dass das Skript die nötigen Berechtigungen hat, um Mails automatisch zu versenden.


> Introduction to AppleScript Language Guide


Beste Grüße und weiterhin viel Erfolg!

30. Sept. 2024 22:37 als Antwort auf sloroh

Guten Abend sloroh,


bitte teste einmal nachfolgende Änderung:

        ' AppleScript-Kommando definieren, um die Mail zu erstellen und zu senden
        MacScriptCommand = "tell application ""Mail""" & vbCrLf & _
                           "set newMessage to make new outgoing message with properties {subject:""" & Subject & """, content:""" & Body & """}" & vbCrLf & _
                           "tell newMessage" & vbCrLf & _
                           "make new to recipient with properties {address:""" & Recipient & """}" & vbCrLf & _
                           "send" & vbCrLf & _ ' Hier wird das Senden der Nachricht hinzugefügt
                           "end tell" & vbCrLf & _
                           "end tell"


Beste Grüße & viel Erfolg!

Mails direkt aus Excel in VBA erstellen und versenden

Willkommen in der Apple Support Community
Ein Forum, in dem Apple-Kunden sich gegenseitig mit ihren Produkten helfen. Melde dich mit deinem Apple Account an, um Mitglied zu werden.