我的应用程序如何跳转到iOS默认邮箱?

时间:2013-05-16 03:42:01

标签: ios email

我想在我的应用程序中设置一个按钮,如果单击该按钮,应用程序可以跳转到iOS的默认邮箱。我想这样做,以便用户可以查看&发送邮件。

此功能是否需要私有API或Apple是否禁止此操作?

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:3)

这样做你想要的:

let app = UIApplication.shared
if let url = NSURL(string: "message:"), app.canOpenURL(url) {
    app.openURL(url)
}

canOpenURL部分检查用户是否在Mail中设置了至少一个可以发送/接收的电子邮件地址。

答案 1 :(得分:1)

也许您可以使用这样的网址方案:

NSString *email = @"mailto:?subject=YourSubject&body=MsgBody";
email = [email stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]];

答案 2 :(得分:0)

如何使用MFMailComposeViewController?您可以设置其主题,收件人,邮件正文,附件,然后您可以在应用程序中以模态方式呈现它。由于用户不需要离开您的应用程序,因此也会更好。

if ([MFMailComposeViewController canSendMail]) {
    MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
mailViewController.mailComposeDelegate = self;
    [mailViewController setSubject:subjectString];
    [mailViewController setMessageBody:messageString isHTML:YES];
    [self presentViewController:mailViewController animated:YES completion:nil];
}

请记住将视图控制器调用上面的函数作为MFMailComposeViewControllerDelegate的委托,以便之后可以关闭视图控制器。

-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
    [self dismissViewControllerAnimated:YES completion:nil];
}

此课程的Apple文档: http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.html

答案 3 :(得分:0)

要从您的应用中发送电子邮件,前2个答案中的一个将起作用:MFMailComposeViewController或使用网址方案mailto://

对于检查用户的电子邮件,目前没有公开的方式来启动默认的iOS邮件应用程序。但是,有一些第三方库可用于设置您自己的邮件客户端,例如MailCoreremailChilkat。我确定还有其他人,但你明白了。