Mandar E-Mails desde VB.NET

mayo 31 201015 comentarios

Guardado en : Microsoft, Programación

ANTES QUE NADA, NO ME HAGO RESPONSABLE POR EL USO QUE LE PUEDAN DAR A ESTA INFORMACIÓN, LA PUBLICACIÓN DE ESTE MATERIAL ESTA HECHO CON FINES DE LUCRO NETAMENTE EDUCATIVO

Para la realización de este tutorial utilizamos Visual Basic.NET.

Lo primero que debemos hacer es crear un proyecto y crear un formulario que se asemeje a la siguiente imagen.

Elementos utilzados

  • Cuatro TextBox con los nombres (propiedad name): txtDe, txtPara, txtAsunto y txtMensaje, este último con la propiedad Mutiline habilitada.
  • Un Button con nombre (propiedad name): btnEnviar.

Accedemos al código de nuestro programa, y debajo del nombre de nuestra clase pondremos la siguiente función que se encarga de verificar la conexión a internet.

 Private Declare Function IsNetworkAlive Lib "SENSAPI.DLL" (ByRef lpdwFlags As Long) As Long

Dentro del código del botón Enviar pondremos el siguiente código:

Dim Ret As Long
        'Si el Api retorna 0 quiere decir que no hay ningun tipo de conexión de Red
        If IsNetworkAlive(Ret) = 0 Then
            MsgBox("No existe conexion a internet" & vbNewLine + "Error enviando E-Mail." & vbNewLine & vbNewLine + "Por favor revise su conexion a internet" & vbNewLine + "e intentelo nuevamente.", MsgBoxStyle.Exclamation)
        Else
            Dim MyMailMsg As New Net.Mail.MailMessage
            Dim HostName As String = My.Computer.Name
 
            Try
                MyMailMsg.From = New Net.Mail.MailAddress(Me.txtDe.Text)
                MyMailMsg.To.Add(Me.txtPara.Text)
                MyMailMsg.Subject = Me.txtAsunto.Text
 
                MyMailMsg.Body = Me.txtMensaje.Text
                Dim SMTP As New Net.Mail.SmtpClient("smtp.live.com")
                'Para enviar por Hotmail utilizamos smtp.live.com y para enviar por Gmail utilizamos smtp.gmail.com

                SMTP.Port = 587
                SMTP.EnableSsl = True
 
                SMTP.Credentials = New System.Net.NetworkCredential("correovalido@hotmail.com", "contraseña")
                'Aquí es necesario utilizar una cuenta de correo electrónico válida para que podamos mandar nuestros correos.

                SMTP.Send(MyMailMsg)
                MsgBox("Tu E-Mail se ha enviado exitosamente", MsgBoxStyle.Information, "Listo!!")
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If

Probamos nuestro programa.

Llenamos los datos para mandar un mensaje

Mandamos nuesto mensaje.

Mensaje de confirmación.

Verificamos que el correo llegue a nuestro destino.

Mensaje recibido.

Mensaje de nuestro correo.

Listo!!.. Espero sea de mucha ayuda.

Dudas, comentarios ó sugerencias, estamos para servirte!

Saludos!!

Quizá te interese :

Acerca del autor:

Ingeniero en Sistemas Computacionales.. Puedes contactarme sobre mis artículos en jsosa@smartdsign.net

