我正在使用iOS中的MFMailComposeViewController
来创建新的动态电子邮件,但在尝试使用内联图片时遇到了问题。
我首先尝试将图像添加为base64编码的字符串,即
<img src="data:image/png;base64, blahblahblah" />
但我只能在iPad上查看,而Outlook / Entourage会忽略它,即使我可以在源代码中看到它!
所以现在我正在尝试添加图像作为附件并通过它的内容ID链接到,即
<img src="cid:BF6E8B41-4D74-419E-B55E-8F18A07381AE" id="BF6E8B41-4D74-419E-B55E-8F18A07381AE" width="509" height="220">
但不知道如何通过代码获取cid
!
当我使用AddAttachmentData
附加图片时,图片会显示在底部并实际生成带有cid的<img />
标记!
此外,此ID似乎随每个新电子邮件而变化。上面的那个是我的第一次尝试,然后我发送了另一个,Content-ID更改为
<img src="cid:59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" id="59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" width="509" height="220">
我必须这样做的原因是因为这是一个动态生成的图像,它需要位于电子邮件模板中。
修改
我开始认为这是不可能的。我一直在研究几个小时,看起来iOS不会让你附加图像并通过它的CID链接到它。谢谢Apple -_-
答案 0 :(得分:2)
我遇到MFMailComposeViewController
的同样限制。它无法获取电子邮件附件的内容ID(cid),因此无法通过img src='cid:...'
撰写引用附件的html电子邮件。由于大多数电子邮件客户端忽略数据URL(内联base 64编码图像),因此使用iOS应用程序中的图像编写html电子邮件消息的最佳选择是在Web上托管图像并将其作为img src='http://...'
引用。大多数电子邮件客户端都会要求用户下载图像的权限,因此这并不理想,但它显然是iOS中使用公共API的唯一选择。