在Ios上的html电子邮件中显示base64图像

前端之家收集整理的这篇文章主要介绍了在Ios上的html电子邮件中显示base64图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
生成一个包含base64图像的html字符串.当MFMailComposeViewController打开时,我会看到生成的电子邮件中的图像.当我发送并打开它时,图像不会显示,只有空方块.

我的代码

- (IBAction)actionShareByEmail:(id)sender {

    if([MFMailComposeViewController canSendMail])
    {
        MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
        picker.mailComposeDelegate = self;

        NSString* subject = @"Environments list with qrcode";
        [picker setSubject:subject];
        [picker setMessageBody:[manager getHtmlWithEnvironments:nil] isHTML:YES];
        [self presentViewController:picker animated:YES completion:nil];
    }
}

-(NSString*)getHtmlWithEnvironments:(NSArray*)envDictionnaries{
    NSMutableString* html = [[NSMutableString alloc]init];
    [html appendString: @"<html><body>"];

    for (NSDictionary *d in self.arEnvironments) {

        UIImage* qrcode = [QRCodeGenerator qrImageForString:[d objectForKey:@"env_name"] imageSize:200.0];//Works fine
        NSData *imageData = UIImagePNGRepresentation(qrcode);
        NSString *encodedString = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
        [html appendString: [NSString stringWithFormat:@"<H3>%@</h3><img src=\"data:image/png;base64,%@\" width=\"200\" height=\"200\" alt=\"test\" /></br></br>",[d objectForKey:KEY_ENV_NAME],encodedString]];
    }
    [html appendString: @"</html><body>"];

    return html;
}

如何正确显示图像?

解决方法

看起来对内联图像的支持很低 – 主要是由于安全问题.

在下面的第二个问题中链接Campaign Monitor提供了更多信息.

更多信息:

> Send a base64 image in HTML email
> Base64 HTML embedded images not showing when mailed

原文链接:https://www.f2er.com/iOS/333368.html

猜你在找的iOS相关文章