Skip to content

About

Script en PowerShell para extraer contactos de Outlook y exportarlos automáticamente a CSV. Ideal para administradores o empresas que necesitan gestionar listas de contactos de manera rápida y automatizada.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

📧 Outlook Contacts Extractor & Importer

PowerShell License Platform

Script PowerShell para extraer contactos desde tus mensajes de Outlook e importarlos automáticamente a tu carpeta de Contactos.

Creado por: kombi.cl


📋 Tabla de Contenidos


🎯 Descripción

Este script automatiza el proceso de extraer contactos desde tus correos electrónicos en Outlook y agregarlos directamente a tu carpeta de Contactos, sin necesidad de archivos CSV intermedios.

El script procesa:

  • Bandeja de Entrada: Extrae los remitentes de tus mensajes recibidos
  • Elementos Enviados: Extrae los destinatarios de tus mensajes enviados

Todo en un solo proceso automático y eficiente.


✨ Características

✅ 🆕 Escaneo previo inteligente - Muestra cuántos mensajes hay antes de procesar ✅ 🆕 Barra de progreso visual - Indicador de porcentaje en tiempo real con █████ ✅ 🆕 Estimación de tiempo - Calcula aproximadamente cuánto tardará el proceso ✅ 🆕 Auto-diagnóstico y auto-reparación - Detecta y soluciona problemas automáticamente ✅ 🆕 Desbloqueo automático - Maneja archivos bloqueados por Windows ✅ 🆕 Configuración de políticas - Ajusta las políticas de ejecución de PowerShell ✅ Extracción directa - No requiere archivos CSV intermedios ✅ Detección de duplicados - Evita agregar contactos que ya existen ✅ Filtrado inteligente - Omite direcciones Exchange internas inválidas ✅ Categorización automática - Organiza contactos por origen ✅ Múltiples opciones de procesamiento - Desde 10 hasta TODOS los mensajes ✅ Interfaz visual - Progreso en tiempo real con colores ✅ Información contextual - Guarda fecha y asunto del mensaje original ✅ Seguro y reversible - Solo agrega, no modifica ni elimina


📦 Requisitos

  • Sistema Operativo: Windows 10/11
  • PowerShell: Versión 5.1 o superior
  • Microsoft Outlook: Instalado y configurado
  • Permisos: Ejecutar PowerShell (no requiere administrador)

🚀 Instalación

Método 1: Descarga directa

  1. Descarga el script:

    # Opción A: Clonar el repositorio
    git clone https://github.com/kombicl/Outlook-contacts.git
    cd Outlook-contacts
    
    # Opción B: Descargar solo el archivo
    Invoke-WebRequest -Uri "https://raw.githubusercontent.com/kombicl/Outlook-contacts/main/Extract_And_Import_Contacts.ps1" -OutFile "Extract_And_Import_Contacts.ps1"
  2. Habilitar la ejecución de scripts PowerShell (si es necesario):

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Método 2: Instalación manual

  1. Crea una carpeta para tus scripts (opcional):

    New-Item -ItemType Directory -Path "D:\script\ps" -Force
  2. Descarga el archivo Extract_And_Import_Contacts.ps1 desde este repositorio

  3. Colócalo en la carpeta creada o en cualquier ubicación de tu preferencia


🚀 Inicio Rápido (NUEVO - Auto-configuración)

El script ahora incluye auto-diagnóstico y auto-reparación para los problemas más comunes:

  1. Descarga el script (si aún no lo tienes)
  2. Haz doble clic en Extract_And_Import_Contacts.ps1 o ejecútalo desde PowerShell
  3. Si encuentra problemas (archivo bloqueado, políticas restrictivas), te preguntará:
    ¿Quieres que lo configure automáticamente? (S/N)
    
  4. Presiona S y el script se configurará solo
  5. ¡Listo! Sigue las instrucciones en pantalla

Ya no necesitas configurar nada manualmente - el script lo hace por ti. 🎉


