Cómo enviar correo electrónico usando PHP

PHP
By bhagwatchouhan
Cómo enviar correo electrónico usando PHP

El correo electrónico es uno de los factores más importantes para tener una comunicación empresarial eficaz. También se pueden utilizar correos electrónicos para organizar campañas de marketing para llegar a la audiencia adecuada. Aparte de estos usos, existen otros beneficios de utilizar el correo electrónico como canal de comunicación, incluido el mantenimiento de un registro de todos los mensajes.

En este tutorial, discutiremos los parámetros involucrados en el envío de un correo electrónico y las posibles formas de enviar un correo electrónico usando PHP.

 

Conceptos básicos del correo electrónico

En esta sección se explican los conceptos básicos del envío de un correo electrónico y se explican los parámetros involucrados. Podemos incluir los parámetros que se enumeran a continuación al enviar un correo electrónico.

Desde- El campo obligatorio para especificar la dirección de correo electrónico del remitente. Debe ser una dirección de correo electrónico válida para enviar un correo electrónico.

Responder a- Es un parámetro opcional para aceptar respuestas por correo electrónico. La dirección de correo electrónico del remitente se utilizará para enviar respuestas si no se especifica.

A- Es el parámetro más importante y obligatorio para enviar un correo electrónico. Podemos incluir direcciones de correo electrónico de destinatarios únicos o múltiples para enviar un correo electrónico a destinatarios únicos o múltiples.

// To - Format - RFC 2822 - Single Receipient
Receipient Name <Receipient Email>
// OR Receipient Email
// To - Format - RFC 2822 - Multiple Receipient Receipient 1 Name <Receipient 1 Email>, Receipient 2 Name <Receipient 2 Email> , Receipient 3 Name <Receipient 3 Email>
// OR Receipient 1 Email, Receipient 2 Email
// OR Receipient 1 Name <Receipient 1 Email>, Receipient 2 Email

Cc - Copia al carbón - Similar a A, podemos especificar uno o varios destinatarios para recibir una copia del correo electrónico para mantenerlos informados sobre la comunicación.

CCO - Copia al carbón en blanco - También podemos involucrar a destinatarios que recibirán una copia del correo electrónico sin mencionarlos a los destinatarios involucrados en la lista Para y CC. Los destinatarios involucrados en la lista Para y CC nunca sabrán que el mismo correo electrónico también se envía a los destinatarios mencionados en el parámetro CCO.

Asunto - Aunque no es un campo obligatorio, se debe incluir el asunto para informar a los destinatarios sobre el contenido del correo electrónico. Un tema breve y descriptivo puede informar al destinatario sobre el contexto de la comunicación.

El asunto puede tener varias líneas separadas por un CRLF (\r\n). Cada línea no debe tener más de 70 caracteres.

Mensaje - El mensaje real que se enviará a los destinatarios mencionados en los parámetros Para, CC y CCO. Aunque podemos enviar un correo electrónico sin mensaje, no es la forma preferida de enviar un correo electrónico.

 

Enviar correo electrónico usando la función mail()

Podemos usar el PHP función mail() para enviar un correo electrónico como se muestra a continuación. Espera que el servidor de correo apropiado esté instalado en el sistema escuchando en el puerto 25 para enviar el correo electrónico o PHP está configurado para utilizar un servidor SMTP.

Además, asegúrese de que los campos estén validados y desinfectados antes de pasarlos a la función mail() para evitar errores.

// Mail Function
$from = "<sender address>";
$to = "<recipient addresses>";
$subject = "<email subject>";
$message = "<email message>";
$headers = "<headers including From, Reply-To, CC, BCC>";
$parameters = null;
mail( $to, $subject, $message, $headers, $parameters );
// Example $from = "nick.douglas@example.com"; $replyTo = "nick.douglas@example.com"; $to = "john.dick@example.com"; $cc = "ricky.singh@example.com"; $bcc = "roy.kumar@example.com"; $subject = "Hello Guest"; $message = "Thanks for joining us."; $headers = [ "From: $from", "Reply-To: $replyTo", "Cc: $cc", "Bcc: $bcc" ];
mail( $to, $subject, $message, implode( '\r\n', $headers ) ); // OR - PHP 7.2.0 or greater mail( $to, $subject, $message, $headers );

Esta es la forma más sencilla de enviar un correo electrónico utilizando PHP.

La función de correo arrojará un error, en caso de que no encuentre un servidor de correo o PHP no está configurado para utilizar un servidor SMTP.

En ausencia de un servidor de correo electrónico o una configuración SMTP, el error debería verse como el que se muestra a continuación.

PHP Warning:  mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\PracticePHP\email.php on line 11
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\PracticePHP\email.php on line 11
PHP Stack trace: PHP 1. {main}() E:\PracticePHP\email.php:0 PHP 2. mail() E:\PracticePHP\email.php:11
Call Stack: 0.0078 398696 1. {main}() E:\PracticePHP\email.php:0 0.0090 399464 2. mail() E:\PracticePHP\email.php:11
Done.

 

