Как вставлять изображения в html в MFMailComposeViewController для iPhone
Я пытаюсь вставить кучу небольших изображений в таблицу html, которую я хочу отправить, используя MFMailComposeViewController. После выполнения какого-то поиска я понял, что почти все предлагают класс "NSData + Base64 by Matt Gallagher" для кодирования фотографии в Base64encoding и встраивания ее в html. Хотя он работает на iPhone и с некоторыми серверами электронной почты, но Gmail и Yahoo не отображают образы, встроенные таким образом. Эта проблема упоминается здесь .
Мне было интересно, есть ли у кого-то лучшее решение для этого. Я не хочу загружать фотографии в Интернете и помещать ссылку в код html. Я хотел бы, чтобы изображение было прикреплено к письму и отображалось как встроенное изображение в html-тексте, таблице,...
Ответы
Ответ 1
Это, к сожалению, невозможно сделать в настоящее время так, как вы этого хотите. Встроенные изображения в электронной почте HTML используют отдельные части MIME, на которые ссылается идентификатор содержимого из тела сообщения. MFMailComposeViewController не дает вам контроля над структурой MIME сообщения и не позволяет добавлять встроенные ссылочные части контента.
Встраивание данных изображения в теги <img>
, поскольку base64 может работать с некоторыми комбинациями - отчасти это функция почтового клиента и частично браузера, который в конечном итоге используется для его рендеринга, но, как вы заметили, он не широко переносится.
Ответ 2
Я не уверен в добавлении в HTML, но вот как я добавляю изображения в виде вложений:
UIImage *image = [UIImage imageNamed:@"myImage.png"];
MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
composer.mailComposeDelegate = self;
NSData *data = UIImagePNGRepresentation(image);
[composer addAttachmentData:data mimeType:@"image/png" fileName:@"curse"];
[composer setMessageBody:@"" isHTML:NO];
[self presentModalViewController:composer animated:YES];
[composer release];
Теперь вам нужно изменить тело как HTML и способ ссылки на прикрепленное изображение из HTML.
Ответ 3
Загрузите изображение на какой-нибудь хостинг-сайт, скопируйте ссылку и поместите ее в
<img src='the link.png' /> html on your email message body.