有没有办法禁止电子邮件引擎自动超链接 URL?

Posted

技术标签:

【中文标题】有没有办法禁止电子邮件引擎自动超链接 URL?【英文标题】:Is there a way to disable email engines from automatically hyperlinking a URL? 【发布时间】:2012-01-13 18:22:08 【问题描述】:

我的一个客户想要禁用 URL 以显示为超链接 URL,它必须被识别为纯文本,这是我尝试过的:

<a href="..." style="text-decoration:none!important">ur<!comments>l</a>

我还尝试删除 &lt;a&gt;&lt;/a&gt; 标记,以及删除 URL 的“http://”,但它们在 Outlook 中均无效。 Outlook 仍将其识别为超链接。

这里有人有什么解决方法吗?

【问题讨论】:

您可以尝试使用一些跨度来破坏 url。例如:&lt;p&gt;ht&lt;span&gt;tp://www.goo&lt;/span&gt;gle.com&lt;/p&gt;. 谢谢大卫,我会试一试,告诉你进展如何 没用,Outlook 还是用超链接应用的 这能回答你的问题吗? How to disable an email link? 【参考方案1】:

有一个我喜欢使用的零宽度不间断空格:

我将它放在重要的位置,这样该 URL 就不会被识别为 URL,例如:http://wwwdomain.com。

这个策略对我来说适用于跨平台和渲染客户端。它的优点是双重的:1)它可以防止客户端将文本自动呈现为链接,以及 2)与其他“不间断”零宽度空格 ascii 代码(即 )不同,它会包装整个 URL,如果您的 URL 恰好需要它(而不仅仅是零宽度空间之后的部分)。

试试看。

【讨论】:

这真是太好了。只有一个问题是,如果用户复制/粘贴链接。它带有不间断的空间。有人想出一种没有那些“不可见”空间的复制方法吗?【参考方案2】:

实际上,功劳属于我的同事。似乎适用于我们测试的所有客户端。

www.websitename.<img src=""  >com

一个 0 宽和 0 高的空图像标签。将其插入点和以下文本(在本例中为“com”)之间。

在我们尝试了几件事之后,他莫名其妙地受到了灵感/光彩的影响。

字符之间没有可见的间距。不过,如果您直接将字符串复制/粘贴到浏览器中,不确定会发生什么。不过,我的目的是不允许电子邮件客户端自动将其设为超链接。

【讨论】:

事实证明它适用于除 Yahoo! 之外的所有客户端邮件。我们添加了 Scott 推荐的零宽度不间断空间,它似乎涵盖了所有基础。不过,看起来空图像标签在某些客户端上添加了一些额外的边距底部或其他东西。如果我找到解决方案,我会发布更新。 另外,把它放在 www[dot] 和 websitename[dot] 之后。雅虎!试图只用 www[dot] 建立一个超链接,这让我有点吃惊。因此,更新后的版本如下所示: www.websitename.com 严肃的问题:这是格式良好的html吗?【参考方案3】:

这个对我有用。这是 Scott 的回答和 David K. Hess 的评论的结合。

使用 断开您的网址。但是,当邮件客户端扫描它时,您需要以它们不匹配为 url 的方式来破坏它。

eg: http<span>://</span><span>google.</span>com 

【讨论】:

【参考方案4】:

您通常可以关闭自动超链接。这是 Outlook 2007 的教程:

Turn automatic hyperlinking on or off

【讨论】:

