简体   繁体   中英

Sandboxing my App with Scripting Bridge to send email

I'm using a scripting bridge for sending mails from my Mac App. Now I need to sandbox the app and sending mails is not longer working while sandboxing is enabled.

Does anybody know how to fix that?

Thanks, Andreas

Code: `

/* create a Scripting Bridge object for talking to the Mail application */
    MailApplication *mail = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"];


/* 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];
...

`

You can't use the ScriptingBridge with Sandboxing enabled. Please file a bug report. This is what Apple recommends, if Sandboxing is a problem for you and there are no other solutions. They might add entitlements (not just temporary exceptions ) for the ScriptingBridge, but as of now there is no further information available.

There are Entitlements Keys , especially the com.apple.security.temporary-exception.apple-events key, you can add to your Entitlements.plist file, but the key for Apple Events is a temporary exception .
Unfortunately, I was unable to get ScriptingBridge working even with the correct entitlements set. I hope you're luckier than me.

Apple is going to require Sandboxing for all apps submitted to the Mac App Store starting on the 1st of November !

com.apple.security.temporary-exception.apple-events

Add this code to your Entitlements.plist, I tested It's ok.I can get selected mail from Mail now.

    <key>com.apple.security.temporary-exception.apple-events</key>
    <array>
    <string>com.apple.mail</string>
    </array>

I have modified Apple's SBSendEmail sample application to be Sandboxed and can successfully compose an e-mail. It appears that it is not possible to send the e-mail, but at least you could set everything up for the user just to press send.

https://github.com/Whiffer/SBSendEmail

of mac os x 10.8 and later, it has changed:

<key>com.apple.security.scripting-targets</key>
<dict>
    <key>com.apple.mail</key>
    <array>
        <string>com.apple.mail.compose</string>
    </array>
</dict>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM