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 & "" & Dire(X) & "" &
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.
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)