7

Tôi đang cố gắng đưa hình ảnh vào nội dung của email HTML được gửi từ iPad. Có vẻ như không thể. Tôi đã cố gắng sử dụng cách tiếp cận CID, nhưng có vẻ như trong iOS nó không thể có được/thiết lập CID của file đính kèm.Cách nhúng hình ảnh vào nội dung HTML của email trong iOS

Tôi cũng đã cố gắng nhúng hình ảnh với src="data:image/png;base64, blahblahblah". Khi bạn soạn thư có vẻ như hoạt động, nhưng không có gì xuất hiện khi nhận được thư.

Bất kỳ ý tưởng nào?

Xem chi tiết: Chúng tôi không tìm kiếm giải pháp trong đó JPEG/PNG được đính kèm ở cuối email. Thật dễ dàng để thực hiện với [composer addAttachmentData:mimeType:fileName:].

Chúng tôi đang tìm kiếm giải pháp nơi hình ảnh được nhúng nội tuyến trong email được định dạng HTML. Bạn có thể quấn một liên kết xung quanh thẻ IMG đó, để khi người nhận nhấp vào IMG, anh/cô ấy sẽ được liên kết đến trang iTunes của ứng dụng.

+0

Cùng một vấn đề ở đây. Bạn đã nhận được cid? Làm sao? Cảm ơn. – Ricardo

+0

Tôi đã đăng một blog về cách thực hiện việc này tại đây: http://blog.tinymission.com/blog/blogengine.web/post/2011/12/29/Inline-Attachments-Using-MFMailComposeViewController.aspx – Hahnemann

+0

bạn chỉ muốn để gửi một hình ảnh hoặc cũng là somw thext? Có thể e bài đăng này có thể giúp http://stackoverflow.com/questions/2534217/display-local-image-in-iphone-html-mail –

Trả lời

6

Tải về thể loại NSData+base64 từ github.

Sau đó làm như sau:

NSData *imageData = [NSData dataWithContentsOfFile:pathInDocumentDirectory(imagePath)]; 
NSString *base64String = [imageData base64EncodedString]; 
NSString *imageString = [NSString stringWithFormat:@"data:image/png;base64,%@", base64String]; 

Cuối cùng, đặt imageString trong cơ thể HTML mà bạn muốn hình ảnh này xuất hiện.

Hy vọng điều đó sẽ hữu ích!

+2

Điều này rất gần, nhưng không hoàn toàn hoạt động, bởi vì một số ứng dụng khách web như GMail không hiển thị thẻ img với URI dữ liệu. :-(Tôi đã thử nghiệm với một chấm nhỏ màu đỏ PNG dưới dạng URI dữ liệu và hình ảnh hiển thị tốt trong ứng dụng thư khách iPad và trong thư Yahoo nhưng không thành công trong Gmail (mặc dù việc kiểm tra email thô cho thấy rằng chuỗi base64 hiện nay) – Ron

+0

Điều tốt nhất mà tôi có thể làm là gắn thẻ IMG vào một trang PNG mà tôi lưu trữ trên một trang web bên ngoài, nhưng đó không phải là giải pháp tuyệt vời, vì nhiều khách hàng web sẽ chặn hình ảnh bên ngoài theo mặc định Trong mọi trường hợp, giải pháp base64 này là khá gần, vì vậy tôi rất vui khi được trao giải thưởng .--) – Ron

+0

Rất cám ơn Ron! – Carlos

1

Từ iphone email attachment

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
picker.mailComposeDelegate = self; 

[picker setSubject:@"Hello"]; 


// Set up recipients 
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"]; 
NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]",   @"[email protected]", nil]; 
NSArray *bccRecipients = [NSArray arrayWithObject:@"[email protected]"]; 

[picker setToRecipients:toRecipients]; 
[picker setCcRecipients:ccRecipients]; 
[picker setBccRecipients:bccRecipients]; 

// Attach an image to the email 
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"png"]; 
NSData *myData = [NSData dataWithContentsOfFile:path]; 
[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"rainy"]; 

// Fill out the email body text 
NSString *emailBody = @"It is raining"; 
[picker setMessageBody:emailBody isHTML:NO]; 

[self presentModalViewController:picker animated:YES]; 
[picker release]; 
0

Để hiển thị hình ảnh trong gmail, bạn làm:

MFMailComposeViewController *mailCont = [[MFMailComposeViewController alloc] init]; 
    mailCont.mailComposeDelegate = self; 

    NSMutableString *emailBody = [[NSMutableString alloc] initWithCapacity:20]; 

    NSString *linkimg = @"https://idrivethru.com/iDriveThruWeb/faces/javax.faces.resource/idrivethru_logo.png?ln=images"; 

    //Add the image 
    [emailBody appendFormat:@"<p><a href = 'https://idrivethru.com/'> <img src='%@' align='centre' alt='iDriveThru.com'> </a></p><br/>", linkimg]; 

    [emailBody appendString:@"<p>This is an email with an embeded image right <b>above</b> this text</p>"]; 

    //NSLog(@"%@",emailBody); 

    [mailCont setMessageBody:emailBody isHTML:YES]; 
    [self presentViewController:mailCont animated:YES completion:nil]; 
Các vấn đề liên quan