gpt4 book ai didi

iphone - 如何在 MFMailComposeViewController 的 MailComposer 工作表中添加 UIImage

转载 作者:IT王子 更新时间:2023-10-29 07:36:03 26 4
gpt4 key购买 nike

我想在 MFMailComposerViewController 的撰写表中插入一个 UIImage

请注意,我不想附加它们,但我想使用 HTML 代码将它们放在一个表格中,这将成为电子邮件正文的一部分。

最佳答案

带着新的答案再次回来。不过,我仍然保留我以前的代码,因为我仍然不相信没有办法使用它。我自己会坚持下去。以下代码确实有效。 Mustafa 建议对图像进行 base64 编码,并说它们只适用于 Apple to Apple,但事实并非如此。 Base64 编码现在适用于大多数邮件客户端(IE 以前不支持它,但现在它支持达到一定大小的图像,但我不确定具体大小是多少)。问题是像 Gmail 这样的邮件客户端会删除你的图像数据,但有一个简单的解决方法......只需将 <b> and </b> <img ...> 周围的标签标签是您需要做的所有事情,以防止它被剥离。为了将图像放入您的电子邮件中,您需要将 base64 编码器放入您的项目中。那里有几个(虽然大部分是 C),但我找到的最简单的 ObjC 是 Matt Gallagher 称为 NSData+Base64(我在复制名称后去掉了“+”,因为它给我带来麻烦)。将 .h 和 .m 文件复制到您的项目中,并确保在您计划使用它的地方#import .h 文件。然后像这样的代码将在您的电子邮件正文中获取图像...

- (void)createEmail {
//Create a string with HTML formatting for the email body
NSMutableString *emailBody = [[[NSMutableString alloc] initWithString:@"<html><body>"] retain];
//Add some text to it however you want
[emailBody appendString:@"<p>Some email body text can go here</p>"];
//Pick an image to insert
//This example would come from the main bundle, but your source can be elsewhere
UIImage *emailImage = [UIImage imageNamed:@"myImageName.png"];
//Convert the image into data
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(emailImage)];
//Create a base64 string representation of the data using NSData+Base64
NSString *base64String = [imageData base64EncodedString];
//Add the encoded string to the emailBody string
//Don't forget the "<b>" tags are required, the "<p>" tags are optional
[emailBody appendString:[NSString stringWithFormat:@"<p><b><img src='data:image/png;base64,%@'></b></p>",base64String]];
//You could repeat here with more text or images, otherwise
//close the HTML formatting
[emailBody appendString:@"</body></html>"];
NSLog(@"%@",emailBody);

//Create the mail composer window
MFMailComposeViewController *emailDialog = [[MFMailComposeViewController alloc] init];
emailDialog.mailComposeDelegate = self;
[emailDialog setSubject:@"My Inline Image Document"];
[emailDialog setMessageBody:emailBody isHTML:YES];

[self presentModalViewController:emailDialog animated:YES];
[emailDialog release];
[emailBody release];
}

我已经在 iPhone 上对此进行了测试,并在 Yahoo、我的个人网站和我的 MobileMe 上向自​​己发送了可爱的图像嵌入电子邮件。我没有 Gmail 帐户,但 Yahoo 工作得很好,而且我发现的每个来源都说粗体标签是让它工作所需的全部。希望对大家有帮助!

关于iphone - 如何在 MFMailComposeViewController 的 MailComposer 工作表中添加 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1527351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com