#import <MessageUI/MessageUI.h>
头文件.h中引入以上header
并加上delegate <MFMailComposeViewControllerDelegate>
.m实现
-(void)sendEMail:(NSString *)email
{
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil) {
if ([mailClass canSendMail]) {
[self displayMailPicker:email];
} else {
[self launchMailAppOnDevice:email];
}
} else {
[self launchMailAppOnDevice:email];
}
}
- (void)launchMailAppOnDevice:(NSString *)emaleAddress
{
NSString *recipients = [NSString stringWithFormat:@"mailto:%@&subject=my email!", emaleAddress];
NSString *body = @"&body=email body!";
NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
email = [email stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]];
}
//调出邮件发送窗口
- (void)displayMailPicker:(NSString *)emaleAddress
{
MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];
mailPicker.mailComposeDelegate = self;
//添加收件人
NSArray *toRecipients = [NSArray arrayWithObject:emaleAddress];
[mailPicker setToRecipients: toRecipients];
//添加右键内容
[mailPicker setMessageBody:@"" isHTML:YES];
[self presentModalViewController: mailPicker animated:YES];
}
#pragma mark - MFMailComposeViewControllerDelegate
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{ //关闭邮件发送窗口
[self dismissModalViewControllerAnimated:YES];
NSString *msg;
switch (result) {
case MFMailComposeResultCancelled:
msg = @"用户取消编辑邮件";
break;
case MFMailComposeResultSaved:
msg = @"用户成功保存邮件";
break;
case MFMailComposeResultSent:
msg = @"用户点击发送,将邮件放到队列中,还没发送";
break;
case MFMailComposeResultFailed:
msg = @"用户试图保存或者发送邮件失败";
break;
default:
msg = @"";
break;
}
NSLog(@"%@", msg);
}