我正在实施一个iphone应用程序(iOS 4.2),我想触发电子邮件客户端发送带附件的邮件。我可以有效地将uri方案与NSURL类结合使用以触发电子邮件应用程序,但我想知道是否可以附加图像。我尝试过mailto:whoever@wherever.org?subject = sthg& body = sthgelse& attachment = / path / to / file但附件不包括在内。我知道iphone应用程序是沙箱的,因此电子邮件实用程序可能无法访问我的映像的路径,因为它位于我的应用程序包中。另一方面,我正考虑用照片管理器管理我的图像。 (1)有没有办法以这种方式包含附件? (2)如果是这样,是否可以从我的应用程序或照片客户端引用图像?我在mailto RFC中找不到任何附件参数,但也许Apple提供了一些方法来实现这一点。
先谢谢你的帮助,
路易斯
答案 0 :(得分:3)
MFMailComposeViewController将能够做到这一点,以下用法的一些示例: 记得添加MessageUI.framework
MFMailComposeViewController *email = [[MFMailComposeViewController alloc] init];
email.mailComposeDelegate = self;
[email setSubject:@"Whatever"];
// Set up recipients
NSArray recipients = [NSArray arrayWithObject:@"whoever@wherever.org"];
[email setToRecipients:recipients];
// Attach an image to the email
UIImage *attachment = ...;
NSData *data = UIImagePNGRepresentation(attachment);
[email addAttachmentData:myData mimeType:@"image/png" fileName:@"ok.png"];
// Fill out the email body text
NSString *emailBody = @"test mail";
[email setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];
[email release];
答案 1 :(得分:0)
您应该使用允许您添加附件的MFMailComposeViewController,而不是使用mailto:
网址方案。它还有一个额外的好处,即使用不会离开你的应用程序。
答案 2 :(得分:0)
如果没有账号,MFMailComposeViewController就会崩溃。
是的,您可以先调用canSendMail
,结果为NO(!),接下来是什么?
答案是 - 使用'mailto:'。它会弹出对话框来创建帐户。