「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战」。
这个问题有点小众,但是又很坑。我们有邮件编辑发送的业务,每次都会很奇怪发出去的邮件第二封第三封,莫名其妙有部分内容变成紫色。因为比较忙所以一直没有去正视,一直以为这个问题是发送接口那边造成的。这个问题在测试阶段又反复出现。于是调研了一番,发现发到其他邮箱都是正常的,于是我就终于知道了为什么邮件内容变成了紫色,因为发到gmail,gmail给加上了一个im 标签,而im标签只有一个属性那就是
.im {
color: #500050;
}
于是又搜了下为什么会加im类。
会产生这个问题的情况有:一个table里面含有多个tr,或者很多封邮件发到相同地址标题行都一样等。
我遇到的是因为业务原因,第二种,很多邮件被测试时候发送到相同的邮箱,所以会被gmail认为是邮件对话,就会自动标上颜色。
而要解决这个问题,可以尝试的方法有:
-
如果你是table里面的一个tr有很多行内容,可以用把每个tr用table包含起来;
-
如果很多p或者span属性,换独特的属性;
-
重写大法好, 邮件不采用单独的样式文件,所以可以在邮件模版里面head加上 .im 的类,全局去覆盖颜色属性;
<style type="text/css"> .im { color: inherit !important; } </style> <style type="text/css"> .im { color: #000000 !important; } </style> -
把换行都删掉,可能会有效果;
-
在具体的内容标签上面直接设置字体颜色就能覆盖掉class = “im”:
<span style="color:black;">Some text</span>
而且这个问题有可能在第一次发送不会触发,如果第二次发送同一份邮件到相同的地址,邮件内容就可能被标记为对话。所以可以看情况去解决这个问题。而且如果你回复一个邮件的话,gmail也会自动内容包裹在