Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone MFMailComposeViewController不发送邮件_Iphone_Email_Send_Mfmailcomposeviewcontroller - Fatal编程技术网

Iphone MFMailComposeViewController不发送邮件

Iphone MFMailComposeViewController不发送邮件,iphone,email,send,mfmailcomposeviewcontroller,Iphone,Email,Send,Mfmailcomposeviewcontroller,我正在尝试使用MFMailComposeViewController发送邮件。一切正常,除了邮件无法发送,我总是收到MFMailComposer结果失败 有什么建议吗?我没有使用模拟器,从我的设备发送邮件确实有效。我确实有一个连接(通过可达性进行测试),并且[MFMailComposeViewController canSendMail]返回YES 项目中没有编译器警告,没有崩溃…如果没有看到代码片段,很难判断,但是您应该检查以下内容: 1) 您已经正确设置了MFMailComposeViewC

我正在尝试使用MFMailComposeViewController发送邮件。一切正常,除了邮件无法发送,我总是收到MFMailComposer结果失败

有什么建议吗?我没有使用模拟器,从我的设备发送邮件确实有效。我确实有一个连接(通过可达性进行测试),并且[MFMailComposeViewController canSendMail]返回YES


项目中没有编译器警告,没有崩溃…

如果没有看到代码片段,很难判断,但是您应该检查以下内容:

1) 您已经正确设置了MFMailComposeViewController的委托,并实现了其委托方法

2) 您已使用
setSubject:

3) 您已经使用
setMessageBody:isHTML:

还可以使用
addAttachmentData:mimeType:fileName:

4) 您已经向用户展示了mail compose视图控制器

[self presentModalViewController:mcvc animated:YES];

希望这能有所帮助。

如果看不到代码片段,很难判断,但是您应该检查以下内容:

1) 您已经正确设置了MFMailComposeViewController的委托,并实现了其委托方法

2) 您已使用
setSubject:

3) 您已经使用
setMessageBody:isHTML:

还可以使用
addAttachmentData:mimeType:fileName:

4) 您已经向用户展示了mail compose视图控制器

[self presentModalViewController:mcvc animated:YES];
希望这有帮助。

这是IOS4中的一个bug

我的手机上有一个Exchange mail帐户和一个旧的、不活动的IMAP帐户。显然,这会导致iOS4出现问题。邮件实际上被卡在了发件箱里。一旦我删除了不活动的IMAP帐户,一切正常。

这是IOS4中的一个bug


我的手机上有一个Exchange mail帐户和一个旧的、不活动的IMAP帐户。显然,这会导致iOS4出现问题。邮件实际上被卡在了发件箱里。一旦我删除了不活动的IMAP帐户,一切正常。

一些读者可能会遇到以下问题:

确保您实现了
协议

代码如下:

// 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
//在TestViewController.h中
@接口TestViewController:UIViewController
@结束
//在TestViewController.m中
@接口TestViewController()
@结束
@实施
-(无效)撰写{
MFMailComposeViewController*选择器=[[MFMailComposeViewController alloc]init];
picker.mailComposeDelegate=self;
[picker setSubject:@“你好”];
[选择器设置收件人:@[];
//填写电子邮件正文文本
NSString*emailBody=@“您好,正在从我的应用程序发送消息”;
[picker setMessageBody:emailBody isHTML:NO];
//使用此函数。presentModalViewController:…已弃用
[自我呈现视图控制器:选择器已设置动画:是完成:无];
}
-(void)mailComposeController:(MFMailComposeViewController*)控制器未完成结果:(MFMailComposeResult)结果错误:(NSError*)错误
{
[自我解除视图控制器激活:是完成:无];
}
@结束

一些读者可能会遇到这个问题:

确保您实现了
协议

代码如下:

// 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
//在TestViewController.h中
@接口TestViewController:UIViewController
@结束
//在TestViewController.m中
@接口TestViewController()
@结束
@实施
-(无效)撰写{
MFMailComposeViewController*选择器=[[MFMailComposeViewController alloc]init];
picker.mailComposeDelegate=self;
[picker setSubject:@“你好”];
[选择器设置收件人:@[];
//填写电子邮件正文文本
NSString*emailBody=@“您好,正在从我的应用程序发送消息”;
[picker setMessageBody:emailBody isHTML:NO];
//使用此函数。presentModalViewController:…已弃用
[自我呈现视图控制器:选择器已设置动画:是完成:无];
}
-(void)mailComposeController:(MFMailComposeViewController*)控制器未完成结果:(MFMailComposeResult)结果错误:(NSError*)错误
{
[自我解除视图控制器激活:是完成:无];
}
@结束

是的,所有这些我都做对了。原来这是操作系统中的一个bug。见下面我的答案。无论如何,谢谢你:)是的,我都做对了。原来这是操作系统中的一个bug。见下面我的答案。无论如何,谢谢:)看起来这个bug在4.1中仍然存在。关于4.2还不确定。看起来4.1中仍然存在这个bug。还不确定4.2版。