📖 Guía de Uso Detallada

Paso 1: Abrir PowerShell

  1. Presiona Windows + X
  2. Selecciona Windows PowerShell (no requiere ejecutar como administrador)

Paso 2: Navegar a la carpeta del script

cd "D:\script\ps"
# O la ruta donde guardaste el script

Paso 3: Ejecutar el script

.\Extract_And_Import_Contacts.ps1

Paso 4: Seguir las instrucciones

El script te guiará a través de:

  1. Verificación de Outlook

    • Detecta si Outlook está ejecutándose
    • Si no está abierto, lo inicia automáticamente
  2. Selección de opciones

    OPCIONES DE PROCESAMIENTO:
      1. Prueba rápida (10 mensajes por carpeta)
      2. Normal (50 mensajes por carpeta)
      3. Extendida (100 mensajes por carpeta)
      4. Completa (500 mensajes por carpeta)
      5. TODOS los mensajes (puede tardar varios minutos)
      6. Personalizada
    
    Selecciona una opción (1-6, Enter para Normal):
    
  3. Configuración de duplicados

    Omitir contactos duplicados? (S/N, Enter para Sí):
    
  4. Proceso automático

    • El script extraerá e importará los contactos
    • Verás el progreso en tiempo real
    • Al finalizar, verás un resumen completo

Paso 5: Ver tus contactos

  1. Abre Microsoft Outlook
  2. Ve a la sección Personas o Contactos (icono en la parte inferior)
  3. Verás todos tus contactos importados organizados por categorías

🎛️ Opciones Disponibles

1. Prueba Rápida (10 mensajes)

  • Ideal para: Probar el script por primera vez
  • Tiempo estimado: 10-30 segundos
  • Contactos esperados: 5-15 contactos

2. Normal (50 mensajes) - RECOMENDADA

  • Ideal para: Uso regular
  • Tiempo estimado: 30 segundos - 1 minuto
  • Contactos esperados: 20-50 contactos

3. Extendida (100 mensajes)

  • Ideal para: Construcción inicial de tu lista
  • Tiempo estimado: 1-2 minutos
  • Contactos esperados: 50-100 contactos

4. Completa (500 mensajes)

  • Ideal para: Recuperación masiva de contactos
  • Tiempo estimado: 3-5 minutos
  • Contactos esperados: 200-500 contactos

5. TODOS los mensajes

  • Ideal para: Extracción completa de toda tu bandeja
  • Tiempo estimado: 10-60 minutos (depende de la cantidad)
  • Contactos esperados: Variable
  • ⚠️ Advertencia: Puede tardar mucho tiempo si tienes miles de mensajes

6. Personalizada

  • Ideal para: Necesidades específicas
  • Tiempo estimado: Variable
  • Contactos esperados: Según tu configuración

❓ Preguntas Frecuentes

¿El script modifica o elimina mis mensajes?

No. El script solo lee tus mensajes para extraer información de contacto. No modifica, mueve ni elimina ningún mensaje.

¿Qué pasa si ejecuto el script varias veces?

Por defecto, el script omite contactos duplicados. Si ejecutas el script varias veces, solo se agregarán contactos nuevos.

¿Puedo deshacer la importación?

Sí. Puedes eliminar los contactos importados filtrando por categoría:

  • "Importado desde Bandeja de Entrada"
  • "Importado desde Elementos Enviados"

¿El script funciona con cuentas Exchange/Office 365?

Sí, pero solo importa direcciones de email válidas (formato SMTP). Las direcciones Exchange internas son filtradas automáticamente.

¿Cuánto espacio ocupa?

Cada contacto ocupa aproximadamente 1-2 KB. Incluso 1000 contactos ocupan menos de 2 MB.

¿Necesito conexión a Internet?

No, el script funciona completamente offline ya que solo interactúa con tu Outlook local.


🔧 Solución de Problemas

⚠️ Error: "No se puede ejecutar scripts" o "Archivo bloqueado"

