【问题标题】:Can't attach CSV file to iPhone Mail application无法将 CSV 文件附加到 iPhone 邮件应用程序
【发布时间】:2013-10-27 05:45:47
【问题描述】:

下面的代码非常适合通过邮件应用程序发送文本 (.txt) 附件(textfile.csv 需要在任何地方使用 textfile.txt 进行修改)。但是,当我尝试附加 csv 文件时,它根本不起作用(邮件应用程序打开并显示 textfile.csv 的图标,但是当邮件到达时它没有附件(数据也不显示在邮件正文中)。没有如果我将 mime 类型更改为“text/plain”会有所不同。我很困惑......我做错了什么?请有什么想法吗?

    - (NSString *)getPath {
   NSString *paths = [NSSearchPathForDirectoriesInDomains
   (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
   return [paths stringByAppendingPathComponent:@"textfile.csv"];
}

//Saves file to Documents folder
//Method writes a string to a text file
-(void) writeToTextFile{
 //get the documents directory:
 NSArray *paths = NSSearchPathForDirectoriesInDomains
 (NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];


 //make a file name to write the data to using the documents  directory:
 NSString *fileName = [NSString stringWithFormat:@"textfile.csv", 
 documentsDirectory];
 //create content
 NSString *content = @"One,Two,Three,Four,Five";

 //save content to the documents directory
 [content writeToFile:fileName 
     atomically:NO 
    encoding:NSStringEncodingConversionAllowLossy 


 error:nil]; 
}

// Displays an email composition interface inside the application. Populates all the Mail fields.
-(void)displayComposerSheet
{ 
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
 picker.mailComposeDelegate = self; 
 [picker setSubject:@"Subject"];

 // Set up recipients
 NSArray *toRecipients = [NSArray arrayWithObject:@"email@domain.com"];

 [picker setToRecipients:toRecipients];
 // Fill out the email body text
 NSString *emailBody = (@"Data is attached as a .CSV file");

 [picker setMessageBody:emailBody isHTML:NO];

 NSString *SavedDataPath = [self getPath];
 NSString *path = SavedDataPath;

 NSData *myData = [NSData dataWithContentsOfFile:path];
    [picker addAttachmentData:myData mimeType:@"text/csv" fileName:@"textfile.csv"];  

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

【问题讨论】:

    标签: iphone iphone-sdk-3.0


    【解决方案1】:
    NSString *str_mail = @"one,two,three";
    NSData *myData = [str_mail dataUsingEncoding:NSUTF8StringEncoding]; 
    
    MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
    mailController.mailComposeDelegate = self;
    [mailController addAttachmentData:myData mimeType:@"text/csv" fileName:@"myfile"];
    [mailController setMessageBody:@"body" isHTML:NO];
    [self presentModalViewController:mailController animated:YES];
    

    【讨论】:

      【解决方案2】:

      尝试将 MIMETYPE 保持为 @"mime"。 .

      【讨论】:

        【解决方案3】:
        [mail addAttachmentData:[[[self eventController] csvDataForEvent:[self event]] dataUsingEncoding:NSUTF8StringEncoding] mimeType:@"text/csv" fileName:[NSString stringWithFormat:@"Product.csv"]];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-01
          • 2019-03-02
          • 1970-01-01
          • 1970-01-01
          • 2019-05-28
          相关资源
          最近更新 更多