iphone - 在 iOS 中撰写新电子邮件时获取附加图像的内容 ID

标签 iphone ios ipad email attachment

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

我首先尝试将图像添加为 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 附加图像时, 图像到达底部并实际生成一个 <img />用 cid 标记!

此外,此 ID 似乎会随着每封新电子邮件而变化。上面那个是我第一次尝试,然后我又发了一个,Content-ID 变成了

<img src="cid:59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" id="59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" width="509" height="220">

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

编辑
我开始认为这是不可能的。我已经研究了几个小时,看起来 iOS 不允许您附加图像并通过其 CID 链接到它。谢谢苹果 -_-

最佳答案

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

关于iphone - 在 iOS 中撰写新电子邮件时获取附加图像的内容 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053331/

相关文章:

html - 如何在 iPad 上强制精确缩放

iphone - 为我的应用程序创建 "instruction view"的最佳方法是什么?

iphone - 如何停止 Objective C 中的函数递归?

iphone - 如何为通用应用程序使用默认启动画面?

iphone - 如何在选项卡 View Controller Storyboard应用程序中添加更多选项卡?

iOS 后台唤醒受密码保护的设备

IOS iPad应用程序底部奇怪的白色区域

ios - 设置AVPlayerLayer的不透明度

ios - 如何在 ViewDidLoad 方法上隐藏 UITextField、UILabel、UIButton?

iphone, ipad 复制 UIView - 克隆 View