• Lunes 6 de Mayo de 2024, 14:22

Autor Tema:  Enviar Correos  (Leído 2079 veces)

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Enviar Correos
« en: Domingo 6 de Mayo de 2007, 09:03 »
0
hola buenos dias tenia otra consulta estaba intentando hacer un programa que pusiera enviar correos ya tengo intalado en mi pc mi servidor de correos este programa lo avia echo en visual.net 2003 y me servia mandaba correos pero ahora estoy usando visual 2005 y ahora no me deja enviar correos
me señala la linea de System.Web.Mail.MailMessage me dice un mensaje que disque el web mail ya esta obsoleto que me recomienda que use el net.mail pero cuando pongo eso entonces las linesas de el message to y el message from me mandan error como esperando un resultado readonly asi qeu no se qeu otra opcion se usara en el .net 2005  si esa funcionaba bien en el 2003 se le agradece su ayuda


           Dim message As New System.Web.Mail.MailMessage
            message.To = "micorreo@hotmail.com"
            message.Subject = TextBox1.Text
            message.Body = TextBox2.Text
            message.From = "micorreo@hotmail.com"

            System.Web.Mail.SmtpMail.SmtpServer = "localhost"
            System.Web.Mail.SmtpMail.Send(message)
Cada dia aprendo algo nuevo

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Enviar Correos
« Respuesta #1 en: Lunes 7 de Mayo de 2007, 19:20 »
0
No se si ya probaste de esta manera ?

Código: Text
  1. Imports System.Web.Mail
  2.  
  3.     Private Sub BtnEnviar_Click(ByVal sender As System.Object _
  4.                 , ByVal e As System.EventArgs) _
  5.                   Handles BtnEnviar.Click
  6.  
  7.         Dim mmMail As New MailMessage
  8.         Dim objSmtpServer As SmtpMail
  9.         mmMail.From = "elnapster@solocodigo.com"
  10.         mmMail.To = "elotro@domain.es"
  11.         mmMail.Subject = "Asunto"
  12.         mmMail.Body = "Cuerpo del Mensaje"
  13.         Dim oAttachment As MailAttachment = New MailAttachment("C:\prueba.txt")
  14.         mmMail.Attachments.Add(oAttachment)
  15.         objSmtpServer.SmtpServer = "smtp..."
  16.         Try
  17.             objSmtpServer.Send(mmMail)
  18.         Catch ex As Exception
  19.             MessageBox.Show("Error en envió:" & vbCrLf & ex.Message)
  20.         End Try
  21.  
  22.     End Sub
  23.  

 :smartass:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Re: Enviar Correos
« Respuesta #2 en: Lunes 7 de Mayo de 2007, 21:35 »
0
hola, ya intente con el ejemplo que usted me mando pero que va me sige mandando el mismo error , estoy usando .net 2005 en el 2003 si no me da problema
me sigue mandando el mensaje de que ya no se usa web.mail que use .net.mail pero cuando uso el net.mail tambien me manda otros errores

y ahora no se que le paso a mi visual estudio porque en el documento que estaba haciendo mi programa aya pongo

imports system.web.mail y solo me manda el mensaje en verde

pero ahora cuando ago otro documento nuevo e intento poner imports system.web.mail
me manda una linea en rojo como de que esa extencion de mail no exitira o no tuviera permiso aki le envie el archivo para ver si aya no le manda el error
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Cada dia aprendo algo nuevo

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Re: Enviar Correos
« Respuesta #3 en: Lunes 7 de Mayo de 2007, 23:13 »
0
hola encontre una ejemplo en la ayuda del .net pero que va ya ando que no trasmito ando tildea ya batalle mucho por hoy con eso y que va no me sale
tengo intalado un servidor de correos que se llama Free SMTP Server
intalado en mi pc
entonces le intente cambiar en el programa este que consegui ponerle localhost o mi numero ip pero manda error como que no encuentra el servidor de correos
 asi que lo subi para ver si alguein pro hay me puede ayduar en eso porque que va no me sale
