当前位置: 首页 > 知识库问答 >
问题:

防弹html电子邮件按钮

暴乐邦
2023-03-14

我最近开始创建电子邮件模板,遇到了一些问题,我找不到任何解释。

我从buttons.cm生成按钮时希望它们是防弹的,虽然它们对大多数客户端都很好,但在基于web的outlook客户端上却失败了。

结果如下所示(稍有修改,稍后解释)

<table style="width: 100%" border="0" cellspacing="0" cellpadding="5">
    <tr>
        <td style="font-family: arial;">
            <!--[if mso]>
                <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="#" style="height:30px;v-text-anchor:middle;width:150px;font-family:arial;background-color:#72BC00;color:#ffffff;" arcsize="14%" stroke="f" fillcolor="#72BC00">
                <w:anchorlock/>
                   <center>
            <![endif]-->
                <a href="#" style="background-color:#72BC00;border-radius:4px;color:#ffffff;display:table;line-height:30px;text-align:center;font-size:14px;text-decoration:none;width:150px!important;-webkit-text-size-adjust:none; font-family: arial;">Learn More</a>
            <!--[if mso]>
                   </center>
                </v:roundrect>
            <![endif]-->
        </td>
    </tr>
</table>

我的目标是:

工作版本的屏幕截图

但我得到的所有基于浏览器的outlook客户端的信息是:

失败版本的屏幕快照

问题是在失败的版本中

  1. 单元格填充失败
  2. 按钮不再是链接,实际上所有样式都取自按钮并应用于父表。
  3. 第一项实际上应该是最后一项,但它被移到了顶部,并且没有任何明显的原因。

对此有解决方案吗?我还没找到什么。谢谢!

我在生成的按钮中添加了以下内容:单元格填充,将显示从内联块更改为(修正按钮的宽度为100%,并允许outlook中的文本居中),使包含元素成为一个表,而不是一个div。

共有2个答案

金昌胤
2023-03-14

对于#2,您是否正在更新VML代码中的URL以及锚标记?Outlook将VML中的URL用于链接,而不是锚标记。

这给电子邮件中的许多链接跟踪系统带来了问题,这也是我避免使用这些按钮的许多原因之一。我们已经说服了大多数客户使用普通的CSS样式的按钮,因为Outlook会松开圆角。

叶健柏
2023-03-14

Buttons.cm是一个很好的资源,但是它已经有点过时了。

我支持Outlook,但尽可能避免使用VML。我现在用的是这样的东西:

<!-- Button : Begin -->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto;">
    <tr>
        <td style="border-radius: 3px; background: #222222; text-align: center;" class="button-td">
            <a href="http://www.google.com" style="background: #222222; border: 15px solid #222222; font-family: sans-serif; font-size: 13px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 3px; font-weight: bold;" class="button-a">
                &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ffffff">A Button</span>&nbsp;&nbsp;&nbsp;&nbsp;
            </a>
        </td>
    </tr>
</table>
<!-- Button : END -->

所有的 都是乱七八糟的,但这是所有客户普遍理解的东西。

第二个更简单的选项是使用border-width来伪造填充,如下所示:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
      <table border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>
            <a href="http://litmus.com" target="_blank" style="font-size: 16px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; background-color: #EB7035; border-top: 12px solid #EB7035; border-bottom: 12px solid #EB7035; border-right: 18px solid #EB7035; border-left: 18px solid #EB7035; display: inline-block;">I am a button &rarr;</a>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

有些电子邮件客户端(主要是Outlook)不允许border-width超过12或15个像素,而且这只适用于纯色,因此有些缺点。

更多的防弹按钮选择在石蕊上。

 类似资料:
  • 我正在编码HTML电子邮件,并试图得到一个背景横幅图像,以在Outlook2010,11,13,16呈现多少正确。当前使用此-http://backgrounds.cm/。我的问题是《Outlook 2010》和《Outlook 2013》似乎在背景图像上放大了。 我的代码: 这似乎是一个已知的问题,但我没有遇到任何修复。https://www.campaignmonitor.com/forums

  • 我使用的是firebase javascript API。 也不起作用

  • 问题内容: 我正在尝试从PHP发送简单的HTML电子邮件。下面的代码仅导致GMail中的空白电子邮件。它还有一个名为“ noname”的空附件,这根本不是我想要的;尽管那可能只是它无法正常工作的症状。 我使用的代码是: 问题答案: 原来关键是编码类型。代替: 我需要使用: 它可能取决于您如何在自己的文本编辑器中保存PHP文件的细节。我没有研究它,但是PHP中的 iconv 函数可能也给我带来了一些

  • 给出以下代码片段: 当我在Eclipse中执行这段代码时,我收到一封电子邮件,如: 这就是我想要的! 但后来,我尝试在部署在Jboss-4.0.5中的应用程序中使用这个主应用程序,我收到了这样一封电子邮件: 因此,不仅消息不是html消息,而且电子邮件的主题也丢失了,而且似乎没有使用收件人发送电子邮件,而是使用密件抄送<我不知道这种行为的原因是什么,有没有人可以帮助我,或者只是给我一些提示。 更新

  • 查看以下,详细了解如何处理与 iPhone 手机配对的 M600 上的电子邮件。 阅读您的 M600 上的电子邮件 如果您在手机上使用电子邮件通知,那么在您收到新邮件时会在您的 M600 看到通知。 阅读电子邮件 轻触通知。 利用您的 M600 回复电子邮件 您可以利用您的手腕表回复邮件。 回复电子邮件 轻触通知查看所有邮件 从屏幕底部向上滑动,查看您可以执行的操作。 轻触 Reply(回复),并

  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 信件会从就近的小