tags:

views:

32

answers:

1

Hi,

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.

A: 

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
Paul R
If the user prefers some other mail client, like Thunderbird, then Mail may not be fully configured and launching Mail may annoy the user.
JWWalker