Foros del Web » Programando para Internet » PHP »

Ejecutar script al recibir email

Estas en el tema de Ejecutar script al recibir email en el foro de PHP en Foros del Web. Buenas tardes, os cuento lo que pretendo hacer, y como lo tengo mas o menos estructurado, al menos en mi mente. Se trata de un ...
  #1 (permalink)  
Antiguo 15/05/2014, 12:16
 
Fecha de Ingreso: agosto-2012
Mensajes: 14
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Ejecutar script al recibir email

Buenas tardes,

os cuento lo que pretendo hacer, y como lo tengo mas o menos estructurado, al menos en mi mente.

Se trata de un portal donde quedan registradas las diferentes incidencias enviadas y las respuestas a las mismas. Hasta el momento actual, todo se hace mediante email y colocandolas en un CRUD a mano.

La idea es poder unificar todo el proceso en una unica plataforma, minimizando errores y facilitando todo.

Para ello, tendría que implementar dos cosas:

1) Sistema que, una vez insertado un nuevo registro en el CRUD, envíe un email a una dirección de correo electronico prefijada, y con un formato determinado.

2) Script que, cada vez que se reciba un email, lo analice buscando ciertos patrones (por ejemplo, el asunto), y si se corresponde a una resolución de una incidencia, guarde el texto de resolución en uno de los campos de la base de datos.


Con (1) no tengo problema, parece facil de implementar.

En (2), y aqui viene la pregunta, tengo mas problemas y la verdad es que no sé muy bien como puedo implementarlo. Había pensado en un demonio que cada cierto tiempo se ejecutara y comprobase los emails, pero no sé que funciones existen en PHP para ello.

¿Alguna idea? Un saludo y gracias.
  #2 (permalink)  
Antiguo 15/05/2014, 12:25
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Ejecutar script al recibir email

Necesitas configurar un cronojob en tu servidor que es eso mismo: un "demonio" que lanza con la frecuencia que tu quieras tu programa
__________________
Salu2!
  #3 (permalink)  
Antiguo 15/05/2014, 17:44
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Ejecutar script al recibir email

Poner un demonio no ciempre es la solucion optima, y en este caso no lo es. ¿No seria mejor que cada vez que llegue un email, un archivo php reciba automaticamente un request con los datos? solo se ejecutaria el request una unica vez por email y no habria nada en segundo plano ejecutandose cada cierto tiempo, los mail se procesarian al instante y no esperando a que al cron le llegue la hora de verificar.

Las palabras claves para google son "piping email to php script" con eso encontraras muchos tutoriales de como hacerlo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 15/05/2014 a las 17:49
  #4 (permalink)  
Antiguo 15/05/2014, 18:00
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Ejecutar script al recibir email

Cita:
Iniciado por jacarpint Ver Mensaje
Buenas tardes,

os cuento lo que pretendo hacer, y como lo tengo mas o menos estructurado, al menos en mi mente.

Se trata de un portal donde quedan registradas las diferentes incidencias enviadas y las respuestas a las mismas. Hasta el momento actual, todo se hace mediante email y colocandolas en un CRUD a mano.

La idea es poder unificar todo el proceso en una unica plataforma, minimizando errores y facilitando todo.

Para ello, tendría que implementar dos cosas:

1) Sistema que, una vez insertado un nuevo registro en el CRUD, envíe un email a una dirección de correo electronico prefijada, y con un formato determinado.

2) Script que, cada vez que se reciba un email, lo analice buscando ciertos patrones (por ejemplo, el asunto), y si se corresponde a una resolución de una incidencia, guarde el texto de resolución en uno de los campos de la base de datos.


Con (1) no tengo problema, parece facil de implementar.

En (2), y aqui viene la pregunta, tengo mas problemas y la verdad es que no sé muy bien como puedo implementarlo. Había pensado en un demonio que cada cierto tiempo se ejecutara y comprobase los emails, pero no sé que funciones existen en PHP para ello.

¿Alguna idea? Un saludo y gracias.
Cual es la finalidad de enviar un correo y revisarlo ??, la incidencia se registra en otra base de datos ? si puedes ser mas claro igual puede haber mas de una solución.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 15/05/2014, 18:50
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Ejecutar script al recibir email

Cita:
Iniciado por NSD Ver Mensaje
Poner un demonio no ciempre es la solucion optima, y en este caso no lo es. ¿No seria mejor que cada vez que llegue un email, un archivo php reciba automaticamente un request con los datos? solo se ejecutaria el request una unica vez por email y no habria nada en segundo plano ejecutandose cada cierto tiempo, los mail se procesarian al instante y no esperando a que al cron le llegue la hora de verificar.

Las palabras claves para google son "piping email to php script" con eso encontraras muchos tutoriales de como hacerlo.
Un script en PHP no puede quedarse "esperando" indefinidamente porque tiene un tiempo maximo de ejecucion (definido en PHP ini y sobre-escribible a veces via directivas mediante ini_set() )

Ahora que @hhs lo menciona... "muchas" alternativas no hay.. pero una opcion (mas complicada) seria hacer un programa en C / C++ que corra como CGI, pero no todos los servidores permiten correr cualquier cosa... tocaria probablemente en un VPS
__________________
Salu2!
  #6 (permalink)  
Antiguo 16/05/2014, 11:48
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Ejecutar script al recibir email

Cita:
Un script en PHP no puede quedarse "esperando" indefinidamente porque tiene un tiempo maximo de ejecucion (definido en PHP ini y sobre-escribible a veces via directivas mediante ini_set() )
No, y aunque pudiera, ¿cual es la diferencia entre eso y un "demonio"? la alternativa que propongo se llama "piping de email" y en google pueden encontrarse muchos tutoriales buscando por las palabras clave: "piping email to php script" la idea es reenviar los email a un script php, configurado desde el cpanel (o el que se use) del server esta opcion, de esa forma puedes procesar a los mail de forma instantanea sin tener a nadie corriendo en segundo plano al asecho de mensajes entrantes.

NOTA: En realidad el que esta en segundo plano el servidor, pero con eso no podemos hacer nada
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 16/05/2014, 11:53
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Ejecutar script al recibir email

Cita:
Iniciado por NSD Ver Mensaje
la alternativa que propongo se llama "piping de email" y en google pueden encontrarse muchos tutoriales buscando por las palabras clave: "piping email to php script"
BLA ... y por que no explica en que conciste esa "solucion magica" ? por que mejor no deja un enlace en vez de hacernos buscar en Google donde ademas depende de la ubicacion geografica el resultado ?
__________________
Salu2!
  #8 (permalink)  
Antiguo 16/05/2014, 14:03
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Ejecutar script al recibir email

Cita:
y por que no explica en que conciste esa "solucion magica" ?
sin animo de discutir pero lo hice:
Cita:
la idea es reenviar los email a un script php, configurado desde el cpanel (o el que se use) del server esta opcion
y no es una solucion magica, es solo una alternativa mas.

Algunos links al tema pueden ser:
http://manuelignasch.wordpress.com/2...os-automatica/
http://www.phpshare.org/articles/Pip...-Mail-with-PHP
http://jamescollings.co.uk/blog/php-...-introduction/

Para complementar en el manual de php enconramos funciones para parsear el email obtenido del buffer de forma amigable:
http://www.php.net/manual/es/ref.mailparse.php

y su tu servidor tiene cpanel, en los foros de estos hay un hilo donde se habla de este tema:http://forums.cpanel.net/f5/piping-m...ist-50985.html
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: email, recibir, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:07.