2013-03-27 2 views
4

Следующим является мой код для отправки вложения по почте. Это прекрасно работает. Я могу отправлять письма, но я не всегда получаю письма.MFMailComposeViewController canSendMail возвращает YES, но не отправляет почту в iOS

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]; 
} 
+0

Вы тестируете в Симуляторе? –

+4

Боковое примечание - почему вы создаете контроллер почты, а затем проверяете, можно ли отправлять почту? Вы должны создать контроллер и настроить его, если сможете отправлять почту. – rmaddy

+1

Вы говорите, что этот код работает только иногда. Тогда вы говорите, что вы не можете отправлять почту из приложения. Что он? Можете ли вы иногда отправлять почту из приложения или никогда из приложения? – rmaddy

ответ

6

После отправки почты с приложением перейти к почтовому-программному обеспечению на вашем iPhone, вы, скорее всего, найти почту в папке Исходящие.

Причина, по которой MFMailComposeViewController просто перенаправляет почту в почтовое программное обеспечение, и ему все равно, что происходит рядом с сообщением. Таким образом, ваше почтовое программное обеспечение зависит от того, как и когда будет обновляться Outbox.

2

У меня была та же проблема, я обнаружил, что она будет проходить через почтовый ящик и сказать, что она была отправлена, и тогда ничего не получилось.

Примерно через 20-30 минут первый из них прошел, а затем постепенно все остальные, которые я отправил, тоже прошли.

Я не знаю, почему это так долго, если я узнаю, что отредактирую этот ответ, но обязательно подождать до часа, прежде чем предполагать, что ваш код сломан.

Надеется, что это поможет кому-то, кто, как я, может быть траление их кода снова и

+0

Вы когда-нибудь находили более долговременное решение? Я также испытываю эту проблему. Электронная почта ставится в очередь, но (иногда) не отправляется. – elsurudo

1

В моем случае я должен был вручную открыть iphone почты приложение, затем письма были отправлены и получены немедленно.

+0

Это должен быть комментарий –

Смежные вопросы