MS Outlook 将大写的 URL 组件转换为小写,导致链接故障 - 我可以阻止这种情况吗?

MS Outlook 将大写的 URL 组件转换为小写,导致链接故障 - 我可以阻止这种情况吗?

我需要发送电子邮件邀请人们参加活动,他们必须提前在网站上注册。该网站可通过必须包含大写字母的链接访问。(我无法更改这一点!)

详情:链接是http://vhs.link/PraSpra19

当 URL 的路径部分仅由小写字母拼写时,此地址不起作用。

当我在 Thunderbird 中创建电子邮件时,一切都很顺利。我可以用混合字母输入上述链接,并且它将以该格式使用。

但是,当我在 Outlook 中执行此操作时(我被迫在工作场所使用它),Outlook 会烦人地将所有大写字母转换为小写字母。它不是在表面上这样做(可读的 URL 保持不变!)而是在实际链接中这样做 - 其奇妙的效果是链接实际上不再起作用。(它指向错误的地方,即 vhs.link 的主页,而不是它应该指向的子文件夹)

我希望能在 Outlook 中找到一些隐藏设置来关闭这个愚蠢的功能,但我没有找到。当然,我也尝试手动后期编辑链接。然而,无论我做什么,大写字母总是会被小写字母取代。

有解决办法吗?

(我使用的是 Outlook 2016)

更多观察

我尝试关闭 Outlook 中所有与链接相关的自动格式化设置(即:文件 --> 选项 --> 电子邮件 --> 编辑器选项 --> 自动更正 --> 自动格式化 [和键入时自动格式化])。

效果肯定是链接文本不再自动赋予链接功能,因此我必须手动赋予它们“链接”功能。(这没关系)。

不过,我还不确定这对功能的影响。实际上,这些链接现在确实可以工作了(即大写字母似乎以某种方式被保留了下来)。有点令人不安的是,在鼠标悬停在可见文本上时显示底层链接的弹出字段中,链接仍然仅显示为小写。这有点奇怪。

答案1

前言:我在发送带有底部取消订阅链接的电子邮件时遇到了同样的问题。此链接有一个用于识别用户的安全查询参数。此参数必须签名以防止篡改,而我的签名工具(Ruby on Rails 的 MessageEncryptor)输出的是大写和小写字母的组合。单击该链接的 Outlook 用户会在服务器无法解密参数时收到错误,因为大写字母已被小写字母替换。

解决方案

我还对 URL 中的大写字母进行了转义!例如,将“A”更改为“%41”,将“B”更改为“%42”,等等。参考

就我而言,这种方法效果出奇地好。

在你的情况下这意味着改变这个http://vhs.link/PraSpra19对此http://vhs.link/%50ra%53pra19

在 Ruby 中,我的解决方案如下:

  def url_encode_caps(s)
    s.to_s.b.gsub(/[^a-z0-9_\-.~]/) { |m|
      sprintf("%%%02X", m.unpack1("C"))
    }
  end

相关内容