Categorías
Uncategorized

Envio de Correo con PHP Mailer y Gmail 2020

Vamos a hacer un envio de correo con php, este tipo de correo se llama transaccional y contiene información importante para el usuario como un reporte de sus compras, recuperación de contraseña, registro y demás registros de importancia que debemos comunicar por email.

Este es el código complemento el envío de correo con PHP Mailer y Gmail actualizado en 2020, para ver el video del tutorial ir al final de esta publicación.

Última Actualización: 30 de Octubre de 2020

Dependencias PHP

Se requiere tener un poco de conocimiento previo con la instalación de dependencias y cómo ejecutar código PHP en servidor o línea de comandos.

  • PHP 5.5 o superior
  • PHP 7.2 recomendado

Este proyecto utiliza composer como instalador de dependencias y se requiere agregar la dependencia phpmailer/phpmailer

código de dependencias para envío de correo con php
composer.json

Si ya tienes un archivo composer.json solo es necesario agregar la dependencia en el apartado require. También puede tomar este como referencia y ajustar los datos a los tuyos.

Código Fuente

A continuación el código fuente del proyecto, también disponible en este gist de github.

IMPORTANTE: Este código está en un único archivo, pero es posible agregar las constantes en un archivo por separado.

código de envío de correo con php mailer
index.php

Videotutorial Envio de Correo con PHP en Youtube

Si requieren más información pueden consultar el video: Envio de correo con php mailer que dejo a continuación donde presenta pocas diferencias al código actual por lo cual no requiere actualizarlo.

Y con este video espero que la explicación sea más clara, con este ejemplo básico de envío de correo con php podemos entrar a cosas más complejas como adjuntar imágenes o plantillas HTML.

Muchas gracias por leer y recuerden seguirme en mis redes sociales, puedes dejar tus comentarios aquí o comentar en el video de Youtube para mayor información y dudas que tengas.

Un cordial saludo y nos leemos en la siguiente publicación.

Categorías
Desarrollo y Programación

Como hacer peticiones http en PHP sin CURL

Vamos a hacer peticiones a servicios http o APIs con PHP sin CURL, este último muchas veces está bloqueado por el hosting y no es posible hacer peticiones a enlaces externos.

Vamos a utilizar la librería Requests for PHP en nuestro entorno de desarrollo local, así que es importante tener el manejador de dependencias: composer.

Instalación de Requests

Para instalar la librería es necesario ejecutar el siguiente comando:

composer require "rmccue/requests"

Nuestro composer.json debería verse como la siguiente imagen

composer.json (ejemplo)

Así debería lucir el árbol de dependencias y archivos:

Dependencias

Peticiones HTTP Get con PHP

Y listo a partir de ahora podemos solicitar datos a servicios y APIs externos, yo tuve esta necesidad pues algunos servicios de los que consumo no permiten solicitudes desde el browser.

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$url = 'https://jsonplaceholder.typicode.com/posts';
$response = Requests::get($url);
## $response->body es el resultado de la petición
echo(json_encode($response));
view raw httpGetRequest.php hosted with ❤ by GitHub

Peticiones HTTP Post con PHP

Si queremos enviar datos, debemos colocarlos dentro de un array. Es importante conocer el tipo de envío que debemos hacer en post, ya sea para un multipart/form-data o un application/json.

Este dato debemos revisarlo con el proveedor del servicio, si es necesario enviar llaves de autenticación u otro dato en las cabeceras, podemos agregar este dato en otro array.

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$url = 'https://jsonplaceholder.typicode.com/posts';
$postData = array([
'title' => 'Hola Mundo',
'body' => 'Este es un ejemplo de envio con POST',
'userId' => 1,
]);
$headers = array([
'Content-type' => 'application/json; charset=UTF-8'
]);
$responsePost = Requests::post($url, null, $postData);
echo json_encode($responsePost);
view raw httpPostRequest.php hosted with ❤ by GitHub

Peticiones HTTP PUT, PATCH y DELETE con PHP

El resto de peticiones se pueden hacer con los métodos:

Requests::put($url, $headers, $data, $options);
Requests::patch($url, $headers, $data, $options);
Requests::delete($url, $headers, $options);

Status Code y Headers de Peticiones HTTP con PHP

Para obtener el codigo de estado se obtiene de la variable de respuesta:

$response->status_code

En el caso de la cabecera es necesario agregar el nombre de la cabecera requerida. NOTA: no distingue entre mayusculas y minusculas

$response->headers['Date'];

Comentarios Finales

Esta por demás decirlo, pero siempre que importen la librería al proyecto es necesario subirla a su host para que funcione, así que la carpeta vendor ahora debería estar incluida en el servidor.

Las cabeceras de autenticación se envían en el array de $headers, pero se debe consultar con el proveedor del servicio cuales se deben enviar.

Y listo ya no es necesario preocuparse por que el servidor tenga soporte para CURL, que tengan felices proyectos y que todo vaya sin bugs, un Saludo afectuoso y nos vemos en el siguiente tutorial.