none
problema al enviar correo desde vb.net RRS feed

  • Pregunta

  • hola estoy utilizado el ejemplo de envio de correo con servidor smtp que viene en el visual studio 2005
    pero al enviar el correo me sale un error de que no se puede enviar ya lo revise y creo que el problema esta en esta linea
    Code Snippet

     Dim client As New SmtpClient("aki no se que poner")




    este es mi codigo del formload

    Code Snippet

    Dim services() As ServiceController = ServiceController.GetServices

           End With

            Dim service As ServiceController = Nothing
            Dim blnHasSmtpService As Boolean = False

            ' Recorra en bucle todos los servicios del equipo y busque el Servicio SMTP.
            For Each service In services
                If service.ServiceName.ToLower = "smtpsvc" Then
                    blnHasSmtpService = True
                    Exit For
                End If
            Next

            If Not blnHasSmtpService Then
                MessageBox.Show("You do not have SMTP Service installed on this " & _
                    "machine. Please check the Readme file for information on how " & _
                    "to install SMTP Service.", Me.Text, _
                    MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

            ' Asegúrese de que el Servicio SMTP se está ejecutando. En caso contrario, inícielo.
            If Not service.Status = ServiceControllerStatus.Running Then
                Try
                    service.Start()
                Catch
                    MsgBox("There was an error when attempting " & _
                        "to start SMTP Service. Please consult the Readme " & _
                        "file for more information.")
                End Try
            End If

            ' Rellene el cuadro combinado Priority con los valores de MailPriority
            With PrioridadComboBox
                .Items.AddRange(New String() {"Alta", "Normal", "Baja"})
                .SelectedIndex = 0
     
    Code Snippet

     



    y este es el codigo del boton enviar


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

            'Controla el evento de clic del botón Send. Esta rutina comprueba direcciones de correo electrónico
            'válidas, crea el cuerpo del mensaje mediante StringBuilder, crea un
            ' mensaje de correo y, a continuación, intenta enviarlo.

            If TurnadoaTextBox.Text = "" Or SignatarioTextBox.Text = "" Then
                MsgBox("debes poner las direcciones de destinatario y remitente.")
                Exit Sub
            End If

            ' Utilice la clase StringBuilder en lugar de la concatenación de cadenas tradicional.
            ' Ésta es la forma óptima de crear cadenas porque es capaz de modificar
            ' el búfer subyacente en lugar de tener que hacer una copia de la cadena para
            ' cada concatenación.
            Dim sb As New StringBuilder()

            ' Cree el cuerpo del mensaje de correo electrónico.
            sb.Append("The following email was sent to you from the Send Mail " & _
                "sample application:")
            sb.Append(vbCrLf)
            sb.Append(vbCrLf)
            sb.Append("SUBJECT: ")
            sb.Append(Trim(AsuntoTextBox.Text))
            sb.Append(vbCrLf)
            sb.Append(vbCrLf)
            sb.Append("MESSAGE: ")
            sb.Append(Trim(AsuntototalTextBox.Text))
            sb.Append(vbCrLf)

            ' Para crear un mensaje de correo, basta con crear una instancia de una clase y
            ' definir algunas propiedades.
            Dim mailMsg As New MailMessage(SignatarioTextBox.Text.Trim, TurnadoaTextBox.Text.Trim)
            With mailMsg
                If Not String.IsNullOrEmpty(CC.Text) Then
                    .CC.Add(New MailAddress(CC.Text.Trim))
                End If

                If Not String.IsNullOrEmpty(BCC.Text) Then
                    .Bcc.Add(New MailAddress(BCC.Text.Trim))
                End If

                .Subject = AsuntoTextBox.Text.Trim
                .Body = sb.ToString

                If Not IsNothing(arlAttachments) Then
                    Dim mailAttachment As Attachment
                    For Each mailAttachment In arlAttachments
                        .Attachments.Add(mailAttachment)
                    Next
                End If
            End With

            ' Defina el nombre de SmtpServer. Este nombre puede ser alguno de los siguientes según
            ' la configuración de seguridad local:

            ' a) Dirección IP local (suponiendo que el servidor SMTP del equipo local tenga
            ' privilegios para enviar mensajes a través de un servidor de seguridad local, si hay alguno).

            ' b) 127.0.0.1: el bucle invertido del equipo local.

            ' c) "smarthost" o el nombre o la dirección IP del servidor de intercambio que
            ' utiliza para la mensajería. Esto es lo que se necesita normalmente si se utiliza
            ' un servidor de seguridad corporativo.

            ' Utilice el control de errores estructurado para intentar enviar el mensaje de correo electrónico y
            ' proporcionar información al usuario sobre el éxito o el fracaso del
            ' envío.
            Try
                Dim client As New SmtpClient("aki no se que poner") ' nose ke poner en esa linea
                client.Send(mailMsg)
                Attachments.Items.Clear()
                Attachments.Items.Add("(no adjuntos)")

                MessageBox.Show("Tu correo ha sido enviado!", _
                    "Email Send Status", MessageBoxButtons.OK, _
                    MessageBoxIcon.Information)
            Catch exp As Exception
                MessageBox.Show("The following problem occurred when attempting to " & _
                    "send your email: " & exp.Message, _
                    Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Sub

    espero y me puedan ayudar para que se pueda enviar el correo 

    lo he intentado a yahoo y a hotmail pero no puedo

    de antemano muchas gracias!!!!!!!!!!!!!


    miércoles, 17 de diciembre de 2008 23:17

Todas las respuestas

  •  

    Code Snippet

    Dim client As New SmtpClient("aki no se que poner")

     

     

    Ahi se pone el nombre del servidor de correo que usaras para enviar el email...

    si usas un servidor incorporado en Visual Studio (existia Tongue Tied ? no sera algo del IIS) supongo que no debes poner nada, o bien  poner ahi "localhost" .

     

     

     

     

     

    jueves, 18 de diciembre de 2008 14:03
  • ahi pones los datos del servidor smtp con el que vas a enviar el mail, como puerto,credenciales etc te escribo el cod que utilizo yo ... si me funciona

    Dim Msg As New MailMessage ' Instancia para Manejar el Envio de Archivos     
    Dim SMTP As New SmtpClient ' Uso de SMTP para el envio y codificacion de Archivos
    Try
    Dim direccion As String
      direccion
    =

    CType(Dts.Variables("Destinatarios").Value, String)

               

    Dim archivos As String = CType(Dts.Variables("NomArchivos").Value, String)

               

    Dim diaanterior As DateTime = DateTime.Now.AddDays(-1)

                Msg
    .From =

    New System.Net.Mail.MailAddress("micuenta.bg@gmail.com", "Envio de Informacion", System.Text.Encoding.UTF8)

               

    For Each mail As String In direccion.Split(New Char() {";"c})

                    Msg
    .To.Add(

    New System.Net.Mail.MailAddress(mail))

               

    Next


               




                Msg
    .Subject =

    CStr("Envio de Informacin")

                Msg
    .SubjectEncoding = System.Text.Encoding.UTF8

                Msg
    .Body = body

               

    For Each file As String In archivos.Split(New Char() {";"c})

                    Msg
    .Attachments.Add(

    New System.Net.Mail.Attachment(file))

               

    Next

                Msg
    .BodyEncoding = System.Text.Encoding.UTF8

                Msg
    .IsBodyHtml =

    True


                SMTP
    .UseDefaultCredentials =

    False

                SMTP
    .Credentials =

    New System.Net.NetworkCredential("micuenta.bg@gmail.com", "mipass")

                SMTP
    .Port = 587

                SMTP
    .Host =

    "smtp.gmail.com"

                SMTP
    .EnableSsl =

    True

                SMTP
    .DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network

                SMTP
    .Timeout = 500

               

    'Dim userState As Object = Msg

               

    'SMTP.SendAsync(Msg, userState)


                SMTP
    .Send(Msg)


    eso

    • Propuesto como respuesta Ratommy martes, 26 de junio de 2012 18:19
    martes, 26 de junio de 2012 18:19