Estoy configurando mi propio IMAP y necesito reunir los correos electrónicos recibidos durante los últimos 9 años en mi propio servidor (y sincronizar continuamente desde algunos buzones de correo electrónico).
He configurado con éxito fetchmail con una cuenta de prueba en un buzón vacío. Cada vez que envío un correo al buzón de destino, se recogerá a través de POP3 en mi casilla.
Pero descubrí que el mensaje que recibo en Windows Mail muestra la fecha / hora en que se fetchmail
ejecutó. Esto puede ser apropiado para el correo nuevo, pero realmente inapropiado para el seguimiento del historial.
Mi .fetchmailrc
archivo actualmente * muestra
set invisible
poll pop.fastwebnet.it proto imap
user "redacted" pass "redacted" fetchall
mda "/usr/lib/dovecot/deliver"
Mi bandeja de entrada está configurada usando Postfix y Dovecot con Maildir
formato. Elegí POP3 para fetchmail porque eliminará el mensaje una vez sincronizado con maildir.
¿Cómo puedo saber fetchmail
que el correo nuevo que se ha caído en Maildir debe coincidir exactamente con lo encontrado en el servidor, con referencia a la fecha y la hora ?
Quiero decir, si fui a sincronizar mi historia de los [email protected]
9 años acumulados de correo, ¡todos ellos estarán fechados hoy!
Por ejemplo, me envié un correo electrónico de prueba aproximadamente a las 14:59 [email protected]
, abrí el correo web a las fastwebnet.it
14:59 para confirmar que era la hora "oficial", y luego salí fetchmail
de mi servidor a las 15:30. Windows Mail mostró que la hora del correo electrónico era las 15:30 en lugar de las 14:59.
Actualizaciones
Del comentario y al leer la documentación, parece claro que fetchmail normalmente agrega un Received
encabezado en la parte superior del correo electrónico para que el cliente detecte que el correo es nuevo.
También corrí fetchmail
en modo detallado, esta vez usando IMAP. Parece que, por defecto, deja caer el correo a través de SMTP, así que ahí es donde radica el problema. Si mi servidor recibe un correo a través de SMTP para enviarlo a Maildir, asumirá que el correo electrónico es nuevo.
* He actualizado mis preguntas de la escritura original
Date
campo. Pone la fecha de maildrop en unReceived
campo en la parte superior de los encabezados, pero no enDate
, que es el que normalmente muestra un MUA.Respuestas:
Parece que la fecha expuesta al usuario por Windows Mail no proviene del
Date
campo de encabezado, sino del últimoReceived
campo (losReceived
campos están destinados principalmente a rastrear un mensaje a través de las puertas de enlace de entrega, como se menciona en RFC5321 y RFC5322 ).Cuando fetchmail entrega un mensaje, incluso con la
mda
opción (sin usar SMTP), por defecto agrega su propioReceived
campo con la fecha y hora actuales.Afortunadamente, ofrece una opción para deshabilitar esto:
Creo que desea combinar esta opción con una entrega no SMTP, por ejemplo con
--mda /usr/lib/dovecot/deliver
. De lo contrario, el servidor SMTP probablemente agregaría su propioReceived
campo después de fetchmail.fuente
Dado que el alcance de la pregunta era realizar una migración histórica "inicial" del buzón, aquí hay diferentes
brute force
enfoques: mover los correos electrónicos de IMAP antiguo a la nueva bandeja de entrada. A partir de ese momento, fetchmail daemon funcionará bien con el correo nuevo.Vía cliente (por ejemplo, Outlook)
Sincronice ambos buzones, seleccione todos (o grupos de) correos electrónicos y arrástrelos y suéltelos o córtelos y péguelos en la nueva Bandeja de entrada. Esto tomará algo de tiempo y trabajo manual, pero no puede causar ningún daño, especialmente si mueve correos electrónicos en grupos.
Vía volcado
Como tengo acceso al servidor, una herramienta como imap2maildir puede volcar un cuadro IMAP en un cuadro compatible con Maildir. Fusionar el Maildir original con el nuevo inicializa la recopilación de mensajes correctamente
A través de cualquier otra herramienta comercial específica
Hay muchas herramientas hechas para la migración / sincronización IMAP. Incluso hay herramientas en línea, a las que debe proporcionar su contraseña de caja (para su seguridad, puede cambiar la contraseña a una temporal durante la migración), y debe confiar en el servicio para no mantener sus datos personales.
fuente