Cómo enviar un correo electrónico desde un script PHP utilizando la autenticación SMTP

Tabla de contenido:

Cómo enviar un correo electrónico desde un script PHP utilizando la autenticación SMTP
Cómo enviar un correo electrónico desde un script PHP utilizando la autenticación SMTP
Anonim

Qué saber

  • Opciones de clase PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Tenga en cuenta el nombre del servidor de correo > verifique que PEAR Mail esté instalado > modifique el archivo PHP usando los ejemplos dados.

Este artículo explica cómo utilizar la autenticación SMTP para enviar correos electrónicos con la función PHP mail() en PEAR Mail.

Enviar correo electrónico con la función de correo de PHP

Cuando usas la función PHP mail(), terminas enviando correos electrónicos directamente desde tu servidor web en lugar de tu servidor de correo. Si tiene un servidor de correo a través de su proveedor de alojamiento web, o incluso un servidor de correo con un servidor diferente, normalmente es mejor enviar el correo a través de él.

El problema es que la función PHP mail() no proporciona ninguna forma integrada de enviar correo a través de SMTP. Si desea abrir esa funcionalidad, deberá instalar una clase de PHP adicional.

Estas son algunas opciones que funcionan:

  • Correo PHP
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • Correo PEAR

Le mostraremos cómo usar PEAR Mail, pero puede usar cualquier clase que admita SMTP.

Image
Image

Si su servidor web ya tiene una o más de estas clases instaladas, probablemente tenga tutoriales relacionados con su situación. Si es así, continúe y use la clase a la que tiene acceso.

Solo use este método si está usando PHP para crear sus propios formularios de correo personalizados. Si está utilizando un sistema de administración de contenido (CMS) como WordPress, busque un complemento o una función integrada para enviar correo a través de SMTP, en lugar de intentar crear uno propio.

Cómo utilizar PEAR para enviar correo a través de SMTP

  1. Asegúrese de que su dominio apunte a los registros de Mail Exchange (MX) de su servidor de correo y tome nota del nombre de su servidor de correo. Por ejemplo, puede ser mail.yourdomain.net o smtp.yourdomain.net.
  2. Compruebe si PEAR Mail ya está instalado en su servidor de correo.
  3. Si PEAR Mail no está instalado, consulte con su host de correo web para obtener instrucciones específicas para instalarlo.
  4. Una vez que PEAR Mail esté instalado, modifique uno de los archivos PHP de ejemplo en las siguientes secciones para que se ajuste a sus necesidades.

Ejemplo de script PHP de correo PEAR para correo SMTP

Puedes crear tu propio script desde cero si lo deseas, o modificar el siguiente ejemplo a tu gusto. Asegúrese de ingresar el nombre de su servidor de correo web en la variable host y use su información de inicio de sesión para su host de correo web en los campos de nombre de usuario y contraseña.

require_once "Mail.php";

$from="Nombre del remitente";

$to="Nombre del destinatario";

$asunto=" Línea de asunto aquí: ";

$body=" cualquier mensaje que desee ";

$host="yourmailhost.com";

$username="su nombre de usuario o correo electrónico"; $password="su contraseña";

$headers=array ('From'=> $from, 'To'=> $to, 'Subject'=> $asunto);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> verdadero, 'username'=> $username, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (PERA::isError($correo)) {

echo("

". $correo->getMessage()."

);

} más {echo("

¡Mensaje enviado correctamente!

);}

Ejemplo de secuencia de comandos PHP de PEAR Mail para autenticación SMTP y cifrado SSL

Si desea utilizar la autenticación SMTP y el cifrado SSL, deberá realizar algunas modificaciones al ejemplo anterior. Deberá apuntar la variable de host a su servidor de correo SSL y también especificar un número de puerto como 25, 465, 587, 2525 o 8025. Comuníquese con su host de correo web para obtener más información si no puede averiguar qué puerto uso.

require_once "Mail.php";

$from="Nombre del remitente";

$to="Nombre del destinatario";

$asunto=" Línea de asunto aquí: ";

$cuerpo=" cualquier mensaje que desee ";

$host="ssl://yourmailhost.com";

$port="587"; $username="su nombre de usuario o correo electrónico";

$password="su contraseña";

$headers=array ('From'=> $from, ' Para'=> $para, 'Asunto'=> $asunto);

$smtp=Mail::factory('smtp', array('host'=> $host, 'puerto'=> $puerto, 'auth'=> verdadero, 'nombre de usuario'=> $nombre de usuario, 'contraseña'=> $contraseña));

$correo=$smtp->send($a, $encabezados, $cuerpo);

if (PEAR::isError($correo)) {

echo("

". $correo->getMessage()."

);

} más {echo("

¡Mensaje enviado correctamente!

);}

Recomendado: