Hi all. I began working on a method to send emails with attachments a while back. I finally got back around to it. It simply opens an email in the Mail app. You have to actually send it (which I rather prefer actually.)
I put the actual Applescript code in a property of my mainstack (which homestack() returns, you can replace that with whatever you want to contain your AppleScript.) There are place holders in the Applescript for things like theSubject, theBody etc. These get replaced with the arguments passd. I confess there is no error checking, either in the LivecodeScript or AppleScript. Feed it a bad email or a bad file path and you deserve what you get. ;-) I developed this because I never was able to get the native Livecode functions to send an email with attachments. I think there is a library now that can do this, but I haven’t played around with that yet. ON sendMailWithApplescript theRecipient, theAddress, theSubject, theBody, theFileList put the sendMailTemplate of homeStack() into theCommand put revMacFromUnixPath(theFilePath) into theMacFilePath replace "theSubject" with theSubject in theCommand replace "theBody" with theBody in theCommand replace "theRecipient" with theRecipient in theCommand replace "theAddress" with "bobsnei...@iotecdigital.com" in theCommand if theFileList is not empty then -- build the attachments code repeat for each line tFilePath in theFileList put revUnixFromMacPath(tFilePath) into tUnixFilePath -- check for bug in revUnixFromMacPath when using network shares if tUnixFilePath begins with "/Volumes/:" then \ replace "/Volumes/:" with empty in tUnixFilePath put "make new attachment with properties {file name:" & quote & \ tUnixFilePath & quote & "as alias}" & cr after tAttachments end repeat put "tell content of newMessage" & cr & tAttachments & cr & "end tell" & cr \ into tAttachments replace "-- attachments" with tAttachments in theCommand end if do theCommand as appleScript END sendMailWithApplescript The property stored in the main stack called sendMailTemplate containing the AppleScript code: property lastWindowID : missing value tell application "Mail" set windowIDs to id of windows if windowIDs does not contain lastWindowID then set newMessage to make new outgoing message with properties {subject:"theSubject", content:"theBody" & return & return} tell newMessage set visible to true make new to recipient at end of to recipients with properties {name:"theRecipient", address:"theAddress"} end tell -- attachments activate set lastWindowID to id of window 1 else tell window id lastWindowID set visible to false set visible to true end tell activate end if end tell Bob S _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode