温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iPhone How-to:如何发送邮件

发布时间:2020-06-17 04:53:47 来源:网络 阅读:1262 作者:benjielin 栏目:开发技术

iPhone提供了内嵌的Mail应用以支持电子邮件相关操作,此外还提供了MFMailComposeViewController以实现了在当前应用内编辑和发送邮件。使用内嵌的Mail应用还是MFMailComposeViewController就取决于实际的需求了,实现方法分别是:

  • 调用内嵌Mail应用

- (void) sendEmailTo:(NSString *)to withSubject:(NSString *)subject withBody:(NSString *)body {
    NSString *mailString = [NSString stringWithFormat:@"mailto:?to=%@&subject=%@&body=%@",
                            [to stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
                            [subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
                            [body stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];
}

需要注意的是这里使用了NSString的stringByAddingPercentEscapesUsingEncoding接口,其作用就是在URL字符串中进行特殊字符的替换,比如将空格替换成%20之类的。

 

  • 使用MFMailComposeViewController支持应用内邮件发送

- (IBAction)sendMail{
    MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
    controller.mailComposeDelegate = self;
    [controller setSubject:@"In app email..."];
    [controller setMessageBody:@"...a tutorial from mobileorchard.com" isHTML:NO];
    [self presentModalViewController:controller animated:YES];
    [controller release];
}

 

此外还需要实现mailComposeController:didFinishWithResult:error:的协议以进行发送成功或者失败后的处理:

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI