views:

98

answers:

1

Hi, I have an iPhone app that will let users email some pre-determined text as HTML.

I'm having a problem in that if the text contains special characters within the text (e.g., ampersand &, >, <), the NSString variable that I use for sending the body of the email gets truncated at the special character.

I'm not sure how to fix this (I tried using the method stringByAddingPercentEscapesUsingEncoding…but this hasn't fixed the problems).

Thoughts on what I'm doing wrong / how to fix it?

Here is sample code showing what I'm trying to do

Thanks!!!

- (void)send_an_email:(id)sender {
    NSString *subject_string    = [NSString stringWithFormat:@"Summary of %@", commercial_name];
    NSString *body_string       = [NSString stringWithFormat:@"%@<br /><br />", [self.dl email_message]]; // email_message returns the body of text that should be shipped as html.  If email_message contains special characters, the text truncates at the special character
    NSString *full_string       = [NSString stringWithFormat:@"mailto:?to=&subject=%@&body=%@", [subject_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], [body_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    [[UIApplication sharedApplication] openURL:[[NSURL alloc] initWithString:full_string]];
}
A: 

This works for me to send email from within the app. The way you have it, it quits the app and opens Mail. Try something like this:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
... do your email setup code
[picker setMessageBody:emailBody isHTML:YES];

Here is a good tutorial

Michael
this worked very well. I've always avoided doing this simply b/c I was too lazy and didn't want to learn something new, but it was incredibly easy to implement. Thank you!
Sure. I've gotten so much help from SO that I really enjoy it when I can help someone and give something back to the site.
Michael