感谢您的建议 JP,我正在考虑从脚本的角度关闭自动超链接,因为链接必须指向几千封电子邮件,所以要求他们这样做很麻烦步骤。 恐怕超链接的自动转换是在客户端完成的。 这不关我的事,但我无法理解 URL 不是超链接的要求。 @JimmyPena:在标题中:“现已与 Paypal.com 集成!”,或在可能包含“example.com”等用户名的高分表中,您通常不希望这些文本包括一个蓝色链接。任何可能包含用户提供内容的自动电子邮件都不应该允许恶意用户在该内容中创建潜在的恶意链接。如果邮件客户端将非链接用户提供的用户名(如“see.for.example.bible”或文件列表(如“example.bible、example.com、...”)转换为链接,那么这可能不仅仅是样式问题,但存在安全问题。【参考方案5】:

我有一个类似的问题,比如“checked.com”和“interviewing.com”这样的词在我不想要的时候在我的消息中创建了一个超链接。

我采取的第一步是编辑 HTML 链接标签。但没有。

之后,我转到电子邮件中的文本并使用 8pt 的字体添加了一个非常小的空间(我使用的是 ESP,否则我会选择 1px)

如果您遇到同样的问题,这可能会有所帮助。

【讨论】:

【参考方案6】:

我联系了 Gmail 的支持人员,并与 Apple Care 的部门经理进行了交谈。这是预期行为,无法避免。这些黑客不再起作用,如果实施可能会导致您的 IP 被列为网络钓鱼操作。你在这里绕着安全问题跳舞。我建议修改你的内容策略。

您目前唯一能做的就是将所有电子邮件地址包含在 mailto 链接中,并将电话号码包含在 tel 链接中。截至 2017 年,没有其他可用选项。

【讨论】:

有 CSS 和内联方式来做这件事。许多网站都推荐它,但没有一个网站使用这些策略进行网络钓鱼或列入黑名单。我的回答使用简单的 CSS 来进行此更改:here IMO,这与其说是“围绕安全问题跳舞”,不如说是试图提高安全性。可点击的链接表达权威。对于许多电子邮件客户端,如果攻击者能够将纯文本“example.com”插入到电子邮件中,那么它就会变得可点击。有一种受支持的方式告诉客户不要让链接可点击并不是一个完整的解决方案,但它是朝着正确方向迈出的一步。 同意:鉴于***域名现在可以是任何东西(“.calvinklein”、“.onyourside”、“.americanfamily”以及数百个其他域名),我们不能发送任何包含以下内容的电子邮件,例如用户提供的文件名,即使我们只允许文件名中包含字母数字和点,因为它们仍然可能成为恶意链接。这对任何输入或输出过滤安全性都是一种嘲弄。【参考方案7】:

您可以尝试使用 CSS 重新排列文本。

<p>www.example.<span style="float:left">http://</span>com/</p>

如果带有“http://”的部分仍被标记为 URL,请尝试在不同的地方拆分。

另一个技巧是用其他一些 Unicode 字符替换句点,这些字符看起来像句点,但实际上不是。例如,“⠄”(U-2840)是一个单点盲文。

唉(!)我没有任何可以用来测试它的 Microsoft 应用程序,但祝你好运。 :)

【讨论】:

谢谢ghoti,我试过这个,但是U-2840只是一个方形的盒子,而不是一个点,然后我尝试了一个句号的unicode .或 .它已在 Outlook 中自动超链接,我什至没有添加“http://”作为链接的一部分 嗯,一个“句号”句号,所以这不会让你更进一步。如果 U-2840 是您正在使用的字体中的一个框,则可以使用标点符号 (·) 或点运算符 (⋅)。当然,如果您可以使用替代点来混淆 Outlook,那么您也可以省去 style="float:left" 转移。 中点在 Outlook 中正确显示,没有超链接,但是除非这些“中点”已替换为句点,否则浏览器将无法识别“url”。 style="float:left" 似乎在 Outlook 中也不起作用,因为链接已经被重新定位的文本弄乱了,例如http://.goog.comwww 在 Outlook 中显示 您好 ghoti,很抱歉造成混淆,必须删除超链接,但粘贴到浏览器时可以访问。我想确保网址不会被视为可点击链接,而是纯文本。 我要放弃这个了。它要么是超链接,要么不是。您可以影响链接的 显示 ,使其不带下划线,但如果在需要在浏览器中呈现为链接的同一 HTML 上“必须删除超链接”,那么我怀疑你'运气不好。【参考方案8】:

如果您使用 &amp;#46; 替换您的 '.'在您的超链接中,您将解决 Outlook 2007 中的超链接 URL。

【讨论】:

【参考方案9】:

我的解决方案是

<a href="#" style="text-decoration:none!important">http://...</a>

【讨论】:

以上是关于有没有办法禁止电子邮件引擎自动超链接 URL?的主要内容,如果未能解决你的问题,请参考以下文章

Outlook 附件的超链接

在 GatsbyJS 上获取 URL 参数

通过电子邮件发送的动态链接具有 url 防御

如何将列中的超链接插入Outlook电子邮件正文

有没有办法从电子邮件中的链接点击中收集电子邮件地址?

在当前选定的行中自动打开超链接