2012-05-09 24 views
5

tôi đã tạo một tệp csv và tôi cũng đính kèm nó vào MFMailComposer và nó cho tôi thấy người soạn thư nhưng khi tôi gửi nó tới email người dùng, nó không cho tôi xem tệp csv đính kèm trong email. tôi đã sử dụng mã này để tạo tệp csv và thêm dữ liệu vào đó.cách tạo và đính kèm tệp CSV trong MFMailComposer trong sdk iPhone?

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

mã ở trên đang hoạt động tốt, tôi nhận được [phương tiện truyền thôngData length] tôi đang đính kèm tệp CSV từ đây.

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

mã ở trên cũng hoạt động bình thường. nó cho tôi thấy tệp CSV đính kèm nhưng khi tôi gửi thư qua email tại thời điểm đó, người nhận không nhận được tệp CSV đính kèm. Có gì sai trong mã này? tại sao người nhận không nhận được tệp đính kèm.?

+0

hey ai cũng có thể giúp tôi? –

+0

hey, bất kỳ cơ thể xin vui lòng cho tôi ý tưởng về để đính kèm tập tin csv trong cửa sổ soạn thư của chúng tôi. –

+0

bộ chọn = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; [bộ chọn bộ chọnĐối với người nhận: [NSArray arrayWithObjects: @ "abc.xyz.com", nil]]; [bộ công cụ chọnSubject: @ "iMoneyManager - CSV Exported"]; [bộ chọn bộ sưu tậpMessageBody: @ "" làHTML: NO]; [bộ chọn thêmAttachmentData: mediaData mimeType: @ "text/csv" tên tệp: @ "MoneyManager"]; picker.navigationBar.tintColor = [UIColor blackColor]; [self presentModalViewController: bộ chọn hoạt ảnh: YES]; –

Trả lời

0

tôi đã giải quyết vấn đề này bằng cách đính kèm tệp và thuộc tính phương tiện khác trong 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]; 

Trường hợp 'văn bản' là một chuỗi.

Các vấn đề liên quan