2012-05-09 8 views
5

私はcsvファイルを1つ作成しましたが、MFMailComposerにも添付しています。メール作成者に表示されますが、ユーザーのメールに送信すると、メールに添付されたCSVファイルは表示されません。私はこのコードを使用してcsvファイルを作成し、そこにデータを追加しています。iPhone SDKのMFMailComposerにCSVファイルを作成して添付する方法は?

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

ここで上記のコードは、私がここからCSVファイルを添付しています[mediaData長]を取得しています良い取り組んでいます。

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

上記のコードも正しく動作しています。添付されたCSVファイルが表示されますが、その時点でメールをメールで送信しているときには、受信者は添付のCSVファイルを取得していません。このコードで何が間違っていますか?受信者が添付ファイルを取得していない理由

+0

誰かが私を助けることができますか? –

+0

私のメールの作曲家ウィンドウにcsvファイルを添付してもらってください。 –

+0

picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; [ピッカーsetToRecipients:[NSArray arrayWithObjects:@ "abc.xyz.com"、nil]]; [picker setSubject:@ "iMoneyManager - エクスポートされたCSV"]; [picker setMessageBody:@ "" isHTML:NO]; [picker addAttachmentData:mediaData mimeType:@ "text/csv" fileName:@ "MoneyManager"]; picker.navigationBar.tintColor = [UIColor blackColor]; [self presentModalViewController:ピッカーアニメーション:はい]; –

答えて

0

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

関連する問題