Configurar PHP para usar el servidor SMTP

En caso de que el servidor de correo electrónico no esté instalado en el sistema o esté instalado en un sistema diferente, deberá configurar PHP utilizar un servidor SMTP. El phpEl archivo .ini debe actualizarse para configurar un servidor SMTP. Puede agregar/modificar las configuraciones que se enumeran a continuación para configurar el servidor SMTP.

; must have
SMTP = <server host>
smtp_port = 25
; optional - required in case server requires authentication auth_username = <username> auth_password = <password>

Host SMTP - Actualice la configuración SMTP para especificar el host del servidor. Debe ser un servidor válido que tenga un servidor de correo instalado.

Puerto SMTP - El puerto predeterminado para enviar correo vía SMTP es el 25. Los puertos 587 (MSA) o 465 (SMTP) se pueden utilizar para enviar correos electrónicos de forma segura.

Nombre de usuario de autenticación - El nombre de usuario requerido para identificar al usuario válido.

Contraseña de autenticación - La contraseña requerida para autenticar al usuario.

Después de aplicar las configuraciones mencionadas anteriormente, reinicie el servidor web. Si los detalles proporcionados son correctos, podemos enviar correos electrónicos utilizando la función mail() de PHP con la configuración adecuada del servidor de correo. De esta forma podremos enviar correos electrónicos sin instalar nuestro servidor de correo electrónico.

En caso de que esté utilizando los puertos seguros 587 o 465, es posible que obtenga un error en caso de que el módulo OpenSSL no esté habilitado para PHP. Se puede hacer en Windows Siguendolo Cómo configurar PHP Módulo OpenSSL activado Windows.

También necesita instalar y configurar Sendmail en windows sistemas. puedes seguir Cómo utilizar Sendmail en Windows Para enviar correo electrónico usando PHP para configurar Sendmail en Windows.

 

Configuración de servicios estándar

También puede utilizar los servicios de correo electrónico estándar, incluidos gmail, yahooy Outlook enviar un correo electrónico. A continuación se enumeran las configuraciones que se aplicarán a su php. Inicial archivo para enviar correos electrónicos usando Gmail, Yahoo o Outlook como se menciona a continuación.

; Gmail configurations
SMTP = smtp.gmail.com
; You can also specify port 587 smtp_port = 465
auth_username = <Gmail username> auth_password = <Gmail password>

; Yahoo configurations SMTP = smtp.mail.yahoo.com smtp_port = 465 auth_username = <Yahoo username> auth_password = <Yahoo password>
; Outlook configurations SMTP = smtp.live.com smtp_port = 465 auth_username = <Outlook username> auth_password = <Outlook password>

Debe tener especial cuidado al enviar correos electrónicos utilizando cuentas gratuitas, ya que existen limitaciones al enviar correos electrónicos utilizando estos servicios. Estos servicios pueden bloquear su cuenta en caso de que exceda el límite especificado, por lo tanto, evite el uso de cuentas de correo electrónico personales.

Gmail limita a un máximo de 100 destinatarios a la vez con un límite de 500 mensajes por día. Del mismo modo, Yahoo también aplica un límite de 100 destinatarios y 500 mensajes por día.

Es posible que también tengas que mantener desactivada la verificación en dos pasos si la estás utilizando.

Además, puedes seguir Cómo utilizar Sendmail en Windows Para enviar correo electrónico usando PHP para configurar Sendmail en Windows.

 

Enviar correo electrónico usando PHPCorreo y SwiftMailer

También podemos enviar correos electrónicos utilizando las bibliotecas estándar disponibles en PHP. Las más populares entre estas bibliotecas son PHPCorreo y SwiftMailer.

 

Resum

En este tutorial, hemos analizado los parámetros a considerar al enviar un correo electrónico. También mencioné las diferentes formas de enviar un correo electrónico con y sin el servidor SMTP. Puedes seguir los tutoriales. Enviar correo electrónico usando PHPRemitente y Enviar correo electrónico usando Swift Mailer para enviar correos electrónicos utilizando estas bibliotecas.

También puede publicar sus comentarios para unirse a la discusión. Los otros tutoriales relevantes para PHP incluye Enviar correo electrónico usando PHPRemitente, Enviar correo electrónico usando Swift Mailer, Cómo utilizar Sendmail en Windows Para enviar correo electrónico usando PHP, Cómo configurar PHP Módulo OpenSSL activado Windows, Cómo instalar XAMPP en Windows, Cómo instalar WampServer en Windows, Cómo instalar PHP 7 En Ubuntu 18.04 LTSy Cómo instalar PHP 7 encendido Windows.

Comparte este blog:

Foto de perfil del usuario bhagwatchouhan
bhagwatchouhan