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_search no funciona con ks_c_5601-1987 en php.

Estoy intentando buscar el asunto de un correo con imap_search(), pero no funciona en un asunto codificado con ks_c_5601-1987. Funciona bien en un asunto codificado en utf-8.

imap_search($imap, 'SUBJECT mail_subject_test', SE_FREE); 
or
imap_search($imap, 'SUBJECT mail_subject_test', SE_FREE, "UTF-8");

Funciona en

["subject"]=>
  string(97) "=?utf-8?B?7J247YS07IKs7JuQIOyhsOyXsOyjvCDsnbzsnbzsl4XrrLTsnbzsp4DsnoXri4g=?="

pero no funciona en

["subject"]=>
  string(69) "=?ks_c_5601-1987?B?wM7Fz7vnv/ggwNO9w8H4IMDPwM++97mrwM/B9sDUtM+02S4=?="

¿La función imap_search() no funciona en ks_c_5601-1987? ¿O hay alguna solución buena?
Gracias de antemano.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que imap_search() puede no funcionar para temas codificados en ks_c_5601-1987. Una solución potencial sería convertir la codificación del tema a utf-8 antes de utilizar imap_search(). Esto se puede hacer utilizando la función iconv() en PHP.

    Ejemplo:

    $subject = '=?ks_c_5601-1987?B?wM7Fz7vnv/ggwNO9w8H4IMDPwM++97mrwM/B9sDUtM+02S4=?=';
    $subject = iconv('ks_c_5601-1987', 'utf-8', $subject);
    $search = imap_search($imap, 'SUBJECT '.$subject, SE_FREE);
    

    Alternativamente, podrías intentar utilizar la función imap_utf8() para convertir el tema a utf-8 antes de utilizar imap_search().

    Ejemplo:

    $subject = '=?ks_c_5601-1987?B?wM7Fz7vnv/ggwNO9w8H4IMDPwM++97mrwM/B9sDUtM+02S4=?=';
    $subject = imap_utf8($subject);
    $search = imap_search($imap, 'SUBJECT '.$subject, SE_FREE, 'UTF-8');
    

    Se recomienda probar ambas soluciones exhaustivamente para asegurarse de que funcionen correctamente en tu caso de uso específico.

Comments are closed.