Получение идентификатора содержимого прикрепленного изображения при создании нового электронного письма в iOS

#iphone #ios #ipad #email #attachment

#iPhone #iOS #iPad #Адрес электронной почты #вложение

Вопрос:

Я использую MFMailComposeViewController в iOS для создания нового динамического электронного письма, но столкнулся с проблемой при попытке использовать встроенные изображения.

Сначала я попытался добавить изображение в виде строки в кодировке base64, т.Е.

 <img src="data:image/png;base64, blahblahblah" /> 
  

Но я могу просматривать это только на iPad, в то время как Outlook / Entourage игнорируют это, хотя я вижу это в исходном коде!

Итак, теперь я пытаюсь добавить изображение в качестве вложения и связать с ним через его идентификатор содержимого, т.Е.

 <img src="cid:BF6E8B41-4D74-419E-B55E-8F18A07381AE" id="BF6E8B41-4D74-419E-B55E-8F18A07381AE" width="509" height="220">
  

Но понятия не имею, как получить cid сквозной код!
Когда я прикрепляю изображение с помощью AddAttachmentData , изображение переходит в низ и фактически генерирует <img /> тег с идентификатором cid!

Кроме того, этот идентификатор, похоже, меняется с каждым новым электронным письмом. Приведенное выше было моей первой попыткой, затем я отправил еще одно, и идентификатор содержимого изменился на

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

Причина, по которой я должен это сделать, заключается в том, что это динамически генерируемое изображение, и оно должно находиться внутри шаблона электронного письма.

Редактировать
Я начинаю думать, что это невозможно. Я уже несколько часов занимаюсь исследованиями, и, похоже, iOS не позволит вам прикреплять изображение и ссылаться на него через его CID. Спасибо Apple -_-

Ответ №1:

Я столкнулся с тем же ограничением MFMailComposeViewController . Он не предоставляет возможности получить идентификатор содержимого (cid) вложения электронной почты, поэтому нет способа создать HTML-сообщение электронной почты, которое ссылается на вложение через img src='cid:...' . Поскольку большинство почтовых клиентов игнорируют URL-адреса данных (встроенные изображения в кодировке base 64), лучший вариант для составления html-сообщения электронной почты с изображениями из приложения iOS — разместить изображения в Интернете и ссылаться на них как img src='http://...' . Большинство почтовых клиентов запрашивают у пользователя разрешение на загрузку изображений, так что это не идеально, но, по-видимому, это единственный вариант в iOS, использующий общедоступные API.