Enviar correos desde Gmail usando VB.NET

Como siempre trasteando, quería hacer una aplicacion para enviar emails desde mi cuenta de Gmail. El único problema es que Gmail tiene ciertas peculiaridades, en su servicio SMTP.

En principio el servidor SMTP (Simple Mail Transfer Protocol) de Gmail, no usa el puerto por defecto, sino que utiliza el 587. Además es necesario habilitar el servicio de SSL (Secure Sockets Layer).

Yo he usado en este ejemplo, VB.NET pero daría igual usa C#, ya que básicamente se usan dos clases las que uso:

  • System.Net.Mail.MailMessage
  • System.Net.NetworkCredential

Crea una aplicacion de consola, pega este código y modifica los parámetros necesarios:

Imports System
Imports System.Collections
Imports System.Net
Imports System.Net.Mail
Imports System.Net.Mime
Module SendEmailUsingGmail
    Sub Main()
        'Definicion e instanciacion de la clase MailMessage
        Dim MMessage As System.Net.Mail.MailMessage =
		New System.Net.Mail.MailMessage()
        'Rellenamos los parametros usuales para el envio de un email
        MMessage.To.Add("user@domain.com")
        MMessage.From = New MailAddress("my_user@gmail.com",
		"my_user", System.Text.Encoding.UTF8)
        MMessage.Subject = "Test"
        MMessage.SubjectEncoding = System.Text.Encoding.UTF8
        MMessage.Body = "Esto es una prueba"
        MMessage.BodyEncoding = System.Text.Encoding.UTF8
        MMessage.IsBodyHtml = False 'Formato texto plano
        'Definimos nuestras credenciales para el unvio de emails a traves de Gmail
        Dim SClient As New SmtpClient()
        SClient.Credentials = New System.Net.NetworkCredential("my_user@gmail.com",
		"my_password")
        SClient.Host = "smtp.gmail.com" 'Servidor SMTP de Gmail
        SClient.Port = 587 'Puerto del SMTP de Gmail
        SClient.EnableSsl = True 'Habilita el SSL, necesio en Gmail
        'Capturamos los errores en el envio
        Try
            SClient.Send(MMessage)
            Console.WriteLine("Mensaje enviado correctamente")
            Console.ReadLine()
        Catch ex As System.Net.Mail.SmtpException
            Console.WriteLine(ex.Message)
            Console.ReadLine()
        End Try
    End Sub
End Module

3 respuestas to “Enviar correos desde Gmail usando VB.NET”

  1. mario Says:

    al ejecutar el programa me envía un error de que no puede enviar el mail, en la ventana de aplicación me envía el siguiente mensaje A first chance exception of type ‘System.Net.Mail.SmtpException’ occurred in System.dll

  2. OMG Says:

    Hola Mario, ese error sugiere que no tienes permisos para enviar correos desde programación, por lo que puedes estar siendo bloqueado por el Dominio/Directorio Activo. También puedes estar siendo bloqueado por algun software de seguridad o antivirus.

    Que estas usando como Servidor SMTP? Estas en tu servidor IIS local?

  3. Carlos Says:

    Hola he probado el codigo que han dejado estoy usando Visual Estudio 2005 y he adaptado el codigo para mi uso, el problema esta en la captura de errores despues de ejecutar el codigo obtengo el siguiente error
    “The operation has timed out.” por lo que no envia el mail yo utilizo SSL con el puerto 465 que estara sucediendo ????

Deja un respuesta