密码重置电子邮件中缺少URL

时间:2016-11-16 作者:tt24

从wp admin登录页面,我单击重置密码(不在主题上,在wp上)。我收到了电子邮件,但其中没有可点击的url。插件已禁用。我该怎么办?

5 个回复
最合适的回答,由SO网友:Luke Seall 整理而成

问题是<> 将重置URL包围在wp-login.php. 您可以使用删除它们retrieve_password_message 在您的主题中functions.php 文件如下:

add_filter("retrieve_password_message", "mapp_custom_password_reset", 99, 4);

function mapp_custom_password_reset($message, $key, $user_login, $user_data )    {

    $message = "Someone has requested a password reset for the following account:

" . sprintf(__(\'%s\'), $user_data->user_email) . "

If this was a mistake, just ignore this email and nothing will happen.

To reset your password, visit the following address:

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


    return $message;

}

SO网友:CDuv

如果您只想删除WordPress添加的尖括号,但保留生成的消息的其余部分不变,请将以下内容添加到functions.php 你的WordPress主题(例如。wp-content/themes/some_awesome_theme/functions.php).

/**
 * Removes angle brackets (characters < and >) arounds URLs in a given string
 *
 * @param string $string    The string to remove potential angle brackets from
 *
 * @return string    $string where any angle brackets surrounding an URL have been removed.
 */
function remove_angle_brackets_around_url($string)
{
    return preg_replace(\'/<(\' . preg_quote(network_site_url(), \'/\') . \'[^>]*)>/\', \'\\1\', $string);
}

// Apply the remove_angle_brackets_around_url() function on the "retrieve password" message:
add_filter(\'retrieve_password_message\', \'remove_angle_brackets_around_url\', 99, 1);

SO网友:jgraup

查看wp-login.php 在GitHub上。

默认块如下所示:

// Redefining user_login ensures we return the right case in the email.
$user_login = $user_data->user_login;
$user_email = $user_data->user_email;
$key = get_password_reset_key( $user_data );
if ( is_wp_error( $key ) ) {
    return $key;
}
$message = __(\'Someone has requested a password reset for the following account:\') . "\\r\\n\\r\\n";
$message .= network_home_url( \'/\' ) . "\\r\\n\\r\\n";
$message .= sprintf(__(\'Username: %s\'), $user_login) . "\\r\\n\\r\\n";
$message .= __(\'If this was a mistake, just ignore this email and nothing will happen.\') . "\\r\\n\\r\\n";
$message .= __(\'To reset your password, visit the following address:\') . "\\r\\n\\r\\n";
$message .= \'<\' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), \'login\') . ">\\r\\n";
你应该能够filter 密码重置消息\'retrieve_password_message\' 并根据需要进行更改。

$message = apply_filters( \'retrieve_password_message\', $message, $key, $user_login, $user_data );

SO网友:Travis

我有这个问题,想在这里分享我是如何解决的。

我打开了邮件,在右边你会看到收到邮件的时间戳,上面有三个点。

单击该按钮,然后单击“显示原件”

从那里你将看到电子邮件的代码。查找电子邮件中表示您应该单击链接的部分。

复制<;>标记。将其粘贴到浏览器中,瞧,您将能够重置。

SO网友:H1ghlander

我有这个问题,做的和特拉维斯一样。。。

右键单击电子邮件,选择查看源,复制下面的链接“要重置密码,请访问以下地址:”

  • 将其粘贴到您的域框中,然后点击
  • 相关推荐

    Send clear password via mail

    每当添加用户或注册包含其清晰密码的用户时,我都需要发送一封电子邮件。我知道这在安全方面是个坏主意,但我需要为一个私人项目这样做。有什么想法吗?我应该挂接到user\\u register并做些什么,还是有更简单的方法?我正在使用更好的通知atm来管理我的电子邮件,谢谢!