es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿imap_setflag_full no parece hacer nada?

Estoy intentando marcar un mensaje como visto:

var_dump(imap_setflag_full($mail, "9", "\\Seen", ST_UID));

La salida es bool(true), pero cuando vuelvo a obtener mis mensajes (imap_fetch_overview), esto es lo que veo:

object(stdClass)#4 (15) {
  ["subject"]=>
  string(3) "..."
  ["from"]=>
  string(47) "... <...@...>"
  ["to"]=>
  string(14) "...@..."
  ["date"]=>
  string(30) "Wed, 8 Dec 2021 12:04:59 +0200"
  ["message_id"]=>
  string(68) "<...>"
  ["size"]=>
  int(2580)
  ["uid"]=>
  int(9)
  ["msgno"]=>
  int(9)
  ["recent"]=>
  int(1)
  ["flagged"]=>
  int(0)
  ["answered"]=>
  int(0)
  ["deleted"]=>
  int(0)
  ["seen"]=>
  int(0)
  ["draft"]=>
  int(0)
  ["udate"]=>
  int(1638957899)
}

Claramente estoy haciendo algo mal, pero no puedo identificar qué es.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que la bandera para señalar que el mensaje ha sido visto se estableció exitosamente con imap_setflag_full($mail, "9", "\\Seen", ST_UID), como se evidencia en la salida bool(true). Sin embargo, al obtener una vista general del mensaje utilizando imap_fetch_overview, la bandera seen sigue mostrando 0 (no visto).

    Una posibilidad podría ser que la variable $mail utilizada en imap_setflag_full sea diferente de la utilizada en imap_fetch_overview. Otra posibilidad podría ser que el mensaje no haya sido obtenido correctamente, o bien que haya un retraso en la actualización de las banderas en el servidor de correo electrónico.

    Para solucionar este problema, intenta verificar que estás utilizando la variable $mail correcta y también intenta obtener el mensaje nuevamente después de que haya pasado algún tiempo. También puede ser útil revisar los registros del servidor de correo electrónico o contactar al proveedor de correo electrónico para obtener ayuda adicional.

Comments are closed.