gpt4 book ai didi

ios - MFMailViewComposer 在写入错误的目标地址格式时不返回错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:20 25 4
gpt4 key购买 nike

当我尝试向一个不存在的地址发送电子邮件时(例如,“hello”),我猜 MFMail Composer 应该返回 MFMailComposeResultFailed,但这并没有发生,消息似乎被正确发送(显然, 它不发送)。我对“邮件”进行了相同的尝试,在这种情况下,“邮件”回答说发送消息时出错,但是,当我在我的应用程序中执行相同操作时,没有错误。我该如何解决这个问题?

这是我进入邮件屏幕时使用的代码:

if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc]init];
mailer.mailComposeDelegate = self;
[mailer setSubject:@"Notification"];
User *user = [user_array objectAtIndex:0];
NSArray *toRecipients = [NSArray arrayWithObjects:user.eMail, nil];
[mailer setToRecipients:toRecipients];

[mailer setMessageBody:self.label1.text isHTML:NO];
[self presentViewController:mailer animated:YES completion:nil];
[mailer release];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure"
message:@"Your device doesn't support the composer sheet"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
[alert release];
}

这是响应者的代码:

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
NSString *string = @"";
switch (result)
{
case MFMailComposeResultCancelled:
string = @"cancelled";
NSLog(@"Mail cancelled: you cancelled the operation and no email message was queued.");
break;
case MFMailComposeResultSaved:
NSLog(@"Mail saved: you saved the email message in the drafts folder.");
break;
case MFMailComposeResultSent:
string = @"sent";
NSLog(@"Mail send: the email message is queued in the outbox. It is ready to send.");
break;
case MFMailComposeResultFailed:
NSLog(@"Mail failed: the email message was not saved or queued, possibly due to an error.");
break;
default:
NSLog(@"Mail not sent.");
break;
}
// Remove the mail view
int abc = MFMailComposeErrorCodeSendFailed;
NSLog(@"ERROR LOG %i", abc);
[self dismissViewControllerAnimated:YES completion:nil];
if ([string isEqualToString:@"cancelled"]) {
ViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"Notif_detail"];
[second setString1:self.string1];
[second setString2:self.string2];
[second setString3:self.string3];
[second setString4:self.string4];
[self.navigationController pushViewController:second animated:YES];
}
else if ([string isEqualToString:@"sent"]){

ViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"View"];
[self.navigationController pushViewController:second animated:YES];
}

提前致谢!

最佳答案

我想当 didFinishWithResult 被触发时实际上没有错误,因为消息已排队并即将发送。由于邮件未送达,当您从邮件服务器(smtp 代码)收到响应时,稍后会发生该错误。

关于ios - MFMailViewComposer 在写入错误的目标地址格式时不返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com