Envío emails con CDO desde consulta

Dudas sobre código
salvaleuven
Nivel 1
Mensajes: 1
Registrado: Lun Oct 05, 2020 6:15 pm

Envío emails con CDO desde consulta

Mensajepor salvaleuven » Lun Oct 05, 2020 6:44 pm

Hola a todos, os agradecería mucho que me pudierais orientar: he logrado redactar a partir de lo encontrado aquí y allí, un código válido para enviar un email con formato html con el contenido de una consulta sql empleando CDO desde mi aplicación.

Ahora, lo que necesito es lo siguiente: la consulta (denominada EmailIncump) contiene varios campos, uno de los cuales contiene las direcciones de email a las que quiero enviar la información del resto de los campos de ese registro. Pongo un ejemplo para explicarme mejor:

Campo1 Campo2 Campo3
Dato1 Dato2 hola@hola.com
Dato3 Dato4 jaja@jaja.com
.....

Necesito enviar un email a cada dirección, que contenga los valores de los campos 1 y 2 en formato de tabla. El mensaje ha de tener estructura de html. Copio el código que tengo hasta el momento. Lo que hace es convertir la consulta "EmailIncump" en un archivo html, que luego es leído e incluido en el cuerpo del email a través de la variable "s". Pero no sé cómo extraer el valor del Campo3 para incluirlo en la variable To de la instrucción cdomsg, filtrar los registros por dirección y además montar el loop para que lo haga con todos los registros. Cualquier idea u orientación es bienvenida y agradecida!!

Código: Seleccionar todo

Public Sub ComUrgente()

Dim fs, f, ts

archivo = "d:\webtemp.HTML"
DoCmd.OutputTo acOutputQuery, "EmailIncump", acFormatHTML, archivo, False

                Set fs = CreateObject("Scripting.FileSystemObject")
                Set f = fs.GetFile(archivo)
                Set ts = f.OpenAsTextStream(1, -2)
                s = ts.readall
                ts.Close

Set cdomsg = CreateObject("CDO.message")
With cdomsg.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "XXXXXX.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "XXXXX@xxxx.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yyyyyyyy"
.Update
End With
' build email parts
With cdomsg
.To = "ggggggg@gmail.com"
.From = "XXXXX@xxxxx.com"
.Subject = "Comunicación urgente"
.HTMLBody = s
.Send
End With
Set cdomsg = Nothing
End Sub

Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados