Recibir correos en aplicación web
Hola!
No tengo muy claras las opciones que hay para automatizar una aplicación web que pueda recibir correos y procesarlos con código (php).
Es decir, que los usuarios puedan enviar emails a una determinada cuenta, y que la aplicación web los procese (actualizando la base de datos, y/o almacenando los archivos adjuntos en el servidor web).
De momento conozco la clase Net_POP3 (php PEAR) que permite acceder a un servidor POP3 y consultar los correos nuevos. Pero no es lo mas optimo, pues tendría que consultarlo periódicamente (no es 'sincrono', digamos).
Para ejecutar un php inmediatamente a la recepción solo se me ocurre que en el servidor de correo se use algún tipo de modulo o similar para ejecutar un proceso que comunique el evento a mi aplicación web, pero no tengo experiencia en servidores de correo, y lo veo complicado, pues preferiría usar cuentas de correo de mi ISP, y no un servidor de correo propio.
¿Sabéis si hay alguna solución?
Muchas gracias de antemano por vuestro tiempo.
eemece2
Bueno, en principio la web se alojará en un servidor compartido, y el servidor de correo sería también uno compartido, por lo que no tendría casi ningún control sobre el (hasta donde yo se, en los que uso habitualmente).
Tendría que dejar de usar ese servidor de correo y pasarme a otro. Lo de dedicado está complicado, y supongo que tendría que instalar uno en una maquina propia, con el lió que supone eso.
Si no, como la información se consultara solo desde un backend, quizás no es mala solución actualizar la info desde la pagina del backend que sirve para gestionar esos correos recibidos.
Cuando avance el desarrollo lo concretare más.
Gracias!!
ernexbcn
Lo que ha dicho Vixx, el problema es que dependerá de si tienes acceso a esa parte de la gestión del servidor de correo en tu hosting.
Yo esto lo he hecho con servidores dedicados, en los que no hay pegas de ningún tipo.
eemece2
Gracias Vixx!
Voy a estudiarlo a ver que tal.
un saludo
vixx
En todos los sistemas de correo que he utilizado se puede hacer que cuando se recibe un correo en una determinada cuenta se ejecute uno o varios programas antes o en lugar de entregar el correo al destinatario. Por ejemplo, en QMAIL, editando el archivo .qmail que controla la cuenta, se puede hacer algo como esto:
|php /ruta/de/mi/script.php
Se ejecutará el script correspondiente, que tendría disponible el contenido del E-Mail recibido a través de la entrada estándar y se puede leer con algo similar a esto:
<code>
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);
</code>
Deberías saber que sistema de correo utiliza tu servidor para poder ver la forma exacta de hacerlo.
lagarteando
no conozco ninguno