Foros del Web » Programación para mayores de 30 ;) » .NET »

Mandar email con un boton

Estas en el tema de Mandar email con un boton en el foro de .NET en Foros del Web. Hola; Necesito vuestra ayuda. Es para que me deis alguna idea de como poder hacer lo siguiente. Tengo una aplicación web y estoy programando en ...
  #1 (permalink)  
Antiguo 02/01/2013, 07:45
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Exclamación Mandar email con un boton

Hola;
Necesito vuestra ayuda. Es para que me deis alguna idea de como poder hacer lo siguiente.
Tengo una aplicación web y estoy programando en vb.net. En un aspx tengo lo siguiente:
Código ASP:
Ver original
  1. <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
  2.     <h2>
  3.         RECHAZAR HOJA
  4.     </h2>
  5.     <p>
  6.             <asp:Label ID="LabelRechazar" runat="server" Font-Bold="True" Text="CASUÍSTICAS DE RECHAZO:"></asp:Label>
  7.            
  8.             <asp:CheckBoxList ID="CheckBoxRechazo" runat="server" AutoPostBack="True" Align="Center">
  9.                 <asp:ListItem Value="1">Importe incorrecto</asp:ListItem>
  10.                 <asp:ListItem Value="2">Ausencia de datos de empleado</asp:ListItem>
  11.                 <asp:ListItem Value="3">Falta de justificante</asp:ListItem>
  12.                 <asp:ListItem Value="4">Datos en línea incorrecta</asp:ListItem>
  13.                 <asp:ListItem Value="5">Los justificantes son incorrectos</asp:ListItem>
  14.                 <asp:ListItem Value="6">El proyecto/ orden seleccionados son incorrectos</asp:ListItem>
  15.             </asp:CheckBoxList>
  16.     </p>
  17.     <p>
  18.         <asp:Label ID="Label1" runat="server" Font-Bold="True" Text="OBSERVACIONES:"></asp:Label>
  19.         <asp:TextBox ID="TextObservacionesLG" runat="server" BackColor="#CCCCCC"
  20.             Width="890px" maxlength="500" Height="100px" Multiline="True" ScrollBars="True"
  21.             TextMode="MultiLine"></asp:TextBox>
  22.     </p>
  23.     <p>
  24.         <asp:Button ID="Enviar" runat="server" Text="Enviar" align="Rigth" />
  25.     </p>
  26. </asp:Content>

Al darle al botón enviar recupero el email de la persona a la que se le tiene que enviar el email y dentro de ese email se introducirán los datos elegidos de los checkbox y lo escrito en observaciones.

¿Como puedo hacer eso de indicarle que me mande un email y pesarle esos datos?
__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 02/01/2013, 08:26
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Mandar email con un boton

Hola

Para hacer el envío de correo electrónico desde .net puedes usar el namespace System.Net.Mail, Aquí lo que haces es crear un método en donde le pases la información del envío, es decir el mail del destinatario, el cuerpo del mensaje, incluso los adjuntos si los tiene, aquí te paso un ejemplo desde el evento de un botón:

