MFMailComposeViewController canSendMail返回YES但不在iOS中发送邮件

时间:2013-03-27 15:46:52

标签: ios mfmailcomposeviewcontroller mfmailcomposer

以下是我在邮件中发送附件的代码。这很好用。我能够发送邮件,但我并不总是收到邮件。

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;

// Set the subject of email
[picker setSubject:@"My data file"];

// Add email addresses

[picker setToRecipients:[NSArray arrayWithObjects:emailId, nil]];


// Fill out the email body text
NSString *emailBody = @"Hello, \n Please find the data from the iOS app in the attachments.\n\n Thank you.\nMy Team.";

// This is not an HTML formatted email
[picker setMessageBody:emailBody isHTML:NO];

// Create NSData object from file
NSData *exportFileData = [NSData dataWithContentsOfFile:filePath];

// Attach image data to the email
[picker addAttachmentData:exportFileData mimeType:@"text/csv" fileName:  [self.CSVNameTextField text]];


// Show email view

if ([MFMailComposeViewController canSendMail]) {

    [self presentModalViewController:picker animated:YES];
}

3 个答案:

答案 0 :(得分:6)

使用您的应用程序发送邮件后,转到iPhone上的邮件软件,您很可能会在发件箱中找到邮件。

因为MFMailComposeViewController只会将邮件转发到邮件软件,它不关心邮件旁边会发生什么。因此,由您的邮件软件决定如何以及何时更新发件箱。

答案 1 :(得分:2)

我遇到了同样的问题,我发现它会通过邮箱说它已发送,然后什么都不会发生。

大约20-30分钟后,第一个通过,然后我发送的其余部分逐渐通过。

我不知道为什么需要这么长时间,如果我发现我会编辑这个答案,但肯定要等到一小时才会假设您的代码被破坏。

希望这可以帮助像我这样的人一遍又一遍地搜索他们的代码

答案 2 :(得分:1)

在我的情况下,我必须手动打开iphone邮件应用程序,然后立即发送和接收邮件。