CSV not attaching to in app email?

后端 未结 3 1955
鱼传尺愫
鱼传尺愫 2021-01-27 10:40

So I have had this problem for sometime and just cant get it working! I have been building a survey app that users simply enter information in and its saved to a csv file. Im no

3条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-27 11:01

    Reason for csv not being attached can be ether of below :

    1) filename or filepath is wrong as result nsdata of csv will be nil.

    2) filename in addAttachmentData mimeType: fileName: method should cantain only name not type of file format.

    Changes in your method is given below :

    -(IBAction)send:(id)sender {
    
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
    
        // Determine the file name and extension
        NSString *strFileName = @"results.csv";
        NSArray *filepart = [strFileName componentsSeparatedByString:@"."];
        NSString *filename = [filepart objectAtIndex:0];
    
        //get file path
        NSString *savedFilePath = [documentsDirectory stringByAppendingPathComponent:strFileName];
    
        //Now check if file exits
        NSFileManager *fileManager = [NSFileManager defaultManager];
        if ([fileManager fileExistsAtPath:savedFilePath]){ 
           NSData *csvData = [NSData dataWithContentsOfFile:savedFilePath];
    
           if(csvData)
           {
              MFMailComposeViewController *mailcomposer = [[MFMailComposeViewController alloc] init];
              [mailcomposer addAttachmentData:csvData mimeType:@"text/csv" fileName:filename];
              [mailcomposer setToRecipients:@[@"gpsflighttrial@gcap.eu"]];
              [mailcomposer setSubject:self.subject.text];
              [mailcomposer setMessageBody:self.message.text isHTML:NO];
           }
           else
              NSLog(@"error csv data not created");
        }
        else
           NSLog(@"error file doesnot exists");
    
    }
    

提交回复
热议问题