Почему MFMailComposer с ‹img› не показывает изображение в почте?

Я отправляю несколько изображений по почте с помощью MFMailComposer. Я конвертирую изображение в Base64 и использую тег <img> для добавления изображений в тело HTML (я не добавляю его как вложение).

[htmlString appendFormat:
@"<img src='data:image/png;base64,%@' width=300 height=200 />", imageAsBase64];

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

Что мне делать, чтобы все заработало?


person EmptyStack    schedule 07.07.2011    source источник
comment
Что вы используете для просмотра электронной почты?   -  person Joe    schedule 07.07.2011
comment
@Deepmist, да. Извините за задержку с ответом. Я использую Safari в своем iMac   -  person EmptyStack    schedule 07.07.2011


Ответы (2)


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

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

Надеюсь на эту помощь.

person Deeps    schedule 07.07.2011
comment
Ух ты! Большой. Он показывает изображение в моей почте Yahoo. Спасибо! И нет другого обходного пути, чтобы изображение отображалось в Gmail? Является ли Gmail единственным исключением, или есть другие почтовые серверы, которые не отображают изображения в этом случае? - person EmptyStack; 07.07.2011
comment
Я не очень уверен в других, но с Gmail он не работал, и я проверил свой собственный почтовый сервер, и он работал. Так что я думаю, кроме Gmail, он должен работать во всех. - person Deeps; 07.07.2011
comment
Не за что. Если это вам поможет, отметьте это как ответ :) - person Deeps; 07.07.2011

Вы должны добавить изображения в качестве вложения. Отображаемое электронное письмо, которое вы видите с помощью HTML, не отображается должным образом с отсутствующим URL-адресом изображения.

вот пример: предостережение в том, что если вы хотите включить такие вещи, как PDF, вы должны включить изображение, иначе mfmailcomposer не сработает ... это ошибка яблока.

Я нашел решение ... Я сообщил об ошибке на радаре Apple. У MFMailcomposer есть ошибка, при которой вам нужно отправить изображение вместе с дополнительными вложениями, чтобы заставить работать странные элементы, такие как pdf ... попробуйте это и замените pdf своей карточкой:

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
NSString *emailSubject = [NSString localizedStringWithFormat:@"MedicalProfile"];
[controller setSubject:emailSubject];


NSString *fileName = [NSString stringWithFormat:@"%@.pdf", profileName];
NSString *saveDirectory = NSTemporaryDirectory();
NSString *saveFileName = fileName;
NSString *documentPath = [saveDirectory stringByAppendingPathComponent:saveFileName];  

*** YOU MUST INCLUDE AN IMAGE OR THE PDF ATTATCHMENT WILL FAIL!!!***
// Attach a PDF file to the email 
NSData *pdfData = [NSData dataWithContentsOfFile:documentPath];    
[controller addAttachmentData:pdfData mimeType:@"application/pdf" fileName:fileName];


// Attach an image to the email
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"miniDoc" ofType:@"png"];
NSData *imageData = [NSData dataWithContentsOfFile:imagePath];
[controller addAttachmentData:imageData mimeType:@"image/png" fileName:@"doctor"];


[controller setMessageBody:[NSString stringWithFormat:@"%@'s Medical Profile attatched!", profileName] isHTML:NO];

[self presentModalViewController:controller animated:YES];
controller.mailComposeDelegate = self;
[controller release];
person Orbitus007    schedule 29.12.2011