微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有背景图片的 HTML 电子邮件中的文本位置不正确

如何解决带有背景图片的 HTML 电子邮件中的文本位置不正确

我有一个控制台应用程序,可以向新用户发送邀请。 我正在尝试发送一封 HTML 电子邮件,该电子邮件只是一张图片,上面写有自定义文本。

当您在网络浏览器上打开 HTML 文件时,它看起来像这样($$Centered$$ 是我稍后将替换的占位符文本,其余的是背景图像):

enter image description here

这是HTML代码

<!DOCTYPE html>
<html>
<head>
<Meta name="viewport" content="width=device-width,initial-scale=1">
<style>
.container {
  position: relative;
  text-align: center;
  color: #0d2a40;
  font-weight: 600;
  font-size: 90px;
  font-family: "Neue Helvetica W01",Arial,Roboto,sans-serif;
}

.centered {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translate(-50%,-50%);
  cursor:pointer;
}
</style>
</head>
<body>

<div class="container">
      <img src="$$Image$$" usemap="#imgmap" />
  <div class="centered">$$Centered$$</div>
</div>

</body>
</html> 

图像和 HTML 文件位于主项目中名为 Canvas 的文件夹中。

这是我用来发送电子邮件代码,我使用 StreamReader 来获取 HTML 并用我自己的东西替换占位符文本,因为它必须是带有电子邮件读者姓名的消息。我还将 $$Image$$ 替换为背景图片的路径:

            string filepath = Environment.CurrentDirectory;
            StreamReader reader = new StreamReader(filepath + "//Canvas//Canvas.html");
            string readFile = reader.ReadToEnd();
            string myString = "";
            myString = readFile;
            myString = myString.Replace("$$Centered$$","Hola");
            myString = myString.Replace("$$Image$$",filepath + "//Canvas//Canvas.png");
            MailMessage message = new MailMessage();
            SmtpClient smtp = new SmtpClient();
            message.IsBodyHtml = true;
            smtp.EnableSsl = false;
            smtp.Credentials = new System.Net.NetworkCredential();
            smtp.Host = settings.MailServerAddress;
            smtp.Port = settings.MailServerPort;
            message.To.Add("myemail@outlook.com");
            message.From = new MailAddress(settings.FromAddress,settings.FromName);
            message.Subject = settings.SubjectNotificacion;
            message.Body = myString;
            message.Priority = MailPriority.normal;

            smtp.Send(message);
            reader.dispose();

电子邮件被发送并且文本确实被替换为“Hola”。问题是背景图像似乎在其顶部的自定义文本之前呈现,因此收到的电子邮件最终看起来像这样:

enter image description here

有没有办法解决这个问题,让文字出现在第一张图片中应该喜欢的地方?

解决方法

在 HTML 电子邮件中,最好将 CSS 代码放入 HTML 标签中,如下所示:

compare_models()

当我遇到类似问题时,这对我有用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。