我正在尝试使用MFMailComposeViewController发送邮件。一切正常,除了邮件没有被发送,我总是得到MFMailComposeResultFailed。
任何指针?我没有使用模拟器,发送邮件可以在我的设备上运行。我确实有连接(通过Reachability进行测试),[MFMailComposeViewController canSendMail]返回YES。
项目中没有编译器警告,没有崩溃......
答案 0 :(得分:2)
这是IOS4中的一个错误。
我的手机上有一个Exchange邮件帐户和一个旧的非活动IMAP帐户。显然,这会导致iOS4出现问题。邮件实际上卡在了发件箱里。一旦我删除了非活动的IMAP帐户,一切都按预期工作。
答案 1 :(得分:1)
有些读者可能会遇到这个问题:
确保您实施<MFMailComposeViewControllerDelegate>
协议
以下是代码:
// in TestViewController.h
@interface TestViewController : UIViewController<MFMailComposeViewControllerDelegate>
@end
// in TestViewController.m
@interface TestViewController ()
@end
@implementation
- (void) compose {
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Hello there"];
[picker setToRecipients:@[]];
// Fill out the email body text
NSString *emailBody = @"Hello, sending a message from my app";
[picker setMessageBody:emailBody isHTML:NO];
// use this function. presentModalViewController:... is deprecated
[self presentViewController:picker animated:YES completion:nil];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
答案 2 :(得分:0)
在没有看到代码段的情况下很难判断,但是您应该检查以下内容:
1)您已正确设置MFMailComposeViewController's
委托并实施其委托方法;
2)您已使用setSubject:
3)您已使用setMessageBody:isHTML:
并可选择使用addAttachmentData:mimeType:fileName:
4)您已使用类似
之类的内容向用户呈现了您的邮件撰写视图控制器[self presentModalViewController:mcvc animated:YES];
希望这有帮助。