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

25 Marzo 2008 at 16:21
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
25 Marzo 2008 at 18:38
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?
19 Diciembre 2008 at 6:01
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 ????