VBScript – Guardar Correos Entrantes a una Carpeta en el Disco (.MSG) Outlook

Respondiendo a una consulta que nos realizarón el cual desean guardar correos entrantes a un folder en el disco duro local (guardar los correos como .msg)

Instrucciones de Uso 

1.- Abrir el editor de Visual Basic (ALT+F11).

2.- Insertar un modulo nuevo (Insert > Module).

3.- Copiar el código VBScript.

4.- En la linea 12 debemos especificar la ruta donde se guardaran los archivos (Esta carpeta la creamos manualmente).

Para mas información de configuración ver: Como utilizar el Editor VBA en Office (Utilizar Macros VBScript) y Outlook – Crear y configurar reglas

Código

Public Sub SaveIncomingMsgToFolder(Item As Outlook.MailItem)
  Dim sPath As String
  Dim dDate As Date
  Dim sSubject As String
  
  sSubject = Item.Subject
  ReplaceIllegalChars sSubject, "-"
  
  dDate = Item.ReceivedTime
  sSubject = Format(dDate, "yyyymmdd") & Format(dDate, "-hhnnss") & "-" & sSubject & ".msg"
 
  sPath = "C:\1-Tests\"
  Item.SaveAs sPath & sSubject, olMSG
End Sub
  
Private Sub ReplaceIllegalChars(sSubject As String, _
  sChr As String _
)
  sSubject = Replace(sSubject, "/", sChr)
  sSubject = Replace(sSubject, "\", sChr)
  sSubject = Replace(sSubject, ":", sChr)
  sSubject = Replace(sSubject, "?", sChr)
  sSubject = Replace(sSubject, Chr(34), sChr)
  sSubject = Replace(sSubject, "<", sChr)
  sSubject = Replace(sSubject, ">", sChr)
  sSubject = Replace(sSubject, "|", sChr)
  sSubject = Replace(sSubject, "*", sChr)
End Sub

 

Fernando O.

Soy analista de sistemas actualmente trabajo en una empresa con mas de 200 empleados que utilizan equipo de computo al cual se les da soporte en el departamento.
Uno de mis pasatiempos fuera de la empresa es escribir artículos para PortalMasTips donde documento los problemas, inquietudes y detalles interesantes que se presentan.

4 comentarios en “VBScript – Guardar Correos Entrantes a una Carpeta en el Disco (.MSG) Outlook

  1. Muchas gracias por tu apoyo, precisamente hoy estaba intentando hacerlo en un tiempo libre en la empresa, gracias. Otra duda, los script o macros de visual basic como el que compartiste, ¿Se pueden convertir a ejecutables. EXE como para ejecutarlos desde el programador de tareas de Windows en lugar de Outlook u otra aplicación de Office?

    • Buen dia

      Este en especifico no se puede ya que esta utilizando objetos/librerías de Outlook y marcaría error; asi como los Scripts o Macros desarrollados específicamente para una aplicación no se puede ejecutar en otra al menos que no se utilicen objetos exclusivos de cada una. Si se realiza un script visual basic haciendo referencias a los objetos/librerias de Windows de esta manera se podría programarse que se ejecuten desde el task scheduler solo se tendría que guardar en un archivo nombre.vbs y ejecutarlo; ya que visual basic esta incluido en Windows.

      Saludos.

Deja un comentario...

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Compartir
Twittear
Pin
Stumble
Leer entrada anterior
VBScript – Guardar Todos los Correos de la Carpeta Seleccionada a TXT Outlook

El siguiente script es una modificación del script publicado en el articulo Guardar Cuerpo de Correo Entrante en Archivo de...

VBScript – Guardar Cuerpo de Correo Entrante en Archivo de Texto (TXT) Outlook

Este script es respondiendo una solicitud de un usuario, el cual lo que desea es guardar cuerpo de correo entrante...

Cerrar