We have a problem related to the escaping of the &
in the password reset URL not being escaped. This link:
http://yoursite/admin/actions/users/setpassword?code=abcd&id=1234
somehow, this arrives at our server as:
http://yoursite/admin/actions/users/setpassword?code=abcd&id=1234
Then the code is abcd
and a parameter called amp;id
is 1234
, and the error "Bad Request Param "id" doesn't exist." is thrown.
In our case, we have craft setup to send HTML emails, and have an email template like:
Click here to reset your password: {{link}}
and end up with the link http://yoursite/admin/actions/users/setpassword?code=abcd&id=1234
directly in the HTML - this is WRONG, since the &
symbol has to be escaped as &
.
Now, we could compensate, and make our template:
Click here to reset: {{link|escape}}
Then we get correct HTML, but the plain-text version of the email is now broken.
Is there no way to have separate templates for text and html emails in craft?
How do other people solve this?