2012-05-09 11 views
5

he creado un archivo csv y también lo estoy adjuntando a MFMailComposer y me lo muestra a mi compositor de correo, pero cuando lo envío al correo electrónico del usuario no me muestra adjunto el archivo csv en el correo electrónico. He usado este código para crear un archivo csv y agregar datos en él.cómo crear y adjuntar archivo CSV en MFMailComposer en iPhone sdk?

 NSMutableString *mainString=[[NSMutableString alloc]initWithString:@""]; 
     //NSMutableArray *section = [[NSMutableArray alloc] init]; 
     for(int i = 0;i<[NameArray count];i++) 
     { 
      NSString *string=[indexArray objectAtIndex:i]; 
      string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
      [mainString appendFormat:@"\"%@\"",string]; 


      string=[NameArray objectAtIndex:i]; 
      string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
      [mainString appendFormat:@",\"%@\"",string]; 

      string=[typearray objectAtIndex:i]; 
      string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
      [mainString appendFormat:@",\"%@\"",string]; 

      [mainString appendFormat:@",\"%@\"",string]; 
      [mainString appendFormat:@"\n"]; 

     } 

     NSLog(@"getdatafor csv:%@",mainString); 

     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectoryPath = [paths objectAtIndex:0]; 
     NSString *filePath = [documentsDirectoryPath stringByAppendingPathComponent:@"history.csv"]; 
//  filePath = [filePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
     NSData* settingsData; 
     settingsData = [mainString dataUsingEncoding: NSASCIIStringEncoding]; 

     NSError *error; 
     [settingsData writeToFile:filePath atomically:YES]; 
//   NSLog(@"writeok"); 
     NSData *mediaData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMapped error:&error]; 

     NSLog(@"Length:%d Error:%@",[mediaData length],[error localizedDescription]); 

aquí el código anterior está trabajando bien que estoy recibiendo [longitud mediaData] estoy adjuntando el archivo CSV desde aquí.

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

    // Attach an image to the email 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"history" ofType:@"csv"]; 
    NSData *myData = [NSData dataWithContentsOfFile:path]; 

    // Fill out the email body text 
    NSString *emailBody = @"history"; 
    [picker setMessageBody:emailBody isHTML:NO]; 
    [picker addAttachmentData:myData mimeType:@"text/cvs" fileName:@"history"]; 

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

el código anterior también funciona correctamente. me muestra un archivo CSV adjunto, pero cuando estoy enviando el correo por correo electrónico en ese momento el receptor no recibe el archivo CSV adjunto. ¿Qué hay de malo en este código? ¿Por qué el receptor no está recibiendo el archivo adjunto?

+0

hey alguien me puede ayudar? –

+0

hey, cualquier cuerpo por favor dame la idea de adjuntar un archivo csv en nuestra ventana de compositor de correo. –

+0

selector = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; [selector setToRecipients: [NSArray arrayWithObjects: @ "abc.xyz.com", nil]]; [seter setSubject: @ "iMoneyManager - CSV Exported"]; [selector setMessageBody: @ "" isHTML: NO]; [picker addAttachmentData: mediaData mimeType: @ "text/csv" fileName: @ "MoneyManager"]; picker.navigationBar.tintColor = [UIColor blackColor]; [self presentModalViewController: selector animado: SÍ]; –

Respuesta

0

He resuelto este problema al adjuntar archivos y otras propiedades multimedia en MFMailComposeViewController.

0
NSData *data=[[arr componentsJoinedByString:@","] writeToFile:@"Bhavesh.csv" atomically:YES encoding:NSUTF8StringEncoding error:NULL]; 
[mail addAttachmentData:data mimeType:@"text/csv" fileName:@"Bhavesh.csv"]; 
3
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
mailer.mailComposeDelegate = self; 
[mailer setSubject:@"CSV File"]; 

NSData *myData = [text dataUsingEncoding:NSUTF8StringEncoding]; 

[mailer addAttachmentData:myData mimeType:@"text/cvs" fileName:@"FileName"]; 

[self presentModalViewController:mailer animated:YES]; 

Cuando el 'texto' es una cadena.