Código vb:
Ver original
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  
  3.         Dim SmtpServer As New SmtpClient() 'Instancia de Servidor SMTP, proporcionada por System.Net.Mail
  4.  
  5.         Dim mail As New MailMessage() 'Instancia de mensaje de correo, proporcionada por System.Net.Mail
  6.  
  7.         Dim eMensaje1, eMensaje2, ePie As String
  8.  
  9.         Dim attachment As New Net.Mail.Attachment("C:\Prueba.DOC") 'Adjuntar archivo
  10.  
  11.         Dim eTo, eNuestroCorreo, eNuestraContraseña As String
  12.  
  13.         'Comenzamos el envio del correo
  14.        'controlando si existiera algún error al envío
  15.        Try
  16.  
  17.             'Nuestro usuario de Correo electrónico, Ejemplo actual Hotmail, puede ser Gmail, Yahoo, etc...
  18.            eNuestroCorreo = "[email protected]"
  19.  
  20.             'Nuestro contraseña de Correo electrónico
  21.            eNuestraContraseña = "Nuestra Contraseña"
  22.  
  23.             'El Mensaje del correo
  24.            eMensaje1 = " Envío de mensaje electrónico "
  25.             eMensaje2 = "desde Visual Basic .NET "
  26.  
  27.             'El Footer del Mensaje
  28.            ePie = "Aquí va la firma o el texto de advertencia de seguridad, etc."
  29.  
  30.             'Destinatario del Mensaje
  31.            eTo = "[email protected]"
  32.  
  33.             ' Configuración para enviar el correo desde Gmail, si es por Hotmail es 25
  34.            '(que es el que viene por default), si usa Gmail quitar comentario
  35.            ' SmtpServer.Port = 587
  36.            ' Nombre del SMPTServer
  37.            SmtpServer.Host = "smtp.live.com"
  38.             'Habilitación de conexión segura
  39.            SmtpServer.EnableSsl = True
  40.             'Credenciales para abrirla sesión y poder enviar el mail
  41.            SmtpServer.Credentials = New Net.NetworkCredential _
  42.             (eNuestroCorreo, eNuestraContraseña)
  43.  
  44.             ' Empezamos a configurar el correo a enviar
  45.            ' con los datos anteriores que pusimos
  46.  
  47.             'Le decimos que mail es un nuevo correo
  48.            mail = New MailMessage()
  49.             'Origen del correo
  50.            mail.From = New MailAddress(eNuestroCorreo)
  51.             'Destinatarios del correo
  52.            mail.To.Add(eTo)
  53.             'Asunto del correo
  54.            mail.Subject = "Prueba Asunto"
  55.             'Texto del Mensaje
  56.            mail.Body = eMensaje1 + eMensaje2 + ePie
  57.             'Texto en HTML del Mensaje
  58.            mail.IsBodyHtml = True
  59.             'Le decimos que queremos enviar el archivo que anteriormente indicamos
  60.            mail.Attachments.Add(attachment)
  61.  
  62.             'Le decimos que envíe el correo
  63.            SmtpServer.Send(mail)
  64.            
  65.  
  66.         Catch ex As Exception
  67.             'Informamos si existiera algún error
  68.            Throw New Exception(ex.ToString)
  69.  
  70.         End Try
  71.     End Sub

Igual esto lo puedes configurar en un método y pasar los parámetros que estás recuperando...

Saludos...
  #3 (permalink)  
Antiguo 02/01/2013, 09:05
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Mandar email con un boton

Estoy configurando todo para que me funcione. ¿No sabrías como tengo que configurar para que me funcione con Outlook 2010?

Gracias
__________________
Gracias por todo;

Un saludo
  #4 (permalink)  
Antiguo 02/01/2013, 10:23
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Mandar email con un boton

Hola

Pues en ese caso deberás agregar la referencia del Microsoft Outlook y hacer algo parecido a lo anterior, claro que con esta referencia ya vas a tener una clase que no sólo te va a permitir enviar el email sino que además vas a poder configurar contactos, tareas, notas y todo lo que el mismo Outlook te permite, esto en si mismo ya es una ventaja, lo que a mi parecer es una desventaja es que para que te funcione deberás tener una cuenta de correo ya configurada en el Outlook y cuando vayas a hacer una migración a otro equipo pues no te va a funcionar sin antes haber configurado tu Outlook primero.

Por el momento no tengo un ejemplo propio, pero te dejo una dirección en la que te lo explican paso a paso (debo aclararte que el ejemplo es con un Windows Form, pero eso no tiene ninguna importancia, finalmente puedes meter todo esto en una clase y que tu aplicación instancie la clase):

http://www.elguille.info/colabora/puntoNET/Emanon_OutlookVB.htm

Aunque ahí usan una versión de Outlook anterior, el proceso es igual...

Saludos...
  #5 (permalink)  
Antiguo 08/01/2013, 04:57
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Mandar email con un boton

Perfecto!!!

He conseguido mandar el email pero tengo una duda, haber si me puedes ayudar.
En el ejemplo que me has mandado, envía el contenido del email indicándole en el ojbMail.Body lo que quiere escribir en el contenido del email. Yo quiero que en mi email se envíe mas de una cosa dentro del contenido de este.
¿Cómo puedo hacerlo?
__________________
Gracias por todo;

Un saludo
  #6 (permalink)  
