gpt4 book ai didi

email - 替代通过电子邮件发送长 URL?

转载 作者:行者123 更新时间:2023-12-02 07:51:55 24 4
gpt4 key购买 nike

我有一个 Web 应用程序,它使用如下所示的 URL:

http://library.example.com/Register.aspx?query=academic&key=586c70bb-5683-419c-aae9-e596af9ab66a

(使用 GUID 而不是普通的 int 来阻止猜测,这就是我们现在所需要的。)

问题:通过电子邮件发送时,长 URL 经常中断。是人在发送电子邮件,所以我无法控制格式。有时是发送电子邮件程序出错,有时是接收电子邮件程序出错,但不管怎样,我都花太多时间与人们交流以解决问题。

一切都必须来自这个域,所以我不能使用第三方缩短器。我可以托管自己的主机,但这似乎是一种拼凑。

有什么建议吗?

编辑

@Sunny:感谢您的详细说明,但我的情况与您假设的不同。 (我的)公司客户将此 URL 传递给其员工,他们使用它来访问品牌注册页面。作为注册的一部分,他们需要提供工作电子邮件,然后转发给公司主管。

注册后他们可以访问数据库,但他们所看到的并不特定于公司客户。所以偶尔的闯入者没什么大不了的;当他们被公司主管淘汰时,我们邀请他们订阅。

@Everybody:电子邮件中断不是在标点符号上(?&=),而是在某个预定的行长度处。也让我吃惊。请注意,域名很长,虚拟目录的路径也很长,这是问题的一部分。

阅读回复后,我将使用 base64 作为伪缩短器,例如:

http://a.MyLongDomainName.com/?q=a&key=base64_encoded_GUID

...看看它是否存活下来。感谢大家。

最佳答案

你至少可以缩短一点。现在,您将发送一个 GUID,它是一个 128 位数字,其格式基本上是带有额外破折号的十六进制格式。如果将 GUID 视为字节数组并将其转换为 Base64,则可以减少一些内容。同样,“query=academic”可以是“q=a”。

GUID 当前占用 36 个字符。转换为 Base-64 会将其减少到 22 个,从而节省 14 个字符。将“query=academic&key=”替换为“q=a&k=”可以再减少 13 个。总共减少 27 个字符可能会使您的 URL 足够短而不会换行,尽管存在 & 符号和等号。

更多细节:Base-64 文本将以“=”结尾,然后将被十六进制编码为“%3D”。解决方案是切断该字符,因为它只是填充。

归功于原始发帖者,看起来最好的选择是结合以下因素:

  1. 使用 base-64 的紧凑型 GUID。
  2. 缩短键名,如果可能,缩短键值。
  3. 用尖括号包裹 URL 以鼓励客户正确解析它。
  4. 如果可能,用 URL 重写替换键名,使其看起来像路径。

关于email - 替代通过电子邮件发送长 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com