Cómo enviar un correo electrónico usando PHP

Cómo enviar un correo electrónico usando PHP

Para cualquier sitio web, enviar un correo electrónico de PHP Script es un requisito muy común. Por ejemplo, si el sitio web contiene alguna opción de registro para el usuario, entonces se requiere un correo electrónico de confirmación para enviar al usuario para la verificación de correo electrónico. Puede enviar correos electrónicos usando PHP utilizando el PHP Función Mail () o cualquier biblioteca de PHP. Dos bibliotecas PHP utilizadas principalmente para enviar correo electrónico son PhPMailer y Swiftmailer. La forma de enviar un correo electrónico utilizando el Función Mail () fue discutido en otro tutorial. Los usos del Phpmailer La biblioteca para enviar correos electrónicos en PHP se ha demostrado en este tutorial.

Enviar un correo electrónico con PhPMailer:

Phpmailer es una biblioteca de clase muy útil que contiene una colección de funciones para enviar correo electrónico usando PHP. Puede enviar correos electrónicos de varias maneras desde el servidor local utilizando esta biblioteca. Ejecute el siguiente comando para instalar Phpmailer En el sistema operativo Ubuntu:

$ sudo apt-get install libphp-phpmailer

Prerrequisitos:

Debe tener una cuenta de Gmail para usar la instalación de envío de correo electrónico de Phpmailer. Después de instalar Phpmailer, tienes que habilitar la opción "Permitir aplicaciones menos seguras"De su cuenta de Gmail.

Diferentes ejemplos de envío de correo electrónico utilizando phpmailer:

Aquí están los siguientes usos del Phpmailer Biblioteca para enviar correo electrónico de diferentes maneras:

Ejemplo 1: Enviar correo electrónico de texto

El siguiente script muestra la forma de enviar un correo electrónico simple usando phpmailer. Este script asigna cuatro partes esenciales de cualquier correo electrónico (desde, sujeto, cuerpo). SetFrom y AddAddress Los métodos se utilizan para establecer direcciones de correo electrónico del remitente y receptor. Sujeto y cuerpo Las propiedades se utilizan para establecer el tema y el cuerpo del correo electrónico. Si el correo electrónico se envía correctamente, el mensaje de éxito se imprimirá, y si el correo electrónico no se envía, el mensaje de falla se imprimirá.

Requerir '/usr/share/php/libphp-phpmailer/src/phpmailer.php ';
Requerir '/usr/share/php/libphp-phpmailer/src/smtp.php ';
// Declarar el objeto de PhPMailer
$ correo electrónico = new PhpMailer \ PhPMailer \ PhpMailer ();
// Configurar la configuración necesaria para enviar correo electrónico
$ correo electrónico-> issmtp ();
$ correo electrónico-> smtpauth = true;
$ correo electrónico-> smtpsecure = 'ssl';
$ correo electrónico-> host = "smtp.gmail.com ";
$ correo electrónico-> puerto = 465;
// Establecer la dirección de Gmail que se utilizará para enviar correo electrónico
$ correo electrónico-> username = "[email protected] ";
// Establecer la contraseña válida para la dirección de Gmail
$ correo electrónico-> contraseña = "contraseña";
// Establecer la dirección de correo electrónico del remitente
$ correo electrónico-> setFrom ("[email protected] ");
// Establecer la dirección de correo electrónico del receptor
$ correo electrónico-> addAddress ("[email protected] ");
// Establecer el tema
$ correo electrónico-> tema = "ELECTRO DE PRUEBA";
// Establecer contenido de correo electrónico
$ correo electrónico-> body = "Hola! use PHPMailer para enviar correo electrónico con PHP ";
si(!$ correo electrónico-> send ())
Echo "Error:" . $ correo electrónico-> ErrorInfo;
demás
se ha enviado el correo electrónico "se ha enviado el correo electrónico.";

?>

Producción:

La siguiente salida aparecerá si el correo electrónico se ha enviado correctamente:


