2012-05-09 33 views
5

मैंने एक सीएसवी फ़ाइल बनाई है और मैं इसे एमएफमेल कॉम्पोजर से भी जोड़ रहा हूं और यह मुझे अपने मेल संगीतकार को दिखाता है लेकिन जब मैं इसे उपयोगकर्ता ईमेल पर भेजता हूं तो यह मुझे ईमेल में संलग्न सीएसवी फ़ाइल नहीं दिखाता है। मैंने इस कोड का उपयोग सीएसवी फ़ाइल बनाने और इसमें डेटा जोड़ने के लिए किया है।आईफोन एसडीके में एमएफमेल कॉम्पोज़र में सीएसवी फ़ाइल कैसे बनाएं और संलग्न करें?

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

यहां उपरोक्त कोड अच्छा काम कर रहा है मुझे मिल रहा है [मीडियाडेटा लंबाई] मैं यहां से सीएसवी फ़ाइल संलग्न कर रहा हूं।

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

उपरोक्त कोड भी ठीक से काम कर रहा है। यह मुझे सीएसवी फ़ाइल संलग्न करता है लेकिन जब मैं उस समय ईमेल द्वारा मेल भेज रहा हूं तो रिसीवर संलग्न सीएसवी फ़ाइल नहीं प्राप्त कर रहा है। इस कोड में क्या गलत है? रिसीवर को संलग्न फाइल क्यों नहीं मिल रही है।

+0

हे कोई मेरी मदद कर सकता है? –

+0

हे, कोई भी शरीर कृपया मुझे हमारे मेल संगीतकार विंडो में सीएसवी फ़ाइल संलग्न करने के बारे में विचार दें। –

+0

पिकर = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; [पिकर सेट टॉरिसेप्टर्स: [एनएसएआरएआरए सरणीविथ ऑब्जेक्ट्स: @ "abc.xyz.com", nil]]; [पिकर सेटसब्जेक्ट: @ "iMoneyManager - सीएसवी निर्यात"]; [पिकर सेट मैसेज बॉडी: @ "" आईएसटीएमएल: नहीं]; [पिकर एड अटैचमेंटडेटा: मीडियाडाटा माइम टाइप: @ "टेक्स्ट/सीएसवी" फ़ाइल नाम: @ "मनीमैनेजर"]; picker.navigationBar.tintColor = [UIColor BlackColor]; [स्वयं उपस्थित मॉड्यूल दृश्य नियंत्रक: पिकर एनिमेटेड: हाँ]; –

उत्तर

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

जहाँ 'पाठ' एक श्रृंखला है।