iphone – Base64 HTML嵌入图像邮寄时不显示

iphone – Base64 HTML嵌入图像邮寄时不显示,第1张

概述我正在嵌入基于base64编码的图像,如下所示: [html appendFormat:@"<html><body><p><b><img src=\"data:image/png;base64,%@\"></b></p></body><html>", base64ImageString]; 然后我创建一个新的电子邮件,如下所示: MFMailComposeViewController *mailV 我正在嵌入基于base64编码的图像,如下所示:

[HTML appendFormat:@"<HTML><body><p><b><img src=\"data:image/png;base64,%@\"></b></p></body><HTML>",base64ImageString];

然后我创建一个新的电子邮件,如下所示:

MFMailComposeVIEwController *mailVC = [[MFMailComposeVIEwController alloc] init];mailVC.mailComposeDelegate = self;[mailVC setMessageBody:HTML isHTML:YES];[self presentModalVIEwController:mailVC animated:YES];

嵌入式图像在发送之前会显示在新的电子邮件中,但不会显示在邮件发送到的任何电子邮件客户端中.我会认为草图中正确显示的图像表明嵌入过程是成功的,但我不明白为什么它在交付时不显示.看到传递的邮件中的原始HTML显示:src =“cID:(null)”任何帮助将不胜感激!

解决方法 我偶然发现同样的问题,解决方案颇为复杂.可以在电子邮件中嵌入图像.问题是,由于一些奇怪的原因,base64编码的图像不能包含新行(超奇怪!我知道).我猜你正在使用Matt gallagher的NSData Base64?我也是!此类别创建多行base64字符串.该类别中的代码是

- (Nsstring *)base64EncodedString{    size_t outputLength;    char *outputBuffer =        NewBase64Encode([self bytes],[self length],true,&outputLength);    Nsstring *result =        [[Nsstring alloc]            initWithBytes:outputBuffer            length:outputLength            enCoding:NSASCIIStringEnCoding];    free(outputBuffer);    return result;}

通过将NewBase64Encode的第三个参数替换为false,您将获得一行base64字符串,并为我工作.我最终在类别中创建了一个新功能(只是不打破任何其他事情!).

- (Nsstring *)base64EncodedStringSingleline{    size_t outputLength;    char *outputBuffer =    NewBase64Encode([self bytes],false,&outputLength);    Nsstring *result =    [[Nsstring alloc]     initWithBytes:outputBuffer     length:outputLength     enCoding:NSASCIIStringEnCoding];    free(outputBuffer);    return result;}

使用此功能对UIImage的NSData进行编码工作正常.迄今为止,我测试的电子邮件客户端都显示了嵌入的图像.希望对你有帮助!

编辑:正如在评论中指出的,这个解决方案只是部分的.该图像将作为数据URI附加在电子邮件中.但是,并不是所有的电子邮件客户端都将显示嵌入的图像.

总结

以上是内存溢出为你收集整理的iphone – Base64 HTML嵌入图像邮寄时不显示全部内容,希望文章能够帮你解决iphone – Base64 HTML嵌入图像邮寄时不显示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1083610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存