0

enter image description here

I want to send 2 attachments in mail. One is Image and another is text file. But when I send both attachment in single mail, the text file appears as a square blank box. Image and text file, both files are received at receiver side and also readable. But only issue is sender cannot see text file in mail body before sending mail. The code for sending mail is as given below.

- (void)showEmail:(NSString*)file {    

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *dateFromString = [dateFormatter dateFromString:abc4];
    [dateFormatter setDateFormat:@"MM/dd/yyyy"];
    NSString *titledate=[dateFormatter stringFromDate:dateFromString];
    NSString *emailTitle = [NSString stringWithFormat:@"(%@)",titledate];
    [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss"];
    NSString *subjectdate=[dateFormatter stringFromDate:dateFromString];
    NSString *messageBody = [NSString stringWithFormat:@"%@ %@",abc,subjectdate];
    //NSArray *toRecipents = [NSArray arrayWithObject:self.txtfldEmail.text];


    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
    mc.mailComposeDelegate = self;
    [mc setSubject:emailTitle];
    [mc setMessageBody:messageBody isHTML:NO];
    //[mc setToRecipients:toRecipents];    

    // Determine the file name and extension

    NSArray *filepart = [file componentsSeparatedByString:@"."];
    NSString *filename = [filepart objectAtIndex:0];
    NSString *extension = [filepart lastObject];

    // Get the resource path and read the file using NSData
    //NSString *filePath = [[NSBundle mainBundle] pathForResource:filename ofType:extension];   

    //NSString *xyz=[[NSUserDefaults standardUserDefaults]valueForKey:@"readpath"];
    NSData *fileData;
    NSData *fileData1;

    if ([title isEqualToString:@"Excel"]) {
        fileData = [NSData dataWithContentsOfFile:filePath];
        NSString *xyz=[[NSUserDefaults standardUserDefaults]valueForKey:@"commentfilelocation"];
        fileData1=[NSData dataWithContentsOfFile:xyz];
        NSLog(@"fileData1>>%@",fileData1);
    }
    else if([title isEqualToString:@"Screenshot"])
    {
    NSString *xyz=[[NSUserDefaults standardUserDefaults]valueForKey:@"readpath"];
    fileData = [NSData dataWithContentsOfFile:xyz];
    NSString *xyz1=[[NSUserDefaults standardUserDefaults]valueForKey:@"commentfilelocation"];
    NSLog(@"xyz1>>%@",[[NSUserDefaults standardUserDefaults]valueForKey:@"commentfilelocation"]);
    fileData1=[NSData dataWithContentsOfFile:xyz1]; 
    }

    // Determine the MIME type
    NSString *mimeType;
    if ([extension isEqualToString:@"jpg"]) {
        mimeType = @"image/jpeg";
    } else if ([extension isEqualToString:@"png"]) {
        mimeType = @"image/png";
    } else if ([extension isEqualToString:@"doc"]) {
        mimeType = @"application/msword";
    } else if ([extension isEqualToString:@"ppt"]) {
        mimeType = @"application/vnd.ms-powerpoint";
    } else if ([extension isEqualToString:@"html"]) {
        mimeType = @"text/html";
    } else if ([extension isEqualToString:@"txt"]) {
        mimeType = @"text/html";
    } else if ([extension isEqualToString:@"pdf"]) {
        mimeType = @"application/pdf";
    } else if ([extension isEqualToString:@"csv"]) {
        mimeType = @"text/csv";
    }

    NSString *mimeType1;
    if ([extension isEqualToString:@"jpg"]) {
        mimeType1 = @"image/jpeg";
    } else if ([extension isEqualToString:@"png"]) {
        mimeType1 = @"image/png";
    } else if ([extension isEqualToString:@"doc"]) {
        mimeType1 = @"application/msword";
    } else if ([extension isEqualToString:@"ppt"]) {
        mimeType1 = @"application/vnd.ms-powerpoint";
    } else if ([extension isEqualToString:@"html"]) {
        mimeType1 = @"text/html";
    }else if ([extension isEqualToString:@"txt"]) {
        mimeType1 = @"text/html";
    }else if ([extension isEqualToString:@"pdf"]) {
        mimeType1 = @"application/pdf";
    }else if ([extension isEqualToString:@"csv"]) {
        mimeType1 = @"text/csv";
    }

    // Add attachment
    [mc addAttachmentData:fileData mimeType:mimeType fileName:file];  
    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
    [dateFormatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *dateFromString1 = [dateFormatter1 dateFromString:abc4];
    [dateFormatter1 setDateFormat:@"MM.dd.yyyy"];
    NSString *titledate1=[dateFormatter1 stringFromDate:dateFromString1];
    NSString *commentfilename=[NSString stringWithFormat:@"%@ %@ comments.txt",abc,titledate1];
    [mc addAttachmentData:fileData1 mimeType:mimeType1 fileName:commentfilename];
    [![enter image description here][1]][1]
    // Present mail view controller on screen
    [self presentViewController:mc animated:YES completion:NULL];
}

The screenshot of mail is as attached in question.

Deepika
  • 566
  • 2
  • 10

1 Answers1

0

Probably you should try to change mime type. Did you tryed to use text/plain for example? Instead of

if ([extension isEqualToString:@"txt"]) {
        mimeType1 = @"text/html";
}
DoN1cK
  • 595
  • 7
  • 22