Ich versuche, einen Autoresponder zu erstellen, der auf jede E-Mail von einer bestimmten Adresse mit so etwas antwortet:
Danke für Ihre E-Mail.
Ihre Nummer ist #0000042.
Die Zahl sollte sich jedes Mal erhöhen, wenn eine dieser E-Mails gesendet wird.
Nachdem ich mir die teuren Lösungen online angesehen habe, sieht es so aus, als wäre meine beste Wahl, etwas mit AppleScript zu automatisieren - möglicherweise die letzte Nummer in einer Datei zu speichern und sie zu erhöhen.
Wie würde ein solches Skript aussehen?
Eine einfache Möglichkeit, die automatische Inkrementierung zu implementieren, wäre die Verwendung einer AppleScript-Eigenschaftsvariablen :
property responseNumber : 42
Eigenschaftswerte werden zwischen Aufrufen Ihres Skripts "erinnert". Verwenden Sie also in Ihrem Handler einfach:
set responseNumber to responseNumber + 1
Der Eigenschaftswert wird jedoch zurückgesetzt, wenn das AppleScript kompiliert wird. Sie müssten also den 1
Eingang manuell property responseNumber : 1
auf den neuesten Wert ändern, wenn Sie das Skript geändert haben. Die Verwendung einer Datei ist daher eine robustere Methode, und die Verwendung einer Einstellungsdatei zum Aufzeichnen des aktuellen Eigenschaftswerts bedeutet, dass Sie integrierte Funktionen verwenden können.
Ein einfaches AppleScript-Beispiel (ohne Fehlerprüfungen oder Tests, da ich Mail nicht verwende ), um Ihnen eine Vorstellung zu geben:
property responseNumber : 42
property prefFileName : "your.domain.in.reverse.emailresponder.plist"
on perform_mail_action(theData)
my readPrefs()
tell application "Mail"
set theSelectedMessages to |SelectedMessages| of theData
repeat with theMessage in theSelectedMessages
set theReply to reply theMessage
set the content of theReply to "Thank you for your email." & return & "Your number is #" & (zeroPad of me given value:responseNumber, minimumDigits:7) & "." & return
send theReply
set responseNumber to responseNumber + 1
end repeat
end tell
my writePrefs()
end perform_mail_action
on zeroPad given value:n, minimumDigits:m : 2
set val to "" & (n as integer)
repeat while length of val < m
set val to "0" & val
end repeat
return val
end zeroPad
on readPrefs()
-- Get the path to the property list
set plPath to (path to preferences folder as text) & prefFileName
tell application "System Events"
set plContents to contents of property list file plPath
set responseNumber to value of property list item "ResponseNumber" of plContents
end tell
end readPrefs
on writePrefs()
-- Get the path to the property list
set plPath to (path to preferences folder as text) & prefFileName
tell application "System Events"
set the value of property list item "ResponseNumber" of contents of property list file plPath to responseNumber
end tell
end writePrefs
Speichern Sie dieses Skript in Ihrem ~/Library/Application Scripts/com.apple.mail
Ordner und richten Sie eine Mail- Regel ein, um es aufzurufen.
Sie müssen auch die entsprechende Plist-Datei in Ihrem ~/Library/Preferences
Ordner mit den folgenden Inhalten erstellen:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ResponseNumber</key>
<integer>42</integer>
</dict>
</plist>
Benutzer3439894
Benutzer221071
MikeLimaOscar