Cómo enviar correo electrónico mediante la función mail() de PHP

¿Qué es el correo PHP?

PHP mail es la función incorporada de PHP que se utiliza para enviar correos electrónicos desde scripts PHP.

La función de correo acepta los siguientes parámetros:

  • 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.
  • Permita que los usuarios se comuniquen con usted por correo electrónico proporcionando 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 correos electrónicos a los suscriptores de su boletín informativo.
  • Puede usarlo para enviar enlaces de restablecimiento de contraseña a los usuarios que olvidan sus contraseñas.
  • Puede usarlo para enviar por correo electrónico enlaces de activación o confirmación. Esto resulta útil para registrar usuarios y verificar sus direcciones de correo electrónico.

¿Por qué/cuándo utilizar el correo PHP?

Envío de correo electrónico mediante PHP

La función de correo PHP tiene la siguiente sintaxis básica

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

AQUÍ,

  • “$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 a enviar.
  • “[$headers]” es opcional, se puede utilizar para incluir información como CC, BCC

    • CC es el acrónimo de copia al carbón. Se utiliza cuando se 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 copia al tablón de quejas.
    • BCC es el acrónimo de copia oculta. Es similar a CC. Las direcciones de correo electrónico incluidas en la sección CCO no se mostrarán a los demás destinatarios.

Fácil Mail Transmission Protocolo (SMTP)

El correo PHP utiliza Simple Mail Transmission Protocolo (SMTP) para enviar correo.

En un servidor alojado, la configuración SMTP ya estaría configurada.

La configuración del 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 “php.ini” en el directorio “C:\xampp\php”.

  • Ábrelo usando el bloc de notas o cualquier editor de texto. Usaremos el bloc de notas en este ejemplo. Haga clic en el menú editar

Fácil Mail Transmission Protocolo

  • Haga clic en el menú Buscar...

Fácil Mail Transmission Protocolo

  • Aparecerá el menú de diálogo de búsqueda.

Fácil Mail Transmission Protocolo

  • Haga clic en el botón Buscar siguiente

Fácil Mail Transmission Protocolo

  • Localiza las entradas

    • [función de correo]
    • ; XAMPP: No elimine la semicolumna si desea trabajar con un servidor SMTP como Mercury
    • ; SMTP = servidor local
    • ; puerto_smtp = 25
    • Elimine los puntos y coma antes de SMTP y smtp_port y configure SMTP en su servidor smtp y el puerto a su puerto smtp. Su configuración debería verse de la siguiente manera

      • SMTP = smtp.ejemplo.com
      • puerto_smtp = 25
      • Nota La configuración SMTP se puede obtener de sus proveedores de alojamiento web.
      • Si el servidor requiere autenticación, agregue las siguientes líneas.

        • nombre_usuario_autenticación = nombre_usuario_ejemplo@ejemplo.com
        • contraseña_autenticación = contraseña_ejemplo
        • Guarde los nuevos cambios.
        • Reanudar APACHE servidor.

PHP Mail Ejemplo

Veamos ahora un ejemplo que envía un correo electrónico sencillo.

<?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);
?>

Salida:

Fácil Mail Transmission Protocolo

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

Debes reemplazar la dirección de correo electrónico ficticia anterior por una dirección de correo electrónico real.

Desinfección de entradas de correo electrónico de los usuarios

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 lo envíen.

  • Los usuarios pueden inyectar accidental o intencionalmente código en los encabezados, lo que puede resultar en el envío de correo no deseado.
  • Para proteger su sistema de este tipo de 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);
?>

AQUÍ,

  • “filter_var(…)” es la función de validación y desinfección
  • “$campo” es el valor del campo a filtrar.
  • “TIPO DE SANITIZACIÓN” es el tipo de sanitización que se realizará en el campo como por ejemplo;

    • FILTRO_VALIDAR_CORREO_ELECTRÓNICO – devuelve verdadero para direcciones de correo electrónico válidas y falso para direcciones de correo electrónico no válidas.
    • FILTRO_DESINFECTAR_CORREO_ELECTRÓNICO – elimina caracteres ilegales de las direcciones de correo electrónico. info\@dominio.(com) devuelve info@dominio.com.
    • FILTER_SANITIZE_URL – elimina caracteres ilegales de las URL. http://www.ejemplo@.comé devuelve >http://www.ejemplo@.com
    • FILTER_SANITIZE_STRING – elimina etiquetas de valores de cadena. estoy en negrita se convierte en estoy en negrita.

El código siguiente implementa el uso de 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";
}
?>

Salida:

Desinfección de entradas de correo electrónico de los usuarios

Seguro Mail

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.

Resum

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