Siempre es una muy buena idea utilizar un servidor SMTP cuando enviamos un email desde un script. Enviar los correos desde un SMTP previene muchas incidencias como el hecho de que tus emails sean marcados como spam. Básicamente, las funciones mail() o wp_mail() son las que utiliza WordPress para enviar correos. Si quieres utilizar un servidor SMTP para enviar correos en WordPress, la clase PHPMailer te vendrá a las mil maravillas.
Existen muchos plugins para WordPress que te permiten enviar correos mediante un servidor SMTP, pero no te harán falta ya que con unas cuantas líneas de código podrás hacerlo de igual modo. En este tutorial, te mostraremos cómo enviar emails utilizando un servidor SMTP en WordPress.
Clase PHPMailer en WordPress
Antes de comenzar, debes inicializar la clase PHPMailer.
/* * Initialize phpmailer class */ global $phpmailer; // (Re)create it, if it's gone missing if ( ! ( $phpmailer instanceof PHPMailer ) ) { require_once ABSPATH . WPINC . '/class-phpmailer.php'; require_once ABSPATH . WPINC . '/class-smtp.php'; } $phpmailer = new PHPMailer;
Enviar un email en WordPress vía SMTP
El siguiente código enviar un correo HTML via SMTP mediante la clase PHPMailer en WordPress.
// SMTP configuration $phpmailer->isSMTP(); $phpmailer->Host = 'smtp.example.com'; $phpmailer->SMTPAuth = true; $phpmailer->Username = [email protected]'; $phpmailer->Password = '*****'; $phpmailer->SMTPSecure = 'tls'; $phpmailer->Port = 587; $phpmailer->setFrom([email protected]', 'Example'); // Add a recipient $phpmailer->addAddress([email protected]'); // Add cc or bcc $phpmailer->addCC([email protected]'); $phpmailer->addBCC([email protected]'); // Set email format to HTML $phpmailer->isHTML(true); // Email subject $phpmailer->Subject = 'Send Email via SMTP from WordPress'; // Email body content $mailContent = "<h1>Send HTML Email using SMTP in WordPress</h1> <p>This is a test email has sent using SMTP mail server with PHPMailer from WOrdPress.</p>"; $phpmailer->Body = $mailContent; if(!$phpmailer->send()){ echo 'Message could not be sent.'; echo 'Mailer Error: ' . $phpmailer->ErrorInfo; }else{ echo 'Message has been sent'; }
Enviar email a múltiples destinatarios
Añade el método addAddress() múltiples veces para enviar un email a varios destinatarios.
// Add multiple recipient $phpmailer->addAddress([email protected]'); $phpmailer->addAddress([email protected]'); $phpmailer->addAddress([email protected]');
Enviar un email utilizando el SMTP de Gmail en WordPress
Si deseas utilizar tu cuenta de Gmail para enviar emails en WordPress, debes realizar ciertos cambios en la configuración de tu cuenta de Google. Modifica tu cuenta de Google siguiendo estos sencillos pasos:
Inicia sesión con tu cuenta de Google
Ve a la página Mi cuenta. Haz clic en el enlace Inicio de sesión en Google en la sección Inicio de sesión y seguridad.
Baja hacia Contraseña y método de inicio de sesión y desactiva la Verificación en dos pasos
En el menú de la izquierda, haz clic en Aplicaciones y sitios conectados a tu cuenta y activa la opción de Permitir el acceso de aplicaciones menos seguras.
Ahora puedes utilizar tu cuenta de Gmail como servidor SMTP para enviar correos desde WordPress.
No olvides definir las credenciales de Gmail en el código:
// Gmail SMTP configuration $phpmailer->isSMTP(); $phpmailer->Host = 'smtp.gmail.com'; $phpmailer->SMTPAuth = true; $phpmailer->Username = [email protected]'; $phpmailer->Password = '********'; $phpmailer->SMTPSecure = 'tls'; $phpmailer->Port = 587;
Fuente: codexworld.com