0 votos

¿Cómo puedo buscar el contenido de los archivos adjuntos de correo electrónico en formato PDF de los que se ha hecho una copia de seguridad en Time Machine?

Tengo una situación bastante específica en la que necesito desenterrar un correo electrónico antiguo del que he hecho una copia de seguridad en Time Machine, pero no puedo recordar cuándo lo recibí. Podría ser en cualquier lugar entre 6 meses a 1 año atrás.

Tras el consejo aquí He ejecutado lo siguiente en el Terminal:

find "/Volumes/Time Machine" -name "*.emlx" -exec grep -l "search term" {} \;

Que me encontró varios miles de resultados que coincidían con el "término de búsqueda" (la línea de asunto).

El problema es que el contenido del cuerpo de esos mensajes es idéntico. Es el contenido del adjunto, un documento PDF, el que necesito buscar para un término específico.

¿Alguna idea de cómo puedo hacer una búsqueda similar a la anterior, pero buscando el contenido del PDF adjunto?

1voto

KenB Puntos 236

Para buscar el contenido de un PDF incrustado en un correo electrónico utilizando grep se enfrenta al menos a uno, si no a dos, retos.

La primera es que los archivos incrustados en un correo electrónico no se conservan en su forma bruta, sino que se codifican en texto plano para su transmisión en el mensaje de correo electrónico. El formato MIME más utilizado es Base64, pero no siempre es así. Puede encontrar más detalles sobre base64, incluyendo los métodos de codificación/descodificación aquí: http://en.wikipedia.org/wiki/Base64

Suponiendo que el archivo adjunto estaba codificado en base64, todavía no es tan simple como tomar su cadena de búsqueda y convertirla en una representación de base64, porque la codificación resultante depende del lugar de la cadena de entrada donde aparece su cadena objetivo. base64 toma cada 6 bits de la cadena de entrada y la convierte en un carácter de texto plano. Asumiendo que el documento PDF está usando una codificación simple de 8 bits para la cadena, 3 caracteres en el PDF se convertirán en 4 caracteres codificados. Una rápida ilustración de cómo la posición de los caracteres puede cambiar las cosas:

% echo "123456789" | base64
MTIzNDU2Nzg5Cg==
% echo "0123456789" | base64
MDEyMzQ1Njc4OQo=

En el primer ejemplo, 123 , 456 y 789 se convierten en MTIz , NDU2 y Nzg5 respectivamente. En el segundo, las tuplas codificadas son 012 => MDEy , 345 => MzQ1 ...etc.

Su cadena de búsqueda puede comenzar al principio, en medio o al final de una de estas tuplas. Si busca una cadena lo suficientemente larga, podría extraer 3 cadenas de búsqueda del medio que serían buscables, cada una de las cuales debe ser un múltiplo de 3 caracteres de longitud. Por ejemplo, si quisiera buscar la cadena 123456789 podría codificar en base64 tres posibles candidatos de búsqueda: 123456789 , 234567 y 345678 . Una de las codificaciones base debería aparecer en el archivo PDF codificado si la cadena de texto plano 123456789 está presente.

Ahora llegamos al segundo gran problema. Con esto hemos asumido que el contenido no codificado del archivo PDF está en UTF-8, codificación de texto plano. Si miras el contenido de un archivo PDF real, verás que tiene todo tipo de codificaciones internas que incluyen indicadores de fuente, texto codificado en UTF-16 o UTF-32, etc. Es muy probable que su simple frase de búsqueda no aparezca en los datos del PDF exactamente como usted espera. Puede haber contenido extra en el PDF entre los caracteres, entre las palabras, y también hay saltos de línea, por lo que si está buscando una frase que cruza un salto de línea, más complicación en la construcción de su cadena de búsqueda de destino.

Sin embargo, hay un par de cosas más que puedes probar, así que no está todo perdido.

Si conoce el nombre del PDF, puede buscarlo en su lugar. El nombre del archivo debería aparecer en el texto MIME del mensaje de correo electrónico en UTF-8 y, por tanto, se puede buscar.

También puedes tener suerte y en lugar de buscar los correos electrónicos, buscar los archivos PDF. OSX Mail extrae los archivos adjuntos y los almacena en un directorio de descarga de correo. Estoy ejecutando Mavericks y Mail v7.3 y mis archivos adjuntos se escriben en subdirectorios bajo ~/Library/Containers/com.apple.mail

Por cierto, tu comando grep busca una coincidencia exacta, así que si no estás seguro del uso de mayúsculas y minúsculas deberías añadir la opción '-i' para una búsqueda sin distinción de mayúsculas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X