Está en la página 1de 2

Hola:

Esto no es una duda, sino la resoluci�n de una duda.

Ten�a la necesidad de enviar mensajes utilizando Outlook desde Access,


he buscado en la inmensidad de los 2 grupos de Access en espa�ol y no
hab�a encontrado la soluci�n, as� que me he puesto a pegarme con los 2
Outlook y Access y ha salido esto tan sencillo...

Sub EnvioCorreo()
Dim OutLookApp As Outlook.Application
Dim Msg As Outlook.MailItem
Dim Dire(3) As String
Dim X As Long

Dire(1) = "uno@QUITAESTOjajaja.com"
Dire(2) = "dos@QUITAESTOjajaja.com"
Dire(3) = "tres@QUITAESTOjajaja.com"

Set OutLookApp = New Outlook.Application


For X = 1 To 3
Set Msg = OutLookApp.CreateItem(olMailItem)
Msg.Subject = "Esto es el asunto"
Msg.Body = "Y esto el cuerpo del mensaje: Hola " & Dire(X)
Msg.To = Dire(X)
Msg.Send
Next X
OutLookApp = Nothing
End Sub

Y ejecutando este c�digo se env�an 3 mensajes, uno a cada una de las


tres direcciones guardadas en dire(), las propiedades .subject, .body
y .to no hace falta indicarlas... y hay muchas m�s.

�Qu� tengo instalado en mi ordenador? Access 97 y Outlook 2000,


supongo que con Access 2000 o XP y Outlook 2000 no habr� ning�n
problema, tengo mis dudas con Outlook 97, pues me parece que la
librer�a que hay que incluir en Referencias no contiene lo que aqu�
uso.

Eso, que se me olvidaba, antes de meter este c�digo, inclu� en las


Referencias la librer�a: "Microsoft Outlook 9.0 Object Library", ya
sab�is, estando abierta una ventana de c�digo, men�
Herramientas->Referencias.

Un saludo a todos

MODIFICACION POSTERIOR DE CARCAR

Sub EnvioCorreo()
Dim OutLookApp As Outlook.Application
Dim Msg As Outlook.MailItem
Dim Pie As Outlook.PostItem
Dim Dire(2) As String
Dim X As Long
Dim TxtHTMLCab As String
Dim TxtHTMLPie As String

Open "C:\cabecera.txt" For Input As #1


TxtHTMLCab = Input(3450, #1)
Close #1

Open "C:\piefirma.txt" For Input As #1


TxtHTMLPie = Input(1432, #1)
Close #1

Dire(1) = "ccarpioh@kkkk.es"
Dire(2) = "ccarpioh@kkkk.es"

Set OutLookApp = New Outlook.Application


For X = 1 To 2
Set Msg = OutLookApp.CreateItem(olMailItem)
Msg.Subject = "Esto es el asunto"
Msg.HTMLBody = TxtHTMLCab & "<html>" & Dire(X) & "</html>" &
TxtHTMLPie
Msg.To = Dire(X)
Msg.Attachments.Add "C:\cabecera.txt"
Msg.Attachments.Add "C:\piefirma.txt"
Msg.Send
Next X
Set Msg = Nothing
Set OutLookApp = Nothing
MsgBox "Fin de envio"
End Sub

Evidentemente el bucle, que aqu� lo que hacer es, recorrer el


contenido de una matriz, podr�a recorrer los registros de un
recordset...

La parte m�s divertida ha sido incluir c�digo HTML en la propiedad


HTMLBody que es la que se utiliza para enviar �ste tipo de c�digo (en
lugar de la .body que utilizaba en la anterior).

Las cabeceras y pie del mensaje, fueron creados con un editor de HTML
y copiado el c�digo HTML en los ficheros .txt cabecera.txt y
piefirma.txt. Los he le�do "a pedal" con las viejas instrucciones del
BASIC, para lo que he tenido que darles el tama�o EXACTO de los
mismos... Todo lo anterior porque no puedes incluir c�digo HTML dentro
de los m�dulos, sobre todo si el c�digo es complejo, lleno de comillas
dobles, barras, etc.

Como se puede ver, tambi�n se pueden a�adir ficheros vinculados al


"emilio". �toy m�s contento!

Creo que todo esto NO SE PUEDE HACER con OUTLOOK 97, debe de ser 2000
o siguientes.

También podría gustarte