2009-09-07 10 views
9

Utilicé MessageUI framework para enviar el correo con el archivo adjunto desde mi aplicación. pero me dio el siguiente error,iphone email adjunto

2009-09-07 19:52:23.483 emailTest[11711:5b17] 
Error loading /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator: dlopen(/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator, 265): Library not loaded: /System/Library/PrivateFrameworks/MobileWirelessSync.framework/MobileWirelessSync 

Referenced from: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator 

     Reason: image not found 

2009-09-07 19:52:23.489 emailTest[11711:5b17] [+[AccountsManager _migrateAccountsIfNeeded]] Accounts migration failed 
[Switching to process 11711 local thread 0xf03] 

mi código es,

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]init]; 
picker.mailComposeDelegate = self; 
[picker setSubject:@"This is iPhone email attachment test"]; 

UIImage *sampleImg = [UIImage imageNamed:@"iPhone.jpg"]; 
NSData *imageData = UIImageJPEGRepresentation(sampleImg, 1); 
[picker addAttachmentData:imageData mimeType:@"image/png" fileName:@"iPhone.jpg"]; 


NSString *emailBody = @"I am sending the image attachment with iPhone email service"; 
[picker setMessageBody:emailBody isHTML:YES]; 

[self presentModalViewController:picker animated:YES]; 
[picker release]; 

por favor ayúdame.

+0

Sea más específico: ¿qué código está ejecutando para crear el archivo adjunto? Para separar el mensaje? ¿Cómo está exactamente "usando el framework MessageUI"? – Tim

+0

por favor, eche un vistazo al código. – SST

+0

hola, obtuviste tu código trabajado. También recibí el mismo mensaje mientras tocaba el botón Enviar por correo electrónico. Pero, no estoy agregando ningún archivo adjunto con el correo. No pude descartar el controlador de correo cuando toqué el botón cancelar. Estoy agregando el controlador de correo a la capa cocos2d. Cualquier ayuda por favor Gracias. –

Respuesta

16

No tiene que escribir la extensión en su nombre de archivo. como "iphone.jpg" no funciona. simplemente escriba "iphone" en nombre de archivo porque ya define mimeType. Y también debes definir la ruta para el recurso.

A continuación se muestra el código de ejemplo para adjuntar el archivo "rainy.png" con el correo.

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

[picker setSubject:@"Hello"]; 


// Set up recipients 
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"]; 
NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil]; 
NSArray *bccRecipients = [NSArray arrayWithObject:@"[email protected]"]; 

[picker setToRecipients:toRecipients]; 
[picker setCcRecipients:ccRecipients]; 
[picker setBccRecipients:bccRecipients]; 

// Attach an image to the email 
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"png"]; 
NSData *myData = [NSData dataWithContentsOfFile:path]; 
[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"rainy"]; 

// Fill out the email body text 
NSString *emailBody = @"It is raining"; 
[picker setMessageBody:emailBody isHTML:NO]; 

[self presentModalViewController:picker animated:YES]; 
[picker release]; 
0

Este error parece estar relacionado con la ejecución de correo en el simulador y no con su código. Incluso muestra las acciones de Apple MailComposer informa de error idéntico en el simulador:

2009-11-12 20:30:39.270 MailComposer[7426:4f1f] Error loading /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator: dlopen(/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator, 265): Library not loaded: /System/Library/PrivateFrameworks/MobileWirelessSync.framework/MobileWirelessSync 
    Referenced from: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/DataClassMigrators/AccountMigrator.migrator/AccountMigrator 
    Reason: image not found 
2009-11-12 20:30:39.271 MailComposer[7426:4f1f] [+[AccountsManager _migrateAccountsIfNeeded]] Accounts migration failed 
+0

Hola, Me sale lo mismo en el registro. Cuando toqué el botón Cerrar o Enviar en el controlador de correo. Estoy agregando el controlador de correo a la capa cocos2d. Y no entiendo "ejecutar correo en el simulador y no en su código". Qué es ? podemos cambiarlo? Gracias. –

0

Agregar siguiente método para descartar el MFMailComposeViewController:

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult: (MFailComposeResult)result error:(NSError*)error 

{ 
// NEVER REACHES THIS PLACE 
[self dismissModalViewControllerAnimated:YES]; 

NSLog (@"mail finished"); 
} 
+0

Buen punto, pero probablemente este no sea el problema aquí ... btw, debería ser 'MFMailComposeResult' en lugar de' MFailComposeResult'. – newenglander

0

uso esto para adjuntar la imagen en un correo electrónico, a prueba en ios 4,5, 6

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
    UIImage *myImage = [UIImage imageNamed:@"image.png"]; 
    NSData *imageData = UIImagePNGRepresentation(myImage); 
    [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"image"];