Tengo un formulario simple de registro de usuario con una casilla de verificación que permite a los usuarios recibir notificaciones diarias por correo electrónico si hubo actividad en alguno de sus proyectos ... al igual que Stack Overflow tiene un "Notify [email protected] diario de nuevas respuestas ".¿Cómo puedo enviar una notificación diaria por correo electrónico a los usuarios en PHP?
Mi pensamiento actual para implementar esto en un entorno LAMP es como sigue:
En la base de datos de usuario, establezca un valor booleano si el usuario desea recibir un email diario.
Si hay alguna actividad de proyecto, el proyecto se actualiza con la marca de tiempo actual.
Cada noche (medianoche), se ejecuta un archivo PHP (probablemente a través de un trabajo cron) que escanea a través de la base de datos del proyecto para identificar qué proyectos tuvieron actividad ese día. Para los proyectos con actividad, se selecciona el nombre del propietario del proyecto y se escanea la tabla del usuario para verificar si el usuario desea recibir una notificación por correo electrónico a diario. Si es así, agréguelo a una lista de destinatarios; otra cosa, ignorar.
Preguntas/preocupaciones que tengo que agradecería alguna orientación sobre antes de empezar a aplicar:
estoy en un entorno de alojamiento compartido. ¿Qué precauciones debo tomar al ser identificado erróneamente como correo basura por la empresa de alojamiento o por los servidores de correo recibidos?
¿Necesito "dividir" la lista de destinatarios (50 correos electrónicos a la vez) y enviar un correo electrónico a cada grupo? ¿Es esto tan simple como poner un sueño (30); entre cada llamada al correo()?
Estoy usando el framework CodeIgniter y el cron job llamará a la función apropiada en un controlador para ejecutar esto a la medianoche. ¿Cómo limito las llamadas solo desde el trabajo cron para evitar que algún usuario no autorizado llame a esta función desde el navegador?
Thanks.
Re. # 3: supongo que si mantengo un archivo PHP arriba de webroot, CodeIgniter realmente no debería importar. Puedo hacer que el cron se sitúe también sobre webroot y llame al script PHP que escanea la base de datos, crea una lista de destinatarios y luego envía correos electrónicos a cada usuario a medianoche. ¿No? – zee
Cron se ejecuta como un programa de Linux, por lo que tiene acceso a cada archivo que el usuario al que ejecuta tiene acceso. –