Automatización de Outlook desde vbs

15/11/2003 - 21:07 por Emilio | Informe spam
Hola a tod@s

estoy tratando de crear una subrutina en visual script con la que poder
enviar mensajes de correo, primero lo he probado en access y funciona bien,
sin embargo desde vbs aunque no da errores, no rellena los campos de
destinatario, el caso es que la he ejecutado paso a paso y no se donde
demonios falla, porque de hecho el mensaje se crea pero como os digo sin
destinatarios.

Teneis idea de que puede ocurrir

Gracias anticipadas

Este es el código

-
EnviarMensaje True, "pepe", "juan" ,"luis","C:\autoexec.bat", "Alta"



Sub EnviarMensaje(bolAbrir, strPara, strCC, strCCO, strRutaAdjunto,
strImportancia)
Dim ol, _
olMensaje, _
olPara, _
olAdjunto

Const olImportanceHigh = 2
Const olImportanceNormal = 1
Const olImportanceLow = 0

' Creo la sesión de Outlook
Set ol = CreateObject("Outlook.Application")

' Creo el mensaje
Set olMensaje = ol.CreateItem(olMailItem)

With olMensaje
' añado destinatarios Para
Set olPara = .Recipients.Add(strPara)
olPara.Type = olTo

' añado destinatarios CC
Set olPara = .Recipients.Add(strCC)
olPara.Type = olCC

' añado destinatarios CCO
Set olPara = .Recipients.Add(strCCO)
olPara.Type = olBCC

' indico el asunto y el cuerpo del mensaje y la importancia del mensaje
.Subject = "Probando Automatización de Microsoft Outlook: Asunto"
.Body = "Cuerpo del mensaje" & vbCrLf & vbCrLf

Select Case strImportancia
Case "Alta"
.Importance = olImportanceHigh ' importancia alta
Case "Normal"
.Importance = olImportanceNormal ' importancia normal
Case "Baja"
.Importance = olImportanceLow ' importancia baja
Case Else
.Importance = olImportanceNormal ' importancia normal
End Select

' añado adjuntos si los hay
If Len(strRutaAdjunto)<>0 Then
Set olAdjunto = .Attachments.Add(strRutaAdjunto)
End If

' compruebo si los destinatarios son correctos
For Each olPara In .Recipients
olPara.Resolve
' If olPara.Resolved Then MsgBox olPara & " correcto"
Next

' muestro o no el mensaje antes de enviarlo
If bolAbrir Then
.Display
Else
.Save
.Send
End If
End With

Set olPara = Nothing
Set olAdjunto = Nothing
Set olMensaje = Nothing
Set ol = Nothing
End Sub ' EnviarMensaje
-

Saludos a tod@s

Emilio
miliu56 ARROBA hotmail.com
 

Leer las respuestas

#1 Emilio
16/11/2003 - 08:28 | Informe spam
Perdón, se me olvidaba estoy trabajando con Office 2003

Saludos a desde Huelva

Emilio
miliu56 ARROBA hotmail.com

"Emilio" <miliu56 ARROBA hotmail.com> escribió en el mensaje
news:%
Hola a

estoy tratando de crear una subrutina en visual script con la que poder
enviar mensajes de correo, primero lo he probado en access y funciona


bien,
sin embargo desde vbs aunque no da errores, no rellena los campos de
destinatario, el caso es que la he ejecutado paso a paso y no se donde
demonios falla, porque de hecho el mensaje se crea pero como os digo sin
destinatarios.

Teneis idea de que puede ocurrir

Gracias anticipadas

Este es el código

-
EnviarMensaje True, "pepe", "juan" ,"luis","C:\autoexec.bat", "Alta"



Sub EnviarMensaje(bolAbrir, strPara, strCC, strCCO, strRutaAdjunto,
strImportancia)
Dim ol, _
olMensaje, _
olPara, _
olAdjunto

Const olImportanceHigh = 2
Const olImportanceNormal = 1
Const olImportanceLow = 0

' Creo la sesión de Outlook
Set ol = CreateObject("Outlook.Application")

' Creo el mensaje
Set olMensaje = ol.CreateItem(olMailItem)

With olMensaje
' añado destinatarios Para
Set olPara = .Recipients.Add(strPara)
olPara.Type = olTo

' añado destinatarios CC
Set olPara = .Recipients.Add(strCC)
olPara.Type = olCC

' añado destinatarios CCO
Set olPara = .Recipients.Add(strCCO)
olPara.Type = olBCC

' indico el asunto y el cuerpo del mensaje y la importancia del mensaje
.Subject = "Probando Automatización de Microsoft Outlook: Asunto"
.Body = "Cuerpo del mensaje" & vbCrLf & vbCrLf

Select Case strImportancia
Case "Alta"
.Importance = olImportanceHigh ' importancia alta
Case "Normal"
.Importance = olImportanceNormal ' importancia normal
Case "Baja"
.Importance = olImportanceLow ' importancia baja
Case Else
.Importance = olImportanceNormal ' importancia normal
End Select

' añado adjuntos si los hay
If Len(strRutaAdjunto)<>0 Then
Set olAdjunto = .Attachments.Add(strRutaAdjunto)
End If

' compruebo si los destinatarios son correctos
For Each olPara In .Recipients
olPara.Resolve
' If olPara.Resolved Then MsgBox olPara & " correcto"
Next

' muestro o no el mensaje antes de enviarlo
If bolAbrir Then
.Display
Else
.Save
.Send
End If
End With

Set olPara = Nothing
Set olAdjunto = Nothing
Set olMensaje = Nothing
Set ol = Nothing
End Sub ' EnviarMensaje
-

Saludos a

Emilio
miliu56 ARROBA hotmail.com


Preguntas similares