Saltar al contenido

VBScript – Guardar Correos Seleccionados en un Archivo TXT Outlook

El siguiente script es una modificación del script publicado en el articulo Guardar Cuerpo de Correo Entrante en Archivo de Texto (TXT) Outlook, esta modificación al script realiza lo siguiente: Guarda los correos que seleccionemos previamente cada uno en un archivo TXT en una carpeta que indiquemos.

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

Codigo

Sub saveSelectedEmailToTXT()
Dim objItem As Outlook.MailItem
Dim sSubject As String
Dim dDate As Date
Dim iCount As Integer

For Each objItem In ActiveExplorer.Selection
'Set objItem = Application.ActiveExplorer.Selection.Item(1)
sSubject = objItem.Subject
ReplaceIllegalChars sSubject, "-"
dDate = objItem.ReceivedTime
objItem.SaveAs "C:\1-Tests\" & sSubject & ".txt", olSaveAsText
Next
 
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

 

Te recomendamos leer:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

Comentarios (6)

Hola, Excelente información. Estoy corriendo Office 2016 32 Bits. La carpeta del REGEDIT la cree manual, ya que no me salía. He creado el script pero siempre me dice “Error de compilación de Microsoft VBScript” con todos los script y el resultado es el mismo. Espero me pueda ayudar.

Responder

Buen dia

Puedes verificar si existe el archivo:
C:WindowsSysWOW64vbscript.dll
Y verificar si tienes marcado Microsoft VBScript Regular Expressions 5.5 en la consola de Visual Basic de Outlook Herramientas >> Referencias .

Al igual si me puedes hacer referencia al articulo que mencionas del registro tenemos tres el cual aplicamos esto.

Saludos.

Responder

Hola buenas tardes, estoy tratando de usar tus scripts, para guardar los cuerpos de los mensajes en un txt pero lo he intentado con la opcion de seleccion y carpeta, el resultado me gusrda un solo mensaje de los 600 que tengo…

Los correos pertenecen a un evento estos datos debo ingresarlos a un excel en columnas

Un nuevo registro ha sido enviado
* Nombres: Nombre del competidor
* Documento: 00000000000
* Vuelo #: American 0000
* Ciudad: Bogotá
* Fecha de Salida: 31 de marzo de 2017
* Fecha de Regreso: 3 de abril de 2017
* Nombre de Hotel : Hotel
* Telefono: 0000000000
* Email: [email protected]

Responder

Buen dia Hugo

Modifique el código para que guarde todos los correos seleccionados, de igual forma puedes ver: VBScript – Guardar Todos los Correos de la Carpeta Seleccionada a TXT Outlook ya que se facilitaría por ser tantos correos.

Saludos.

Responder

No funciona ya lo intente y nada solo me trae

De: [email protected]
Enviado el: martes, 07 de marzo de 2017 05:10 PM
Para: [email protected]
Asunto: Formulario de participación

Teniendo en cuenta que todos los email de esa carpeta tienen el mismo asunto

Responder

Buen dia Hugo,

Este VBScript no hace merge a los correos en uno mismo, es por eso que te remplaza el archivo por el ultimo seleccionado con el mismo asunto, ocupas insertar algo para que lo diferencie (contador) si lo deseas en diferente archivo.
La opción que te proporcione el dia de ayer dando respuesta a tu consulta via correo electronico si realiza merge y los guarda en el mismo aun cuando tiene el mismo asunto.

Saludos.

Responder
Compartir
Twittear
Compartir
Pin
Más en Outlook VBScript
VBScript – Guardar Correos Entrantes a una Carpeta en el Disco (.MSG) Outlook

VBScript – Guardar Todos los Correos de la Carpeta Seleccionada a TXT Outlook

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

Cerrar