【发布时间】:2013-01-18 09:21:57
【问题描述】:
如何执行“共享到邮件”之类的操作?在选择邮件时就像在NSSharingServices 中一样。例如,我有NSImage,我想达到 image2 中的结果。我该怎么做?有什么指点吗?
图片1:
图片2:
我只能从文本中创建消息:
NSURL * url;
url = [NSURL URLWithString:@"mailto:"
"?subject="
"&body=text"
];
(void) [[NSWorkspace sharedWorkspace] openURL:url];
但我不知道如何使用图像创建消息。
我找到了一种在使用 ScriptingBridge 框架时添加附件的方法。代码:
MailApplication *mail = [SBApplication
applicationWithBundleIdentifier:@"com.apple.Mail"];
MailOutgoingMessage *emailMessage =
[[[mail classForScriptingClass:@"outgoing message"] alloc]
initWithProperties:
[NSDictionary dictionaryWithObjectsAndKeys:
@"this is my subject", @"subject",
@"this is my content", @"content",
nil]];
[[mail outgoingMessages] addObject: emailMessage];
emailMessage.visible = YES;
NSString *attachmentFilePath = [NSString stringWithUTF8String:"<my provided file path>"];
if ( [attachmentFilePath length] > 0 ) {
MailAttachment *theAttachment = [[[mail
classForScriptingClass:@"attachment"] alloc]
initWithProperties:
[NSDictionary dictionaryWithObjectsAndKeys:
attachmentFilePath, @"fileName",
nil]];
[[emailMessage.content attachments] addObject: theAttachment];
}
[emailMessage visible];
它有效。但是如何将 NSImage 添加到附件中?也许我必须将 NSImage 写入临时文件,然后添加为附件并删除临时文件?或者是什么?或者我应该以某种方式将 NSImage 添加到正文?
【问题讨论】:
标签: objective-c macos email