Si verifica la dirección de correo electrónico del receptor, se mostrará la siguiente salida similar:

Ejemplo 2: Envío de correo electrónico formateado HTML

Puede enviar un correo electrónico formateado HTML usando phpmailer. Tienes que usar ishtml () con verdadero Valor de parámetros para enviar un correo electrónico formateado HTML. Aquí, otro método Altbody () se usa para enviar contenido de correo electrónico como texto sin formato si el usuario no puede recibir el correo electrónico con contenido HTML.

Requerir '/usr/share/php/libphp-phpmailer/src/phpmailer.php ';
Requerir '/usr/share/php/libphp-phpmailer/src/smtp.php ';
// Declarar el objeto de PhPMailer
$ correo electrónico = new PhpMailer \ PhPMailer \ PhpMailer ();
// Configurar la configuración necesaria para enviar correo electrónico
$ correo electrónico-> issmtp ();
$ correo electrónico-> smtpauth = true;
$ correo electrónico-> smtpsecure = 'ssl';
$ correo electrónico-> host = "smtp.gmail.com ";
$ correo electrónico-> puerto = 465;
$ correo electrónico-> ishtml (verdadero);
// Establecer la dirección de Gmail que se utilizará para enviar correo electrónico
$ correo electrónico-> username = "[email protected] ";
// Establecer la contraseña válida para la dirección de Gmail
$ correo electrónico-> contraseña = "contraseña";
// Establecer la dirección de correo electrónico del remitente
$ correo electrónico-> setFrom ("[email protected] ");
// Establecer la dirección de correo electrónico del receptor
$ correo electrónico-> addAddress ("[email protected] ");
$ correo electrónico-> tema = 'Mensaje enviado por phpmailer';
$ correo electrónico-> cuerpo = '

Hola!

Estoy usando phpmailer para enviar correo electrónico

';
$ correo electrónico-> altbody = 'Este mensaje se genera por texto sin formato!';
$ correo electrónico-> ishtml (verdadero);
si(!$ correo electrónico-> send ())
Echo "Error:" . $ correo electrónico-> ErrorInfo;
demás
se ha enviado el correo electrónico "se ha enviado el correo electrónico.";

?>

Producción:

Si verifica la dirección de correo electrónico del receptor, se mostrará la siguiente salida formateada HTML:

Ejemplo 3: Enviar un correo electrónico adjuntando un archivo local

Muchos métodos están disponibles en Phpmailer clase para enviar contenido adjunto con el correo electrónico. Añadir un adjunto() El método es uno de ellos utilizado en el siguiente script. Este método tiene un parámetro obligatorio y tres parámetros opcionales.

addattachment ($ ruta, $ nombre, $ codificación, $ type); Requerir '/usr/share/php/libphp-phpmailer/src/phpmailer.php ';
Requerir '/usr/share/php/libphp-phpmailer/src/smtp.php ';
// Declarar el objeto de PhPMailer
$ correo electrónico = new PhpMailer \ PhPMailer \ PhpMailer ();
// Configurar la configuración necesaria para enviar correo electrónico
$ correo electrónico-> issmtp ();
$ correo electrónico-> smtpauth = true;
$ correo electrónico-> smtpsecure = 'ssl';
$ correo electrónico-> host = "smtp.gmail.com ";
$ correo electrónico-> puerto = 465;
$ correo electrónico-> ishtml (verdadero);
// Establecer la dirección de Gmail que se utilizará para enviar correo electrónico
$ correo electrónico-> username = "[email protected] ";
// Establecer la contraseña válida para la dirección de Gmail
$ correo electrónico-> contraseña = "contraseña";
// Establecer la dirección de correo electrónico del remitente
$ correo electrónico-> setFrom ("[email protected] ");
// Establecer la dirección de correo electrónico del receptor
$ correo electrónico-> addAddress ("[email protected] ");
$ correo electrónico-> addaddress ('[email protected] ');
$ correo electrónico-> tema = 'Mensaje enviado por phpmailer';
$ correo electrónico-> cuerpo = 'Hola! use phpmailer para enviar correo electrónico usando php ';
$ correo electrónico-> addattachment ('frutas.TXT');
si(!$ correo electrónico-> send ())
Echo "Error:" . $ correo electrónico-> ErrorInfo;
demás
se ha enviado el correo electrónico "se ha enviado el correo electrónico.";

