viernes, 7 de octubre de 2016

Capítulo 4 tutorial PHP enviar email por PHP

Bienvenido al capítulo 4 del tutorial de php, en este capítulo os enseñamos a enviar un email desde PHP usando la función mail, más adelante tambien os mostraremos como enviar un email con la clase PHPMAILER que es muy útil si queremos enviar mail con archivos adjuntos por ejemplo, espero que os sea de ayuda y cualquier cosa comentad:



 Existen varias formas:
-Utilizando la función mail() de PHP.
-Utilizando la función PHPmailer que la puedes encontrar en Github.

Utilizando la función mail de PHP:

Si quieres enviar un correo simple solo tienes que indicar destinatario, título y cuerpo del mensaje, a continuación os pongo un ejemplo:

<?php// Primero definimos el mensaje, el título y el destinatario.
$mensaje "Mi mensaje";
$titulo   "Mi título";
$destinatario  "maxminijuegos@example.com";// Enviarlo 
mail($destinatario ,$titulo $mensaje);?>

Si quieres enviar más datos como por ejemplo desde quien se envía, puedes usar cabeceras, a continuación os muestro como hacerlo en un ejemplo:

 
<?php

// Primero definimos el mensaje, el título, el destinatario y las cabeceras.
$mensaje "Mi mensaje";
$titulo   "Mi título";
$destinatario  "maxminijuegos@example.com";
$cabeceras 'From: maxminijuegos@example.com' "\r\n" .
    
'Reply-To: maxminijuegos@example.com' "\r\n" .
    
'X-Mailer: PHP/' phpversion();
// Enviarlo 

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

Para enviar un mail con un archivo adjunto se puede usar la cabecera para indicarlo,que no es muy difícil realizarlo, si alguien lo necesita que me envie un correo y le enseñaré encantado, pero mi recomendación es usar la función PHPMAILER siempre que se vaya a enviar un correo ya que es muy fácil de usar y te permite variar muchos parámetros como el inicio de sesión en el servidor para enviar el correo entre otros muchos.

Utilizando PHPMAILER:
Lo primero es descargarse la función, para ello pulsen aquí
A continuación os muestro como usarla para enviar un correo con un archivo adjunto:
 
<?php
//Incluimos la clase de PHPMailer
require_once('phpmailer/class.phpmailer.php');
//Creamos una instancia de la clase PHPMAILER
$correo = new PHPMailer();
//Las siguientes líneas hasta la de la password son por si quieres conectarte a alguna cuenta en particular para enviar al email, ya sea //una cuenta de gmail, de tu servidor o otra.
$correo->IsSMTP();
$correo->SMTPAuth = true;
//Decimos la seguridad de la conexion, puede ser SSL, TLS o lo dejamos en blanco si lo desconocemos
$correo->SMTPSecure = '';
//Decimos el hos, el puerto, el usuario y la contraseña
$correo->Host = "mail.misitio.com";
$correo->Port = 25;
$correo->Username   = "usuario@misitio.com";
$correo->Password   = "mipassword";

// Timeout para el servidor de correos. Si no ponemos nada es de 10.
$correo->Timeout=30;
 //Seleccionar una codificación:
$correo->CharSet = 'UTF-8';
//Indicamos quien es el que envia el correo
$correo->SetFrom("me@micodigophp.com", "Mi Codigo PHP");
 //Indicamos a quien debe de responder al correo
$correo->AddReplyTo("me@micodigophp.com","Mi Codigo PHP");
 //Con AddAddress podemos incluir todos los destinatarios que deseeemos
$correo->AddAddress("destino@correo.com", "Robot");
// Si queremos utilizar un formato HTML usamos la siguiente función
$correo->MsgHTML("Mensaje en HTML");
//si es un mensaje en texto plano usamos: $correo->IsHTML(false);
//$correo->Body = "Mi mensaje en Texto Plano";
//Ponemos el asunto del mensaje
$correo->Subject = "Mi subject";
 
//Para adjuntar un archivo:
$correo->AddAttachment("images/phpmailer.gif");
//Enviamos el correo
if(!$correo->Send()) {
  echo "Se produjo un error al enviar el correo: " . $correo->ErrorInfo;
} else {
  echo "Mensaje enviado con exito.";
}
?>


Si no quieres alguna característica no la pongas como la conexión al servidor o el archivo adjunto, esta función es de gran ayuda ya que algo que sería bastante complicado lo puedes hacer tan sencillo como el ejmplo anterior.
Si teneis alguna duda o queréis decidme algo que modificaríais enviadme un email.





CAPÍTULO 3                                                                                                       CAPÍTULO 5

1 comentario: