none
Enviar e-mail visual basic 6

    Pregunta

  • Hola estoy algo confundido con el envio de correos por medio de una aplicación realizada en visual basic 6:

    Bueno realicé una aplicación en la que puedo enviar correos pero resulta que no puede enviarlos debido a que me manda un error que dice que el tiempo de espera del servidor se agota.

    el envio es por smtp y he utilizado de todo pero sale lo mismo o en algunos casos lo envia pero no llega el correo.

    es necesario configurar algo para smtp?

    he utilizado lo siguiente:

    winsock

    cdo

    mapi

    ossmtp

    objetos de outlook

     

    y no he podido realizarlo.

     

    si alguien me puede hechar una mano o ya trabajo esto en visual basic 6 se los agradezco.

     

    Saludos....

    miércoles, 09 de febrero de 2011 18:07

Respuestas

  • Amigo no se si es muy tarde la respuesta, pero a mi me funciona a la perfección

    Private Sub CmdCorreo_Click()

        Dim MenCorreo As String
        Set oMail = New clsCDOmail
        With oMail
            .servidor = "smtp.gmail.com"
            .puerto = 465
            .UseAuntentificacion = True
            .ssl = True
            .Usuario = "TUCORREO"
            .PassWord = "TUCONTRASEÑA"
            .Asunto = "AQUI EL ASUNTO"

            .de = "TU CORREO"
            .para = "CORREO AQUIEN LE ENVIAS"
            .Mensaje = " Aquí va el Mensaje "
            .Enviar_Backup ' manda el mail
        End With
        Set oMail = Nothing

    End sub

     

    'Aquí la Clase : Nombre de la Clase clsCDOmail

    Option Explicit

    ' para la conexión a internet
    Private Declare Function InternetGetConnectedState _
        Lib "wininet.dll" ( _
        ByRef lpdwFlags As Long, _
        ByVal dwReserved As Long) As Long

    Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
    Private Const INTERNET_RAS_INSTALLED As Long = &H10
    Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20
    Private Const INTERNET_CONNECTION_CONFIGURED As Long = &H40

    ' variables locales
    Private mServidor As String
    Private mPara As String
    Private mDe As String
    Private mAsunto As String
    Private mMensaje As String
    Private mAdjunto As String
    Private mPuerto As Variant
    Private mUsuario As String
    Private mPassword As String
    Private mUseAuntentificacion As Boolean
    Private mSSL As Boolean

    Public Event Error(Descripcion As String, Numero As Variant)
    Public Event EnvioCompleto()

    Function Enviar_Backup() As Boolean
       
        ' Variable de objeto Cdo.Message
        Dim oCDO As Object
             
        ' chequea si hay conexión
        If InternetGetConnectedState(0&, 0&) = False Then
           RaiseEvent Error("No se puede enviar el correo. " & _
                            "Verificar la conexión a internet si está disponible", 0)
           Exit Function
        End If
       
       
       
        ' chequea que el puerto sea un número, o que no esté vacío
        If Not IsNumeric(puerto) Then
           RaiseEvent Error("No se ha indicado el puerto del servidor", 0)
           Exit Function
        End If
       
        ' Crea un Nuevo objeto CDO.Message
        Set oCDO = CreateObject("CDO.Message")
       
        ' Indica el servidor Smtp para poder enviar el Mail ( puede ser el nombre _
          del servidor o su dirección IP )
        oCDO.Configuration.Fields( _
        "http://schemas.microsoft.com/cdo/configuration/smtpserver") = mServidor
       
        oCDO.Configuration.Fields( _
        "http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
       
        ' Puerto. Por defecto se usa el puerto 25, _
         en el caso de Gmail se usa el puerto 465
       
        oCDO.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = mPuerto

       
        ' Indica el tipo de autentificación con el servidor de correo _
         El valor 0 no requiere autentificarse, el valor 1 es con autentificación
        oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/" & _
                    "configuration/smtpauthenticate") = Abs(mUseAuntentificacion)
       
        ' Tiempo máximo de espera en segundos para la conexión
        oCDO.Configuration.Fields.Item 
            ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10

        ' Configura las opciones para el login en el SMTP
        If mUseAuntentificacion Then

        ' Id de usuario del servidor Smtp ( en el caso de gmail, _
         debe ser la dirección de correro mas el @gmail.com )
        oCDO.Configuration.Fields.Item 
            ("http://schemas.microsoft.com/cdo/configuration/sendusername") = mUsuario

        ' Password de la cuenta
        oCDO.Configuration.Fields.Item 

      ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mPassword

        ' Indica si se usa SSL para el envío. En el caso de Gmail requiere que esté en True
        oCDO.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = mSSL
       
        End If
       
        ' Estructura del mail
        '''''''''''''''''''''''''''''''''''''''''''''''
       
        ' Dirección del Destinatario
       
        oCDO.To = mPara
       
        ' Dirección del remitente
        oCDO.From = mDe
       
        ' Asunto del mensaje
        oCDO.Subject = mAsunto
       
        ' Cuerpo del mensaje
        oCDO.TextBody = mMensaje
       
        'Ruta del archivo adjunto
        If mAdjunto <> "" Then
            If Len(Dir(mAdjunto)) = 0 Then
                ' ..error
                RaiseEvent Error("No se ha encontrado el archivo en la siguiente ruta: ", 0)
                Exit Function
            Else
                ' ..lo agrega
                oCDO.AddAttachment (mAdjunto)
            End If
        End If
       
        ' Actualiza los datos antes de enviar
        oCDO.Configuration.Fields.Update
       
        On Error Resume Next
        Screen.MousePointer = vbHourglass
        ' Envía el email
        oCDO.Send
        Screen.MousePointer = 0
        ' .. si no hubo error
        If Err.Number = 0 Then
           Enviar_Backup = True
           RaiseEvent EnvioCompleto
       
        ElseIf Err.Number = -2147220973 Then
           RaiseEvent Error("Posible error : nombre del Servidor " & _
                            "incorrecto o número de puerto incorrecto", Err.Number)
        ElseIf Err.Number = -2147220975 Then
           RaiseEvent Error("Posible error : error en la el nombre de usuario, " & _
                                                    "o en el password ", Err.Number)
        Else
           RaiseEvent Error(Err.Description, Err.Number)
        End If

        ' Descarga la referencia
        If Not oCDO Is Nothing Then
            Set oCDO = Nothing
        End If
       
        Err.Clear
       
        Screen.MousePointer = vbNormal
    End Function

    ' propiedades
    '''''''''''''''''''''
    Property Get servidor() As String
        servidor = mServidor
    End Property
    Property Let servidor(value As String)
        mServidor = value
    End Property


    Property Get para() As String
        para = mPara
    End Property
    Property Let para(value As String)
        mPara = value
    End Property


    Property Get de() As String
        de = mDe
    End Property
    Property Let de(value As String)
        mDe = value
    End Property


    Property Get Asunto() As String
        Asunto = mAsunto
    End Property
    Property Let Asunto(value As String)
        mAsunto = value
    End Property


    Property Get Mensaje() As String
        Mensaje = mMensaje
    End Property
    Property Let Mensaje(value As String)
        mMensaje = value
    End Property


    Property Get Adjunto() As String
        Adjunto = mAdjunto
    End Property
    Property Let Adjunto(value As String)
        mAdjunto = value
    End Property


    Property Get puerto() As Variant
        puerto = mPuerto
    End Property
    Property Let puerto(value As Variant)
        mPuerto = value
    End Property


    Property Get Usuario() As String
        Usuario = mUsuario
    End Property
    Property Let Usuario(value As String)
        mUsuario = value
    End Property


    Property Get PassWord() As String
        PassWord = mPassword
    End Property
    Property Let PassWord(value As String)
        mPassword = value
    End Property


    Property Get UseAuntentificacion() As Boolean
        UseAuntentificacion = mUseAuntentificacion
    End Property
    Property Let UseAuntentificacion(value As Boolean)
        mUseAuntentificacion = value
    End Property


    Property Get ssl() As Boolean
        ssl = mSSL
    End Property
    Property Let ssl(value As Boolean)
        mSSL = value
    End Property

     

    sábado, 04 de mayo de 2013 14:19

