Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Como Enviar un correo electrónico automático por fecha ¡AYUDA!

Hola a todos,
Se que e estado publicando últimamente mucho y pido disculpas por eso
Trataré de ser lo más claro posible.
Tengo una tabla que almacena tanto la fecha de creación de un anuncio o post así como una fecha de vencimiento
?Como pudiera hacer para que x día o antes de 5 días del vencimiento de la fecha de vencimiento agregada en cada anuncio o post se pueda enviar un recordatorio automáticamente a el correo de cada usuario según la fecha que allá seleccionado para el vencimiento del anuncio o post que este allá agregado a la web
0
Puntos
275
Visitas
3
Resp
Por eduaryein hace 12 meses
Principiante Sitio web
Respuesta #1
hola! es compleja tu pregunta.. necesitas tener ademas una columna en tu tabla que marque si el usuario ya esta avisado o no.. de no ser así le llegarían correos sin parar una vez se cumpla la condición.

puedes crear una función en tu fichero funciones.php (o uno que se ejecute siempre en la navegación) y que esa función recorra con un bucle todos los registros de los posts donde la fecha de caducidad esté próxima.

por ejemplo:
<?php 

//función comprobar vencimiento
function comprobar(){
	global $conexion;

	$fechaactual = date('Y-m-d');
	$consulta = $conexion->query("SELECT * FROM z_posts WHERE vencimiento < $fechaactual");

	while ( $res = $consulta->fetch_array() ) {
		//enviar correo al user
		$el_user = $res['user'];
		$el_correo_user = obtener_correo($res['user']); // Importante obtener el correo mediante el nombre del user (otra función)


		mail($el_correo_user, 'Tu posts esta vencido', 'Tu post esta vencido, visita www.dominio.com para renovarlo');

		//marcar como avisado
		$actualizar = $conexion->query("UPDATE z_posts SET avisado = 1 WHERE user = $el_user");
	}

}

//ejecutar función automáticamente
comprobar();

?>
como puedes ver tienes un ejemplo casi completo, solo te queda retocar, adaptar etc

:P
0
Puntos
Por alber hace 12 meses
Administrador
Respuesta #2
alber dijo: hola! es compleja tu pregunta.. necesitas tener ademas una columna en tu tabla que marque si el usuario ya esta avisado o no.. de no ser así le llegarían correos sin parar una vez se cumpla la condición.

puedes crear una función en tu fichero funciones.php (o uno que se ejecute siempre en la navegación) y que esa función recorra con un bucle todos los registros de los posts donde la fecha de caducidad esté próxima.

por ejemplo:
<?php 

//función comprobar vencimiento
function comprobar(){
	global $conexion;

	$fechaactual = date('Y-m-d');
	$consulta = $conexion->query("SELECT * FROM z_posts WHERE vencimiento < $fechaactual");

	while ( $res = $consulta->fetch_array() ) {
		//enviar correo al user
		$el_user = $res['user'];
		$el_correo_user = obtener_correo($res['user']); // Importante obtener el correo mediante el nombre del user (otra función)


		mail($el_correo_user, 'Tu posts esta vencido', 'Tu post esta vencido, visita www.dominio.com para renovarlo');

		//marcar como avisado
		$actualizar = $conexion->query("UPDATE z_posts SET avisado = 1 WHERE user = $el_user");
	}

}

//ejecutar función automáticamente
comprobar();

?>
como puedes ver tienes un ejemplo casi completo, solo te queda retocar, adaptar etc

:P
Hola Alber gracias por tu respuesta voy a probar el ejemplo de tu respuesta
0
Puntos
Por eduaryein hace 12 meses
Principiante Sitio web
Respuesta #3
De nada, mirate bien los comentarios del código y los procesos para que te hagas la idea en tu mente primero..

Una vez que tengas la lógica tienes el código, seguro que incluso mejorado!

Ánimo crack :p
1
Puntos
Por alber hace 12 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate