使用Xamarin.iOS将图像嵌入到HTML电子邮件中

时间:2017-02-15 18:30:45

标签: html ios xamarin

我正在尝试以HTML格式发送来自iOS设备(使用Xamarin)的电子邮件,其中图像嵌入在电子邮件正文中。

我在网上找到的一些解决方案建议使用类似于此处所示的方法:

NSData ImgData = UIImage.FromFile(FileName).AsJPEG();
string img64baseStr = ImgData.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
string srcStr = string.Format("data:image/jpg;base64,{0}", img64baseStr);

使用上面的代码,我可以在iOS电子邮件客户端中正确查看图片。但是,当发送电子邮件时,我无法在接收方看到图像。 这种方法还有其他挫折,但我现在可以避免进入更多细节。

我也尝试将图像用作项目中的资源。但是,当我以这种形式直接在HTML中引用图片时:

<img src="Pic1.png" width="700" height="500" alt=""/>

链接断开,电子邮件缺少图片。

如何在HTML电子邮件中正确引用资源图像?

1 个答案:

答案 0 :(得分:1)

因此,出于安全原因,大多数电子邮件客户端都不推荐使用上述方法将数据对象转换为base64字符串,并且电子邮件客户端将阻止以这种方式到达的Dada URI。

我发现以下链接中发布的问题有助于理解为什么事情不适合我:

  

base64 encoded images in email signatures

具体请参阅@ Shadow2531发布的答案及其后的讨论。

最后,我能够使用NuGet上提供的MailKit包实现我想要的功能。 该软件包有一个非常全面的文档。特别针对我试图解决的问题,请看一下这个页面:

  

http://www.mimekit.net/docs/html/CreatingMessages.htm

祝你好运。