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 protected]"];
[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];
}