Auto-sync: 2026-02-13 13:21:42
This commit is contained in:
12
skills/macos-mail/SKILL.md
Normal file
12
skills/macos-mail/SKILL.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# macOS Mail
|
||||
Description: Manage emails via the macOS Mail app using AppleScript. Can fetch recent emails and send new ones.
|
||||
|
||||
## Tools
|
||||
|
||||
### fetch
|
||||
Description: Get the latest N emails from the inbox.
|
||||
Command: osascript skills/macos-mail/fetch_emails.scpt {{limit}}
|
||||
|
||||
### send
|
||||
Description: Send an email using the default account in macOS Mail.
|
||||
Command: osascript skills/macos-mail/send_email.scpt "{{to}}" "{{subject}}" "{{body}}"
|
||||
42
skills/macos-mail/fetch_emails.scpt
Normal file
42
skills/macos-mail/fetch_emails.scpt
Normal file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/osascript
|
||||
on run argv
|
||||
set messageLimit to 10
|
||||
if (count of argv) > 0 then
|
||||
set messageLimit to (item 1 of argv) as integer
|
||||
end if
|
||||
|
||||
tell application "Mail"
|
||||
set output to ""
|
||||
set inboxMessages to (messages of inbox whose read status is false)
|
||||
|
||||
-- Fallback to all messages if no unread, or just take top N
|
||||
if (count of inboxMessages) is 0 then
|
||||
set inboxMessages to messages of inbox
|
||||
end if
|
||||
|
||||
-- Sort logic is hard in pure AppleScript efficiently, usually they come in order.
|
||||
-- We'll just grab the first N items which are usually newest.
|
||||
|
||||
set msgCount to count of inboxMessages
|
||||
if msgCount > messageLimit then
|
||||
set msgCount to messageLimit
|
||||
end if
|
||||
|
||||
repeat with i from 1 to msgCount
|
||||
set msg to item i of inboxMessages
|
||||
set msgSubject to subject of msg
|
||||
set msgSender to sender of msg
|
||||
set msgDate to date received of msg
|
||||
set msgContent to content of msg
|
||||
|
||||
-- Truncate content if too long
|
||||
if (length of msgContent) > 500 then
|
||||
set msgContent to (text 1 thru 500 of msgContent) & "..."
|
||||
end if
|
||||
|
||||
set output to output & "From: " & msgSender & "\nSubject: " & msgSubject & "\nDate: " & msgDate & "\nBody: " & msgContent & "\n---\n"
|
||||
end repeat
|
||||
|
||||
return output
|
||||
end tell
|
||||
end run
|
||||
19
skills/macos-mail/send_email.scpt
Normal file
19
skills/macos-mail/send_email.scpt
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/osascript
|
||||
on run argv
|
||||
if (count of argv) < 2 then
|
||||
return "Usage: send_email.scpt <recipient> <subject> <body>"
|
||||
end if
|
||||
|
||||
set recipientAddress to item 1 of argv
|
||||
set msgSubject to item 2 of argv
|
||||
set msgContent to item 3 of argv
|
||||
|
||||
tell application "Mail"
|
||||
set newMessage to make new outgoing message with properties {subject:msgSubject, content:msgContent, visible:false}
|
||||
tell newMessage
|
||||
make new to recipient at end of to recipients with properties {address:recipientAddress}
|
||||
end tell
|
||||
send newMessage
|
||||
end tell
|
||||
return "Email sent to " & recipientAddress
|
||||
end run
|
||||
Reference in New Issue
Block a user