Todas las respuestas

  • Crea una referencia a CDO. Coloca la siguiente función en un módulo y pasa parámetros segun se indica. La utilizo para enviar correos distintos (recibo de condominio) a un listado de usuarios

    Function envia_email(correo As String, periodo As String, cuerpo As String, email As String, clave As String, Optional archivo As String) As

    INTEGER
    ' CORREO: cuenta del destinatario
    'periodo: asunto
    'cuerpo: cuerpo del correo
    'email: dirección del remitente: debe ser GMail
    'clave: clave de la cuenta del remitente
    'optional: ruta completa de un archivo adjunto

    On Error Resume Next
    envia_email = 0
    Const cdoSendUsingPort = 465
    Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
    Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"

        Dim Obj_Email As CDO.Message
        ' Crea un Nuevo objeto CDO.Message
        Set Obj_Email = New CDO.Message
       
        ' Indica el servidor Smtp para poder enviar el Mail ( puede ser el nombre _
          del servidor o su dirección IP )
        Obj_Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"'******************************PARA ENVIAR DESDE UNA CUENTA GMAIL********
       
        Obj_Email.Configuration.Fields(cdoSendUsingMethod) = 2
       
        ' Puerto. Por defecto se usa el puerto 25, en el caso de Gmail se usan los puertos _
          465 o  el puerto 587 ( este último me dio error )
       
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = cdoSendUsingPort

       
        ' Indica el tipo de autentificación con el servidor de correo _
         El valor 0 no requiere autentificarse, el valor 1 es con autentificación
        Obj_Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/" & _
                    "configuration/smtpauthenticate") = True 'Abs(Usar_Autentificacion)
           
       
            ' Tiempo máximo de espera en segundos para la conexión
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

       
        ' Configura las opciones para el login en el SMTP
        'If Usar_Autentificacion Then

        ' Id de usuario del servidor Smtp ( en el caso de gmail, debe ser la dirección de correro _
         mas el @gmail.com )
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/sendusername") = email

        ' Password de la cuenta
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = clave'*********************CLAVE DE LA CUENTA GMAIL*******

        ' Indica si se usa SSL para el envío. En el caso de Gmail requiere que esté en True
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
       'End If
       

        ' *********************************************************************************
        ' Estructura del mail
        '**********************************************************************************
       
        ' Dirección del Destinatario
        Obj_Email.To = correo
       
        ' Dirección del remitente
        Obj_Email.From = email'*******UNA CUENTA DE GMAIL******
       
        ' Asunto del mensaje
        Obj_Email.Subject = periodo
       
        ' Cuerpo del mensaje
        'cadena = "<HTML><HEAD></HEAD><BODY bgcolor=""#fccccc""><CENTER><H2>VERSIÓN DE EVALUACIÓN</H2><BR>"
        'cadena = cadena & "<H2>Servicio Exclusivo de Envío de Recibos</H2>"
        'cadena = cadena & "<H3>PARA EL " & ConjuntoSel & "</h3></center><br><br><br>"
        'cadena = cadena & "<p><p><p><strong>Ver archivo adjunto.</strong><br><br><br>"
       
        cadena = "<table background=""http://www.tucondominioaldia.com.ve/archivos/aviso_cobro.png""><CENTER><BR>"
        cadena = cadena & "<H2>Servicio Exclusivo de Envío de Recibos</H2>"
        cadena = cadena & "<H3>PARA EL " & ConjuntoSel & "</h3></center><br><br><br>"
        cadena = cadena & "<p><p><p><strong>Ver archivo adjunto.</strong><br><br><br>"
        cadena = cadena & "<p><p>Tecnolog&iacute;a desarrollada por www.tucondominioaldia.com.ve - mas informaci&oacute;n: <a

    mailto=""tucondominioaldia@gmail.com"" target=_blank>tucondominioaldia@gmail.com</a>-0414-788.51.60 / 0412-795.39.19<p></p><hr>"
     
        Obj_Email.HTMLBody = cadena & cuerpo & "</table>"
       
           
        'Ruta del archivo adjunto
       
        If archivo <> vbNullString Then
            Obj_Email.AddAttachment (archivo)
        End If
       
        ' Actualiza los datos antes de enviar
        Obj_Email.Configuration.Fields.Update
       
        On Error Resume Next
        ' Envía el email
        Obj_Email.Send
       
       
        If Err.Number = 0 Then
           envia_email=1
        Else
            'Debug.Print Err.Number
            Select Case Err.Number
                Case -2147220973
                    MsgBox " No hay conexión a internet. Proceso cancelado.", vbCritical, "Error al enviar correo"
                    envia_email = 0
                Case -2147220979
                    MsgBox " Debe introducir en el formulario de Información" & vbCrLf _
                        & "del Condominio, un email de GMail y una contraseña." & vbCrLf _
                        & "Proceso cancelado.", vbCritical, "Error al enviar correo"
                    envia_email = 0
                Case -2147220975
                    MsgBox " La dirección de correo del condominio y/o la contraseña" & vbCrLf _
                        & "no son correctas. Revise el formulario de condominio.", vbCritical, " No se envió el correo "
                    envia_email = 0
            Case Else
                MsgBox Err.Description, vbCritical, " No se envió el correo. "
            End Select
        End If
       
        ' Descarga la referencia
        If Not Obj_Email Is Nothing Then
            Set Obj_Email = Nothing
        End If
       
        On Error GoTo 0
        'DoCmd.Hourglass False
    End Function

    PD: no olvides valorar la respuesta si te ayudó.

    • Propuesto como respuesta EmmaRmz martes, 14 de mayo de 2013 15:03
    jueves, 10 de febrero de 2011 17:06
  • Crea una referencia a CDO. Coloca la siguiente función en un módulo y pasa parámetros segun se indica. La utilizo para enviar correos distintos (recibo de condominio) a un listado de usuarios

    Function envia_email(correo As String, periodo As String, cuerpo As String, email As String, clave As String, Optional archivo As String) As

    INTEGER
    ' CORREO: cuenta del destinatario
    'periodo: asunto
    'cuerpo: cuerpo del correo
    'email: dirección del remitente: debe ser GMail
    'clave: clave de la cuenta del remitente
    'optional: ruta completa de un archivo adjunto

    On Error Resume Next
    envia_email = 0
    Const cdoSendUsingPort = 465
    Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
    Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"

        Dim Obj_Email As CDO.Message
        ' Crea un Nuevo objeto CDO.Message
        Set Obj_Email = New CDO.Message
       
        ' Indica el servidor Smtp para poder enviar el Mail ( puede ser el nombre _
          del servidor o su dirección IP )
        Obj_Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"'******************************PARA ENVIAR DESDE UNA CUENTA GMAIL********
       
        Obj_Email.Configuration.Fields(cdoSendUsingMethod) = 2
       
        ' Puerto. Por defecto se usa el puerto 25, en el caso de Gmail se usan los puertos _
          465 o  el puerto 587 ( este último me dio error )
       
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = cdoSendUsingPort

       
        ' Indica el tipo de autentificación con el servidor de correo _
         El valor 0 no requiere autentificarse, el valor 1 es con autentificación
        Obj_Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/" & _
                    "configuration/smtpauthenticate") = True 'Abs(Usar_Autentificacion)
           
       
            ' Tiempo máximo de espera en segundos para la conexión
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

       
        ' Configura las opciones para el login en el SMTP
        'If Usar_Autentificacion Then

        ' Id de usuario del servidor Smtp ( en el caso de gmail, debe ser la dirección de correro _
         mas el @gmail.com )
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/sendusername") = email

        ' Password de la cuenta
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = clave'*********************CLAVE DE LA CUENTA GMAIL*******

        ' Indica si se usa SSL para el envío. En el caso de Gmail requiere que esté en True
        Obj_Email.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
       'End If
       

        ' *********************************************************************************
        ' Estructura del mail
        '**********************************************************************************
       
        ' Dirección del Destinatario
        Obj_Email.To = correo
       
        ' Dirección del remitente
        Obj_Email.From = email'*******UNA CUENTA DE GMAIL******
       
        ' Asunto del mensaje
        Obj_Email.Subject = periodo
       
        ' Cuerpo del mensaje
        'cadena = "<HTML><HEAD></HEAD><BODY bgcolor=""#fccccc""><CENTER><H2>VERSIÓN DE EVALUACIÓN</H2><BR>"
        'cadena = cadena & "<H2>Servicio Exclusivo de Envío de Recibos</H2>"
        'cadena = cadena & "<H3>PARA EL " & ConjuntoSel & "</h3></center><br><br><br>"
        'cadena = cadena & "<p><p><p><strong>Ver archivo adjunto.</strong><br><br><br>"
       
        cadena = "<table background=""http://www.tucondominioaldia.com.ve/archivos/aviso_cobro.png""><CENTER><BR>"
        cadena = cadena & "<H2>Servicio Exclusivo de Envío de Recibos</H2>"
        cadena = cadena & "<H3>PARA EL " & ConjuntoSel & "</h3></center><br><br><br>"
        cadena = cadena & "<p><p><p><strong>Ver archivo adjunto.</strong><br><br><br>"
        cadena = cadena & "<p><p>Tecnolog&iacute;a desarrollada por www.tucondominioaldia.com.ve - mas informaci&oacute;n: <a

    mailto=""tucondominioaldia@gmail.com"" target=_blank>tucondominioaldia@gmail.com</a>-0414-788.51.60 / 0412-795.39.19<p></p><hr>"
     
        Obj_Email.HTMLBody = cadena & cuerpo & "</table>"
       
           
        'Ruta del archivo adjunto
       
        If archivo <> vbNullString Then
            Obj_Email.AddAttachment (archivo)
        End If
       
        ' Actualiza los datos antes de enviar
        Obj_Email.Configuration.Fields.Update
       
        On Error Resume Next
        ' Envía el email
        Obj_Email.Send
       
       
        If Err.Number = 0 Then
           envia_email=1
        Else
            'Debug.Print Err.Number
            Select Case Err.Number
                Case -2147220973
                    MsgBox " No hay conexión a internet. Proceso cancelado.", vbCritical, "Error al enviar correo"
                    envia_email = 0
                Case -2147220979
                    MsgBox " Debe introducir en el formulario de Información" & vbCrLf _
                        & "del Condominio, un email de GMail y una contraseña." & vbCrLf _
                        & "Proceso cancelado.", vbCritical, "Error al enviar correo"
                    envia_email = 0
                Case -2147220975
                    MsgBox " La dirección de correo del condominio y/o la contraseña" & vbCrLf _
                        & "no son correctas. Revise el formulario de condominio.", vbCritical, " No se envió el correo "
                    envia_email = 0
            Case Else
                MsgBox Err.Description, vbCritical, " No se envió el correo. "
            End Select
        End If
       
        ' Descarga la referencia
        If Not Obj_Email Is Nothing Then
            Set Obj_Email = Nothing
        End If
       
        On Error GoTo 0
        'DoCmd.Hourglass False
    End Function

    PD: no olvides valorar la respuesta si te ayudó.

     muy buena tu respuesta guarracuco pero bno eso ya lo habia intentado pero solo funciona con gmail pero no he logrado con hotmail sabes porque??

    es la misma funcion la queme pusiste solo cambio los parametros de la misma pero no logro enviar el correo

    espero tu respuesta

    saludos...

    viernes, 11 de febrero de 2011 19:44
  • Revisé en la web e hice varios intentos sin resultado positivo. A mi entender Hotmail no permite acceso a su servidor SMTP desde cuentas de correo gratuitas.
    lunes, 14 de febrero de 2011 12:52
  • Servidor POP: pop3.live.com
    ■Puerto POP: 995.
    ■POP SSL: Si.
    ■Usuario: Tu Windows Live ID (nombre@hotmail.com).
    ■Contraseña: Tu palabra clave habitual.
    ■Servidor SMTP: smtp.live.com
    ■Puerto SMTP: 25.
    ■¿Autenticación necesaria?: Sí, usando los mismos datos de usuario y contraseña
    lunes, 14 de febrero de 2011 21:25
  • Probé también con esa configuración y muchas mas y no me funcionó con el código que coloqué arriba. Inclusive hay quienes dicen de cambiar al puerto 587 y tampoco lo logré.Hasta ahora mantengo lo dicho. Si alguien lo puede hacer funcionar, por favor que nos dé una pista. Gracias
    martes, 15 de febrero de 2011 20:12
  • Yo estoy mandando con cdo asi con un login de hotmail y uno de live y andan bien salvo el tiempo de espera que hay que tener para que no lo consideren spam.
    martes, 15 de febrero de 2011 22:09
  • Yo estoy mandando con cdo asi con un login de hotmail y uno de live y andan bien salvo el tiempo de espera que hay que tener para que no lo consideren spam.
    Luis, yo estoy intentandolo y nada...uso los datos menscionados arriba y nada, me sale el error "Tiempo de espera agotado", tienes idea que tengo malo?
    martes, 14 de junio de 2011 17:13
  • Hola!,

    me parece entender que teneis el mismo problema que yo....

    Todos los ejemplos de envio smtp que hay por la web con el CDO.Message, ponen como servidor smtp el de gmail. Y ese si que funciona.

    Yo lo necesito para enviar desde el servidor de Microsoft Online (smtp.mail.emea.microsoftonline.com), y ese no me va. Me da el error -2147220973, que parece ser que se trata de puerto o servidor incorrecto. Pero yo lo configuro desde mi cliente de correo y funciona.

    Me da la sensacion de que tiene que ser algo de la seguridad TLS o yo que se!

    Me parece que siendo el servidor, el objecto (CDO.Message) y el lenguaje de programación de Microsoft, deberíand e dar alguna solución, o por lo menos contestar. Si no se puede, pues no se puede. Si es que solo funciona con .NET, pues que lo digan y así yo se lo puedo decir a mi empresa.

    Puede alguien ayudarme?

    Estoy un poco desesperada, no se por donde tirar!

    Gracias.

    Sonia.

     

     

    martes, 09 de agosto de 2011 10:24
  • Buenas, como comente en otro hilo...

    Revisa este enlace http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/21-dll-vb-send-mail-para-enviar-correo.htm

    Hasta la fecha he usado en todos mis desarrollos la libreria vbSendMail y hasta la fecha no he tenido problemas.

    Un saludo,

    Jesús Daryanani - GOPI

    martes, 23 de agosto de 2011 20:01
  • hola, puede que el siguiente código te ayude, a mi me funcionó......

    Dim message As New MailMessage
    Dim FromAdd As New MailAddress("tuemail@hotmail.com")
    Dim ToAdd As New MailAddress("emailpara@hotmail.com")
    Try
         message.From = FromAdd
         message.To.Add(ToAdd)
         message.Subject = "envio de email " & Today
         Dim texto As String = TextBox1.Text
         message.Body = "<span style=""font-family:'calibri';font-   weight:bold;""> " + texto + " <br><br><span style=""color:blue;font-family:'Times New Roman';font-weight:bold;"">""</span>"
                message.IsBodyHtml = True
    
                Dim emailClient As New SmtpClient("smtp.live.com", 587)
                emailClient.Credentials = New Net.NetworkCredential("tuemail.hotmail.com", "tupassword")
                emailClient.EnableSsl = True
                emailClient.Send(message)
                MsgBox("El email ha sido enviado satisfactoriamente.")
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    
    


    viernes, 09 de septiembre de 2011 0:27
  • Hola, oye para este codigo que referencias estas usando

    Gracias

    jueves, 17 de noviembre de 2011 17:23
  • Hola, usó el siguiente Namespace
    Imports System.Net.Mail

    lunes, 20 de febrero de 2012 20:21
  • Muy bueno el ejemplo, funciona perfecto. gracias.
    lunes, 12 de marzo de 2012 1:25
  • Hola amigo soy Fabian, y se mas o menos  de la programación en visual basic 6.0,

    me podrían ayudar en este problema, sobretodo mi amigo GUARRACUCO, he echo todo lo posible para realizar una aplicación que envié un correo al Gmail, pero no me sale, ni con lo que GUARRACUCO añadio en la parte de arriba, no me sale, y mi amigo NERK 10, comenta en la parte de abajo que a él si le sale pero solo envía al Gmail, por fis, como le hacen para hacer que les funcione. ayuden me soy uno mas que desea aprender el arte y el conocimiento de programar.

    Espero sus respuestas amigos.

    miércoles, 30 de mayo de 2012 2:34
  • Fabian, debes activar una referencia a la libreria CDO.

    o También puedes modificar las siguientes líneas:

        Dim Obj_Email As CDO.Message
        ' Crea un Nuevo objeto CDO.Message
        Set Obj_Email = New CDO.Message

    por

    Dim Obj_Email

    Set Obj_Email= CreateObject("CDO.Message")


    jueves, 31 de mayo de 2012 1:35
  • Amigo no se si es muy tarde la respuesta, pero a mi me funciona a la perfección

    Private Sub CmdCorreo_Click()

        Dim MenCorreo As String
        Set oMail = New clsCDOmail
        With oMail
            .servidor = "smtp.gmail.com"
            .puerto = 465
            .UseAuntentificacion = True
            .ssl = True
            .Usuario = "TUCORREO"
            .PassWord = "TUCONTRASEÑA"
            .Asunto = "AQUI EL ASUNTO"

            .de = "TU CORREO"
            .para = "CORREO AQUIEN LE ENVIAS"
            .Mensaje = " Aquí va el Mensaje "
            .Enviar_Backup ' manda el mail
        End With
        Set oMail = Nothing

    End sub

     

    'Aquí la Clase : Nombre de la Clase clsCDOmail

    Option Explicit

    ' para la conexión a internet
    Private Declare Function InternetGetConnectedState _
        Lib "wininet.dll" ( _
        ByRef lpdwFlags As Long, _
        ByVal dwReserved As Long) As Long

    Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
    Private Const INTERNET_RAS_INSTALLED As Long = &H10
    Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20
    Private Const INTERNET_CONNECTION_CONFIGURED As Long = &H40

    ' variables locales
    Private mServidor As String
    Private mPara As String
    Private mDe As String
    Private mAsunto As String
    Private mMensaje As String
    Private mAdjunto As String
    Private mPuerto As Variant
    Private mUsuario As String
    Private mPassword As String
    Private mUseAuntentificacion As Boolean
    Private mSSL As Boolean

    Public Event Error(Descripcion As String, Numero As Variant)
    Public Event EnvioCompleto()

    Function Enviar_Backup() As Boolean
       
        ' Variable de objeto Cdo.Message
        Dim oCDO As Object
             
        ' chequea si hay conexión
        If InternetGetConnectedState(0&, 0&) = False Then
           RaiseEvent Error("No se puede enviar el correo. " & _
                            "Verificar la conexión a internet si está disponible", 0)
           Exit Function
        End If
       
       
       
        ' chequea que el puerto sea un número, o que no esté vacío
        If Not IsNumeric(puerto) Then
           RaiseEvent Error("No se ha indicado el puerto del servidor", 0)
           Exit Function
        End If
       
        ' Crea un Nuevo objeto CDO.Message
        Set oCDO = CreateObject("CDO.Message")
       
        ' Indica el servidor Smtp para poder enviar el Mail ( puede ser el nombre _
          del servidor o su dirección IP )
        oCDO.Configuration.Fields( _
        "http://schemas.microsoft.com/cdo/configuration/smtpserver") = mServidor
       
        oCDO.Configuration.Fields( _
        "http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
       
        ' Puerto. Por defecto se usa el puerto 25, _
         en el caso de Gmail se usa el puerto 465
       
        oCDO.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = mPuerto

       
        ' Indica el tipo de autentificación con el servidor de correo _
         El valor 0 no requiere autentificarse, el valor 1 es con autentificación
        oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/" & _
                    "configuration/smtpauthenticate") = Abs(mUseAuntentificacion)
       
        ' Tiempo máximo de espera en segundos para la conexión
        oCDO.Configuration.Fields.Item 
            ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10

        ' Configura las opciones para el login en el SMTP
        If mUseAuntentificacion Then

        ' Id de usuario del servidor Smtp ( en el caso de gmail, _
         debe ser la dirección de correro mas el @gmail.com )
        oCDO.Configuration.Fields.Item 
            ("http://schemas.microsoft.com/cdo/configuration/sendusername") = mUsuario

        ' Password de la cuenta
        oCDO.Configuration.Fields.Item 

      ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mPassword

        ' Indica si se usa SSL para el envío. En el caso de Gmail requiere que esté en True
        oCDO.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = mSSL
       
        End If
       
        ' Estructura del mail
        '''''''''''''''''''''''''''''''''''''''''''''''
       
        ' Dirección del Destinatario
       
        oCDO.To = mPara
       
        ' Dirección del remitente
        oCDO.From = mDe
       
        ' Asunto del mensaje
        oCDO.Subject = mAsunto
       
        ' Cuerpo del mensaje
        oCDO.TextBody = mMensaje
       
        'Ruta del archivo adjunto
        If mAdjunto <> "" Then
            If Len(Dir(mAdjunto)) = 0 Then
                ' ..error
                RaiseEvent Error("No se ha encontrado el archivo en la siguiente ruta: ", 0)
                Exit Function
            Else
                ' ..lo agrega
                oCDO.AddAttachment (mAdjunto)
            End If
        End If
       
        ' Actualiza los datos antes de enviar
        oCDO.Configuration.Fields.Update
       
        On Error Resume Next
        Screen.MousePointer = vbHourglass
        ' Envía el email
        oCDO.Send
        Screen.MousePointer = 0
        ' .. si no hubo error
        If Err.Number = 0 Then
           Enviar_Backup = True
           RaiseEvent EnvioCompleto
       
        ElseIf Err.Number = -2147220973 Then
           RaiseEvent Error("Posible error : nombre del Servidor " & _
                            "incorrecto o número de puerto incorrecto", Err.Number)
        ElseIf Err.Number = -2147220975 Then
           RaiseEvent Error("Posible error : error en la el nombre de usuario, " & _
                                                    "o en el password ", Err.Number)
        Else
           RaiseEvent Error(Err.Description, Err.Number)
        End If

        ' Descarga la referencia
        If Not oCDO Is Nothing Then
            Set oCDO = Nothing
        End If
       
        Err.Clear
       
        Screen.MousePointer = vbNormal
    End Function

    ' propiedades
    '''''''''''''''''''''
    Property Get servidor() As String
        servidor = mServidor
    End Property
    Property Let servidor(value As String)
        mServidor = value
    End Property


    Property Get para() As String
        para = mPara
    End Property
    Property Let para(value As String)
        mPara = value
    End Property


    Property Get de() As String
        de = mDe
    End Property
    Property Let de(value As String)
        mDe = value
    End Property


    Property Get Asunto() As String
        Asunto = mAsunto
    End Property
    Property Let Asunto(value As String)
        mAsunto = value
    End Property


    Property Get Mensaje() As String
        Mensaje = mMensaje
    End Property
    Property Let Mensaje(value As String)
        mMensaje = value
    End Property


    Property Get Adjunto() As String
        Adjunto = mAdjunto
    End Property
    Property Let Adjunto(value As String)
        mAdjunto = value
    End Property


    Property Get puerto() As Variant
        puerto = mPuerto
    End Property
    Property Let puerto(value As Variant)
        mPuerto = value
    End Property


    Property Get Usuario() As String
        Usuario = mUsuario
    End Property
    Property Let Usuario(value As String)
        mUsuario = value
    End Property


    Property Get PassWord() As String
        PassWord = mPassword
    End Property
    Property Let PassWord(value As String)
        mPassword = value
    End Property


    Property Get UseAuntentificacion() As Boolean
        UseAuntentificacion = mUseAuntentificacion
    End Property
    Property Let UseAuntentificacion(value As Boolean)
        mUseAuntentificacion = value
    End Property


    Property Get ssl() As Boolean
        ssl = mSSL
    End Property
    Property Let ssl(value As Boolean)
        mSSL = value
    End Property

     

    sábado, 04 de mayo de 2013 14:19