在iOS中使用电子邮件uri方案的附件

时间:2012-01-12 10:58:01

标签: iphone ios email ios4 url-scheme

我正在实施一个iphone应用程序(iOS 4.2),我想触发电子邮件客户端发送带附件的邮件。我可以有效地将uri方案与NSURL类结合使用以触发电子邮件应用程序,但我想知道是否可以附加图像。我尝试过mailto:whoever@wherever.org?subject = sthg& body = sthgelse& attachment = / path / to / file但附件不包括在内。我知道iphone应用程序是沙箱的,因此电子邮件实用程序可能无法访问我的映像的路径,因为它位于我的应用程序包中。另一方面,我正考虑用照片管理器管理我的图像。 (1)有没有办法以这种方式包含附件? (2)如果是这样,是否可以从我的应用程序或照片客户端引用图像?我在mailto RFC中找不到任何附件参数,但也许Apple提供了一些方法来实现这一点。

先谢谢你的帮助,

路易斯

3 个答案:

答案 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:'。它会弹出对话框来创建帐户。