无法将CSV文件附加到iPhone Mail应用程序 [英] Can't attach CSV file to iPhone Mail application

查看:59
本文介绍了无法将CSV文件附加到iPhone Mail应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

The code below works perfectly to send text (.txt) attachments via the mail application (textfile.csv needs to be modified everywhere with textfile.txt). However when I try to attach csv files it does not work at all (the mail application opens up showing the icon of the textfile.csv but when the mail arrives it has no attachment (nor the data is displayed within the message body). No difference if I change the mime type to "text/plain". I am puzzled... What am I doing wrong?? Any ideas please?

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

推荐答案

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

这篇关于无法将CSV文件附加到iPhone Mail应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