para poder usar ese o usar el que yo estaba haciendo que se veia ma sensillo o no se este tambien se ve bien completo o por lo menos que funcione y yo aka tratare de meterle mas mente  :comp:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Cada dia aprendo algo nuevo

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Re: Enviar Correos
« Respuesta #4 en: Martes 8 de Mayo de 2007, 17:16 »
0
que va todavia no me funciona bien al segundo ejemplo le quite el codigo del load que preguntaba por el servidor entonces ahora si me aparece en mi servidor de correos que se envia pero no me llegan <_<
Cada dia aprendo algo nuevo

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Re: Enviar Correos
« Respuesta #5 en: Martes 8 de Mayo de 2007, 19:13 »
0
este es el codigo del segundo programa que les avia dicho, para que me funcionara tube que ponerle en comentario el codigo que estaba en el load que eso pregunaba por un servidor de correo, porque yo no estoy usando el iss yo uso es este Free SMTP Server

y cuando abri mi servidor de correo y envie el correo por el programa se veia qeu se enviaba pero cuando reviso mi correo no me llegan en las ip puse las ip de mi pc
 :rolleyes:

' © Microsoft Corporation. Reservados todos los derechos.
Imports System.Net.Mail
Imports System.Text
Imports System.ServiceProcess

Public Class MainForm
    Inherits System.Windows.Forms.Form

    Dim arlAttachments As ArrayList


    ''' <summary>
    ''' Controla el evento de clic del botón Browse. Utiliza un control OpenFileDialog para permitir al
    ''' usuario que busque los datos adjuntos que desea enviar, los cuales se agregan después a una lista de matrices de
    ''' objetos MailAttachment.
    '''  </summary>
    Private Sub Browse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Browse.Click
        With odlgAttachment
            .InitialDirectory = "C:\"
            .Filter = "All Files (*.*)|*.*|HTML Files (*.htm;*.html)|*.htm|Microsoft Mail Documents (*.msg)|*.msg|Word Documents (*.doc)|*.doc|Excel Files(*.xl*)|*.xl*|Excel Worksheets (*.xls)|*.xls|Excel Charts (*.xlc)|*.xlc|PowerPoint Presentations (*.ppt)|*.ppt|Text Files (*.txt)|*.txt"
            .FilterIndex = 1

            ' El control OpenFileDialog sólo contiene un botón Open y no un botón OK.
            ' Pero como no hay ninguna enumeración DialogResult.Open se utiliza DialogResult.OK.
            If .ShowDialog() = Windows.Forms.DialogResult.OK Then
                If IsNothing(arlAttachments) Then
                    arlAttachments = New ArrayList()

                    ' Borre el texto predeterminado "(No hay datos adjuntos)" de la vista de lista
                    Attachments.Items.Clear()
                End If
                arlAttachments.Add(New Attachment(.FileName))

                ' Sólo desea mostrar el nombre del archivo. La propiedad OpenFileDialog.FileName
                ' contiene la ruta de acceso completa, así que divida la ruta e invierta el orden
                ' para obtener la primera cadena de la matriz, que es justamente el nombre del archivo.
                Dim strFileName() As String = .FileName.Split(New Char() {CChar("\")})
                System.Array.Reverse(strFileName)
                Attachments.Items.Add(strFileName(0))
            End If
        End With
    End Sub

    ''' <summary>
    ''' 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.
    '''  </summary>
    Private Sub Send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Send.Click

        If ToAddress.Text = "" Or From.Text = "" Then
            MsgBox("You must enter both To and From email addresses.")
            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(Subject.Text))
        sb.Append(vbCrLf)
        sb.Append(vbCrLf)
        sb.Append("MESSAGE: ")
        sb.Append(Trim(Body.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(From.Text.Trim, ToAddress.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 = Subject.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("smarthost")
            client.Send(mailMsg)
            Attachments.Items.Clear()
            Attachments.Items.Add("(No Attachments)")

            MessageBox.Show("Your email has been successfully sent!", _
                "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

    ''' <summary>
    ''' Controla el evento Load del formulario. Comprueba que el Servicio SMTP está
    ''' instalado y en ejecución.
    '''  </summary>
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, MyBase.Load, MyBase.Load, MyBase.Load
        ' Asegúrese de que el Servicio SMTP está instalado.
        Dim services() As ServiceController = ServiceController.GetServices
        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 Priority
            .Items.AddRange(New String() {"Normal", "Low", "High"})
            .SelectedIndex = 0
        End With
    End Sub

    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
        Me.Close()
    End Sub
End Class
Cada dia aprendo algo nuevo