Albert
Albert

Reputation: 68240

MacOSX: new mail with attachment

I want to create a new mail with the default mail client and attach a file automatically to it.

To create a new mail to [email protected] with subject foo and body bar, I can do the following:

open "mailto:[email protected]?subject=foo&body=bar"

How can I attach a file now?

If this is not possible this way (with open), what are my alternatives?

I would prefer a solution which works in Java as well as in native languages (C++, ObjC). So if there is a way via shell to do this, this would make it easy as I can just spawn such a progress.

Otherwise I would have to fall back to some SMTP engine and just write an own small mail sender.

Upvotes: 5

Views: 1099

Answers (1)

Paul R
Paul R

Reputation: 213060

You can do this via AppleScript, e.g.

tell application "Mail"
    set msg to make new outgoing message with properties {subject:"Test", visible:true}
    tell msg to make new to recipient with properties {address:"[email protected]"}
    tell msg to make new attachment with properties {file name:"Macintosh HD:Users:me:my_file.txt" as alias}
end tell

If you don't have any way to run AppleScript directly then you can use osascript via the command line, e.g.

osascript <<EOF
tell application "Mail"
    set msg to make new outgoing message with properties {subject:"Test", visible:true}
    tell msg to make new to recipient with properties {address:"[email protected]"}
    tell msg to make new attachment with properties {file name:"Macintosh HD:Users:me:my_file.txt" as alias}
end tell
EOF

Upvotes: 2

Related Questions