2009-11-01 4 views
1

J'utilise MFMailComposeViewController pour envoyer un fichier. Tout fonctionne bien avec les fichiers de moins de 15 Mo. Tout est terminé et le fichier n'est simplement pas attaché à la vue MFMailComposeViewController. Ce n'est pas que le serveur de messagerie n'accepte pas, c'est qu'il ne sera jamais attaché en premier lieu.MFMailComposeViewController limite de taille de fichier joint

Est-ce que quelqu'un a des idées s'il y a un moyen de résoudre ce problème?

Je sais que de nombreux services de messagerie ne peuvent pas gérer les pièces jointes de plus de 5 ou 10 Mo, mais d'autres services vous permettent une taille de fichier beaucoup plus grande.

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

Répondre

3

Chargement 15 Mo quoi que ce soit dans la RAM sur un pré-2009 iPhone ou iPod va vraiment pousser les limites de la mémoire disponible de votre processus, il est donc pas surprenant qu'il ya un plafond. Je n'essaierais pas de convaincre l'opinion de composer pour accepter un plus grand attachement; Au lieu de cela, je vous suggère de transférer le fichier sur un serveur externe et de lui envoyer un lien par e-mail ou d'envoyer le mail à partir de là.

+4

ne devrait pas l'utilisation de dataWithContentsOfMappedFile être que l'email peut être envoyé sans réellement lire le fichier entier en mémoire en même temps? –

+1

Que cela soit possible ou non dépend également du fait que le spooler de messagerie du système est également capable et désireux de désactiver la recherche de disque; Je suppose qu'il est en train de construire le message MIME dans la RAM de toute façon. –

Questions connexes