El script ahora se auto-diagnostica y se auto-repara! 🎉

Cuando ejecutes el script, automáticamente detectará si:

  • El archivo está bloqueado por Windows (descargado de Internet)
  • Las políticas de ejecución de PowerShell están restringidas

Y te ofrecerá arreglarlo automáticamente con un simple "S" (Sí).

Solución Manual (si prefieres hacerlo tú):

Opción 1: Desbloquear archivo (si fue descargado de Internet)

Unblock-File .\Extract_And_Import_Contacts.ps1

O haz clic derecho en el archivo → Propiedades → marca "Desbloquear" → Aplicar

Opción 2: Cambiar política de ejecución

Para solo esta sesión (recomendado):

Set-ExecutionPolicy Bypass -Scope Process

Para el usuario actual (permanente):

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

¿Por qué sucede esto?

Windows bloquea archivos descargados de Internet por seguridad. PowerShell también tiene políticas restrictivas por defecto. El script ahora detecta estos problemas y te ayuda a resolverlos automáticamente.


Error: "No se pudo conectar con Outlook"

Soluciones:

  1. Asegúrate de que Outlook esté instalado
  2. Abre Outlook manualmente antes de ejecutar el script
  3. Verifica que tu perfil de Outlook esté configurado

El script no encuentra contactos

Posibles causas:

  • Seleccionaste una opción de pocos mensajes (prueba con opción 3 o 4)
  • Tus mensajes tienen direcciones Exchange internas (normales que sean filtradas)
  • Los contactos ya existen y los duplicados fueron omitidos

El script es muy lento

Soluciones:

  • Elige una opción con menos mensajes
  • Cierra otras aplicaciones para liberar recursos
  • Verifica que no tengas muchos complementos en Outlook

🎨 Ejemplo de Salida

========================================
  EXTRACTOR E IMPORTADOR DE CONTACTOS
       Mensajes -> Contactos
          by kombi.cl
========================================

Verificando Outlook...
  Outlook detectado (PID: 12345)

OPCIONES DE PROCESAMIENTO:
  1. Prueba rápida (10 mensajes por carpeta)
  2. Normal (50 mensajes por carpeta)
  3. Extendida (100 mensajes por carpeta)
  4. Completa (500 mensajes por carpeta)
  5. TODOS los mensajes (puede tardar varios minutos)
  6. Personalizada

Selecciona una opción (1-6, Enter para Normal): 2

Omitir contactos duplicados? (S/N, Enter para Sí):

Ejecutando procesamiento normal...
Conectando con Outlook...
  Conectado a Outlook existente
  Acceso a carpetas establecido
  Contactos existentes: 125

========================================
Escaneando buzones...
========================================
  Bandeja de Entrada: 1,234 mensajes
  Elementos Enviados: 892 mensajes
  TOTAL: 2,126 mensajes

Mensajes a procesar con la opción seleccionada:
  Bandeja de Entrada: 50 de 1,234
  Elementos Enviados: 50 de 892
  TOTAL A PROCESAR: 100 mensajes
  Cobertura: ~4.1% de Bandeja, ~5.6% de Enviados

Estimación de tiempo: 20 segundos

Continuar con el procesamiento? (S/N, Enter para Sí):

Verificando contactos existentes...
  Emails únicos existentes: 125

========================================
Procesando Bandeja de Entrada...
========================================
  Total a procesar: 50 de 1,234 mensajes

  Progreso: [███████████████░░░░░░░░░░░░░░░] 50.0% (25/50) | Agregados: 10
  Progreso: [██████████████████████████████] 100.0% (50/50) | Agregados: 18

  Bandeja de Entrada completada
    Mensajes procesados: 50
    Contactos agregados: 18

========================================
Procesando Elementos Enviados...
========================================
  Total a procesar: 50 de 892 mensajes

  Progreso: [███████████████░░░░░░░░░░░░░░░] 50.0% (25/50) | Agregados: 12
  Progreso: [██████████████████████████████] 100.0% (50/50) | Agregados: 25

  Elementos Enviados completados
    Mensajes procesados: 50
    Contactos agregados: 25

