在 C# 中为电子邮件模板实现对象适配

问题描述

我正在开发一个 html 模板来向用户​​发送电子邮件。模板可以包含不同大小的图像,并且每封电子邮件的图像都可以不同。我们希望每张图片都适合 120px X 90px 大小,但由于 Outlook 不支持 object-fit 之类的 css 属性,并且由于固定的高度,它使图片看起来要么被压缩(小图片)要么被压扁(大图片)财产。如果去掉height属性,会影响整体设计。

有人可以建议在 c# 中实现 css 属性 object-fit:contain 以使图像适合 120px X 90px(4:3 比例)或使用 Outlook css 属性吗?

示例: https://www.w3schools.com/css/tryit.asp?filename=trycss3_object-fit_all

提前致谢!

PS:我使用 C# razor 引擎来生成电子邮件

更新 #1: Outook 黑客/解决方案没有帮助。有人可以建议如何剪辑 base64 编码的图像以在与图像帧 (120px X 90px) 配合的同时保持其纵横比 (4:3) 吗?

解决方法

自从我在 C# 应用程序中使用嵌入式 Razor 引擎从事类似的任务来创建模板化电子邮件(包括图像)以来,已经有五年多了,所以我已经记不清细节了。

我记得电子邮件样式根本无法与网页样式相提并论;电子邮件客户端软件中的 CSS 支持很糟糕。

也许您可以尝试使用 width 元素的 height<img> 属性,而不是(或除了)在此处尝试使用 CSS?

编辑:

我发现了一些五年前的旧测试文件。当时,我确实设置了 width 元素的 height<img> 属性,并且还在内联 style 属性中使用了以下 CSS 属性:

max-width: 120px;
max-height: 90px;
display: inline !important;

因此,除了任何额外的属性和样式属性外,图像标签看起来像这样:

<img src="<your image location here>" width="120" height="90" style="max-width: 120px; max-height: 90px; display: inline !important" />

我现在还没有测试过,但我希望这对你有用。

编辑 2:

我注意到我在旧的测试文件中也使用了自闭合 <img> 标记,因为我将文档类型声明为 XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

我相应地修复了我以前的代码。很抱歉。