This course will become read-only in the near future. Tell us at community.p2pu.org if that is a problem.

Envía el correo!



Ahora vamos a agregarle el icing al dulce. Cuando los 3 campos tengan valor, queremos que se le envíe un correo al administrador de la página (o sea tú). Para esto usaremos la función mail(). Ya tenemos todos los elementos que necesitamos así que veamos un ejemplo de como hacer esto:

<html>
<head>
    <meta charset="utf-8">
</head>

<body>
    <?php
        $nombre = "John Snow";
        $email = "jsnow@gmail.com";
        $mensaje = "Probando el formulario de contacto";
        
        $para = "tuEmail@gmail.com";
        $subject = "Email enviado por el formulario de contacto";
        $encabezados = "From: $nombre <$email>";
        $respuesta = mail($para, $subject, $mensaje, $encabezados);

        if ( $respuesta == true) {
            echo 'El email se envió exitosamente';
        }
        else {
            echo 'Hubo un problema en el envío del mensaje';
        }
    ?>
</body>
</html>


Analicemos el ejemplo:

  • Le pasamos 4 parámetros a la función mail(), los cuales son: $para, $subject, $mensaje, $encabezados.
    • El orden en el que adicionamos los parámetros es importante (como en todas las funciones).
    • No es importante que sepas como la función manda el correo, basta con entender que son cada uno de los parámetros.
  • La función mail(), además de enviar un correo, devuelve como resultado un true si todo se realizó correctamente (esto no signfica que el email llegará a su destino) y un false si hubo algún error.
  • Le asignamos la respuesta de mail() a la variable $respuesta y es por esto que podemos hacer la comparación ($respuesta == true).


OJO: La función mail() solo enviará un email si el servidor está configurado para enviar email. Si estas utilizando un servidor local muy probablemente no estará configurado para enviar emails, pero si subes tu página a un servidor web probablemente si enviará el email.

Aun así puedes probar el código, si no hay ningún error la respuesta de mail() seguirá siendo true, aunque no haya enviado un email realmente. También es normal que tu servidor local demore un poco en darte una respuesta.

Para completar esta tarea:

  1. Modifica el código de receptor.php para que envíe emails.
  2. Personaliza el "subject" y el "para" de los emails que se mandan.
  3. Recuerda que el envío de correo solo se debe dar si no hubo ningún error en el nombre, email o mensaje. Si hubo un error se debe devolver a formulario.php.
  4. Recuerda que en el ejemplo utilizamos valores estáticos para el nombre, email y mensaje; no es necesario que hagas eso, ya que tienes los valores que te envió el formulario.
  5. Cuando termines, además de haber terminado este reto =D, tu código en receptor.php se debe ver como este.
    • Tu formulario de contacto terminado debe funcionar así.
  6. Por último, implementa un formulario de contacto en tu propia página web!


Te recomendamos:

Task Discussion