Cómo enviar correos electrónicos usando la función PHP mail()

Enviar correos electrónicos desde PHPdesde scripts PHP.

Cómo enviar correos electrónicos con la función PHP mail()

En esta entrada aprenderemos cómo enviar correos electrónicos utilizando la función mail().

la funciòn mail() es una función PHP integrada que se usa para enviar correos electrónicos  desde scripts PHP

La función mail() acepta los siguientes parámetros;

  • Dirección de correo electrónico.
  • Tema
  • Mensaje
  • Direcciones de correo electrónico CC o BC
  • Es una forma rentable de notificar a los usuarios sobre eventos importantes.
  • Permite que los usuarios se comuniquen con usted por correo electrónico al proporcionarnos un formulario de contacto en el sitio web que envía por correo electrónico el contenido proporcionado.
  • Los desarrolladores pueden usarlo para recibir errores del sistema por correo electrónico
  • Puede usarlo para enviar por correo electrónico a sus suscriptores del boletín.
  • También sirve para enviar enlaces de restablecimiento de contraseña a usuarios que olvidan sus contraseñas
  • Es necesario para enviar enlaces de activación / confirmación por correo electrónico. Esto es útil al registrar usuarios y verificar sus direcciones de correo electrónico

 

¿Por qué y cuándo usar mail() PHP?

 

La función de correo mail() tiene la siguiente síntaxis básica:

<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>

 

  • «$to_email_address» es la dirección de correo electrónico del destinatario del correo
  • «$subject» es el asunto del correo electrónico
  • «$message» es el mensaje que se enviará.
  • «[$headers]» es opcional, se puede usar para incluir información como CC, BCC
    • CC es el acrónimo de copia al carbón. Se utiliza cuando desea enviar una copia a una persona interesada, es decir, un correo electrónico de queja enviado a una empresa también se puede enviar como CC a la junta de quejas.
    • BCC es el acrónimo de copia oculta al carbón. Es similar a CC. Las direcciones de correo electrónico incluidas en la sección BCC no se mostrarán a los otros destinatarios.

 

Protocolo simple de transmisión de correo (SMTP)

El programa de correo PHP utiliza el Protocolo simple de transmisión de correo (SMTP) para enviar correo.

En un servidor alojado, la configuración SMTP ya se habría establecido.

La configuración de correo SMTP se puede configurar desde el archivo «php.ini» en la carpeta de instalación de PHP.

Configurar los ajustes SMTP en su host local. Suponiendo que está usando xampp en Windows, ubique el «php.ini» en el directorio «C: \ xampp \ php».

  • Ábralo usando el bloc de notas o cualquier editor de texto. Usaremos el bloc de notas en este ejemplo. Haga clic en el menú de edición.
  • Escriba la búsqueda «mail_function» y haga clic en el menú Buscar …
  • Aparecerá el menú de diálogo de búsqueda.
  • Haga clic en el botón Buscar siguiente

Localiza las entradas

  • [mail function]
  • ; XAMPP: no elimine la semi columna si desea trabajar con un servidor SMTP como Mercury
  • ; SMTP = localhost
  • ; smtp_port = 25
  • Elimine los punto y coma antes de SMTP y smtp_port y configure el SMTP en su servidor smtp y el puerto en su puerto smtp. Su configuración debe verse de la siguiente manera
    • SMTP = smtp.example.com
    • smtp_port = 25
    • Tenga en cuenta que la configuración SMTP se puede obtener de sus proveedores de alojamiento web.
    • Si el servidor requiere autenticación, agregue las siguientes líneas.
      • auth_username =  ex_user@example.com
      • auth_password = ex_pass
      • Guarda los nuevos cambios.
      • Reinicie el servidor Apache .

Ejemplo de correo con mail()

Veamos ahora un ejemplo que envía un correo simple.

