[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嵌入图像邮寄时不显示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)