Link 后端端点上的哪些点在电子邮件文本中显示不正确

Link which points on a backend endpoint is displayed incorrectly in the email text

我尝试将验证 link 作为纯文本包含到指向 GraphQL 端点的电子邮件中,但 browser/email 客户端无法正确显示它。

它无法解析我在 link 查询中需要的 !,",{,} 之类的符号,最终它被破坏了。 另外,我尝试将 link 包含到 a 标签的 href 属性中,但问题是,它也无法解析双引号。

Link 例子:

https://blahblah.now.sh/graphql?query=query($email:String!,$token:String!){verifyEmailToken(email:$email,token:$token)}&variables={"email":"22yiba@clearmail.online","token": "221c4dfd976f3ac22f"}

某些字符在 URL 的上下文中具有特殊含义。您应该使用 encodeURI 来转义这些字符。结果 URL 将是:

https://blahblah.now.sh/graphql?query=query%28%24email%3AString%21%2C%24token%3AString%21%29%7BverifyEmailToken%28email%3A%24email%2Ctoken%3A%24token%29%7D%26variables%3D%7B%22email%22%3A%2222yiba%40clearmail.online%22%2C%22token%22%3A%20%22221c4dfd976f3ac22f%22%7D

有关更多详细信息,请参阅 Why should I use urlencode? and Should I use encodeURI or encodeURIComponent for encoding URLs?