2009-11-01 20 views
1

Я использую MFMailComposeViewController для отправки файла. Все работает отлично с файлами под 15mb. Все что угодно, и файл просто не привязан к виду MFMailComposeViewController. Дело не в том, что сервер электронной почты не принимает, а в том, что он никогда не прикрепляется в первую очередь.Ограничение размера файла прикрепленного файла MFMailComposeViewController

Есть ли у кого-нибудь идеи, есть ли способ решить это?

Я знаю, что многие почтовые службы не могут обрабатывать вложения более 5 или 10 МБ, но другие службы позволяют вам значительно увеличить размер файла.

 
MFMailComposeViewController *mail = [[[MFMailComposeViewController alloc] init] autorelease]; 
mail.mailComposeDelegate = self; 
NSString* path = [NSString stringWithFormat:@"%@/%@/%@", NSHomeDirectory(), @"Documents", fileName]; 
NSData *data = [NSData dataWithContentsOfMappedFile:path]; //also tried dataWithContentsOfFile with same results 
[mail addAttachmentData:data mimeType:@"audio/x-caf" fileName:[NSString stringWithFormat:@"%@.caf", label]]; 
[appDelegate.tabBarController presentModalViewController:mail animated:YES]; 

ответ

3

Загрузка 15 MB ничего в памяти на предварительно 2009 iPhone или IPod будет действительно раздвинуть пределы доступной памяти процесса, так что не удивительно, что есть крышка. Я бы не стал пытаться убедить композицию взглянуть на большее вложение; вместо этого я бы предложил вам перенести файл на какой-то внешний сервер и либо отправить по электронной почте ссылку на него, либо отправить почту оттуда.

+4

Не следует ли использовать dataWithContentsOfMappedFile то, что электронное письмо может быть отправлено без фактического чтения всего файла в памяти за один раз? –

+1

Независимо от того, возможно ли это или нет, зависит также, может ли и диспетчер очереди сообщений системы также и захочет листать диск; я предполагаю, что он все равно создает сообщение MIME в RAM. –

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