martes, 12 de mayo de 2020

Envio de email por PHP función mail y con la clase PHPMAILER

En ésta página os contaré cómo enviar un email utilizando PHP:

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// Priemro definimos el mensaje, el título y el destinatario.
$mensaje "Mi mensaje";
$titulo   "Mi título";
$destinatario  "maxminijuegos@example.com";// Enviarlomail($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

// Priemro 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();
// Enviarlomail(
$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.

Sigue con el tutorial aprendiendo a hacer formularios en PHP y HTML:http://antoniocara.blogspot.com.es/2015/11/creacion-de-formularios-mediante-php.html 

No hay comentarios:

Publicar un comentario