Outlook电子邮件中的相同链接 - 为什么只有一个呈现为有效的网址?

时间:2017-09-12 12:32:04

标签: html email outlook

系统我正致力于为用户生成电子邮件。这些是通过从模板加载然后使用适当的信息填充文本中的占位符来创建的。

其中许多电子邮件都包含一个返回系统网站的链接。它以两种形式呈现:普通文本带下划线的链接和一个仿按钮。

当我让系统向我的hotmail帐户发送电子邮件时,这些都有效。但是,当相同的电子邮件发送到Outlook 2007时,只有文本链接可用。如果将鼠标悬停在按钮上,则会显示空白网址" http://"如果单击它,将打开一个新的浏览器窗口。

检查生成的HTML,两个链接都有一个有效的目的地。

<td width="160" align="center" valign="middle">
     <table width="100%" border="0" cellpadding="0" cellspacing="0" class="mobile_hide">
        <tbody>
          <tr>
             <td width="560" align="left" valign="top" style="font-size:14px; color:black; padding-bottom: 80px;">Please <a href="[valid link to site, with large querystring]" style="color: #009ddb; text-decoration: underline">choose a new password here</a>.</td>
          </tr>
        </tbody>
     </table>
  </td>
  <td width="280" align="center">
     <table width="280" border="0" cellpadding="0" cellspacing="0" align="center">
        <tr>
           <td width="280" align="center" valign="middle" style="color: #FFFFFF; background-color:white; width:280px">
                <div>
                    <!--[if mso]>
                    <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:40px;v-text-anchor:middle;width:280px;" arcsize="63%" strokecolor="#32b8eb" fill="t">
                    <v:fill type="tile" />
                    <w:anchorlock/>
                    <center style="color:black;font-size:16px;width:280px;font-family:Calibri;">RESET YOUR PASSWORD NOW</center>
                    </v:roundrect>
                    <![endif]--><a href="[valid link to site, with large querystring]" style="border:1px solid #32b8eb; border-radius:25px;display:inline-block;font-size:16px;line-height:50px; text-align:center; text-decoration:none;height:50px;width:280px;-webkit-text-size-adjust:none;mso-hide:all;color:black;">RESET YOUR PASSWORD NOW</a>
                </div>
       </td>
    </tr>
 </table>
</td>

为什么按钮电子邮件无法在Outlook中正确呈现?它不是一个全面的安全功能,因为文本链接工作正常。

1 个答案:

答案 0 :(得分:1)

我猜测第二个href是不起作用的。原因是你实际上有三个href,但只有两个关闭</a>标签。特定于Outlook的代码中的第二个缺少结束标记并干扰底部href。

<!--[if mso]>
  <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:40px;v-text-anchor:middle;width:280px;" arcsize="63%" strokecolor="#32b8eb" fill="t">
  <v:fill type="tile" />
  <w:anchorlock/>
  <center style="color:black;font-size:16px;width:280px;font-family:Calibri;">RESET YOUR PASSWORD NOW</center>
  </v:roundrect>
<![endif]-->

具体来说,就是这一行:<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:40px;v-text-anchor:middle;width:280px;" arcsize="63%" strokecolor="#32b8eb" fill="t">

关闭或删除Outlook代码中的语句。除了干扰你的底部href之外,它现在什么都不做。你的底层href应该开始工作了。

祝你好运。

修改

特定于Outlook的href被</v:roundrect>关闭。不需要额外的</a>。我认为代码来自https://buttons.cm。预期的行为是将url放置在可用作后备的按钮图形上,例如https://buttons.cm/button.jpg。由于没有网址而只有http://,我认为这仍然是导致Outlook问题的原因。如果我有所有代码,我会测试它,但我不是。我只想将此添加到我的修复程序中,以帮助任何遇到类似问题的人提供更好的解决方案。