PHPEnviar Mails/Correos con PHP (planos y Html)

Enviar Mails/Correos con PHP (planos y Html)

-

- Advertisment -

PHP nos permite enviar correos de manera bastante sencilla usando la función mail(), es bastante sencillo y nos da la posibilidad de enviar correo en formato HTML definiendo la cabecera previamente. Con esta función con solo los 3 parámetros (destino, asunto, mensaje) ya podemos enviar correos solo que saldrá como remitente nobody@tuserviciohost.com; El formato de la función mail() es la siguiente:

mail ( string $destino , string $asunto , string $mensaje [, string $cabeceras])

mail_picture

 Aquí un ejemplo:

<?php
$para = 'destino@dominio.com';
$titulo = 'El título del correo';
$mensaje = 'Hola, bienvenido a mi sitio web \r\n Saludos'; //Mensaje de 2 líneas
$cabeceras = 'From: webmaster1@midominio.com' . "\r\n" . //La dirección de correo desde donde supuestamente se envió
    'Reply-To: webmaster2@midominio.com' . "\r\n" . //La dirección de correo a donde se responderá (cuando el recepto haga click en RESPONDER)
    'X-Mailer: PHP/' . phpversion();  //información sobre el sistema de envío de correos, en este caso la versión de PHP

mail($para, $titulo, $mensaje, $cabeceras);
?>

El Destinatario:
Es el correo de destino o a quien se va a entregar el mensaje, es un campo obligatorio. En esa variable podemos poner por ejemplo “Wilson Sánchez <wilsson@hotmail.com>”, o  “wilsson@hotmail.com” de las dos formas se pueden enviar.

Asunto o Titulo
El asunto o titulo de un correo. Este campo no es obligatorio ya que si no lleva asunto aparecerá (sin asunto), si el asunto es muy largo se te abreviará con “…” (tres puntos) .

Cuerpo del Mensaje o Contenido
En el contenido del mensaje del correo.  Aquí según la cabecera el correo puede ser plano o HTML (también existe el mixto). Si el correo es de tipo Plano todo el texto lo tomará como 1 sola línea solo respetando los siguientes  palabras reservadas o tag

  • \n = salto de línea
  • \t = sangría
  • \r = retorno de carro

Aquí un Correo en HTML pero con mucho más opciones, recuerden que es importante especificar que es HTML en la cabecera del correo.

<?php
$para  = 'usuario1@dominio.com' . ', '; // atención a la coma
$para .= 'otrousuario@otrodominio.com';

// Asunto
$titulo = 'Atención con cambio de tarifas';

// Cuerpo o mensaje
$mensaje = '
<html>
<head>
  <title>Atención con el Cambio de Tarifas y Comisiones</title>
</head>
<body>
  <p>¡todos los vendedores a leer las tarifas según empresas!</p>
  <table>
    <tr>
      <th>Empresa</th><th>Tarifa Anterior</th><th>Nueva Tarifa</th><th>Comisión</th>
    </tr>
    <tr>
      <td>Repsol</td><td>3.3</td><td>3.5</td><td>10%</td>
    </tr>
    <tr>
      <td>Telefónica</td><td>17.45</td><td>18.1</td><td>11%</td>
    </tr>
  </table>
</body>
</html>
';

// Cabecera que especifica que es un HMTL
$cabeceras  = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Cabeceras adicionales
$cabeceras .= 'From: Recordatorio <tarifas@example.com>' . "\r\n";
$cabeceras .= 'Cc: archivotarifas@example.com' . "\r\n";
$cabeceras .= 'Bcc: copiaoculta@example.com' . "\r\n";

// enviamos el correo!
mail($para, $titulo, $mensaje, $cabeceras);
?>

Y es así como podemos enviar correos usando la función mail() en php, en algunos servidores compartidos (shared hosting) pueden restringir el uso a cierta cantidad de correos por hora o incluso desactivar esa función para evitar que manden listas de correo o hagan mal uso de esta función.

17 COMENTARIOS

  1. Hola alguien me puede ayudar, tengo el problema que si lo hago desde mi maquina local si envia los correos, pero cuando lo intento enviar de un servidor que tenemos no envia nada pero no me marca error, creen que tenga que ser por la ip dedicada que tiene?

  2. buenas como podria enviar una imagen en el cuerpo del mensaje? presento problemas con la url, xq al llegar el correo no muestra la imagen, la muestra es un cuadro pequeño con una “X”. Por favor

  3. Buen día, al ejecutar el código me aparece el siguiente error: SMTP server response: 553 sorry, that domain isn’t in my list of allowed rcpthosts (#5.5.3 – chkuser)

    Desde ya muchas gracias

Agregue un comentario a Agustin Cancelar respuesta

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Últimas Noticias

WordPress – Crear BBCODE o shortcode personalizados

Los BBCODES o "shortcode" son esas funciones que tiene Wordpress y que se usan con corchetes, que generalmente te...

WordPress – Enviar título de la página o campo oculto, en Contact Form 7

Problema: Tengo un cliente que tiene una web con muchos productos y en todas sus páginas usa el mismo formulario...

Laravel – Modo Debug según IP

En algunos casos se necesita el modo DEBUG según IP, por ejemplo cuando estamos en producción y tenemos un...

Reemplazar URLs cuando cambias de dominio en WordPress (también de http a https)

Cuando haces un cambio de dominio por alguna razón (antes te llamabas www.viejodominio.com y ahora www.nuevodominio.com) si bien ya...
- Advertisement -

Como ejecutar comandos Artisan desde consola Git

Voy a suponer que ya tienen instalado el composer y php de manera global y un proyecto en Laravel....

Ejecutar Composer y/o PHP de manera Global en Windows

Si por alguna razón al instalar Composer este no funciona desde cualquier ruta estando en linea de comandos (ya...

Debe leer

- Advertisement -

También podría gustarteRELACIONADA
Recomendada para usted