无法在电子邮件模板中正确显示字体和图像

时间:2018-01-12 09:33:25

标签: c# html css asp.net asp.net-mvc

我使用了一个电子邮件模板作为单页html,其中嵌入了样式(css),我可以在html页面上正确显示所有样式,包括字体和图像。但是,当我使用此模板在我的C#应用​​程序(Windows服务的测试版本)中发送电子邮件时,字体和图像样式无法应用于Outlook邮件。到目前为止我试图做的事情:

  • 将字体文件(ttf)添加到我的电子邮件模板的同一目录中,如示例所示(它与html文件的目录相同)。

  • 嵌入图像(base64)到html文件,如下所示:

  • 尝试使用带有网址的字体,如下所示:

    https://fonts.googleapis.com/css?family=Source+Sans+Pro'rel ='样式表'type ='text / css'>

但它们都没有任何意义,图像不会显示在此模板发送的电子邮件中。除此之外,字体类型与html文件(SourceSansPro)上的字体类型不同。

有任何想法将字体嵌入到html文件中并在此模板创建的Outlook消息上正确显示字体和图像???请注意我使用* .txt文件作为模板,但其中的代码完全是html并且可以正确显示...

2 个答案:

答案 0 :(得分:1)

尝试在电子邮件模板中插入自定义字体和图片的代码:

<style type="text/css">
@media screen {
  @font-face {
    font-family: 'Lato';
    font-style: normal;
    font-weight: 400;
    src: local('Lato Regular'), local('Lato-Regular'), url(https://fonts.gstatic.com/s/lato/v11/qIIYRU-oROkIk8vfvxw6QvesZW2xOQ-xsNqO47m55DA.woff) format('woff');
  }

  ...

  body {
    font-family: "Lato", "Lucida Grande", "Lucida Sans Unicode", Tahoma, Sans-Serif;
  }
</style>

<html>
    <head>
    </head>
    <body>
        <img src="data:image/jpg;base64,/*base64-data-string here*/" />
    </body>
</html>

答案 1 :(得分:0)

对于字体,只有一个单一且非常简单的解决方案有效。只需将内容包装在已弃用的font元素内即可!

<font face="Verdana">
<!-- content -->
</font>