...
✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo enviar correo electrónico de WordPress usando el servidor SMTP

96

¿Tiene problemas para enviar correos electrónicos en WordPress? Bajo el capó, WordPress envía correos electrónicos usando la función mail() de PHP. A veces, su alojamiento web no configura la configuración de correo correctamente. Como resultado, no se pueden enviar correos electrónicos desde su sitio web de WordPress.

Puede resolver este problema utilizando el servidor SMTP. Por lo general, las empresas de alojamiento web proporcionan su propio servidor SMTP que puede utilizar para enviar correos electrónicos a su sitio web.

Alternativamente, puede optar por otros servidores SMTP como Gmail, Mailjet, etc. Todo lo que requiere detalles básicos sobre el servidor SMTP como Host, Puerto, etc.

Dicho esto, veamos cómo usar el servidor SMTP para enviar correos electrónicos de WordPress.

PHPMailer en WordPress

WordPress incluye la clase PHPMailer en su núcleo. Si desea comprobarlo, encontrará este archivo en wp-includes/PHPMailer/PHPMailer.php.

Si configuramos PHPMailer en WordPress, la wp_mailfunción envía correos electrónicos a través de esta clase PHPMailer. En ese caso, el wp_mailmétodo no depende de la configuración del alojamiento. En su lugar, utilizan la configuración de su servidor SMTP.

Voy a usar esta clase PHPMailer para los correos electrónicos. Como esta clase ya está incluida en WordPress, no es necesario instalar la biblioteca PHPMailer por separado.

Se puede usar el complemento WP Mail SMTP, que también envía correos electrónicos mediante servidores SMTP. Pero siempre recomiendo que si algo se puede lograr escribiendo un pequeño fragmento de código, hágalo. Es una buena práctica utilizar la menor cantidad posible de complementos. El uso de más complementos en el sitio web aumenta la carga adicional en el servidor. Y, a veces, los complementos entran en conflicto entre sí, lo que puede terminar en un sitio roto.

Enviar correo electrónico de WordPress a través del servidor SMTP

Antes de continuar, debe estar listo con los detalles de su SMTP como host, puerto, nombre de usuario y contraseña.

Si planeaba utilizar el servidor SMTP de Gmail, debe cambiar algunas configuraciones en su cuenta de Google. Para ello, inicie sesión en su cuenta de Google y haga clic en Cuenta. Una vez que esté en la página de la cuenta, haga clic en Seguridad. Desplácese hacia abajo y encontrará la configuración de ‘Acceso a aplicaciones menos seguras’. Ponlo en ON.

Cómo enviar correo electrónico de WordPress usando el servidor SMTP

Para configurar PHPMailer en WordPress, hay un gancho disponible que es phpmailer_init. Usando phpmailer_inithook, podemos acceder al objeto PHPMailer y establecerle argumentos.

Abra el functions.phparchivo de su tema activo y coloque el siguiente código al final de un archivo.

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'YOUR_SMTP HOST';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 'SMTP_PORT'; //25 or 465
    $phpmailer->Username = 'SMTP_USERNAME';
    $phpmailer->Password = 'SMTP_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl'; //ssl or tls
}

Asegúrese de reemplazar los marcadores de posición con los valores reales. Digamos que estamos usando el servidor SMTP de Gmail, entonces nuestro código se escribirá de la siguiente manera:

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'smtp.googlemail.com'; //gmail smtp host
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->Username = 'GMAIL_USERNAME';
    $phpmailer->Password = 'GMAIL_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl';
}

Debe ingresar el nombre de usuario y la contraseña reales de su cuenta de Gmail en el código anterior. Ahora intente enviar un correo electrónico desde su sitio web de WordPress, el correo electrónico debería comenzar a funcionar.

Depurar el problema del correo electrónico

En este momento, incluso después de usar PHPMailer, sus correos electrónicos no funcionan, entonces al usar la wp_mail_failedacción puede encontrar la causa del problema. Utilice el siguiente código para depurar el problema.

add_action('wp_mail_failed', 'log_mailer_errors', 10, 1);
function log_mailer_errors( $wp_error ){
    $fn = ABSPATH. '/mail.log'; // say you've got a mail.log file in your server root
    $fp = fopen($fn, 'a');
    fputs($fp, "Mailer Error: ". $wp_error->get_error_message() ."n");
    fclose($fp);
}

Espero que comprenda cómo enviar correos electrónicos de WordPress utilizando el servidor SMTP. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More