通过电子邮件发送iPhone应用程序中的HTML停止在特殊字符处

时间:2010-04-22 01:58:47

标签: iphone objective-c email unicode openurl

我有一个iPhone应用程序,可以让用户通过HTML发送一些预先确定的文本。

我遇到的问题是,如果文本中包含特殊字符(例如,&符号,>,<),我用于发送电子邮件正文的NSString变量会被截断特殊的角色。

我不知道如何解决这个问题(我尝试使用方法stringByAddingPercentEscapesUsingEncoding ......但这并没有解决问题)。

关于我做错了什么/如何解决它的想法?

以下示例代码显示了我正在尝试做的事情

感谢!!!

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

1 个答案:

答案 0 :(得分:0)

这适用于我从应用内发送电子邮件。你拥有它的方式,它退出应用程序并打开邮件。尝试这样的事情:

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

此处is a good tutorial