?>

Producción:

Cuando verifica la dirección de correo electrónico del receptor, se mostrará el archivo adjunto si el archivo se adjunta correctamente con el correo electrónico como se muestra a continuación:

Ejemplo 4: Enviar un correo electrónico adjuntando un archivo remoto

Si desea adjuntar contenido desde una ubicación remota, puede usar el addStringAttachment () Método para este propósito. Este método tiene dos parámetros. El primer parámetro se usa para obtener contenido de una ubicación de URL particular, y el segundo parámetro se usa para establecer el nombre del archivo adjunto.

addStringAttachment (file_get_contents ($ url), 'nombre de archivo.pdf ');

En el siguiente script, la dirección de URL de un archivo de imagen se ha establecido en el primer parámetro y "mi archivo.JPG"Se ha establecido en el segundo parámetro de este método para establecer el nombre del archivo adjunto.

Requerir '/usr/share/php/libphp-phpmailer/src/phpmailer.php ';
Requerir '/usr/share/php/libphp-phpmailer/src/smtp.php ';
// Declarar el objeto de PhPMailer
$ correo electrónico = new PhpMailer \ PhPMailer \ PhpMailer ();
// Configurar la configuración necesaria para enviar correo electrónico
$ correo electrónico-> issmtp ();
$ correo electrónico-> smtpauth = true;
$ correo electrónico-> smtpsecure = 'ssl';
$ correo electrónico-> host = "smtp.gmail.com ";
$ correo electrónico-> puerto = 465;
$ correo electrónico-> ishtml (verdadero);
// Establecer la dirección de Gmail que se utilizará para enviar correo electrónico
$ correo electrónico-> username = "[email protected] ";
// Establecer la contraseña válida para la dirección de Gmail
$ correo electrónico-> contraseña = "contraseña";
// Establecer la dirección de correo electrónico del remitente
$ correo electrónico-> setFrom ("[email protected] ");
// Establecer la dirección de correo electrónico del receptor
$ correo electrónico-> addAddress ("[email protected] ");
$ correo electrónico-> addaddress ('[email protected] ');
$ correo electrónico-> tema = 'Mensaje enviado por phpmailer';
$ correo electrónico-> cuerpo = 'Hola! use phpmailer para enviar correo electrónico usando php ';
$ correo electrónico-> addStringattachment (file_get_contents ('http: // localhost/phpcode/flor.jpg '),' myfile.jpg ');
si(!$ correo electrónico-> send ())
Echo "Error:" . $ correo electrónico-> ErrorInfo;
demás
se ha enviado el correo electrónico "se ha enviado el correo electrónico.";

?>

Producción:

Cuando verifica la dirección de correo electrónico del receptor, se mostrará el archivo adjunto si el archivo se adjunta correctamente con el correo electrónico como se muestra a continuación:

Ejemplo 5: Enviar correo electrónico con un mensaje de depuración

La propiedad SMTPDEBUG de la clase PHPMailer se utiliza para habilitar la opción de depuración antes de enviar el correo electrónico. Después de ejecutar el script, el valor de esta propiedad se ha establecido en 1 en este script para mostrar el mensaje de depuración.

