Hi Cliff, I've got something simple to work in Macruby. I think the problems I had were because of html content.
Here's an example for plain text: ================= framework 'Foundation' framework 'ScriptingBridge' TITLE="title" def make_message app=SBApplication.applicationWithBundleIdentifier("com.apple.Mail") props = { 'subject'=> 'Subject 1', 'sender'=>'st...@sclarkes.me.uk', 'content'=>'Lorem ipsum ....'} msg_class = app.classForScriptingClass('outgoing message') outgoing_msg=msg_class.alloc.initWithProperties(props) app.outgoingMessages.addObject(outgoing_msg) recip_class=app.classForScriptingClass('to recipient') recipient=recip_class.alloc.initWithProperties({'address'=>'st...@sclarkes.me.uk'}) outgoing_msg.toRecipients.addObject(recipient) outgoing_msg.send end make_message ================= Steve On 23 Oct 2012, at 16:51, Cliff Rosson <cliff.ros...@gmail.com> wrote: > Steve how did you get it working with the plain text. Below is the code I > think that is relevant in the SBS program. > > - (IBAction)sendEmailMessage:(id)sender { > /* create a Scripting Bridge object for talking to the Mail application */ > MailApplication *mail = [SBApplication > applicationWithBundleIdentifier:@"com.apple.Mail"]; > > /* set ourself as the delegate to receive any errors */ > mail.delegate = self; > /* create a new outgoing message object */ > MailOutgoingMessage *emailMessage = [[[mail classForScriptingClass:@"outgoing > message"] alloc] initWithProperties: > [NSDictionary > dictionaryWithObjectsAndKeys: > [self.subjectField > stringValue], @"subject", > [[self.messageContent > textStorage] string], @"content", > nil]]; > /* add the object to the mail app */ > [[mail outgoingMessages] addObject: emailMessage]; > /* set the sender, show the message */ > emailMessage.sender = [self.fromField stringValue]; > emailMessage.visible = YES; > > > Though it is not clear how this would translates over into macruby. I have > tried ever variation of MailOutgoingMessage.new and addObject. > > > On Tue, Oct 23, 2012 at 8:45 AM, Steve Clarke <st...@sclarkes.me.uk> wrote: > Hi, > > I got something similar working for a plain text email but there are > additional requirements for HTML emails (which I needed), and I couldn't > persuade SB to accept html content. I should have made that clear in my > previous note. If anyone has an example for HTML email with SB it would be > great to see it. > > Just taken a closer look at the scripting dictionary for mail and it looks > like the "html content" property isn't documented - so who knows how I found > it in the first place! I just checked it out and it still works but > obviously can't be relied on. > > Apologies for the red herring. It looks as if there is no supported way to > send html email using ScriptingBridge. > > Steve > > On 23 Oct 2012, at 15:52, Mark Rada <mr...@marketcircle.com> wrote: > >> Hi Cliff, >> >> Did you manage to find the SBSendEmail sample code: >> >> https://developer.apple.com/library/mac/#samplecode/SBSendEmail/Introduction/Intro.html >> >> The sample they have looks a bit different from what you have. I haven't >> tried it out myself, but their documentation seems quite thorough and was >> updated only a year ago. >> >> >> >> >> >> On 2012-10-23, at 5:28 AM, Steve Clarke <st...@sclarkes.me.uk> wrote: >> >>> Just had a closer look at what I did with sending mail and I think my >>> earlier reply was probably wrong, or at least not helpful. I think the >>> difficulty arises because there are some things that ScriptingBridge is >>> unable to do. I could not find a way to create an outgoing message with >>> ScriptingBridge and I had to resort to running a trivial applescript (using >>> NSAppleScript executeAndReturnError) to do the job for me. If anyone >>> knows a better way I'd be delighted to hear about it! >>> >>> I created the applescript from a template that I modified in my code before >>> I executed it. I guess Cliff could adopt a similar approach to copy >>> subject, content etc from his draft. >>> >>> Here's the template. The %HTML% and %SUBJECT% are placeholders that get >>> replaced by the actual values before execution. >>> >>> ========================= >>> tell application "Mail" >>> activate >>> set htmlMsg to "%HTML%" >>> set subjecta to "%SUBJECT%" >>> set theMsg to make new outgoing message with properties ¬ >>> {subject:subjecta, html content:htmlMsg & return & return, >>> content:""} >>> end tell >>> ========================= >>> >>> Steve >>> >>> On 23 Oct 2012, at 07:06, Cliff Rosson <cliff.ros...@gmail.com> wrote: >>> >>>> So playing around a little with this I was able to browse and find >>>> messages via macruby. On the other hand I cannot figure out how to send a >>>> drafted email. Here is what I have so far. >>>> >>>> My drafts folder has 1 message in it ready to be sent. >>>> >>>> mail = SBApplication.applicationWithBundleIdentifier("com.apple.mail") >>>> my_account = mail.accounts.select { |account| account.name == >>>> "MyAccountName" }.first >>>> drafts_folder = my_account.mailboxes.select { |mailbox| mailbox.name == >>>> "Drafts" }.first >>>> draft = drafts_folder.messages.first >>>> >>>> I need to use the send method somehow. I think I need to make a new >>>> MailOutgoingMessage but I would like to make this message based on my >>>> already existing draft message. >>>> >>>> Any know how this is done? >>>> >>>> I had hoped it would have been as simple as draft.send. :) >>>> >>>> >>>> On Sat, Oct 20, 2012 at 2:14 PM, Mark Rada <mr...@marketcircle.com> wrote: >>>> Hi Rob, >>>> >>>> I think Colin answered this fairly well. Personally, I prefer to use GCD >>>> when available because I find the API simpler and GCD stuff works with or >>>> without run loops. >>>> >>>> -- >>>> Mark >>>> >>>> >>>> On 2012-10-20, at 2:40 PM, Robert Carl Rice <rice.au...@pobox.com> wrote: >>>> >>>> > Hi Mark, >>>> > >>>> > I use NSTimer a lot in my apps. What is the advantage of using GCD API? >>>> > >>>> > There is an excellent tutorial on the web for specifically for setting >>>> > up ScriptingBridge for Apple Mail but I forget where I saw it. On >>>> > warning; if you set up ScriptingBridge for Apple Mail don't try to take >>>> > a snapshot in Xcode 4. Xcode will follow the link to mail and include >>>> > all of your mailboxes in the snapshot. I don't know if there is a way to >>>> > stop this behavior. >>>> > >>>> > Bob Rice >>>> > >>>> > On Oct 19, 2012, at 6:50 PM, Mark Rada <mr...@marketcircle.com> wrote: >>>> > >>>> >> Busy looping for an hour would be really bad. I assume you would have a >>>> >> sleep in there, but then you're still polling. >>>> >> >>>> >> If you are using MacRuby, looking at the GCD API would be a good idea. >>>> >> You could do something like this: >>>> >> >>>> >> def schedule_email q >>>> >> q.after(3600) do >>>> >> # Send email >>>> >> schedule_email q >>>> >> end >>>> >> end >>>> >> >>>> >> schedule_email Dispatch::Queue.new("com.rosson.delayed.email") >>>> >> >>>> >> NSRunLoop.currentRunLoop.run >>>> >> >>>> >> >>>> >> >>>> >> As for actually sending emails, if you want to have things go through >>>> >> Apple Mail you could use the ScriptingBridge framework which has a few >>>> >> tutorials online (but for iTunes): >>>> >> >>>> >> http://arstechnica.com/apple/2011/09/tutorial-os-x-automation-with-macruby-and-the-scripting-bridge/ >>>> >> >>>> >> AXElements is another option that I am biased in favour of; but it may >>>> >> not be passive enough for your requirements. >>>> >> >>>> >> HTH, >>>> >> Mark >>>> >> >>>> >> >>>> >> On 2012-10-19, at 6:12 PM, Cliff Rosson <cliff.ros...@gmail.com> wrote: >>>> >> >>>> >>> Hi Everyone, >>>> >>> >>>> >>> I am fairly new to macruby and am having trouble finding some basic >>>> >>> documentation to help me out. I would like to write a simple app that >>>> >>> sends a delayed email based on Time from mac mail. >>>> >>> >>>> >>> I am thinking of something like this, >>>> >>> >>>> >>> time = Time.now + 3600 >>>> >>> while true >>>> >>> case time >>>> >>> when Time.now >>>> >>> #Send email >>>> >>> end >>>> >>> end >>>> >>> >>>> >>> Being able to respond to certain emails or send an email from a draft >>>> >>> would be a huge benefit. Can anyone point me in the write direction to >>>> >>> accomplish this? I am decently proficient in ruby but don't know where >>>> >>> to start with MacRuby. >>>> >>> >>>> >>> Thanks everyone >>>> >>> >>>> >>> _______________________________________________ >>>> >>> MacRuby-devel mailing list >>>> >>> MacRuby-devel@lists.macosforge.org >>>> >>> http://lists.macosforge.org/mailman/listinfo/macruby-devel >>>> >> >>>> >> _______________________________________________ >>>> >> MacRuby-devel mailing list >>>> >> MacRuby-devel@lists.macosforge.org >>>> >> http://lists.macosforge.org/mailman/listinfo/macruby-devel >>>> >> >>>> > >>>> > _______________________________________________ >>>> > MacRuby-devel mailing list >>>> > MacRuby-devel@lists.macosforge.org >>>> > http://lists.macosforge.org/mailman/listinfo/macruby-devel >>>> >>>> _______________________________________________ >>>> MacRuby-devel mailing list >>>> MacRuby-devel@lists.macosforge.org >>>> http://lists.macosforge.org/mailman/listinfo/macruby-devel >>>> >>>> >>>> >>>> -- >>>> http://about.me/cliffrosson >>>> vizualize.me/cliffrosson >>>> _______________________________________________ >>>> MacRuby-devel mailing list >>>> MacRuby-devel@lists.macosforge.org >>>> http://lists.macosforge.org/mailman/listinfo/macruby-devel >>> >>> _______________________________________________ >>> MacRuby-devel mailing list >>> MacRuby-devel@lists.macosforge.org >>> http://lists.macosforge.org/mailman/listinfo/macruby-devel >> >> _______________________________________________ >> MacRuby-devel mailing list >> MacRuby-devel@lists.macosforge.org >> http://lists.macosforge.org/mailman/listinfo/macruby-devel > > > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo/macruby-devel > > > > > -- > http://about.me/cliffrosson > vizualize.me/cliffrosson > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo/macruby-devel