MFMessageViewController и встроенный UIImage - PullRequest
2 голосов
/ 06 марта 2012

В настоящее время я пишу HTML-почту, используя MFMailComposer. Все, как цвет фона и т. Д., Работает достаточно хорошо, я даже могу встроить изображения, которые находятся под онлайн-URL. Но когда я хочу встроить локально сохраненный UIImage, все запутано. Поэтому я конвертирую данные в base64 и использую тег изображения следующим образом

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

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

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

Также я могу успешно регистрировать данные, закодированные в base64, на устройстве, оно просто не попадает на сервер или оттуда. Прикрепление изображения не является решением, так как мне НУЖНО, чтобы изображение было встроенным, а не в конце письма: (

UPDATE:

Вот строки, которые я использую для встраивания изображения в HTML-код:

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

Ответы [ 3 ]

1 голос
/ 12 марта 2012

Невозможно встраивать встроенные изображения (я потратил дни на решение этой проблемы).

О, как бы мне хотелось ...

0 голосов
/ 03 мая 2015

Это возможно.В iOS произошли серьезные изменения: в данных base64 не разрешены «новые строки».

см. Эту ветку: Встроенные изображения HTML Base64 не отображаются при отправке по почте

0 голосов
/ 08 марта 2012

Используете ли вы следующее:

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