Saltar al contenido
Codifíca.me | Desarrollo web | Programación
Php

Enviar un email con PHP

31 enero, 2012

Como enviar un email con PHP

En este artículo explicamos cómo enviar un email utilizando PHP, concretamente vamos a enviar los datos que obtenemos de un cliente a un archivo.php que enviará un email al destinatario que hayamos puesto.

Supongamos que tenemos un formulario en el cual el cliente rellena ciertos campos de interés, después de las validaciones necesarias llegamos al paso del envió del email. Para realizar el envió de datos al servidor tenemos que utilizar Ajax (haz click para ver el código y la explicación), si utilizas JQuery puedes simplificar el código utilizando este sencillo método:

$.get(“enviar_email.php”, { nombre: “nombre”, direccion: “direccion”, ciudad: “ciudad” } );

Es necesario poner la ruta del PHP al que vais a llamar (en este ejemplo enviar_email.php), y los parámetros que le queréis enviar (por ejemplo nombre: “nombre”, direccion: “direccion”, ciudad: “ciudad”).

Por último, el código que tiene que tener el archivo.php al que vais a llamar debe ser parecido a este:
archivo.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>
 
<body>
 
<? 
$destino = "prueba@gmail.com"; 
$asunto = "LA EMPRESA"; 
 
 
$nombre=$_REQUEST["nombre"];
$email = $_REQUEST["email"];
$ciudad = $_REQUEST["ciudad"];
$direccion = $_REQUEST["direccion"];
$codigopostal = $_REQUEST["codigopostal"];
$pago = $_REQUEST["pago"];
$envio = $_REQUEST["envio"];
 
 
$cuerpo = " 
 
<html> 
<head> 
<title>Prueba de correo</title>
</head> 
<body> 
<h1>Titulo del email</h1> 
El slogan de la tienda .... 
<p> 
<b>Gracias por su interés en nuestro producto</b>. Su pedido sera enviado en 5 días hábiles.
</p> 
<p>
<h2><strong> $nombre </strong></h2>
</p>Correo Electrónico: $email
<p>$direccion</p>
<p>$codigopostal, $ciudad</p>
<p>Método de Envío:
</p>
$envio
<p>Método de Pago:
</p>
$pago
<p>Ahora sólo le queda un paso para poder terminar el proceso de compra</p>
<p>Al haber seleccionado su pago con Tarjeta de Crédito simplemente tiene que ir a la dirección que le aparece justo debajo y proceder al pago.</p>
<p><a href='http://www.paycreditcard.com' target='_blank'>http://www.paybycreditcard.com</a></p>
<p>Una vez confirmado el pago, su pedido lo recibirá en su domicilio. </p>
<p>Para cualquier duda o consulta, contacta con nuestro departamento de Atención al Cliente llamando al xxx xxx xxx o envíenos un email a la dirección <a href='mailto:support@prueba.itya.com'>support@prueba.cona.com</a></p>
<table width='877' border='1'>
  <tr>
    <td width='867' bgcolor='#CCCCCC'><strong>Dirección de Facturación</strong></td>
  </tr>
  <tr>
    <td><h3><strong>$nombre  </strong></h3>
</p>
Correo Electrónico: $email
<p>$direccion</p>
<p>$codigopostal, $ciudad</p></td>
  </tr>
</table>
</body> 
</html> 
"; 
 
// Cabeceras para el envío en formato HTML 
$headers = "
MIME-Version: 1.0 \r\n
Content-type: text/html; charset=iso-8859-1\r\n
From: Email de <no_reply@prueba.nomb.com>\r\n "; 
 
mail($destinatario,$asunto,$cuerpo,$headers) ;
?>
 
</body>
</html>

Personalización del email

La variable $destino puede tener más destinos separados por comas “uno@gmail.com, dos@gmail.com”

Se queremos que la dirección a la que respondan sea diferente de la dirección del remitente añadiremos a la cabecera la siguiente línea:

“Reply-To: no_reply@prueba.nomb.com\r\n”;

Si queremos enviar copias a otras direcciones añadiremos a la cabecera esta linea:

“Cc: no_reply@prueba.nomb.com\r\n”;

Si queremos añadir copias ocultas del mensaje tendremos que añadir esta linea a la cabecera.

“Bcc: no_reply@prueba.nomb.com,no_reply@prueba.nomb.com\r\n”;

Ejemplo email:

Finalizados los pasos anteriores nuestro servidor enviará un email al destinatario parecido al de esta imagen: