VBScript – Outlook reenviar correo y agregar texto automaticamente

El siguiente código VBScript es para reenviar correo agregando mensaje al cuerpo de correo y edita el texto del asunto antes de reenviar

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.- Editamos los campos de las lineas 7, 8 y 9; también podemos editar la linea 10 si deseamos que se envíe automáticamente.

5.- Ahora debemos crear la regla que ejecute el VBScript cuando cumpla las condiciones que estableceremos.

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

Sub ChangeSubjectForwardAttachment(item As Outlook.MailItem)
Dim oAtt As Attachment
strAtt = ""
For Each oAtt In item.Attachments
Debug.Print oAtt.FileName
  Set myforward = item.Forward
   myforward.Recipients.Add "[email protected]"
   myforward.Subject = "Reenvio archivos " '& oAtt.FileName 
   myforward.HTMLBody = "Texto a enviar" & vbCrLf & item.HTMLBody
   myforward.Display 'Cambiar Display por Send si deseamos que se envie automatico.
   Exit Sub
Next oAtt
End Sub

 

Califica este articulo

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.

12 comentarios en “VBScript – Outlook reenviar correo y agregar texto automaticamente

  1. ESTIMADO EN EL LINK: VBScript – Outlook reenviar correo y agregar texto automaticamente …..como podria hacer si kiero reemviar cierto correo que me llega con ciertas palabras que se encuentran en el ASUNTO o CUERPO DE MENSAJE ??? que lo reemvie a ciertas personas si dice tiene la palabra distrito “olivos” y si tiene otros distritos “san bartolo” que le manden a otras personas y la cantidad total de distritos se sectoriza en 4 norte- sur- este -oeste y por lo tanto rennvie a cuatro destinos segun el sector , ciempre los correos tienen archivos adjuntos y que el reemvio sea incluyendo dichos archivos y que en el asunto me adjunte el distrito el cual esta en el cuerpo del mensaje ?????, de antemano gracias estimado ?????

    • Buen dia Christian

      En Outlook al momento de crear la regla puedes seleccionar la opción “with specific words in the subject or body” (Con palabras específicas en el asunto o cuerpo) y crear varias reglas para ejecutar diferentes scripts.

      Tu puedes editar el script a tus necesidades por ejemplo para añadir el distrito al asunto seria myforward.Subject = “Distrito ” & vbCrLf & item.Subject

      Saludos.

  2. buen dia Fernando, tus codigos son excelentes, me podrias apoyar para saber como puedo realizar un reenvio de correo outlook pero que tome el destinatario de excel?.
    lo que estoy realizando es exportar los correos de outlook a excel ahi se le coloca un ID y una destinatario que varia por cada correo, y requiero que se reenvie a esta persona asignada.

    de antemano gracias!!

    • Buen dia Luis

      Las dos lineas a agregar son:

         SendAt = Now + 60 / 1440 '60 minutos / 1440
         myforward.DeferredDeliveryTime = SendAt

      Quedaría asi:

      Sub ChangeSubjectForwardAttachment(item As Outlook.MailItem)
      Dim oAtt As Attachment
      strAtt = ""
      For Each oAtt In item.Attachments
      Debug.Print oAtt.FileName
        Set myforward = item.Forward
         myforward.Recipients.Add "[email protected]"
         myforward.Subject = "Reenvio archivos " '& oAtt.FileName
         myforward.HtmlBody = "Texto a enviar" & vbCrLf & item.HtmlBody
         SendAt = Now + 60 / 1440 '60 minutos / 1440
         myforward.DeferredDeliveryTime = SendAt
         myforward.Display 'Cambiar Display por Send si deseamos que se envie automatico.
         Exit Sub
      Next oAtt
      End Sub

      Excelente dia.

  3. Ferenando eres un dios para esto.

    Muchisimas gracias por el aporte solo me queda una duda esta es como una funcion que la mandas llamar o la puedes correr asi?

  4. Muchas gracias Fer

    Solo tengo una duda como lo configuro para que aplique

    vi otra de tus aportaciones y la configuracion es en el regedit en esta ruta
    HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Outlook\received
    solo que no tengo la parte de VB and VBA Program Settings\Outlook\received existe alguna otra forma?

    • Buen dia Luis

      Me confirmas que es lo que deseas configurar ¿Te refieres a como ejecutar el Script?

      Cada articulo cuenta con sus instrucciones:

      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.- Editamos los campos de las lineas 7, 8 y 9; también podemos editar la linea 10 si deseamos que se envíe automáticamente.
      5.- Ahora debemos crear la regla que ejecute el VBScript cuando cumpla las condiciones que estableceremos.

  5. Hola Fernando

    Un gusto saludarte, tengo una duda: es posible que al momento de reenviar el correo se incluya la firma que uso en mis correos?? Ya que al usar la línea itm.Htmlbody únicamente incluye la firma de la persona que envió el correo

    • Buen dia Tony

      Aun no tengo un articulo sobre como realizar esto, mas se puede realizar por medio de una plantilla, creas una plantilla en Outlook y la guardas (Un correo con tu firma) y en el codigo ocupas indicar la ruta donde se encuentra la plantilla para esto:

      'Declaras otro MailboxItem
      Dim oTemplate As Outlook.MailItem
      Set oTemplate = Application.CreateItemFromTemplate("C:\Test\template.oft")< \pre>
      
      Y en el codigo agregas el texto del correo a reenviar y la plantilla 
      
      myforward.HTMLBody = oTemplate.HTMLBody & "Texto a enviar" & vbCrLf & item.HTMLBody< \pre>
      
      Excelente dia.

Deja un comentario...

Compartir
Twittear
+1
Compartir
Pin
Stumble