Si queremos enviar correos personalizados desde una aplicacion en Access u otro programa que haga uso de VBA lo haremos de la siguiente manera, este ejemplo en particular hace uso de un servidor SMTP externo con autentificacion.
Primero creamos una funcion para leer la plantilla (en el caso de que la tengamos) que va a contener el html de nuestro email, logicamente devolvera un string.
Para que el objeto Scripting.FileSystemObject pueda ser usado primero debemos añadir la referencia “Microsoft Scripting Runtime” , sino nos dara algun fallo como que no reconoce el tipo.
Public Function LeeFichero() As String
Dim fso As Scripting.FileSystemObject, fil1 As File, ts As TextStream
Dim strPath2 As String
strPath2 = “C:\html_email.txt”
Set fso = New Scripting.FileSystemObject
Set fil1 = fso.GetFile(strPath2) ‘ strPath2 contiene el nombre completo del fichero
Set ts = fil1.OpenAsTextStream(ForReading, TristateUseDefault)
Do Until ts.AtEndOfStream
Dim sTexto As String
sTexto = sTexto & vbCrLf & ts.ReadLine
Loop
ts.Close
LeeFichero = sTexto
Set ts = Nothing
Set fil1 = Nothing
Set fso = Nothing
End Function
Luego creamos un procedimiento que recibira por parametros el remitente, destinatario y texto que queremos enviarle
Sub envia_correo(remitente, destinatario, texto)