我正在 MFMaiilComposeViewController 中创建一封电子邮件,如果我只是创建一些 html 片段并将它们分配给消息正文 - 一切都很好。生成的电子邮件(在 GMail 和 Yahoo 中)看起来像我发送的原始 HTML。
[mailMan_ setMessageBody:body isHTML:YES];
另一方面,如果我还包含一个 XML 附件,我的电子邮件阅读器会将所有内容呈现为纯文本……包括内联的 XML。IE:我的邮件客户端(GMail、Yahoo)显示原始的 HTHML 和 XML 标签——包括我没有提供的 html 标签——即:iPhone 围绕内容提供的 html、head、body 标签:
NSData *opmlData = [[NSData alloc] initWithData:[opml dataUsingEncoding:NSUTF8StringEncoding]];
NSString *fileName = [NSString stringWithFormat:@"%f.opml", [NSDate timeIntervalSinceReferenceDate]];
[mailMan_ addAttachmentData:opmlData mimeType:@"text/xml" fileName:fileName];
我对邮件进行了 pop3 以查看发生了什么,发现没有附件,生成的电子邮件的 html 部分包含以下块:
--0-1682099714-1273329398=:59784
Content-Type: text/html; charset=us-ascii
<html><body bgcolor="#FFFFFF"><div><h2 style="b
而另一方面,使用XML 附件,iPhone 正在发送:
--0-881105825-1273328091=:50337
Content-Type: text/plain; charset=us-ascii
<html><body bgcolor="#FFFFFF"><div><h2 style="bac
注意到区别了吗?看看 Content-Type ... text/ html vs text/ plain。看起来当我包含一个 XML 附件时,iPhone 错误地将正文的 HTML 版本标记为纯文本!只是为了澄清,从技术上讲,无论有没有附件,iPhone 还包括:
--0-881105825-1273328091=:50337
Content-Type: text/plain; charset=us-ascii
Notebook
Carpentry
Bathroom floor tile
Bathroom wall tile
Scrape thinset
但这显然不是问题所在。
难道我做错了什么?我必须做些什么才能真正“附加” XML,而不需要 iPhone 将整个 HTML 正文标记为纯文本。我尝试扭转分配(先附件,然后是正文),但没有运气。
就其价值而言,这封电子邮件从 iPhone 的发送界面看起来很完美。事实上,HTML 可以正确呈现,并且附件看起来像邮件底部的一个小图标。这个问题更多地与 iPhone 实际发送的内容有关。