2011-07-07 37 views
8

Tôi đang gửi một số hình ảnh qua thư bằng cách sử dụng MFMailComposer. Tôi đang chuyển đổi hình ảnh thành Base64 và sử dụng thẻ <img> để thêm hình ảnh vào nội dung HTML (Tôi không thêm hình ảnh đó làm tệp đính kèm).Tại sao MFMailComposer với <img> không hiển thị hình ảnh trong thư?

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

Các hình ảnh được hiển thị một cách chính xác trong MFMailComposer, nhưng không có hình ảnh hiển thị trong thư thực tế đó được gửi từ MFMailComposer.

Tôi nên làm gì để nó hoạt động?

+2

bạn sử dụng để xem email? – Joe

+0

@Deepmist, Yeah. Xin lỗi vì hồi âm muộn. Tôi đang sử dụng Safari trong iMac – EmptyStack

Trả lời

5

Tôi đã gặp sự cố tương tự trước vài tuần và tôi biết rằng Gmail không hỗ trợ hình ảnh được nhúng. Bạn có thể xem hình ảnh trong email trong nhà cung cấp thư khác như email tên miền của mình nhưng không phải trong Gmail.

Hãy thử gửi một email khác và bạn có thể xem hình ảnh. Bạn cần phải thêm hình ảnh như tập tin đính kèm sau đó bạn có thể nhìn thấy hình ảnh và nó sẽ hiển thị dưới cùng của cơ thể email của bạn.

Hy vọng trợ giúp này.

+0

Thật tuyệt vời! Tuyệt quá. Nó hiển thị hình ảnh trong thư Yahoo của tôi. Cảm ơn bạn! Và, không có cách nào khác để làm cho hình ảnh hiển thị trong Gmail? Gmail có phải là ngoại lệ duy nhất hoặc có các máy chủ thư khác không hiển thị hình ảnh trong trường hợp này không? – EmptyStack

+0

Tôi không chắc chắn về những người khác nhưng với Gmail nó không hoạt động và tôi đã kiểm tra trong máy chủ thư của riêng tôi và nó đã hoạt động. Vì vậy, tôi đoán trừ Gmail nó sẽ làm việc trong tất cả. – Deeps

+0

Được rồi. Cảm ơn người đàn ông! Tôi thực sự đánh giá cao sự giúp đỡ của bạn! – EmptyStack

0

Bạn phải thêm hình ảnh dưới dạng tệp đính kèm. Email được hiển thị mà bạn thấy bằng HTML không được hiển thị đúng với URL hình ảnh bị thiếu.

đây là một ví dụ: báo trước là nếu bạn muốn bao gồm những thứ như PDF, bạn phải bao gồm một hình ảnh nếu không mfmailcomposer sẽ thất bại ... điều này trong một lỗi táo.

Tôi đã tìm ra giải pháp ... Đã đưa ra một lỗi trên radar của Apple về nó. MFMailcomposer có lỗi trong đó bạn phải gửi hình ảnh cùng với tệp đính kèm bổ sung của bạn để nhận các mục lạ như pdf để làm việc ... hãy thử cách này và thay thế pdf bằng thẻ của bạn:

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]; 
Các vấn đề liên quan