如何从 iPhone 应用程序发送邮件 [英] How can I send mail from an iPhone application
问题描述
我想从我的 iPhone 应用程序发送电子邮件.我听说 iOS SDK 没有电子邮件 API.我不想使用以下代码,因为它会退出我的应用程序:
I want to send an email from my iPhone application. I have heard that the iOS SDK doesn't have an email API. I don't want to use the following code because it will exit my application:
NSString *url = [NSString stringWithString: @"mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
那么如何从我的应用发送电子邮件?
So how can I send an email from my app?
推荐答案
在 iOS 3.0 及更高版本上,您应该使用 MFMailComposeViewController
类和 MFMailComposeViewControllerDelegate
协议,即隐藏在 MessageUI 框架中.
On iOS 3.0 and later you should use the MFMailComposeViewController
class, and the MFMailComposeViewControllerDelegate
protocol, that is tucked away in the MessageUI framework.
首先添加框架并导入:
#import <MessageUI/MFMailComposeViewController.h>
然后,发送消息:
MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"My Subject"];
[controller setMessageBody:@"Hello there." isHTML:NO];
if (controller) [self presentModalViewController:controller animated:YES];
[controller release];
然后用户完成工作,你及时得到委托回调:
Then the user does the work and you get the delegate callback in time:
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error;
{
if (result == MFMailComposeResultSent) {
NSLog(@"It's away!");
}
[self dismissModalViewControllerAnimated:YES];
}
记得检查设备是否配置为发送电子邮件:
Remember to check if the device is configured for sending email:
if ([MFMailComposeViewController canSendMail]) {
// Show the composer
} else {
// Handle the error
}
这篇关于如何从 iPhone 应用程序发送邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!