我通过邮件向使用加密电子邮件的用户发送邀请,以了解哪个用户回复了邀请。类似的东西:
加密电子邮件是上面的长字符串。我在Mailable
类中编码这样的邮件:
$url = 'https://example.org/start-learning?e=' . encrypt($this->to[0]['address']);
然后在这样的邮件模板中添加$url
:
<a href="{{$url}}>click me<a>
然后,当用户点击链接时,它会路由到控制器,控制器会解密有效负载:
decrypt($request->input('e'));
然后,它适用于大约99%的人点击链接。但是大约百分之一,它不起作用,我有一个错误解密。而且我不知道为什么。这是加密和解密的Laravel应用程序。 是否有这种奇怪行为的原因?
旁注:我知道解密总是有效并且没有随机行为(顺便说一下,我在10000个条目上测试过它,它没关系)。
。邮件流程中必须有其他内容我不明白。答案 0 :(得分:1)
我认为在创建链接时应该使用urlencode()
而不是:
$url = 'https://example.org/start-learning?e=' . encrypt($this->to[0]['address']);
你应该使用:
$url = 'https://example.org/start-learning?e=' . urlencode(encrypt($this->to[0]['address']));
确保它有效。