HTML电子邮件模板作为NSString

时间:2010-03-10 16:30:12

标签: iphone email mfmailcomposeviewcontroller

我正在为我的应用添加功能,允许它通过电子邮件发送一些相当详细的信息。我想将其作为HTML格式的电子邮件发送,以便我可以利用HTML和CSS样式。

我想采用的方法是设计带有占位符的模板,用于填写要填写的字段,将模板加载到NSString中,然后使用字符串替换来更改占位符和实际数据。

而不是有一个huuuuuuge线如:

NSString *emailTemplate = [NSString stringWithFormat:@"<h1>TITLE</h1><hr noshade/><p>Here is the information about the thing that you are interested in. Find more from the table below:</p> . . ."]

我想以更优雅的方式做到这一点。我应该将模板写入文件然后加载吗?最好的方法是什么?

另外,我怎么能以本地化的方式做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:3)

我不确定以可本地化的方式执行此操作的最佳方法,但将HTML写入其自己的.html文件并将该文件的内容读入<{1}}当您需要时对象。

您可以使用

执行此操作
NSMutableString

如果使用此方法,则需要在返回的字符串上调用+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error ,以便稍后可以进行字符串替换。不要忘记,使用mutableCopy将返回一个新的mutableCopy对象,当您完成它时,您将负责释放它。

然后你可以继续使用

NSMutableString

用您的内容替换占位符。

这样做的好处意味着您可以使用WYSIWYG编辑器或您喜欢的IDE轻松编辑HTML,而无需更改应用程序中的代码。你也可以通过这种方式预览它会变得更容易。

答案 1 :(得分:0)

看看Matt Gemmell的实施,MGTemplateEngine。它适用于OS X和iOS。原版似乎只在SVN上托管,所以有人git-svn'ed it to Github

我需要在编译之前修改构建设置,但它的工作方式就像一个魅力并且非常强大(实际上,比我更强大,并且可能也是你需要的)。