Como enviar un mail con php
4.9 (98.18%) 11 votos

Hola! Espero que te encuentres de maravilla, el día de hoy aprenderemos como enviar un mail con php, si actualmente te encuentras desarrollando algún sitio web que incluye un área de contacto o algún sistema que deba emitir notificaciones una buena idea es hacerlo mediante un e-mail.

Pero ¿cómo lo podemos hacer? Actualmente existen algunas librerías que te permiten hacer esto, yo te mostraré como hacerlo con la forma nativa de php.

Para iniciar crearemos un formulario básico en html que permite capturar algunos datos y enviarlos a un archivo php que se encargara del resto.

También veremos que se puede incluir código html y css dentro del contenido de nuestro mail para darle un mejor estilo.

Continua leyendo y aprende como enviar un mail con php.

Formulario HTML

Lo que tenemos es una simple estructura html con un pequeño formulario que permite capturar algunos datos y posterior a ello los envía a un archivo php.

Para iniciar dentro del form solicitamos algunos datos como nombre, apellidos y correo cada uno con su respectivo name que ocuparemos para atrapar el valor desde php, por último le indicamos en el action que mande los datos capturados al archivo sendMail.php por el metodo POST.

<!DOCTYPE html>
<html>
  <head>
    <title>Enviar mail con php</title>
  </head>
  <body>
  	<form  action="sendMail.php" method="POST">
  		<label>Nombre:</label><br>
  		<input type="text" name="nombre"><br>
  		Apellido Paterno:<br>
  		<input type="text" name="apaterno"><br>
  		Apellido Materno:<br>
  		<input type="text" name="amaterno"><br>
  		Correo:<br>
  		<input type="mail" name="correo"><br>
  		<input type="submit" value="Enviar">
  	</form>
  </body>
</html>

Código PHP

Para iniciar recibiremos los valores enviados desde el formulario.html, es importante referenciarlos con el mismo name definido en el formulario.

La siguiente linea ini_set(‘sendmail_from’, ‘contacto@correo.com’) sirve para cambiar la configuración del archivo php.ini y especificar de que cuenta saldrán los correos, para mas información de como cambiar las configuraciones por medio de ini_set puedes checar la documentación del método ini_set.

A continuación declaramos un par de variables, $asunto y $para:

$asunto : Definimos el asunto que se mostrara al recibir el e-mail, en este ejemplo lo declaramos como “Correo Enviado con PHP”.

$para : Le asignamos el valor de la variable $correo que recibimos al inicio y que contiene el correo electrónico al que se enviara el mail.

Enseguida creamos la estructura del contenido de nuestro correo, para lo cual declaramos la variable $contenido, dentro de esta variable podemos incluir código html y css, así mismo incluimos las variables que recibimos en un principio para enviarlas desde nuestro mail.

Algo muy importante en este punto es que todo los que incluyamos dentro de la variable $contenido debe estar entre comillas dobles, de lo contrario php no procesara las variables y las tomara como un simple texto.

En la variable $cabecera especificamos algunos valores como el correo del cual se envió el mail, si deseamos podemos incluir una copia oculta y finalmente especificamos que enviaremos texto tipo html (Content-type: text/html).

Para finalizar mandamos llamar la función mail  y le enviamos los valores almacenados en: $para, $asunto, $contenido y $cabecera, el resultado lo guardamos en la variable $resultado y dependiendo de lo que obtengamos mostramos un valor de éxito o error en la pantalla.

<?php

$nombre = $_POST['nombre'];
$apaterno = $_POST['apaterno'];
$amaterno = $_POST['amaterno'];
$correo = $_POST['correo'];

  ini_set('sendmail_from', 'contacto@correo.com');

    //Asunto
   $asunto = "Correo Enviado con PHP";

   //Correo del destinatario
   $para = $correo; 

   //Cuerpo
   $contenido = "	<html>
            <center><body>
              <div style='background-color:#B7D6D1;'>
                <img src='https://denisseestrada.com/images/logo.png' href='http://misitio.com' alt='Denisse Estrada'/>
              </div>";

   $contenido .= "<p>Hola <span style='color : #B7D6D1; font-weight : bold;'>".$nombre."!</span><br><br>
            Tus datos de registro son:<br>
            Nombre: ".$nombre."<br>
            Apellido Paterno: ".$apaterno."<br>
            Apellido Materno: ".$amaterno."<br>
            Correo: ".$correo."<br><br>
            <small style='color : #FEC8D6;'>Este email fue enviado con php</small></p>
            </body></center>
            </html>";

   //Cabecera
   $cabecera = "From: 'Denisse Estrada'<contacto@correo.com>\r\n"; //Remitente
     $cabecera .= "Bcc: contacto@gmail.com\r\n"; //Copia oculta
   $cabecera .= "Content-type: text/html; charset=UTF-8\r\n";
                 
   // Enviar mail
  $resultado= mail($para, $asunto, $contenido, $cabecera);
  if($resultado){
                echo "El mail ha sido enviado correctamente";
    
  }else{
    echo "Ocurrió un problema al enviar el mail, intenta mas tarde por favor";
  }
?>

Resultado

Finalmente llegara a nuestra bandeja de entrada un mail con la estructura y contenido que definimos en el archivo php como el que se muestra a continuación:

Como enviar un mail con php

De esta manera concluimos con este pequeño articulo para aprender como enviar un mail con php, espero que te sea de gran ayuda, en futuras entradas estaremos aprendiendo como incluir plantillas html mas elaboradas al enviar nuestros correos desde php.

Un abrazo 🙂

Leave a Comment