2009-08-14 51 views
1

我使用iPhone的内置作曲家在我的应用程序发送电子邮件的作曲家表添加图像。我想添加图像到我的电子邮件正文。请记住,我想将图片放在正文中,而不想将图片附加到电子邮件中。我知道如何附加他们。如何在iPhone应用程序

这就像我要放置在身体多个图像与相应的图像前的一些细节他们。

有没有办法做到这一点。

喜欢使用HTML,下面的代码给我一个问号,而不是图像。

NSData *imageData = [dbPersistenceObj getImageForEmail:[[imageIdArray objectAtIndex:i] intValue]]; 
NSString *encodedImage = [imageData description]; 
emailBody = [emailBody stringByAppendingFormat:@"<img src=\"cid:Img-1\"/>", imageData]; 
[picker addAttachmentData:imageData mimeType:@"image/png" fileName:@"Img-1"]; 

回答

2

经过一番实验

我原来的答案编辑实际上不是这个问题的解决方案。看来,与MFMailComposeViewController可以使用cid:语法不引用附加的图片在HTML电子邮件正文。

如果将图像设置的HTML体的iPhone将在内部使用cid:来显示图像,但只有在它是作曲家视图通常所代表的时尚 - 所以它不是那么灵活。

最后,可以使用data:image/png;base64,embedded image source URL scheme但这似乎并没有被电子邮件客户端得到广泛支持 - 特别是它在Gmail中无法正常失败。

原来的答复:

注:我没有尝试这样做。

假设你在iPhone SDK 3.0+使用MFMailComposeViewController:您可以尝试创建一个HTML格式的电子邮件正文,并从HTML文件中引用的附加的图像。

HTML

... 
<img src="cid:content-id"/> <!-- 'cid:' is important --> 
... 

Objective-C的

... 
[mailController addAttachmentData:pngData 
         mimeType:@"image/png" 
         fileName:@"content-id"]; 
[mailController setMessageBody:html isHTML:YES]; 
... 
+0

你能帮我多,我使用下面的代码,但看到一个 '?'标记而不是图像。 NSData * imageData = [dbPersistenceObj getImageForEmail:[[imageIdArray objectAtIndex:i] intValue]]; \t \t NSString * encodedImage = [imageData description]; \t \t \t \t emailBody = [emailBody stringByAppendingFormat:@ “”,为imageData]; \t \t \t \t [拾取器addAttachmentData:为imageData \t \t \t \t \t \t mime类型:@ “图像/ PNG” 文件名:@ “IMG-1”]; – rkb 2009-08-14 15:46:50

+0

是的,我试过那个但是那东西不工作与sdk3.0中可用的内置MailComposer。像它一样显示图像,但在发送按钮代码中断时,在调试器中留下消息,因为图像未找到错误。 – rkb 2009-08-17 15:28:52