none
Documentar una aplicacion sencilla RRS feed

  • Pregunta

  • Hola,

    He leido, reeleido y vuelto a leer, no se cuantos ejemplos para desarrollar el codigo enviar emails.

    Todo lo que he leido es muy bueno e interezante pero me temo que con muy complejos y yo necesito empezar desde el ejemplo mas sencillo.

    Alguien me puede enseñar con una buena documentacion de un pequeno codigo para el envio de emails?

    Gracias

    MauricioIvan

    viernes, 31 de mayo de 2013 16:14

Respuestas

  • Verifique el codigo.. y vi los errores que arrojaba..
    Lo que pasa es que estaba en un metodo, el cual copie mal
    y no puse el nombre del Metodo.. te adjunto nuevamente el codigo..

    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Email()
        End Sub
    
    
    Private Sub Email()
            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            Dim eMensaje1, ePie As String
            Dim attachmentCRM As Net.Mail.Attachment
            Dim eTo, eNuestroCorreo, eNuestraContraseña As String
    
    
            'Comenzamos el envio del correo
            'controlando si existiera algún error al envío
    
            'Nuestro usuario de HOTMAIL
            eNuestroCorreo = "putin@gmail.com"
    
            'Nuestro contraseña de HOTMAIL
            eNuestraContraseña = "contraseña"
    
            'El Mensaje del correo
            eMensaje1 = "Hola ke hace"
    
    
            'El Footer del Mensaje
            ePie = "FORO MICROSOFT"
    
            'Destinatario del Mensaje
            eTo = "putin@gmail.com"
    
            ' Configuración para enviar el correo desde Gmail
            SmtpServer.Port = 587
    
            'SmtpServer.Host = "smtp.live.com"
            SmtpServer.Host = "smtp.gmail.com"
    
            SmtpServer.EnableSsl = True
    
            SmtpServer.Credentials = New Net.NetworkCredential _
            (eNuestroCorreo, eNuestraContraseña)
    
            ' Empezamos a configurar el correo a enviar
            ' con los datos anteriores que pusimos
    
            'Le decimos que mail es un nuevo correo
            mail = New MailMessage()
            'Origen del correo
            mail.From = New MailAddress(eNuestroCorreo)
            'Destinatarios del correo
            mail.To.Add(eTo)
            'Asunto del correo
            mail.Subject = "BACKUP - " & CStr(Date.Now.Date)
            'Texto del Mensaje
            mail.Body = eMensaje1 + ePie
            'Texto en HTML del Mensaje
            mail.IsBodyHtml = True
            'Le decimos que queremos enviar el archivo que anteriormente indicamos
    
    
            Dim rutaCRM As String = "D:\CRMPRO" & "." & Date.Now.Year & "." & Date.Now.Month & "." & Date.Now.Day & ".txt"
    
    
            If File.Exists(rutaCRM) Then
                attachmentCRM = New Net.Mail.Attachment(rutaCRM)
                mail.Attachments.Add(attachmentCRM)
    
    
                'Le decimos que envíe el correo
                SmtpServer.Send(mail)
                'Msgbox dando el Ok del envío
                MessageBox.Show("Correo enviado a oficina correctamente", ".: HELLOW :.", MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information)
                mail.Attachments.Dispose()
            End If
        End Sub
    End Class

    Este codigo aun puedes modificarlo segun tus requerimientos..

    Por ejemplo te doy ideas..

    En donde adjuntas el correo puedes poner en tu formulario un txtCorreo
    para que la persona ingrese el correo. Te daras cuenta que ahorita el codigo es netamente
    interno.. pero puedes modificarlo para que sea con textbox botones y otros
    elementos..

    eNuestroCorreo = txtCorreo.text

    Pegalo nuevamente y corre!..
    me pasas la voz!.. 


    Jokesito

    • Marcado como respuesta MauricioIvan sábado, 1 de junio de 2013 0:40
    viernes, 31 de mayo de 2013 21:11
  • La verdad vuelvo a copiar el codigo a un proyecto nuevo
    y me corre sin problemas..

    Ten en cuenta que el puerto SMPT para gmail = 587
    para hotmail (outlook) y yahoo son otros puertos..

    Te adjunto esta pagina en donde describen
    las clases con sus respectivas propiedades y al final un ejemplo!..

    http://www.tutorialspoint.com/vb.net/vb.net_send_email.htm


    Jokesito

    • Marcado como respuesta MauricioIvan lunes, 3 de junio de 2013 23:06
    lunes, 3 de junio de 2013 21:31

