I have no idea why it does this - I checked my mu-plugins, functions.php, there's currently nothing that alters emails.

(Note that I translated these by heart, words might not be the same but links matter)

If user registers, he/she recieves:

Username: Tomato To assing a new password, visit: https://www.my-site.com/wp-login.php

This is very very wrong url, isn't it? There should be keys and all sort of strings, right? Actually, this is not "change password" url at all - that's just login url that get's included one way or another. "Change password" url is missing.

WP generates url like this in pluggable.php in /includes folder:

$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n";

Another things is "Forgot password" email:

Someone has requested password change on site: http://www.my-site.com/ Username: Tomato If that's not true, ignore the message and nothing happens. To change the password, visit:

There's also no url.

It should generate the url roughly in same way as in first case.

I've tried it with different email providers. What could be the problem?

1 Answer 1


I had to make a plugin, copy-paste whole fuction from pluggable.php that makes new account and sends the email only to change < > to ( ) or remove < > which wraps the URL.

It breaks because WordPress email was HTML by default (it should be text) and < > are read as HTML tags. I didn't set emails to HTML, Im not sure why it was HTML by default.

Fortunately it's not a big deal for me because I was going to overwrite this function in future one way or another in order to make beautiful and responsive HTML emails.

This is very weird, is anyone else having this issue?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.