Iphone MFMessageViewController和内嵌UIImage

Iphone MFMessageViewController和内嵌UIImage,iphone,cocoa,uiimage,messageui,Iphone,Cocoa,Uiimage,Messageui,我目前正在使用MFMailComposer编写HTML邮件。像背景色等一切工作都很好,我甚至可以嵌入图像在线下的网址。但是当我想嵌入一个本地存储的UIImage时,一切都变得一团糟。因此,我将数据转换为base64,并使用图像标记,如下所示 <img src='data:image/png;base64,%@'> 在设备的预览中,所有内容都正确显示,但在我的计算机上的邮件应用程序中,只有占位符问号图像,当我查看邮件源时,似乎所有内容都已发送 <img src="cid:(

我目前正在使用MFMailComposer编写HTML邮件。像背景色等一切工作都很好,我甚至可以嵌入图像在线下的网址。但是当我想嵌入一个本地存储的UIImage时,一切都变得一团糟。因此,我将数据转换为base64,并使用图像标记,如下所示

<img src='data:image/png;base64,%@'>

在设备的预览中,所有内容都正确显示,但在我的计算机上的邮件应用程序中,只有占位符问号图像,当我查看邮件源时,似乎所有内容都已发送

<img src="cid:(null)">

此外,我还能够成功地在设备上记录base64编码的数据,它只是无法到达服务器或从那里下来。附加图像不是一个解决方案,因为我需要图像是内联的,而不是在邮件末尾:(

更新:

以下是我用于将图像嵌入HTML内联的行:

[body appendFormat:@"<p><b><img src='data:image/png;base64,%@'/></b></p>",[[NSData dataWithData:UIImagePNGRepresentation([dict objectForKey:@"graphImage"])] base64EncodedString]];
[body appendFormat:@“

”,[[NSData dataWithData:UIImagePNGRepresentation([dict objectForKey:@“graphImage”)]base64EncodedString]];
您是否正在使用以下各项:

NSString *emailBody = [NSString stringWithFormat:@"<img src='data:image/png;base64,%@' alt='testing' />",base64String];
[picker setMessageBody:emailBody isHTML:YES];
NSString*emailBody=[NSString stringWithFormat:@',base64String];
[picker setMessageBody:emailBody isHTML:YES];

不可能嵌入内嵌图像(我已经花了好几天的时间来解决这个问题)


哦,我多么希望如此….

这是可能的。iOS中有一个突破性的变化:base64数据中不允许有“新行”


查看此线程:

打印完整的邮件文本,并查看img标记中是否有数据?如我所述,当通过NSLog()输出到实际设备上时数据就在那里,在实际收到的邮件中,只有上面的一行,没有任何进一步的数据。请尝试此答案中的代码,因为您应该已经看到这正是我所尝试的…您是否将字符串用UTF8编码为如下NSString*encodedBody=[eMailBody stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];这完全破坏了一切,你甚至不能再阅读简单的文本…不幸的是,我不太确定是否还有更多,我正在创建数据,将其编码为base64并尝试附加它。我按照要求更新了代码,请参见初始问题