Todas las respuestas

  • Public Shared Sub CreateTimeoutTestMessage(server As String)
    	Dim [to] As String = "jane@contoso.com"
    	Dim from As String = "ben@contoso.com"
    	Dim subject As String = "Using the new SMTP client."
    	Dim body As String = "Using this new feature, you can send an e-mail message from an application very easily."
    	Dim message As New MailMessage(from, [to], subject, body)
    	Dim client As New SmtpClient(server)
    	Console.WriteLine("Changing time out from {0} to 100.", client.Timeout)
    	client.Timeout = 100
    	' Credentials are necessary if the server requires the client 
    	' to authenticate before it will send e-mail on the client's behalf.
    	client.Credentials = CredentialCache.DefaultNetworkCredentials
    
    	Try
    		client.Send(message)
    	Catch ex As Exception
    		Console.WriteLine("Exception caught in CreateTimeoutTestMessage(): {0}", ex.ToString())
    	End Try
    End Sub
    recuerda hscer antes Imports System.Net.Mail

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos


    viernes, 31 de mayo de 2013 16:19
  • esto es muy sencillo

    Dim smtp As New SmtpClient
            Dim mail As MailMessage = New MailMessage
    
            mail.From = New MailAddress("xxxxx@xxxx.xx")
            mail.To.Add("xxxxx@xxxx.xx")
            mail.CC.Add("xxxxx@xxxx.xx") 'Esta linea es para agregar una copia
            mail.Subject = "Aqui ingresas el asunto del mail"
            'defines la rioridad
            mail.Priority = MailPriority.High
            'habilitas tags html para el cuerpo del texto
            mail.IsBodyHtml = True
            mail.Body = "aqui va el texto"
    
            'mail.Attachments.Add(New Attachment("Aqui va el path del archivo")) 'Por si se desea aduntar un documento
    
            smtp.Host = "xxxxxxxx"
            'asignas el puerto
            smtp.Port = 25
            smtp.EnableSsl = True
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network
    
            smtp.Credentials = New System.Net.NetworkCredential("usuario", "contraseña")
    
            'envia email
            smtp.Send(mail)

    ojala te sirva, saludos

    viernes, 31 de mayo de 2013 16:23
  •     Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            Dim eMensaje1, eMensaje2, ePie As String
            Dim attachmentCRM As Net.Mail.Attachment
            Dim eTo, eNuestroCorreo, eNuestraContraseña As String
    
    
            'Comenzamos el envio del correo
            'controlando si existiera algún error al envío
    
                'Nuestro usuario de HOTMAIL
                eNuestroCorreo = "putin@gmail.com"
    
                'Nuestro contraseña de HOTMAIL
                eNuestraContraseña = "contraseña"
    
                'El Mensaje del correo
                eMensaje1 = "Hola ke hace"
                
    
                'El Footer del Mensaje
                ePie = "FORO MICROSOFT"
    
                'Destinatario del Mensaje
                eTo = "putin@gmail.com"
    
                ' Configuración para enviar el correo desde Gmail
                SmtpServer.Port = 587
    
                'SmtpServer.Host = "smtp.live.com"
                SmtpServer.Host = "smtp.gmail.com"
    
                SmtpServer.EnableSsl = True
    
                SmtpServer.Credentials = New Net.NetworkCredential _
                (eNuestroCorreo, eNuestraContraseña)
    
                ' Empezamos a configurar el correo a enviar
                ' con los datos anteriores que pusimos
    
                'Le decimos que mail es un nuevo correo
                mail = New MailMessage()
                'Origen del correo
                mail.From = New MailAddress(eNuestroCorreo)
                'Destinatarios del correo
                mail.To.Add(eTo)
                'Asunto del correo
                mail.Subject = "BACKUP - " & CStr(Date.Now.Date)
                'Texto del Mensaje
                mail.Body = eMensaje1 + ePie
                'Texto en HTML del Mensaje
                mail.IsBodyHtml = True
                'Le decimos que queremos enviar el archivo que anteriormente indicamos
    
    
                Dim rutaCRM As String = "D:\CRMPRO" & "." & Date.Now.Year & "." & Date.Now.Month & "." & Date.Now.Day & ".txt"
    
    
                If File.Exists(rutaCRM) Then
                    attachmentCRM = New Net.Mail.Attachment(rutaCRM)
                                mail.Attachments.Add(attachmentCRM)
                    
    
                    'Le decimos que envíe el correo
                    SmtpServer.Send(mail)
                    'Msgbox dando el Ok del envío
                    MessageBoxEx.Show("Correo enviado a oficina correctamente", ".: HELLOW :.", MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information)
                    mail.Attachments.Dispose()
                End If
    End sub

    Aqui envias un mensaje al correo que tu indiques.. espero te sirva..
    Ah y el attachmentCRM es para adjuntar un archivo.. osea enviar correo
    con 1 o mas archivos..

    
    

    Jokesito


    • Editado Jokesito viernes, 31 de mayo de 2013 19:43 Me equivoque
    • Propuesto como respuesta Jokesito viernes, 31 de mayo de 2013 20:59
    viernes, 31 de mayo de 2013 19:42
  • Mil Gracias Josekito

    Copie el codigo a un projecto nuevo y me arrojo una pila de errores

    pero estoy seguro que esta todo bien, me imagino que habra que ajustarlo.

     

    Lo mejor, es que es muy didactico, me refiero a que esta bien documentado. Si supieras, cuando yo empece, a comienzos de los 80, habia que empezar vendiendo la idea de que era un computador, para despues vender la idea del programa. Las transferencias eran muy lentas y olvidate del windows que fue hasta el 85.

     

    Asi, que cuando te digo esta bien documentado es por que es de gran ayuda.

     

    Ahora, como hago para ajustarlo a un nuevo projecto. Ya copie el codigo a un nuevo projecto en blaco.

     

    Un millon de gracias

     

    MauricioIvan

    viernes, 31 de mayo de 2013 20:22
  • Olvide enviarte las librerias que use!..

    Imports System.IO
    Imports System.Data.SqlClient
    Imports System.Data
    Imports System.Net.Mail

    Si bien este codigo lo adapte a mis necesidades lo saque de una pagina,
    la cual no recuerdo la ubicacion exacta..

    Pero estoy para ayudarte.. a mi tambien me ayudan en este foro..
    Asi que cualquier duda sobre este codigo me lo haces saber..


    Jokesito

    viernes, 31 de mayo de 2013 21:03
  • Verifique el codigo.. y vi los errores que arrojaba..
    Lo que pasa es que estaba en un metodo, el cual copie mal
    y no puse el nombre del Metodo.. te adjunto nuevamente el codigo..

    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Email()
        End Sub
    
    
    Private Sub Email()
            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            Dim eMensaje1, ePie As String
            Dim attachmentCRM As Net.Mail.Attachment
            Dim eTo, eNuestroCorreo, eNuestraContraseña As String
    
    
            'Comenzamos el envio del correo
            'controlando si existiera algún error al envío
    
            'Nuestro usuario de HOTMAIL
            eNuestroCorreo = "putin@gmail.com"
    
            'Nuestro contraseña de HOTMAIL
            eNuestraContraseña = "contraseña"
    
            'El Mensaje del correo
            eMensaje1 = "Hola ke hace"
    
    
            'El Footer del Mensaje
            ePie = "FORO MICROSOFT"
    
            'Destinatario del Mensaje
            eTo = "putin@gmail.com"
    
            ' Configuración para enviar el correo desde Gmail
            SmtpServer.Port = 587
    
            'SmtpServer.Host = "smtp.live.com"
            SmtpServer.Host = "smtp.gmail.com"
    
            SmtpServer.EnableSsl = True
    
            SmtpServer.Credentials = New Net.NetworkCredential _
            (eNuestroCorreo, eNuestraContraseña)
    
            ' Empezamos a configurar el correo a enviar
            ' con los datos anteriores que pusimos
    
            'Le decimos que mail es un nuevo correo
            mail = New MailMessage()
            'Origen del correo
            mail.From = New MailAddress(eNuestroCorreo)
            'Destinatarios del correo
            mail.To.Add(eTo)
            'Asunto del correo
            mail.Subject = "BACKUP - " & CStr(Date.Now.Date)
            'Texto del Mensaje
            mail.Body = eMensaje1 + ePie
            'Texto en HTML del Mensaje
            mail.IsBodyHtml = True
            'Le decimos que queremos enviar el archivo que anteriormente indicamos
    
    
            Dim rutaCRM As String = "D:\CRMPRO" & "." & Date.Now.Year & "." & Date.Now.Month & "." & Date.Now.Day & ".txt"
    
    
            If File.Exists(rutaCRM) Then
                attachmentCRM = New Net.Mail.Attachment(rutaCRM)
                mail.Attachments.Add(attachmentCRM)
    
    
                'Le decimos que envíe el correo
                SmtpServer.Send(mail)
                'Msgbox dando el Ok del envío
                MessageBox.Show("Correo enviado a oficina correctamente", ".: HELLOW :.", MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information)
                mail.Attachments.Dispose()
            End If
        End Sub
    End Class

    Este codigo aun puedes modificarlo segun tus requerimientos..

    Por ejemplo te doy ideas..

    En donde adjuntas el correo puedes poner en tu formulario un txtCorreo
    para que la persona ingrese el correo. Te daras cuenta que ahorita el codigo es netamente
    interno.. pero puedes modificarlo para que sea con textbox botones y otros
    elementos..

    eNuestroCorreo = txtCorreo.text

    Pegalo nuevamente y corre!..
    me pasas la voz!.. 


    Jokesito

    • Marcado como respuesta MauricioIvan sábado, 1 de junio de 2013 0:40
    viernes, 31 de mayo de 2013 21:11
  • Hola Josekito

    He estado probando el ejemplo que me enviaron antes del tuyo desde hace un par de dias sin exito.

    Ahora estoy probando el tuyo y me sale el siguiente mensaje

    Troubleshooting Exceptions: System.Net.Mail.SmtpException

    The exception that is thrown when the SmtpClient
    is not able to send a Send
    or SendAsync
    message.

     See Also

    Tasks


    Reference

    SmtpException

    Bueno, pero este al menos Reacciona, porque el ejemplo anterior no hace nada en lo absolute, no muestra errors pero tampoco hace nada.

    MauricioIvan

    lunes, 3 de junio de 2013 21:21
  • La verdad vuelvo a copiar el codigo a un proyecto nuevo
    y me corre sin problemas..

    Ten en cuenta que el puerto SMPT para gmail = 587
    para hotmail (outlook) y yahoo son otros puertos..

    Te adjunto esta pagina en donde describen
    las clases con sus respectivas propiedades y al final un ejemplo!..

    http://www.tutorialspoint.com/vb.net/vb.net_send_email.htm


    Jokesito

    • Marcado como respuesta MauricioIvan lunes, 3 de junio de 2013 23:06
    lunes, 3 de junio de 2013 21:31
  • Muy amable Josekito

    Voy a seguir intentandolo, desafortunadamente la cuota que le puedo dedicar a esto es muy poca pero almenos tengo bastante material para estudiar esta semana y te digo como me fue

    Muy amable

    MauricioIvan

    lunes, 3 de junio de 2013 23:02
  • Hola Josekito
    Mira, estas son las dos incosistencia que presenta :
    Unable to connect to the remote server Y System.Net.Mail.SmtpException : {"Failure sending mail."}
    ---------------
    1. Intento con mi Host como aparece en mi Internet Systema :
    Source="System"
    {"Unable to connect to the remote server"}

    {"No connection could be made because the target machine actively refused it 192.168.1.65:465"}
    System.Net.WebExceptionStatus.ConnectFailure
    NativeErrorCode=10061
    System.Net.Sockets.SocketError.ConnectionRefused
    ------------
    2. Intento con Host : Yahoo
    System.Net.Mail.SmtpException : {"Failure sending mail."} 
    InnerException Message : Unable to read data from the transport connection: net_io_connectionclosed.

    Que debo hacer?
    Gracias

    MauricioIvan




    <noscript>&lt;meta http-equiv="refresh" content="0;URL=launch?reason=no_js_enabled"&gt; </noscript>

    jueves, 6 de junio de 2013 12:00