Inicio MS / Office

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



Ultima Actualización del Artículo: May 29, 2017

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

 

Artículos que te pueden interesar:
 
COMPARTIR
Mi nombre es Fernando, 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

  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...