Enviar e-mail desde una aplicación VB .NET

Nota Vista 94.393 Veces

Para poder enviar un correo desde nuestra aplicación windows en Visual Basic .NET utilizaremos la clase System.Net.Mail.MailMessage.

Para el ejemplo siguiente vamos a crear un formulario, tres cajas de texto para escribir el correo hacia donde vamos enviar el correo, el Asunto y el Mensaje y dos botones para enviar para enviar el e-mail y otro para salir.

El siguiente código se pone en el botón enviar:

 vbnet |  copy code |? 
  1. Dim _Message As New System.Net.Mail.MailMessage()
  2. Dim _SMTP As New System.Net.Mail.SmtpClient
  3. 'CONFIGURACIÃN DEL STMP
  4. _SMTP.Credentials = New System.Net.NetworkCredential("cuenta de correo", "contraseña")
  5. _SMTP.Host = "smtp.gmail.com"
  6. _SMTP.Port = 587
  7. _SMTP.EnableSsl = True
  8. ' CONFIGURACION DEL MENSAJE
  9. _Message.[To].Add(Me.txtPara.Text.ToString) 'Cuenta de Correo al que se le quiere enviar el e-mail
  10. _Message.From = New System.Net.Mail.MailAddress("cuenta de correo", "nombre", System.Text.Encoding.UTF8) 'Quien lo envía
  11. _Message.Subject = Me.txtAsunto.Text.ToString 'Sujeto del e-mail
  12. _Message.SubjectEncoding = System.Text.Encoding.UTF8 'Codificacion
  13. _Message.Body = Me.txtMensaje.Text.ToString 'contenido del mail
  14. _Message.BodyEncoding = System.Text.Encoding.UTF8
  15. _Message.Priority = System.Net.Mail.MailPriority.Normal
  16. _Message.IsBodyHtml = False
  17. 'ENVIO
  18. Try
  19. _SMTP.Send(_Message)
  20. MessageBox.Show("Mensaje enviado correctamene", "Exito!", MessageBoxButtons.OK)
  21. Catch ex As System.Net.Mail.SmtpException
  22. MessageBox.Show(ex.ToString, "Error!", MessageBoxButtons.OK)
  23. End Try

Si ponemos la propiedad IsBodyHtml en True, podremos llenar el cuerpo con código HTML para que nuestro mensaje llegué con un mejor look.

Puedes bajar el ejemplo de Aca. Requisitos (Microsoft Visual Studio 2010)

Rolyn Gamez Rolyn Gamez (9 Posts)

Gerente Propietario de DataTech Solutions S. de R.L. con los siguientes servicios: * Venta y Reparación de Computadoras de todo tipo (portátiles, escritorio, servidores). * Venta de Impresoras de todo tipo (Laser, Inyeccion de Tinta, Matriciales, Multifuncionales). * Venta de Copiadoras segun el presupuesto del cliente (optando a adquirirla a plazos directamente con el proveedor). * Trabajos Secretariales * Diseño Gráfico * Creación y Mantenimiento de Redes Informáticas * Desarrollo de Software a su medida. * Implementación de Software Empresarial, Administrativo, Contable, etc.


Tags: , ,