========================================
      PROCESO COMPLETADO
========================================

RESUMEN GENERAL:
  Mensajes procesados: 100
  Contactos encontrados: 68
  Contactos agregados: 43
  Duplicados omitidos: 20
  Emails inválidos: 5

  Total contactos en Outlook: 168

COMO VER TUS CONTACTOS:
  1. Abre Outlook
  2. Ve a la sección 'Personas' o 'Contactos' (icono abajo)
  3. Verás todos los contactos importados

Quieres abrir los Contactos en Outlook ahora? (S/N):

🤝 Contribuciones

Las contribuciones son bienvenidas. Si encuentras un bug o tienes una sugerencia:

  1. Abre un Issue en GitHub
  2. Haz un Fork del repositorio
  3. Crea una Pull Request con tus mejoras

📄 Licencia

Este proyecto está bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.


👨‍💻 Autor

kombi.cl


⭐ Agradecimientos

Si este script te ha sido útil, considera darle una estrella ⭐ en GitHub.


📝 Changelog

Version 1.2 (2025-01-06)

  • 📊 Escaneo previo inteligente
    • ✅ Muestra el total de mensajes disponibles antes de procesar
    • ✅ Calcula y muestra cuántos mensajes se procesarán según la opción elegida
    • ✅ Porcentaje de cobertura de buzones (ej: "~4.1% de Bandeja")
    • ✅ Estimación de tiempo de procesamiento (segundos, minutos u horas)
    • ✅ Confirmación antes de continuar con opción de cancelar
  • 📈 Barra de progreso visual
    • ✅ Barra de progreso con bloques █░░░░ en tiempo real
    • ✅ Porcentaje exacto de avance (ej: "50.0%")
    • ✅ Contador de mensajes procesados (ej: "25/50")
    • ✅ Contactos agregados en tiempo real
    • ✅ Actualización cada 5% para mejor rendimiento
  • 🎨 Mejoras de UX
    • ✅ El usuario sabe exactamente cuánto falta
    • ✅ Tranquilidad de que el script no se ha "colgado"
    • ✅ Información completa antes de iniciar el proceso

Version 1.1 (2025-01-06)

  • 🎉 Auto-diagnóstico y auto-reparación
    • ✅ Detección automática de archivos bloqueados por Windows (Zone.Identifier)
    • ✅ Desbloqueo automático con confirmación del usuario
    • ✅ Detección de políticas de ejecución restrictivas
    • ✅ Configuración automática de políticas (Bypass para sesión actual)
    • ✅ Mensajes claros y amigables con instrucciones paso a paso
    • ✅ Opción de configuración manual para usuarios avanzados
  • 📚 README mejorado
    • ✅ Nueva sección "Inicio Rápido" con auto-configuración
    • ✅ Sección de troubleshooting actualizada y más clara
    • ✅ Explicación de por qué suceden los errores comunes

Version 1.0 (2025-01-06)

  • ✨ Lanzamiento inicial
  • ✅ Extracción automática de contactos
  • ✅ Importación directa a Outlook
  • ✅ Detección de duplicados
  • ✅ Filtrado de emails inválidos
  • ✅ Múltiples opciones de procesamiento (1-6)
  • ✅ Opción para procesar TODOS los mensajes
  • ✅ Categorización automática
  • ✅ Interfaz con colores y progreso

🔮 Próximas Características

  • Soporte para carpetas personalizadas
  • Exportación a Excel
  • Interfaz gráfica (GUI)
  • Programación de tareas automáticas
  • Sincronización bidireccional

¿Necesitas ayuda? Abre un issue en GitHub o visita kombi.cl

About

Script en PowerShell para extraer contactos de Outlook y exportarlos automáticamente a CSV. Ideal para administradores o empresas que necesitan gestionar listas de contactos de manera rápida y automatizada.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages