Php/php-gmail

De josalba
Ir a la navegación Ir a la búsqueda

PHP GMail Proyecto
Servicio http para enviar mails a traves de gmail.

Download GIT

https://github.com/josAlba/php-class-gmail

Instalación

Instalar el servicio miGmail

Directorios

Crear dos directorios en la raiz del proyecto

mkdir credenciales #Para almacenar las credenciales
mkdir tokens #Para almacenar los tokens

Configurar servidor

Modificar conf.json asignando la ip local y el puerto que quereis usar.

{
    "ip": "0.0.0.0",
    "puerto": "8020",
    "hilos": 4
}

Crear credencial

Para crear la credencial necesitas iniciar la sesión en gmail y luego entrar en https://developers.google.com/gmail/api/quickstart/php , luego te bajas el fichero "credentials.json" añade un alias del siguiente modo "yo.credentials.json" y la guardamos en la carpeta "/credenciales"

Generar un token

Ejecutamos el siguiente comando en la terminal, poniendo el alias de la cuenta.

php _newtoken.php {nombre}

Esto nos mostrara una url que debemos copiar en el navegador y nos dara un texto con el token que tenemos que copiar en la terminal, una vez copiado pulsamos enter y se nos abra creado la credencial en "/tokens"

Iniciar el servicio

Servicio modo test

php _server.php start

Iniciar servicio

php _server.php start -d

Detener el servicio

php _server.php stop

Reiniciar el servicio

php _server.php restart

Ver el estado

php _server.php status

Lanzar petición CURL

Comprobar estado del servicio

curl 10.0.0.189:8020

Enviar mail

Indicando en "user" el alias de la credencial

curl -d "a=prueba&b=<h1>hola</h1>&e={tu mail}&d={email destinatario}&n=yo&user={nombre credencial}" 10.0.0.189:8020?send=1

Lanzar petición desde PHP

<?php
/**
 * Enviar mail usando el servicio migmail
 * El html del contenido se tiene que enviar como urlencode para no dar problemas con las etiquetas.
 * 
 * en este fragmento hace la peticion por curl desde php
 */

if(true==true){

	$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, '10.0.0.105:8020?send=1');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($ch, CURLOPT_POSTFIELDS, 'a={asunto}&b='.urlencode({variable con el html del mensaje}).'&e={mail de quien lo envia}&d={destinatario}&n={nombre}&user={cuenta}'); 
	$head = curl_exec($ch); 
	curl_close($ch); 

	return;
}