【问题标题】:Gmail wraps certain HTML elements in a class called imGmail 将某些 HTML 元素包装在一个名为 im 的类中
【发布时间】:2013-05-17 09:26:46
【问题描述】:

我一直在测试我最近创建的 HTML 电子邮件流程。但是最近,当我在 Gmail 中打开电子邮件时,我注意到某些元素被包装在一个我知道我没有放入原始 HTML 布局的类中。事实上,我只是检查了三次!在 Gmail 中查看 HTML 电子邮件时,我的表单的随机部分被包裹...

<div class="im">
....
</div>

因此,某些文本会变成紫色,而其他文本不会。为什么会这样?

谢谢

【问题讨论】:

  • 这是因为 GMail 认为您的部分邮件是对对话中先前邮件的内联回复。你能把标记放到网上让我们看到吗?有时 HTML 中不匹配的标签或其他错误可能会导致此问题。
  • HTML 表单的主题行是相同的,适用于每条不同的消息。结果 gmail 认为新邮件在连接到原始邮件的地方进来,而实际上他们没有。主题行现在是独一无二的 - 谢谢@greg84!

标签: html gmail


【解决方案1】:

Gmail 似乎认为您在对话中引用了其他电子邮件,因此将 div.im 包裹在您认为是对话中先前位的代码部分周围。

如果您的代码有一个包含多个 TR 的 TABLE,则可能会发生这种情况。为了解决这个问题,而不是在一个 TABLE 中使用多个 TR,而是在每个 TABLE 中使用多个 TABLE。

如果您有多个相同的主题行,也可能会发生这种情况,导致 Gmail 认为这是一个对话。您可以通过使每个主题行唯一来解决此问题。

【讨论】:

  • 我让 Gmail 认为传入的每个 HTML 表单都通过使我的主题行相同来连接到原始邮件。我只是使主题行独一无二,以避免对 Gmail 造成混淆,现在问题似乎已经消失了。谢谢!所以是的,我让 Gmail 认为我在对话中引用了其他电子邮件(以某种方式)。
  • 是的,我应该添加另一个可能的原因。我将编辑我的答案以反映这一点。
  • 这个解决方案混合了我的表格,因为每一列的每一行都有自己的宽度..所以表格没有内联所有行..
  • 不确定我是否理解。你是说你的列在表格之间没有对齐吗?如果是这样,只需指定它们的宽度。
  • 是否可以为付费 G Suite 的客户关闭此功能?
【解决方案2】:

单独的样式文件不适用于电子邮件。您可以做的是在 html 中为此类添加样式,如下所示:

  <head>
       <style type="text/css">
        .im {
           color: #000000 !important;
        }
    </style>
  </head>

这应该为类 .im 赋予样式以防万一

【讨论】:

  • 如果您将它们放在 html 文件中,而不是在单独的 css 文件中,它们就可以工作
  • @wapmorgan 它按照 zack/mrateb 描述的方式工作。我刚刚测试过。
  • 我会改用color: inherit !important——这样文本仍将遵循任何预期的文本颜色,更重要的是在“深色模式”下清晰易读。
【解决方案3】:

我在使用带有单行换行符的段落时也遇到了这个问题:

<p>
   line 1<br>
   line 2<br>
   line 3
</p>

我能够纠正 Gmail 中发生的问题,即从 HTML 的特定部分删除所有空白区域,并使整个段落及其所有内容与屏幕左边缘齐平。当然它看起来有点乱,而且你失去了正确的缩进,但我认为这有助于 Gmail 不会意外地认为你在引用内联内容。

【讨论】:

  • 我有 p 标签,里面有 br,没有缩进,我遇到了这个问题。将 br 更改为单独的 p 标签为我修复了它。
【解决方案4】:

我也有类似的问题。我正在使用模板从应用程序发送电子邮件。因此,当我向同一个地址发送多封电子邮件时,所有邮件中完全相同的行都会变成紫色。 Gmail 自动添加了这个标签:

<div class="im">
.........
</div>

我不知道事实上,在我看来,Gmail 似乎将常用文本包装在带有 this 标签的对话中。类似讨论here

【讨论】:

    【解决方案5】:

    我也有这个问题。我只是在每行末尾添加了一个五位随机char,并将颜色设置为背景。然后问题就解决了。

    这不是一个好方法,但如果没有其他方法,也许你可以尝试一下。

    【讨论】:

      【解决方案6】:

      这样你就忽略了im类的风格

      <b style="color:black;">Some text</b>
      

      有些文字没有紫色

      【讨论】:

        【解决方案7】:

        您可以在电子邮件 html 中使用 &lt;br&gt; 标记,如果它的样式如下:&lt;br style="box-sizing:border-box"&gt;

        【讨论】:

        • 这对我来说很奇怪,让我可以保留我的 br 标签,谢谢!
        【解决方案8】:

        在我创建的主表中,作为最后一个孩子添加:

        <div style="display:none;">1</div>
        

        并且数字1 每次递增。我正在使用模板字符串用 js 生成内容

        `<div style="display:none;">${new Date().toString()}</div>`
        

        您还需要将style="color:#000;" 添加到父级。 这将防止整个电子邮件显示为引用,因此不会使用 .im 类为文本着色

        【讨论】:

          【解决方案9】:

          如果您重播电子邮件,Gmail 会自动将您的内容放入 &lt;div class="im"&gt;,这就是文本颜色变为紫色的原因。

          试着写一封新邮件。

          【讨论】:

            【解决方案10】:

            请在您的页面上使用样式:

            div.adm {  display: none !important;}
            div.h5 { display: block !important;}
            

            【讨论】:

              猜你喜欢
              • 2020-06-06
              • 2014-09-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-01-01
              • 2021-12-01
              • 1970-01-01
              • 2016-04-18
              相关资源
              最近更新 更多