Automatisch de juiste aanhef in een e-mail plaatsen
Eerder hebben we gezien dat je met AppleScript de inhoud van een e-mail kunt ophalen. Dat hebben we onder andere gebruikt hebben om de route te vinden naar een adres in een e-mail handtekening.
Een andere nuttige optie is AppleScript te gebruiken om de afzender van een e-mail op te halen. Zo hebben we ofwel de naam, of het e-mailadres, van de persoon in kwestie. Gebruik ik voor allerlei dingen.
Laten we eerst kijken hoe we dat doen:
set returnEmail to false
set returnName to true
tell application "Mail"
set selectedMessages to selection
set theMessage to missing value
if (count of selectedMessages) > 0 then
set theMessage to item 1 of selectedMessages
end if
if theMessage is not missing value then
set theSender to (sender of theMessage as string)
if (returnEmail and returnName) = true
return theSender
else if (returnEmail) = true
return (extract address from theSender) as string
else
return (extract name from theSender) as string
end if
return ""
end if
end tell
Dit lijkt heel erg op de methode die we gebruikte om de inhoud van een bericht op te halen, maar nu halen we de afzender op.
Standaard ziet dat er zo uit: Tessa Geldens tessa.geldens@example.com
Vaak zul je óf de naam, óf het e-mailadres willen, afhankelijk van je doel. In dit geval willen we de naam, en dus zetten we returnName bovenin op true, en returnEmail op false.
Nu kunnen we dit gebruiken in bijvoorbeeld een TextExpander snippet, of een sneltoets die we uitvoeren via een tool als Keyboard Maestro.
Met wat aanpassingen om de code op te schonen kom je dan bijvoorbeeld hier op uit:
set greetings to {"Hoi", "Hey", "Hi"}
tell application "Mail"
set selectedMessages to selection
set theMessage to missing value
set theSenderName to ""
if (count of selectedMessages) > 0 then
set theMessage to item 1 of selectedMessages
end if
if theMessage is not missing value then
set theSender to (sender of theMessage as string)
set theSenderName to ((extract name from theSender) as string)
set AppleScript's text item delimiters to " "
-- we doen hier de aanname dat het eerste woord in de naam de voornaam is
-- dit gaat dus goed voor bijvoorbeeld "Anne-Fleur", maar niet voor "Anne Fleur"
-- tenzij je vaak te maken hebt met dergelijke namen is dat een prima acceptabel om met de hand te corrigeren
set theFirstName to text item 1 of theSenderName
set AppleScript's text item delimiters to ""
end if
set randomGreetingIndex to random number from 1 to count of greetings
set randomGreeting to item randomGreetingIndex of greetings as string
return randomGreeting & " " & theFirstName & ",
"
end tell
Zet dit in je TextExpander snippet, met het type op “AppleScript”, en je kunt gewoon in een e-mail je afkorting typen, en automatisch zal er “[Hoi/Hey/Hi] [voornaam]” verschijnen!
Dit scheelt ook weer voor typefouten, zeker als je mensen moet mailen met een lastige naam. 1
Zoals “Martijn”, want het aan e-mails dat ik krijg waar mensen me “Martin” of zelfs “Mattias” noemen…) ↩︎