Antiguo 08/01/2013, 07:56
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Mandar email con un boton

Hola maialenlopez,

No estoy seguro con que a lo que te refieres con que se envíe mas de una cosa dentro del contenido del objMail.Body sea más líneas dentro del cuerpo o que si lo quieras cargar con varios contenidos desde una base de datos o algo así, pero pues objMail.Body es una propiedad de tipo string, y por ende aquí le puedes cargar casi todo lo que quieras, es más podrías pasar el cuerpo del correo como un parámetro del método, así ya lo traes cargado con lo que tu quieras...

Te dejo el ejemplo
Código vb:
Ver original
  1. Private Sub SendMail(ByVal _to As String, ByVal _subject As String, ByVal _Body As String)
  2.         Dim m_OutLook As Outlook.Application
  3.         Try
  4.  
  5.             '* Creamos un Objeto tipo Mail
  6.  
  7.             Dim objMail As Outlook.MailItem
  8.  
  9.             '* Inicializamos nuestra apliación OutLook
  10.  
  11.             m_OutLook = New Outlook.Application
  12.  
  13.  
  14.             '* Creamos una instancia de un objeto tipo MailItem
  15.  
  16.             objMail = m_OutLook.CreateItem(Outlook.OlItemType.olMailItem)
  17.  
  18.  
  19.             '* Asignamos las propiedades a nuestra Instancial del objeto
  20.  
  21.             '* MailItem
  22.  
  23.             objMail.To = _to
  24.  
  25.             objMail.Subject = _subject
  26.  
  27.             objMail.Body = _Body
  28.  
  29.             '* Enviamos nuestro Mail y listo!
  30.  
  31.             objMail.Send()
  32.  
  33.  
  34.             '* Desplegamos un mensaje indicando que todo fue exitoso
  35.  
  36.             MessageBox.Show("Mail Enviado", "Integración con OutLook", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  37.  
  38.         Catch ex As Exception
  39.  
  40.             '* Si se produce algun Error Notificar al usuario
  41.  
  42.             MessageBox.Show("Error enviando mail")
  43.  
  44.  
  45.         Finally
  46.  
  47.             m_OutLook = Nothing
  48.  
  49.  
  50.         End Try
  51.  
  52.  
  53.     End Sub

Espero te sirva

Saludos
  #7 (permalink)  
Antiguo 08/01/2013, 08:00
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Mandar email con un boton

Muchas gracias!!
Si me ha servido lo que has escrito y funciona perfectamente tal y como me lo has puesto en el código.
Gracias,
__________________
Gracias por todo;

Un saludo
  #8 (permalink)  
Antiguo 11/01/2013, 04:44
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Pregunta Respuesta: Mandar email con un boton

Cita:
Iniciado por jhonjairo00 Ver Mensaje
Hola maialenlopez,

No estoy seguro con que a lo que te refieres con que se envíe mas de una cosa dentro del contenido del objMail.Body sea más líneas dentro del cuerpo o que si lo quieras cargar con varios contenidos desde una base de datos o algo así, pero pues objMail.Body es una propiedad de tipo string, y por ende aquí le puedes cargar casi todo lo que quieras, es más podrías pasar el cuerpo del correo como un parámetro del método, así ya lo traes cargado con lo que tu quieras...

Te dejo el ejemplo
Código vb:
Ver original
  1. Private Sub SendMail(ByVal _to As String, ByVal _subject As String, ByVal _Body As String)
  2.         Dim m_OutLook As Outlook.Application
  3.         Try
  4.  
  5.             '* Creamos un Objeto tipo Mail
  6.  
  7.             Dim objMail As Outlook.MailItem
  8.  
  9.             '* Inicializamos nuestra apliación OutLook
  10.  
  11.             m_OutLook = New Outlook.Application
  12.  
  13.  
  14.             '* Creamos una instancia de un objeto tipo MailItem
  15.  
  16.             objMail = m_OutLook.CreateItem(Outlook.OlItemType.olMailItem)
  17.  
  18.  
  19.             '* Asignamos las propiedades a nuestra Instancial del objeto
  20.  
  21.             '* MailItem
  22.  
  23.             objMail.To = _to
  24.  
  25.             objMail.Subject = _subject
  26.  
  27.             objMail.Body = _Body
  28.  
  29.             '* Enviamos nuestro Mail y listo!
  30.  
  31.             objMail.Send()
  32.  
  33.  
  34.             '* Desplegamos un mensaje indicando que todo fue exitoso
  35.  
  36.             MessageBox.Show("Mail Enviado", "Integración con OutLook", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  37.  
  38.         Catch ex As Exception
  39.  
  40.             '* Si se produce algun Error Notificar al usuario
  41.  
  42.             MessageBox.Show("Error enviando mail")
  43.  
  44.  
  45.         Finally
  46.  
  47.             m_OutLook = Nothing
  48.  
  49.  
  50.         End Try
  51.  
  52.  
  53.     End Sub

Espero te sirva

Saludos

Tenia otra duda, Te la comento y a ver si me puedes echar una mano.

La aplicación web la e echo en mi ordenador, pero tengo que pasarla a un servidor para poder atacar a esta aplicación desde otros ordenadores. El apartado de mandar el email, desde mi ordenador va perfectamente ya que tengo en el trabajo cada uno tenemos configurado nuestro correo en Outlook. Pero una vez introducida la aplicación en el servidor y cuando ataco a esta desde mi ordenador el apartado del email va pero la persona a la que quiero enviar el email no lo recibe.
¿Sabes si tengo que configurar algo o hacer algo para que esto funcione?
__________________
Gracias por todo;

Un saludo
  #9 (permalink)  
Antiguo 11/01/2013, 08:36
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Mandar email con un boton

Hola maialenlopez, recuerdas esto que ya te había escrito

Cita:
Iniciado por jhonjairo00 Ver Mensaje
Hola

Pues en ese caso deberás agregar la referencia del Microsoft Outlook y hacer algo parecido a lo anterior, claro que con esta referencia ya vas a tener una clase que no sólo te va a permitir enviar el email sino que además vas a poder configurar contactos, tareas, notas y todo lo que el mismo Outlook te permite, esto en si mismo ya es una ventaja, lo que a mi parecer es una desventaja es que para que te funcione deberás tener una cuenta de correo ya configurada en el Outlook y cuando vayas a hacer una migración a otro equipo pues no te va a funcionar sin antes haber configurado tu Outlook primero.

Por el momento no tengo un ejemplo propio, pero te dejo una dirección en la que te lo explican paso a paso (debo aclararte que el ejemplo es con un Windows Form, pero eso no tiene ninguna importancia, finalmente puedes meter todo esto en una clase y que tu aplicación instancie la clase):

http://www.elguille.info/colabora/puntoNET/Emanon_OutlookVB.htm

Aunque ahí usan una versión de Outlook anterior, el proceso es igual...

Saludos...

Deberás configurar una cuenta de correo en el outlook del equipo en donde se va a alojar la aplicación...

Recuerda que también podrías usar la clase SmtpClient() y establecer los parámetros para que la aplicación pueda hacer el envío, en este caso ya no dependerías del Outlook y la migración al servidor no va a necesitar más configuraciones...

Espero te sirva...

Saludos
  #10 (permalink)  
Antiguo 15/01/2013, 09:01
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Mandar email con un boton

Cita:
Iniciado por jhonjairo00 Ver Mensaje
Hola maialenlopez, recuerdas esto que ya te había escrito




Deberás configurar una cuenta de correo en el outlook del equipo en donde se va a alojar la aplicación...

Recuerda que también podrías usar la clase SmtpClient() y establecer los parámetros para que la aplicación pueda hacer el envío, en este caso ya no dependerías del Outlook y la migración al servidor no va a necesitar más configuraciones...

Espero te sirva...

Saludos

¿Cómo es eso del SmtpClient()? Es que me han dicho que no puedo configurar ninguna cuenta de outlook en el servidor lo que me han comentado es que tengo que configurar la ip o algo así la verdad es que no me aclaro.
__________________
Gracias por todo;

Un saludo
  #11 (permalink)  
Antiguo 15/01/2013, 09:43
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Mandar email con un boton

He echo lo siguiente:
Código vb.net:
Ver original
  1. Protected Sub enviarEmail(ByVal email As String)
  2.         Dim a, b, c, d, f, g, h As String
  3.         Try
  4.  
  5.             '* Creamos un Objeto tipo Mail
  6.             Dim objMail As Outlook.MailItem
  7.  
  8.             '* Inicializamos nuestra apliación OutLook
  9.             m_OutLook = New Outlook.Application
  10.  
  11.  
  12.             '* Creamos una instancia de un objeto tipo MailItem
  13.             objMail = m_OutLook.CreateItem(Outlook.OlItemType.olMailItem)
  14.  
  15.  
  16.             '* Asignamos las propiedades a nuestra Instancial del objeto
  17.             '* MailItem
  18.             'objMail.From = New System.Net.Mail.MailAddress(emailRemitente, emailRemitente, System.Text.Encoding.UTF8) 'Quien lo envía
  19.             objMail.To = email
  20.             objMail.Subject = "Hoja de gastos rechazada"
  21.  
  22.             Dim values As String = ""
  23.             For i As Integer = 0 To CheckBoxRechazo.Items.Count - 1
  24.                 If CheckBoxRechazo.Items(i).Selected Then
  25.                     If CheckBoxRechazo.Items(i).Value = 1 Then
  26.                         a = uno
  27.                     End If
  28.                     If CheckBoxRechazo.Items(i).Value = 2 Then
  29.                         b = dos
  30.                     End If
  31.                     If CheckBoxRechazo.Items(i).Value = 3 Then
  32.                         c = tres
  33.                     End If
  34.                     If CheckBoxRechazo.Items(i).Value = 4 Then
  35.                         d = cuatro
  36.                     End If
  37.                     If CheckBoxRechazo.Items(i).Value = 5 Then
  38.                         f = cinco
  39.                     End If
  40.                     If CheckBoxRechazo.Items(i).Value = 6 Then
  41.                         g = seis
  42.                     End If
  43.                 End If
  44.             Next
  45.  
  46.             h = TextObservacionesLG.Text
  47.  
  48.             objMail.Body = a + Chr(13) + b + Chr(13) + c + Chr(13) + d + Chr(13) + f + Chr(13) + g + Chr(13) + h
  49.  
  50.             'Prioridad del correo
  51.             objMail.Priority = System.Net.Mail.MailPriority.Normal
  52.  
  53.             'Host=nombre del servidor de correo por el que queremos enviar el mensaje
  54.             Dim smtp As New System.Net.Mail.SmtpClient
  55.             smtp.Host = "192.168.1.131"
  56.  
  57.             'Si el servidor de correo necesita autenticación
  58.             'smtp.Credentials = New System.Net.NetworkCredential("usuario", "password")
  59.  
  60.             '* Enviamos nuestro Mail y listo!
  61.             smtp.Send(objMail)
  62.             Label2.Text = "ENVIADO"
  63.             '* Desplegamos un mensaje indicando que todo fue exitoso
  64.             'MsgBox("Mail Enviado. Integración con OutLook")
  65.         Catch ex As Exception
  66.             Label2.Text = "NO ENVIADO"
  67.             '* Si se produce algun Error Notificar al usuario
  68.             'MsgBox("Error enviando mail " + ex.Message)
  69.         Finally
  70.             m_OutLook = Nothing
  71.             Response.Redirect("Identificador.aspx")
  72.         End Try
  73.     End Sub

No se si esta bien por que no consigo mandar ningún mail .

Me podeis ayudar??
__________________
Gracias por todo;

Un saludo
  #12 (permalink)  
Antiguo 16/01/2013, 09:22
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Mandar email con un boton

Hola maialenlopez

Mira la SmtpClient() es una clase de .net que sirve para el envío de correos electrónicos de una forma "genérica" por llamarlo de alguna manera, aquí te dejo un link que te explica mejor que yo:

http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

Con esta clase es mucho más sencillo el envío de correo electrónico desde tu aplicación ya que la configuración se hace en tiempo de ejecución y no usa extenciones de aplicaciones externas como outlook.

Ahora, en el código que pusiste tienes varias cosas que corregir:

1.
Código vb:
Ver original
  1. '* Creamos un Objeto tipo
  2. Dim objMail As Outlook.MailItem
  3.  
  4. '* Enviamos nuestro Mail y listo!
  5. smtp.Send(objMail)

si objMail es de tipo Outlook.MailItem no lo vas a poder enviar usando smtp.Send, porque el parámetro del método Send es un objeto de tipo MailMessage, es decir son objetos diferentes y te va a generar una excepción

Código vb:
Ver original
  1. 'Host=nombre del servidor de correo por el que queremos enviar el mensaje
  2.            Dim smtp As New System.Net.Mail.SmtpClient
  3.             smtp.Host = "192.168.1.131"

El Host es por ejemplo smtp.gmail.com para gmail, smtp.live.com para hotmail o smtp.mail.yahoo.com para yahoo

usa el ejemplo que te puse y que aquí te cito para que te funcione:

Cita:
Iniciado por jhonjairo00 Ver Mensaje
Hola

Para hacer el envío de correo electrónico desde .net puedes usar el namespace System.Net.Mail, Aquí lo que haces es crear un método en donde le pases la información del envío, es decir el mail del destinatario, el cuerpo del mensaje, incluso los adjuntos si los tiene, aquí te paso un ejemplo desde el evento de un botón:

Código vb:
Ver original
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  
  3.         Dim SmtpServer As New SmtpClient() 'Instancia de Servidor SMTP, proporcionada por System.Net.Mail
  4.  
  5.         Dim mail As New MailMessage() 'Instancia de mensaje de correo, proporcionada por System.Net.Mail
  6.  
  7.         Dim eMensaje1, eMensaje2, ePie As String
  8.  
  9.         Dim attachment As New Net.Mail.Attachment("C:\Prueba.DOC") 'Adjuntar archivo
  10.  
  11.         Dim eTo, eNuestroCorreo, eNuestraContraseña As String
  12.  
  13.         'Comenzamos el envio del correo
  14.        'controlando si existiera algún error al envío
  15.        Try
  16.  
  17.             'Nuestro usuario de Correo electrónico, Ejemplo actual Hotmail, puede ser Gmail, Yahoo, etc...
  18.            eNuestroCorreo = "[email protected]"
  19.  
  20.             'Nuestro contraseña de Correo electrónico
  21.            eNuestraContraseña = "Nuestra Contraseña"
  22.  
  23.             'El Mensaje del correo
  24.            eMensaje1 = " Envío de mensaje electrónico "
  25.             eMensaje2 = "desde Visual Basic .NET "
  26.  
  27.             'El Footer del Mensaje
  28.            ePie = "Aquí va la firma o el texto de advertencia de seguridad, etc."
  29.  
  30.             'Destinatario del Mensaje
  31.            eTo = "[email protected]"
  32.  
  33.             ' Configuración para enviar el correo desde Gmail, si es por Hotmail es 25
  34.            '(que es el que viene por default), si usa Gmail quitar comentario
  35.            ' SmtpServer.Port = 587
  36.            ' Nombre del SMPTServer
  37.            SmtpServer.Host = "smtp.live.com"
  38.             'Habilitación de conexión segura
  39.            SmtpServer.EnableSsl = True
  40.             'Credenciales para abrirla sesión y poder enviar el mail
  41.            SmtpServer.Credentials = New Net.NetworkCredential _
  42.             (eNuestroCorreo, eNuestraContraseña)
  43.  
  44.             ' Empezamos a configurar el correo a enviar
  45.            ' con los datos anteriores que pusimos
  46.  
  47.             'Le decimos que mail es un nuevo correo
  48.            mail = New MailMessage()
  49.             'Origen del correo
  50.            mail.From = New MailAddress(eNuestroCorreo)
  51.             'Destinatarios del correo
  52.            mail.To.Add(eTo)
  53.             'Asunto del correo
  54.            mail.Subject = "Prueba Asunto"
  55.             'Texto del Mensaje
  56.            mail.Body = eMensaje1 + eMensaje2 + ePie
  57.             'Texto en HTML del Mensaje
  58.            mail.IsBodyHtml = True
  59.             'Le decimos que queremos enviar el archivo que anteriormente indicamos
  60.            mail.Attachments.Add(attachment)
  61.  
  62.             'Le decimos que envíe el correo
  63.            SmtpServer.Send(mail)
  64.            
  65.  
  66.         Catch ex As Exception
  67.             'Informamos si existiera algún error
  68.            Throw New Exception(ex.ToString)
  69.  
  70.         End Try
  71.     End Sub

Igual esto lo puedes configurar en un método y pasar los parámetros que estás recuperando...

Saludos...

Si no te dejan configurar Outlook en el servidor, no creo que te pueda funcionar usando los objetos que tienes, prueba así como te indicó y me cuentas si tienes alguna duda
  #13 (permalink)  
Antiguo 17/01/2013, 06:13
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Mandar email con un boton

Cita:
Iniciado por jhonjairo00 Ver Mensaje
Hola maialenlopez

Mira la SmtpClient() es una clase de .net que sirve para el envío de correos electrónicos de una forma "genérica" por llamarlo de alguna manera, aquí te dejo un link que te explica mejor que yo:

http://msdn.microsoft.com/en-us/libr...mtpclient.aspx

Con esta clase es mucho más sencillo el envío de correo electrónico desde tu aplicación ya que la configuración se hace en tiempo de ejecución y no usa extenciones de aplicaciones externas como outlook.

Ahora, en el código que pusiste tienes varias cosas que corregir:

1.
Código vb:
Ver original
  1. '* Creamos un Objeto tipo
  2. Dim objMail As Outlook.MailItem
  3.  
  4. '* Enviamos nuestro Mail y listo!
  5. smtp.Send(objMail)

si objMail es de tipo Outlook.MailItem no lo vas a poder enviar usando smtp.Send, porque el parámetro del método Send es un objeto de tipo MailMessage, es decir son objetos diferentes y te va a generar una excepción

Código vb:
Ver original
  1. 'Host=nombre del servidor de correo por el que queremos enviar el mensaje
  2.            Dim smtp As New System.Net.Mail.SmtpClient
  3.             smtp.Host = "192.168.1.131"

El Host es por ejemplo smtp.gmail.com para gmail, smtp.live.com para hotmail o smtp.mail.yahoo.com para yahoo

usa el ejemplo que te puse y que aquí te cito para que te funcione:




Si no te dejan configurar Outlook en el servidor, no creo que te pueda funcionar usando los objetos que tienes, prueba así como te indicó y me cuentas si tienes alguna duda
Hola,
He echo lo que me indicas pero sigue sin funcionarme. Te pongo el código para que veas como lo he echo.
Código vb.net:
Ver original
  1. Private Sub enviarEmail(ByVal email As String)
  2.  
  3.         Dim SmtpServer As New SmtpClient() 'Instancia de Servidor SMTP, proporcionada por System.Net.Mail
  4.  
  5.         Dim correo As New MailMessage() 'Instancia de mensaje de correo, proporcionada por System.Net.Mail
  6.  
  7.         Dim a, b, c, d, f, g, h As String
  8.  
  9.         'Dim attachment As New Net.Mail.Attachment("C:\Prueba.DOC") 'Adjuntar archivo
  10.  
  11.         Dim eTo, eNuestroCorreo As String
  12.  
  13.         'Comenzamos el envio del correo
  14.         'controlando si existiera algún error al envío
  15.         Try
  16.  
  17.             'Nuestro usuario de Correo electrónico, Ejemplo actual Hotmail, puede ser Gmail, Yahoo, etc...
  18.             eNuestroCorreo = CType(Session("email"), String)
  19.  
  20.             ''Nuestro contraseña de Correo electrónico
  21.             'eNuestraContraseña = "Nuestra Contraseña"
  22.  
  23.             'El Mensaje del correo
  24.             Dim values As String = ""
  25.             For i As Integer = 0 To CheckBoxRechazo.Items.Count - 1
  26.                 If CheckBoxRechazo.Items(i).Selected Then
  27.                     If CheckBoxRechazo.Items(i).Value = 1 Then
  28.                         a = uno
  29.                     End If
  30.                     If CheckBoxRechazo.Items(i).Value = 2 Then
  31.                         b = dos
  32.                     End If
  33.                     If CheckBoxRechazo.Items(i).Value = 3 Then
  34.                         c = tres
  35.                     End If
  36.                     If CheckBoxRechazo.Items(i).Value = 4 Then
  37.                         d = cuatro
  38.                     End If
  39.                     If CheckBoxRechazo.Items(i).Value = 5 Then
  40.                         f = cinco
  41.                     End If
  42.                     If CheckBoxRechazo.Items(i).Value = 6 Then
  43.                         g = seis
  44.                     End If
  45.                 End If
  46.             Next
  47.  
  48.             h = TextObservacionesLG.Text
  49.  
  50.             'Destinatario del Mensaje
  51.             'eTo = email
  52.             eTo = "[email protected]"
  53.  
  54.             ' Configuración para enviar el correo desde Gmail, si es por Hotmail es 25
  55.             '(que es el que viene por default), si usa Gmail quitar comentario
  56.             ' SmtpServer.Port = 587
  57.             ' Nombre del SMPTServer
  58.             SmtpServer.Host = "192.168.1.131"
  59.             'Habilitación de conexión segura
  60.             SmtpServer.EnableSsl = True
  61.  
  62.             ' Empezamos a configurar el correo a enviar
  63.             ' con los datos anteriores que pusimos
  64.  
  65.             'Le decimos que mail es un nuevo correo
  66.             correo = New MailMessage()
  67.             'Origen del correo
  68.             correo.From = New MailAddress(eNuestroCorreo)
  69.             'Destinatarios del correo
  70.             correo.To.Add(eTo)
  71.             'Asunto del correo
  72.             correo.Subject = "Hoja de gastos rechazada"
  73.             'cuerpo del mensaje
  74.             correo.Body = a + Chr(13) + b + Chr(13) + c + Chr(13) + d + Chr(13) + f + Chr(13) + g + Chr(13) + h
  75.             ''Texto en HTML del Mensaje
  76.             'correo.IsBodyHtml = True
  77.             ''Le decimos que queremos enviar el archivo que anteriormente indicamos
  78.             'mail.Attachments.Add(attachment)
  79.  
  80.             'Le decimos que envíe el correo
  81.             SmtpServer.Send(correo)
  82.  
  83.  
  84.         Catch ex As Exception
  85.             'Informamos si existiera algún error
  86.             Throw New Exception(ex.ToString)
  87.  
  88.         End Try
  89.     End Sub

Gracias
__________________
Gracias por todo;

Un saludo
  #14 (permalink)  
Antiguo 21/01/2013, 09:16
Avatar de jhonjairo00  
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá D.C.
Mensajes: 31
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Mandar email con un boton

Hola maialenlopez,

Mira en el código que pusiste veo el problema

No le estás enviando las credenciales al sevidor de SMPT por ende éste no va a iniciar sesión y NO va a hacer el envío, entonces

Para que el Servidor de SMPT ya sea gmail, hotmail, yahoo etc inicie sesió le debes enviar los parámetros:

Código vb:
Ver original
  1. ' Configuración para enviar el correo desde Gmail, si es por Hotmail es 25
  2.            '(que es el que viene por default), si usa Gmail quitar comentario
  3.            ' SmtpServer.Port = 587
  4.            ' Nombre del SMPTServer
  5.            ' Si es gmail smtp.gmail.com
  6.            ' Si es yahoo  smtp.mail.yahoo.com
  7.            ' Si es hotmail smtp.live.com
  8.            SmtpServer.Host = "smtp.live.com"
  9.             'Habilitación de conexión segura
  10.            SmtpServer.EnableSsl = True
  11.             'Credenciales para abrirla sesión y poder enviar el mail
  12.            SmtpServer.Credentials = New Net.NetworkCredential _
  13.             (eNuestroCorreo, eNuestraContraseña)

Ahora, veo que usas en el parámetro smtp.host tienes el valor de la IP "192.168.1.131", que seguramente es el Proxy por el cual está saliendo el mail, pero éste parámetro no funciona así, a menos claro que la IP sea del servidor de correos de la compañía, es decir si la compañía tiene un servidor de correo electrónico propio y administrado únicamente por ellos y aún así ellos deben tener configurados los protocolos "SMTP" y "POP" para lo que deberás averiguar cuales son y agregar en el parámetro SMTP.host el nombre del host que administra este protocolo y además si es que maneja puerto diferente al 25 proporcionárselo desde la propiedad SMTP.Port ...

Espero que te sirva...

Saludos.

Etiquetas: vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:38.