我有简单的PHP代码,可以通过电子邮件向用户发送URL,其中包含URL中包含的电子邮件地址。我已经使用rawurlencode()在发送电子邮件地址之前对其进行编码。
电子邮件客户端(本例中为Hotmail)正确显示URL,@符号编码为%40。但是,当我点击链接时,浏览器会再次转换为@,从而导致格式错误的网址。
有关如何确保电子邮件客户端或浏览器(不确定罪魁祸首是谁)的任何建议都不会将URL中的%40解码为@符号?请参阅下面的代码。
$resetlink = "http://www.domain.com/resetpassword/".rawurlencode($email)."/".$email_hash;