Hola, pues como no encontraba aqui en los grupos (o no he sabido buscar
bien) la manera de mandar un email, correo, mail con confirmacion de
lectura y con una cuenta con autentificacion, paso a relatar la forma
que he encontrado de hacerlo:
Public Function enviar_correo(ByVal sServer As String, ByVal sPort As
String, ByVal sUser As String, _
ByVal sPass As String, ByVal sTo As String, ByVal sSubject As
String, ByVal sTextBody As String) As Integer
'variables locales
Const ConfigNamespace As String "
http://schemas.microsoft.com/cdo/co...ion/"
Dim oMsg As New CDO.Message
Dim iConfig As New CDO.Configuration
Dim Flds As ADODB.Fields = iConfig.Fields
'
'dar valores a las filas de la configuracion del mensaje
With Flds
.Item(ConfigNamespace & "smtpserver").Value = sServer
'servidor
.Item(ConfigNamespace & "smtpserverport").Value = sPort
'puerto
.Item(ConfigNamespace & "sendusing").Value CDO.CdoSendUsing.cdoSendUsingPort 'tipo
.Item(ConfigNamespace & "sendusername").Value = sUser
'usuario de la autentificacion
.Item(ConfigNamespace & "sendpassword").Value = sPass
'password de la autentificacion
.Item(ConfigNamespace & "smtpauthenticate").Value CDO.CdoProtocolsAuthentication.cdoBasic 'protocolo ha usar en la
autentificacion
'guardar cambios
.Update()
End With
'asignar configuracion al mensaje y darle los valores de mail
With oMsg
.Configuration = iConfig 'agregar configuracion anterior
.From = sUser 'mail envio
.To = sTo 'mail recepcion
.Subject = sSubject 'asunto
.TextBody = sTextBody 'cuerpo del mensaje
'esto es para recibir la confirmacion de lectura, ponemos
la cuenta de correo que debe recibir la confirmacion.
.Fields("urn:schemas:mailheader:disposition-notification-to").Value sUser 'ToDo: Type a valid e-mail address.
.Fields("urn:schemas:mailheader:return-receipt-to").Value sUser 'ToDo: Type a valid e-mail address.
'opciones de DSN si las activo no me manda emails, no se
para que sirven realmente
'Set DSN options.
' Name Value Description
' cdoDSNDefault 0 No DSN commands are
issued.
' cdoDSNNever 1 No DSN commands are
issued.
' cdoDSNFailure 2 Return a DSN if
delivery fails.
' cdoDSNSuccess 4 Return a DSN if
delivery succeeds.
' cdoDSNDelay 8 Return a DSN if
delivery is delayed.
' cdoDSNSuccessFailOrDelay 14 Return a DSN if
delivery succeeds, fails, or is delayed.
'.DSNOptions = cdoDSNSuccessFailOrDelay
'.DSNOptions = CDO.CdoDSNOptions.cdoDSNFailure
'guardar cambios
.Fields.Update()
'mandar correo
.Send()
End With
'liberar memoria
oMsg = Nothing
iConfig = Nothing
End Function
A mi me funciona perfectamente, si alguien tiene un comentario que no
dude en exponerlo.
El codigo, las ideas, la manera de crear la funcion ha sido extraido
de:
http://dotnetjunkies.com/WebLog/VBp...23907.aspx
http://support.microsoft.com/?scid=...sid=global
Saludos
Leer las respuestas