Exportar e importar firmas de correo electrónico en Microsoft Outlook
¡Feliz Año Nuevo a todos! 2014 ha sido un año cargado de retos y exploraciones de nuevas tecnologías, además de ser el año que iniciamos andadura en el blog del equipo de Enterprise IT de Plain Concepts. ¡Esperamos disfrutaseis del 2014 tanto como nosotros y que el 2015 empiece para todos con las pilas cargadas!
Mi primer post del año no es muy técnico, pero sí pienso que tremendamente útil. Como usuario y administrador de Office 365 no es ninguna sorpresa que mi correo esté basado en Exchange Online y que acceda a él habitualmente utilizando Outlook 2013. Algo que siempre he lamentado profundamente es que Outlook almacene las firmas de los correos electrónicos en local y no en el servidor de Exchange. Este hecho conlleva problemas bastante obvios:
- Si reinstalo mi PC, necesito volver escribir o –en el mejor caso- copiar y pegar las firmas de mis cuentas de correo.
- Si adquiero un nuevo equipo, debo realizar la misma operación que en el punto anterior.
- Si tengo un parque de 3-4 equipos (como es mi caso), es frecuente que no todos tengan las firmas sincronizadas.
- Yo uso 2 firmas –una para mensajes nuevos y otra para respuestas- para cada dirección de correo. Con 3 direcciones de correo me junto con 6 firmas.
Mientras esta ansiada característica de Exchange llega o no, he creado un par de sencillos archivos de procesamiento por lotes (BAT) que se encargan de exportar todas firmas de nuestro Outlook y de importarlas de vuelta al mismo. Combinando estos scripts con algún servicio de sincronización como Dropbox o OneDrive, tenemos toda la magia que necesitamos.
Script para exportar firmas de Outlook
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@ECHO OFF ECHO Outlook signatures backup script v1.0 ECHO (c) Plain Concepts Enterprise Team - enterprise@plainconcepts.com ECHO. SET ZIP="C:Program Files7-Zip"7z.exe SET SIGFILE=outlook_signatures.zip ECHO 7zip path: %ZIP% ECHO Signature file: %SIGFILE% REM If Outlook language is es-ES IF EXIST "%APPDATA%MicrosoftFirmas" SET FOLDER=%APPDATA%MicrosoftFirmas REM If Outlook language is en-US IF EXIST "%APPDATA%MicrosoftSignatures" SET FOLDER=%APPDATA%MicrosoftSignatures REM Delete old signature file IF EXIST %SIGFILE% DEL %SIGFILE% ECHO Selected backup folder: %FOLDER% %ZIP% a -tzip -r .%SIGFILE% %FOLDER%*.* |
Como podéis ver, es realmente sencillo. En primer lugar nos vamos a apoyar en algún programa de archivado de ficheros. 7-Zip es nuestra primera elección por se gratuito, open source, poder trabajar con formato ZIP y tener una potente versión de línea de comandos. Otras alternativas serían TAR, RAR, LZH o cualquier otro.
El script básicamente:
- Guarda en la variable ZIP la ruta de instalación de 7-Zip, para poder hacer uso del mismo. La expuesta es la más habitual. Modificar en cada caso.
- Guarda en la variable SIGFILE el archivo que vamos a generar tras exportar las firmas.
- Como Outlook guarda las firmas en carpetas distintas dependiendo del idioma que estemos utilizando, utilizamos los IF y la variable FOLDER para establecer el lugar donde Outlook almacena los archivos que nos interesan.
- Si existe otro archivo anteriormente generado lo eliminamos.
- Llamamos a 7-Zip para que genere un empaquetado de los contenidos del directorio. Con el “a” decimos que queremos crear un archivo y agregar contenido, –tzip para utilizar el formato ZIP y –r para recorrer todos los subdirectorios.
Script para importar firmas de Outlook
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@ECHO OFF ECHO Outlook signatures restore script v1.0 ECHO (c) Plain Concepts Enterprise Team - enterprise@plainconcepts.com ECHO. SET ZIP="C:Program Files7-Zip"7z.exe SET SIGFILE=outlook_signatures.zip ECHO 7zip path: %ZIP% ECHO Signature file: %SIGFILE% REM If Outlook language is es-ES IF EXIST "%APPDATA%MicrosoftFirmas" SET FOLDER=%APPDATA%MicrosoftFirmas REM If Outlook language is en-US IF EXIST "%APPDATA%MicrosoftSignatures" SET FOLDER=%APPDATA%MicrosoftSignatures ECHO Selected restore folder: %FOLDER% %ZIP% x -tzip -r -o%FOLDER% .%SIGFILE% |
Muy similar al anterior, sólo cambia en el comando 7-Zip donde ahora le especificamos que vamos a extraer los contenidos del empaquetado. Tras realizar esta acción nuestras firmas aparecerán para seleccionar y configurar mágicamente en nuestro Outlook.
Si almacenamos estos dos scripts en una carpeta de Dropbox, OneDrive o nuestro servicio de sincronización, operar con ellos será sencillo.
- Ejecutar backup_outlook_sigs.bat desde el equipo del que queramos extraer las firmas.
- Ejecutar restore_outlook_sigs.bat desde todos los equipos en los que queramos importar las firmas extraídas.
Espero que estos scripts os permitan ahorrar tiempo poniendo a punto vuestros nuevos sistemas.
Happy signing!
UPDATE: José Ángel Fernández nos ha sugerido una versión equivalente del script en PowerShell que tiene la peculiaridada de no necesitar ninguna herramienta de archivado externa, pues se vale del ZIP que se encuentra en la propia API de Windows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Write-Output "Outlook signatures backup script v1.0 " ` "Plain Concepts Enterprise Team - enterprise@plainconcepts.com" ` "`n" $signatureFile = "outlook_signatures.zip" $signatureFolder = [string]::Empty if (Test-Path "$env:APPDATAMicrosoftFirmas") { $signatureFolder = "$env:APPDATAMicrosoftFirmas" Write-Output "Outlook language is es-ES" } if (Test-Path "$env:APPDATAMicrosoftSignatures") { $signatureFolder = "$env:APPDATAMicrosoftSignatures" Write-Output "Outlook language is en-US" } if ([string]::IsNullOrEmpty($signatureFolder)){ Write-Output "No Outlook signature file found" } [System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null [System.IO.Compression.Zipfile]::CreateFromDirectory($signatureFolder, $signatureFile) |
gracias por la información, estos tutoriales ayudan en mucho a hacer cosas para que muchos se nos hace dificil