Paso a paso: primero busque el archivo donde aparece el mensaje de error. Uso Notepad ++ y el comando CTRL+ Fpara buscar en archivos. Es una buena idea buscar solo las primeras palabras del mensaje de error, porque algunos mensajes de error se combinan de mensajes diferentes.
Su mensaje de error aparece en wp-login.php
y santa suerte, solo allí. Así que echemos un vistazo por qué podría ocurrir este error.
if ( $message && !wp_mail($user_email, $title, $message) )
Hay dos condiciones. $message
tiene que ser verdadero (no es una cadena vacía, no es falsa, no es nula, etc.). Y wp_mail()
no debe devolver falso.
Una línea arriba, hay un filtro $message = apply_filters('retrieve_password_message', $message, $key);
, por lo que es posible que un complemento (o tema) use este filtro y devuelva un valor que no es verdadero (cadena vacía, falso, nulo, etc.).
Pero es mucho más fácil verificar si wp_mail()
funciona o no. Escriba un pequeño complemento para enviarse un correo de prueba:
<?php
/**
* Plugin Name: Stackexchange Testplugin
* Plugin URI: http://yoda.neun12.de
* Description: Send me a test email
* Version: 0.1
* Author: Ralf Albert
* Author URI: http://yoda.neun12.de
* Text Domain:
* Domain Path:
* Network:
* License: GPLv3
*/
namespace WordPressStackexchange;
add_action( 'init', __NAMESPACE__ . '\plugin_init' );
function plugin_init(){
$to = 'your-email-adress@some-domain.tld';
$subject = 'Testemail';
$message = 'FooBarBaz Testmail is working';
wp_mail( $to, $subject, $message );
}
(Este es el código PHP5.3. Si está ejecutando PHP5.2, elimine las cosas del espacio de nombres)
El complemento debe enviar un correo de prueba inmediatamente después de la activación. Si no, llamar a algunas páginas de back-end (p. Ej., Tablero) debería hacerlo.
Si el correo de prueba no llega, entonces probablemente tenga un problema con wp_mail()
. Entonces active la depuración:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );
@ini_set( 'display_errors',1 );
Ponga este código en su wp-config.php
e intente enviarse un correo de prueba. Ahora debería recibir algunos mensajes de error y también deberían iniciar sesión wp-content/debug.log
(el registro de depuración puede crecer mucho si hay más errores causados por complementos y / o temas).
En este punto, tienes buena información si wp_mail()
falla y si es así, ¿por qué? Si wp_mail()
funciona correctamente y llegó el correo de prueba, regrese al principio y descubra por qué $message
no es cierto.
Si tiene problemas con wp_mail()
, tenga en cuenta que wp_mail()
no utiliza la mail()
función PHP . WordPress usa una clase PHP ( PHPMailer ). Tal vez solo necesite un complemento para usar SMTP en lugar de sendmail. O el problema se encuentra en otro lugar. No lo sabemos Tienes que investigar.