35 Responses

  1. Juan Mancilla dice:

    hola, gracias por su obsequio

  2. Juan David dice:

    Buenas, la presente es para informarle que en el código me sale un error y es:
    Me.txtPara.
    Me.txtAsunto.
    Me.txtMensaje.
    Dice que no son un miembro de ‘pdf.form1′
    Espero me pueda ayudar, gracias

    • Rolyn Gamez Rolyn Gamez dice:

      Buen dia Juan, gracias por tu comentario, Estas haciendo desde cero el proyecto o bajaste el que deje aca?

    • McEgoNet404 dice:

      A esas propiedades agregale lo siguiente .text

      Osea para que me entiendas
      me.txtpara.text
      me.txtasunto.text
      me.txtasunto.text

      y listo ya no tendra por que marcarte error

  3. Ever dice:

    Buen dia, sale un error al momento de enviarlo, the smtp server a secure connection or the client wa not authenticated

  4. Ever dice:

    Como puedo conectar una base de datos en mysql con Vb, con que herramientas.

  5. jhon javer dice:

    hola, excelente aporte, lo probé y funciono al 100 %, tengo una duda como hago para adjuntarle archivos

  6. Dennry dice:

    Viejo te felicito y te agradezco muchisimo! funciono 100% luego de horas y horas de google por fin encontré a alguien que hizo las cosas sencillas y utiles! muchas gracias por el aporte!

  7. maialen dice:

    Hola necesito configurar el envio de email pero para outlook 2010.

    ¿Cómo se hace?

  8. ALDO BARRIOS dice:

    TE FELICITO !! MUCHAS GRACIAS POR ESTOS APORTES! SIGUE ASI! MUY BUEN TRABAJO!!

  9. Cristian dice:

    Excelente! Me vino como anillo al dedo!
    Muchas gracias.
    Saludos.

  10. LI Carlos Glez dice:

    working !

    Excelente aporte Rolyn sigue así!

  11. Marco dice:

    Excelente, funciona perfectamente. Como se puede hacer para adjuntar un archivo?

  12. Alejandro dice:

    Muchas gracias me sirvió de mucho este ejemplo!

  13. andresbonilla dice:

    quisiera saber si necesariamente el _SMTP.Host tiene q corresponder con el nombre luego del arroba por q probe con hotmail, yahoo y no me da pero el di gmail si
    _SMTP.Host= “smtp.hotmail.com” asi no anda

    _SMTP.Host= “smtp.gmail.com” asi si anda

  14. Félix dice:

    Excelente Porte. Me es de gran ayuda para un proyecto en desarrollo.

  15. lafat32 dice:

    Gracias man me sirvió tu ejemplo

  16. Alex dice:

    Excelente

  17. Johny dice:

    Muy buen post. El codigo funciona excelente. Lo modifique y le agregue imagenes embebidas.

    Muchas Gracias.

  18. Adrian dice:

    Cuando doy enviar mail me sale el siguiente error:
    “The given path’s format is not supported.”

    Alguna idea?

  19. wily dice:

    andresbonilla

    para emai de hotmail o outlook usa esto

    smtp.Host = “smtp.live.com”

    y para agregar un adjunto usa

    Dim oAttch As Net.Mail.AttachmentBase = New Net.Mail.Attachment(sFile)

    miCorreo.Attachments.Add(oAttch)

  20. s.huerck dice:

    perfecto el cidigo esta genial, Pero que puedo hacer si mi servidor es privado y no tiene nombre.
    _SMTP.Host = 10.10.10.10
    _SMTP.Port = 587
    _SMTP.EnableSsl = True

    espero puedas ayudarme por que este error ya trea dando lata 2 dias

  21. César dice:

    Muchas Gracias…..

  22. Fernando dice:

    Obtengo este mensaje cuanto intento mandar el mensaje. Alguna idea?

    gracias

    The remote certificate is invalid according to the validation procedure.

  23. David dice:

    Funciona super bien,

  24. DUHAN dice:

    FÁCIL Y SENCILLO

    ME SIRVIÓ PARA UN SISTEMA DE ALERTA AL ESTILO HOTMAIL QUE INFORMA PRÓXIMOS CUMPLEAÑOS JAJA

    GRACIAS VIEJO MEN

  25. emanuel vielma dice:

    hola a mi me arrojo el error
    the remote name could not be resolved ‘smtp.gmail.com’

    que puedo hacer??

  26. Ana De la Cruz dice:

    Hola, tu ejemplo me sirvio muy bien con hotmail y gmail, pero para cuentas de yahoo no me funciona ya probe con todos los puertos 25, 465 y 587 en los 2 primeros de plano el error es de entrada y salida en el puerto esto es no deja salir por esos puertos, en el 587 me indica que se necesita autenticacion. Ya he leido sobre la parte de programación y configuración y no encuentro cual es el problema ojala tuvieras o alguien tuviera una idea de que pasa con yahoo. Gracias

  27. juanlu dice:

    Cómo puedo mandar un email, sin poner la contraseña?
    Un usuario está en una web de empleo, saca un listado con las ofertas de empleo en un gridview, y con un botón en cada fila, quiera mandar un correo para registrase en esa oferta.
    Gracias.

  28. Luis dice:

    Gracias a amigo, funciona al 100%. En esta página puedo seguir viendo mas tutoriales?

    Gracias Dios te Bendiga!!

  29. Julian Caballero dice:

    Hombre muchas gracias!, muy útil (Y) :)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© VB-MUNDO – Visual Basic y mucho más
CyberChimps