Requerir '/usr/share/php/libphp-phpmailer/src/phpmailer.php ';
Requerir '/usr/share/php/libphp-phpmailer/src/smtp.php ';
// Declarar el objeto de PhPMailer
$ correo electrónico = new PhpMailer \ PhPMailer \ PhpMailer ();
// Habilitar la salida de depuración
$ correo electrónico-> smtpdebug = 1;
// Configurar la configuración necesaria para enviar correo electrónico
$ correo electrónico-> issmtp ();
$ correo electrónico-> smtpauth = true;
$ correo electrónico-> smtpsecure = 'ssl';
$ correo electrónico-> host = "smtp.gmail.com ";
$ correo electrónico-> puerto = 465;
// Establecer la dirección de Gmail que se utilizará para enviar correo electrónico
$ correo electrónico-> username = "[email protected] ";
// Establecer la contraseña válida para la dirección de Gmail
$ correo electrónico-> contraseña = "contraseña";
// Establecer la dirección de correo electrónico del remitente
$ correo electrónico-> setFrom ("[email protected] ");
// Establecer la dirección de correo electrónico del receptor
$ correo electrónico-> addAddress ("[email protected] ");
// Establecer el tema
$ correo electrónico-> tema = "ELECTRO DE PRUEBA";
// Establecer contenido de correo electrónico
$ correo electrónico-> body = "Hola! use PHPMailer para enviar correo electrónico con PHP ";
si(!$ correo electrónico-> send ())
Echo "Error:" . $ correo electrónico-> ErrorInfo;
demás
se ha enviado el correo electrónico "se ha enviado el correo electrónico.";

?>

Ejemplo 6: Enviar un correo electrónico a múltiples direcciones

La forma de enviar un correo electrónico a múltiples direcciones de correo electrónico utilizando PhPMailer se ha mostrado en el siguiente script. El addCC () y addBCC () Los métodos de esta clase se han utilizado para enviar un correo electrónico a varios receptores a la vez.

Requerir '/usr/share/php/libphp-phpmailer/src/phpmailer.php ';
Requerir '/usr/share/php/libphp-phpmailer/src/smtp.php ';
// Declarar el objeto de PhPMailer
$ correo electrónico = new PhpMailer \ PhPMailer \ PhpMailer ();
// Configurar la configuración necesaria para enviar correo electrónico
$ correo electrónico-> issmtp ();
$ correo electrónico-> smtpauth = true;
$ correo electrónico-> smtpsecure = 'ssl';
$ correo electrónico-> host = "smtp.gmail.com ";
$ correo electrónico-> puerto = 465;
// Establecer la dirección de Gmail que se utilizará para enviar correo electrónico
$ correo electrónico-> username = "[email protected] ";
// Establecer la contraseña válida para la dirección de Gmail
$ correo electrónico-> contraseña = "contraseña";
// Establecer la dirección de correo electrónico del remitente
$ correo electrónico-> setFrom ("[email protected] ");
// Establecer las direcciones de correo electrónico del receptor
$ correo electrónico-> addaddress ('[email protected] ',' jafar iqbal ');
$ correo electrónico-> addaddress ('[email protected] ');
$ correo electrónico-> addrepreplyto ('[email protected] ');
$ correo electrónico-> addcc ('[email protected] ');
$ correo electrónico-> addbcc ('[email protected] ');
// Establecer el tema
$ correo electrónico-> tema = "ELECTRO DE PRUEBA";
// Establecer contenido de correo electrónico
$ correo electrónico-> body = "Hola! use PHPMailer para enviar correo electrónico con PHP ";
si(!$ correo electrónico-> send ())
Echo "Error:" . $ correo electrónico-> ErrorInfo;
demás
se ha enviado el correo electrónico "se ha enviado el correo electrónico.";

?>

Producción:

Si verifica la dirección de correo electrónico del receptor, se mostrará la siguiente información:

Conclusión:

La mayoría de las opciones de envío de correo electrónico utilizando la biblioteca PhPmailer se discutieron en este tutorial. Además, se proporcionaron varios ejemplos para ayudar a los usuarios de PHP a aprender el proceso de enviar correos electrónicos fácilmente mediante el uso de esta biblioteca de diferentes maneras. Esperamos que hayas encontrado este artículo útil. Consulte los otros artículos de Sugerencia de Linux para obtener más consejos e información.