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

person Nik    schedule 27.03.2013    source источник
comment
Вы тестируете в Симуляторе?   -  person βhargavḯ    schedule 27.03.2013
comment
Примечание: почему вы создаете контроллер создания почты, а затем проверяете, можно ли отправить почту? Вы должны создать контроллер и настроить его только в том случае, если вы можете отправлять почту.   -  person rmaddy    schedule 27.03.2013
comment
Вы говорите, что этот код работает только иногда. Затем вы говорите, что не можете отправлять почту из приложения. Что это? Можете ли вы иногда отправлять почту из приложения или никогда из приложения?   -  person rmaddy    schedule 27.03.2013
comment
Я могу отправить почту все время, но я не получаю почту. Я иногда получаю письма.   -  person Nik    schedule 27.03.2013
comment
Я изменил содержание своего вопроса, чтобы было более понятно, что происходит   -  person Nik    schedule 27.03.2013
comment
@Raj Куда вы отправляете электронные письма? Можете ли вы успешно получать другие электронные письма с вложениями на этот адрес?   -  person John Topley    schedule 27.03.2013
comment
@JohnTopley Да, я могу получать письма с вложениями. Я также пытался отправить его без вложений.. Но это не работает, как я уже говорил.   -  person Nik    schedule 27.03.2013
comment
@Raj Вы пытались отправить их на другой адрес электронной почты?   -  person John Topley    schedule 27.03.2013
comment
@JohnTopley да ... безуспешно   -  person Nik    schedule 27.03.2013
comment
Если вы отправляете электронное письмо на указанный адрес, вы всегда получаете электронное письмо для этого адреса или вы получаете его только иногда для этого адреса электронной почты? Проверьте папки «Спам» или «Спам». В вашем коде нет ничего плохого, если вложение не слишком велико. Вы когда-нибудь отправляли вложение размером более 5 МБ, 10 МБ или 15 МБ?   -  person rmaddy    schedule 28.03.2013
comment
@rmaddy Я вижу, что получаю электронные письма только иногда, независимо от того, прикрепляю я к ним что-то или нет. это происходит независимо от вложения.   -  person Nik    schedule 28.03.2013
comment
@Raj Я не об этом спрашивал. Если вы отправляете 10 электронных писем одному и тому же пользователю, всегда ли этот пользователь получает все 10? Или данный пользователь получает только некоторые из них?   -  person rmaddy    schedule 28.03.2013
comment
@rmaddy пользователь получит только некоторые из них, а не все.   -  person Nik    schedule 28.03.2013


Ответы (3)


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

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

person xapslock    schedule 27.03.2013

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

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

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

Надеюсь, это поможет кому-то, кто, как и я, может снова и снова просматривать свой код.

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

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

person user1994956    schedule 14.12.2016
comment
Это должен быть комментарий - person ρяσѕρєя K; 14.12.2016