在iOS中编写新电子邮件时获取附加图像的Content-ID

Mar*_*rko 6 email iphone attachment ipad ios

MFMailComposeViewController在iOS中使用它来创建新的动态电子邮件,但在尝试使用内联图像时遇到了问题.

我首先尝试将图像添加为base64编码的字符串,即

<img src="data:image/png;base64, blahblahblah" /> 
Run Code Online (Sandbox Code Playgroud)

但我只能在iPad上查看,而Outlook/Entourage会忽略它,即使我可以在源代码中看到它!

所以现在我正在尝试将图像添加为附件并通过其内容ID链接到它,即

<img src="cid:BF6E8B41-4D74-419E-B55E-8F18A07381AE" id="BF6E8B41-4D74-419E-B55E-8F18A07381AE" width="509" height="220">
Run Code Online (Sandbox Code Playgroud)

但是不知道如何获得cid通过代码!
当我使用附加图像时AddAttachmentData,图像会到达底部并实际生成<img />带有cid 的标签!

此外,此ID似乎随每个新电子邮件而变化.上面的那个是我的第一次尝试,然后我发送了另一个并且Content-ID改为

<img src="cid:59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" id="59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" width="509" height="220">
Run Code Online (Sandbox Code Playgroud)

我必须这样做的原因是因为这是一个动态生成的图像,它需要位于电子邮件模板中.

编辑
我开始认为这是不可能的.我一直在研究几个小时,看起来iOS不会让你附加图像并通过它的CID链接到它.谢谢Apple -_-

Rod*_*Rod 2

我也遇到了同样的限制MFMailComposeViewController。它没有办法获取电子邮件附件的内容 ID (cid),因此无法撰写通过 引用附件的 html 电子邮件消息img src='cid:...'。由于大多数电子邮件客户端都会忽略数据 URL(内联 Base 64 编码图像),因此使用 iOS 应用程序中的图像撰写 html 电子邮件的最佳选择是将图像托管在 Web 上并将它们引用为img src='http://...'. 大多数电子邮件客户端会询问用户下载图像的权限,因此这并不理想,但它显然是 iOS 中使用公共 API 的唯一选项。