<?php     
$to_email = 'name@company.com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail function';
$headers = 'From: noreply@company.com';
mail($to_email,$subject,$message,$headers);
?>

Y éste es el email que recibiremos:

Email recibido desde PHP mail()

Nota: el ejemplo anterior solo toma los 4 parámetros obligatorios.

Debe reemplazar la dirección de correo electrónico ficticia anterior con una dirección de correo electrónico real.

 

Saneando y validadando las entradas de usuario de correo electrónico.

El ejemplo anterior utiliza valores codificados en el código fuente para la dirección de correo electrónico y otros detalles para simplificar.

Supongamos que tiene que crear un formulario de contacto para que los usuarios completen los detalles y luego los envíen.

  • Los usuarios pueden inyectar accidentalmente o intencionalmente código en los encabezados, lo que puede provocar el envío de correo no deseado
  • Para proteger su sistema de tales ataques, puede crear una función personalizada que desinfecte y valide los valores antes de enviar el correo.

Creemos una función personalizada que valide y desinfecte la dirección de correo electrónico utilizando la función incorporada filter_var.

Función filter_var La función filter_var se utiliza para desinfectar y validar los datos de entrada del usuario.

Tiene la siguiente sintaxis básica.

<?php
filter_var($field, SANITIZATION TYPE);
?>

 

  • «filter_var (…)» es la función de validación y desinfección
  • «$field» es el valor del campo a filtrar.
  • «TIPO DE SANITIZACIÓN» es el tipo de desinfección que se realizará en el campo, como;
    • FILTER_VALIDATE_EMAIL : devuelve verdadero para direcciones de correo electrónico válidas y falso para direcciones de correo electrónico no válidas.
    • FILTER_SANITIZE_EMAIL : elimina los caracteres ilegales de las direcciones de correo electrónico. info\@miweb.(com) devuelve «info@miweb.com». Necesita activar JavaScript para visualizarla. .
    • FILTER_SANITIZE_URL : elimina los caracteres ilegales de las URL. http: //www.example@.comé devuelve> http: //www.example@.com
    • FILTER_SANITIZE_STRING : elimina las etiquetas de los valores de cadena.  ‘ <b>negrita</b>‘ se convierte en ‘negrita‘.

El siguiente código implementa utiliza una función personalizada para enviar correo seguro.

<?php 
function sanitize_my_email($field) {
    $field = filter_var($field, FILTER_SANITIZE_EMAIL);
    if (filter_var($field, FILTER_VALIDATE_EMAIL)) {
        return true;
    } else {
        return false;
    }
}
$to_email = 'name@company.com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail ';
$headers = 'From: noreply@company.com';
//check if the email address is invalid $secure_check
$secure_check = sanitize_my_email($to_email);
if ($secure_check == false) {
    echo "Invalid input";
} else { //send email 
    mail($to_email, $subject, $message, $headers);
    echo "This email is sent using PHP Mail";
}
?>

Correo seguro

  • Los correos electrónicos pueden ser interceptados durante la transmisión por destinatarios no deseados.
  • Esto puede exponer el contenido del correo electrónico a destinatarios no deseados.
  • El correo seguro resuelve este problema transmitiendo correos electrónicos a través del Protocolo de transferencia de hipertexto seguro (HTTPS).
  • HTTPS cifra los mensajes antes de enviarlos.

Resumen

  • La función PHP incorporada mail() se usa para enviar correo desde scripts PHP
  • Las verificaciones de validación y desinfección de los datos son esenciales para enviar correo seguro.
  • La función integrada de PHP filter_var () proporciona una manera fácil de usar y eficiente de realizar la desinfección y validación de datos

 

Y con ésto, ya puedes empezar a enviar emails desde tu aplicación PHP. Espero que te sea de utilidad.

Hasta el próximo post!! Y no dudes en compartir o comentar si tienes alguna duda.

 

 

 

 

Compartir esta entrada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

CAPTCHA ImageChange Image