15 Respuestas a “Mandar E-Mails desde VB.NET”

  1. Carlos dice:

    ¿Podrias confirmar tomando tu ejemplo si con el smtp.live.com de hotmail se van a la carpeta correo no deseado? Creo que antes si se podia pero ya no es asi.

  2. Eso depende del correo destino, he probado con varios y la mayoría llegan a la bandeja de entrada.. solo con alguno llegan a los no deseados.. Saludos!!

  3. cjosemaria dice:

    hola;
    Yo tengo que hacer eso mismo, pero con vb.net y mysql
    es decir, tengo que crear las tablas en mysql. Lo que no se es exactemente que tablas necesito y como hacerlo,

    serias tan amable de poder orientarme,

    gracias.

    Un saludo.
    Jose Maria.

  4. cjosemaria dice:

    Hola;

    a mi me funciona perfectametne, lo unico que aunque yo ponga como emisor: anomimo@hotmail.com , al receptor del correo le llega la direccion de correo que he puesto en el codigo.

    no me llega como tu has puesto

    Que puedo estar haciendo mal?

    Un Saludo.
    Jose Maria.

  5. alonso dice:

    hola prove tu codigo pero no me manda me sale error de 5.5.4 invalid address por haver si puedes ayudarme

  6. Jorge dice:

    Seguramente tienes mal escritas tus direcciones de correo o algo por el estilo.. Checalo.. sino nos dices para analizar el error..

    Saludos!!

  7. Jorge dice:

    Hola cjosemaria!
    Seguramente necesitas una tabla llamada contacts (contactos) con algunos campos como (nombre, apellidos, email, etc..) y de allí mandar correos al contacto que elijas..

    Si tienes mas dudas no dudes en preguntar..

  8. cjosemaria dice:

    Hola Jorge;

    Muchas gracias por responder, no me habia dado cuenta que habias respondido, disculpa mi tardanza, en efecto, si va a una cuenta de hotmail, sale anonimo.

    FELIZ NAVIDAD!!!!!!!!!!

    Un Saludo
    Jose Maria

  9. Eduardo Peña dice:

    Excelente código, me sirvio de mucho, lo implemente en una aplicación con ambiente web en .Net 2010 y funciona a la perfección, Gracias.

  10. Anonimo dice:

    Hola! Yo tengo que hacer algo muy similar… Probé tu código pero me sale un error en “amp” dice que no esta declarado…?? y si sabes como se hacer para enviar correos a cualquier cuenta de correo…? Gracias! :)

  11. Jorge dice:

    Hola Anonimo, podrías solucionarlo si reemplazas los “&” por simples “&” saludos!!

  12. carlos dice:

    Hola jorge buenos dias dos preguntas:

    1.- Como puedo hacerle para enviar dicho mensaje a varios correos a la vez, digamos con copia para …

    2.- Podrias hacerme el favor de proporcionarme el codigo, para adjuntar archivos en el correo.

    PD. probe tu codigo y funciona muy bien, solo que me faltan estos detallitos que te comento espero pronta tu respuesta y de ser posible, si me puedes mandar respuesta a mi correo, de antemano muchas gracias y saludos a todos

  13. Nelson dice:

    Amigo excelente el aporte pero a la hora de enviar el correo cae una execpcion la cual es:
    el buzon de correo no está disponible. La respuesta del servidor fue: 5.7.3
    Request action aborted; user not authenticated
    Q podría ser???

  14. ipad auction dice:

    I think this is one of the so much vital info for me. And i’m glad reading your article. However wanna remark on some basic issues, The website style is great, the articles is in reality nice : D. Good job, cheers

  15. Jorge dice:

    Thank you

Deja un comentario


Licencia y uso

Las técnicas demostradas en los tutoriales pueden ser utilizadas sin ninguna limitación y tampoco es obligatorio dar una atribución.


Los textos, imágenes y tutoriales son propiedad de sus respectivos autores, nuestro contenido se encuentra bajo licencia Creative Commons Share-Alike.

Escribe algo para el sitio

El escribir un tutorial o un artículo, mandarnos un enlace para Ubicuos, no solamente es una forma de obtener publicidad, si no también de dar algo a la comunidad y nosotros te lo recompensamos con los premios del mes! Leer más de nuestras promociones

¿Sugerencias?

Este es TU sitio, si tienes sugerencias o ideas de cómo podemos mejorarlo para ti, ¡Por favor háznoslos saber!

Hacemos nuestro mayor esfuerzo en proporcionar un sitio útil y amigable y esperamos que disfrutes tu tiempo aquí.

Ayuda a Difundir

Te gusta Ubicuos?

Ve las formas en que nos puedes apoyar.

Apoyando a Ubicuos.com

Submit your linkClose

-->