PostReader
Porque me lo solicitó un desarrollador y porque en mi vida profesional no lo había programado, he hecho este ejemplo para tratar correos electrónicos, leyendo los mismos desde una cuenta de GMAIL y enviado nuevos correos a través de la misma cuenta.
El ejemplo lo he orientado a un soporte o gestor de incidentes a usuarios de un sistema donde su medio de notificar problemas y recibir contestación es el correo electrónico. Como siempre os indico, esto no es una aplicación, si no un ejemplo que deberéis personalizar para vuestros requisitos.
Objetivo
El objetivo que he marcado es facilitar código simple y eficiente para que desde PHPRunner podamos leer los mensajes que llegan a una cuenta de correo de Gmail y enviar mensajes de email a las personas que hicieron su consulta previamente.
Para aquellos que quieran recibir y enviar correos desde PHPRunner, este será un ejemplo que les facilita dichas funciones.
Funcionalidad del ejemplo
DEMO: https://fhumanes.com/postreader/
Usuario: admin y password: admin .
La cuenta de correo que utiliza y a la que se puede enviar mensajes de prueba es: [email protected]
El ejemplo tiene una opción de “Configuración” que permite configurar el ejemplo en las características de las cuentas de correo, buzón destino de los mensajes, directorio de los archivos, etc.
La opción importante es la de “email”, que es la que se muestra. He utilizado unas bolas amarillas para señalar los puntos más relevantes que paso a describir.
(1) .- Con este botón naranja, el aplicativo revisa y recupera los mensajes de [email protected]. Para el ejemplo, se ejecuta directamente desde el botón, pero para un sistema productivo se debería incluir en el CRON y ejecutarse como mucho cada 5 minutos. Los cambios necesarios son sencillos y si tenéis dudas o problemas, decídmelo y os los hago yo.
(2) .- Como ejemplo, se ha puesto que el mensaje puede estar relacionado con:
- Contactos .- Serían los datos generales de todos los usuarios del sistema. La relación es por el email.
- Otros mensajes .- Otros mensajes que hay en el sistema con esta misma cuenta de email.
- Respuestas.- Desde este enlace creamos y consultamos las gestiones y respuesta que hemos hecho sobre este mensaje. Por cada registro de Respuesta, el ejemplo envía un email a la cuenta originaria del mensaje.
(3).- Estado en que se encuentra el mensaje. Este estado se va actualizando con las respuestas que se van haciendo.
Solución técnica
Como siempre hago, intento buscar una librería PHP que haga la funcionalidad que requiero, en este caso he utilizado:
- phpmailer 6.1 .- Para el envío de los mensajes. https://github.com/PHPMailer/PHPMailer
- php-imap 4.1, de Sergey Barbushin.- Para la lectura de los mensajes y su movimiento al buzón de archivados. https://github.com/barbushin/php-imap/
Os muestro el código más importante que tiene el ejemplo:
Leer los mensajes
Enviar nuevos mensajes
Como siempre, para cualquier duda o consulta, escribidme a mi email [email protected]
Os dejo el proyecto, para que podáis ejecutar en vuestros equipos.