我正在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];
我弹出邮件以查看发生了什么,并发现没有附件,电子邮件的最终html部分包含此块:
--0-1682099714-1273329398=:59784
Content-Type: text/html; charset=us-ascii
<html><body bgcolor="#FFFFFF"><div><h2 style="b
而另一方面, WITH XML附件,iPhone正在发送:
--0-881105825-1273328091=:50337
Content-Type: text/plain; charset=us-ascii
<html><body bgcolor="#FFFFFF"><div><h2 style="bac
注意区别?查看内容类型... 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
但这显然不是问题所在。
我做错了吗?如果没有iPhone将整个HTML正文标记为纯文本,我必须做什么来实际“附加”XML。我尝试颠倒了作业(首先是附件,然后是身体),但没有运气。
对于它的价值,从iPhone的发送界面看,电子邮件看起来很完美。实际上,HTML呈现正确,附件看起来像消息底部的一个小图标。这个问题更多地与iPhone实际发送的内容有关。
答案 0 :(得分:0)
原来 - 这个问题特定于雅虎。
在iPhone上,如果我将我的提供商更改为我的Gmail帐户而不是我的Yahoo帐户,则生成的电子邮件会包含更多部分,更具体,并且可以正确呈现。
故事的道德 - 小心通过不同的提供商从iPhone发送附件。