none
Enviar correo sin necesidad de proporcionar credenciales RRS feed

  • Pregunta

  • Buenos días comunidad tengo un formulario de contacto, el cual envia un correo proporcionando su usuario y contraseña del emisor.

    ¿Como puedo hacer para que se envie ese formulario proporcionando solamente su e-mail y no su contraseña?

    Dim mensaje As New System.Net.Mail.MailMessage
            'Direccion de correo a la cual enviaremos el mensaje
            mensaje.To.Add("mail@outlook.es")
            'Asunto
            mensaje.Subject = TextBox1.Text
            mensaje.SubjectEncoding = System.Text.Encoding.UTF8
            'Cuerpo del mensaje
            mensaje.Body = TextBox3.Text
            mensaje.BodyEncoding = System.Text.Encoding.UTF8
            mensaje.IsBodyHtml = False 'Si no queremos que se envíe como HTML
            'Correo desde el cual enviaremos el mensaje
            mensaje.From = New System.Net.Mail.MailAddress(TextBox2.Text)
            '-----CLIENTE DE CORREO-----'
            'creamos un objeto del cliente de correo
            Dim cliente As New System.Net.Mail.SmtpClient
            'se crean las credenciales del correo emisor
            cliente.Credentials = New System.Net.NetworkCredential("", "")
            'configuramos el puerto y la seguridad
            cliente.Port = 25
            cliente.EnableSsl = False
            cliente.Host = "smtp.live.com"
            cliente.Host = "smtp.gmail.com"
            '-----ENVIO DEL CORREO-----'
            Try
                cliente.Send(mensaje)
                Response.Write("<script>alert('Tu mensaje fue enviado satisfactoriamente')</script>")
            Catch ex As System.Net.Mail.SmtpException
                Response.Write("<script>alert('Error al enviar mensaje')</script>")
            End Try
    El codigo anterior es lo que ocupo para enviarlo, de antemano agradeceria mucho que me ayudaran con sus respuestas


    viernes, 29 de enero de 2016 14:25

Todas las respuestas

  • hola

    no necesitas la contraseña del emisor

    solo necesitas un usuario y password que pueda ser validado en el servidor de smtp que utilices

    aqui

    'se crean las credenciales del correo emisor
    cliente.Credentials = New System.Net.NetworkCredential("", "")

    deebs poner las credenciales fijas, pero alguien debe autenticarse eso es necesario

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 29 de enero de 2016 14:36
  • Lo que no me queda claro es de quien tiene que ser ese password y ese usuario , no me queda claro eso
    viernes, 29 de enero de 2016 14:42
  • >>no me queda claro es de quien tiene que ser ese password y ese usuario

    puede ser de cualquier persona que tenga una cuenta valida en el smtp

    por eso comente que puede poner una cuenta de usuario y password fija y envias desde ese mail que se autentique en el smtp

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 29 de enero de 2016 15:10
  • Pero es un formulario de contacto del cual distintos usuarios(distintos mails) envien correos a un formulario fijo
    viernes, 29 de enero de 2016 15:44
  • >>es un formulario de contacto del cual distintos usuarios(distintos mails) envien correos a un formulario fijo

    no veo cual es el problema

    una cosa es quien defines en el From del mailmessage y otra distinta es quien defines las credenciales del smtpclient

    puedes definir un mail en el from y una cuenta distinta en el smtp, quien envia es el smtp y no tiene porque ser la misma cuenta de quien defines en el from

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 29 de enero de 2016 15:53
  • El problema es que cuando llega el correo a la bandeja de entrada de distintos mail siempre me manda el nombre de la cuenta que estoy autentificando en las credenciales
    viernes, 29 de enero de 2016 16:21
  • >>El problema es que cuando llega el correo a la bandeja de entrada de distintos mail siempre me manda el nombre de la cuenta que estoy autentificando en las credenciales

    aunque este definiendo el From del mail message ?

    Si lo que se hace es poner el mail de quien genera el contacto como parte del Body como informacion


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 29 de enero de 2016 16:31
  • ASI ES , MIRA TENGO LO SIGUIENTE:

    mensaje.From = New System.Net.Mail.MailAddress(TextBox2.Text)

    viernes, 29 de enero de 2016 17:04
  • ok si asignas el From pero no lo muestras en el cliente que recibe el mail, vas a tener que definirlo como dato del Body

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 29 de enero de 2016 17:42
  • disculpa y eso como puedo hacerlo ?
    viernes, 29 de enero de 2016 18:29
  • >>disculpa y eso como puedo hacerlo ?

    asignas el mail como texto

    string body = string.Format("Mensaje: {0}  From: {1}", TextBox3.Text, TextBox2.Text);
    
    mensaje.Body = body 

    unes al mensaje la info del mail, aunque quedaria mejor si la envias con formato html

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 29 de enero de 2016 19:11
  • Podrían ayudarme ?. Tengo lo siguiente y me siguen saliendo los datos del correo que proporcione en las credenciales cuando checo en la bandeja de entrada mi correo, yo necesito que aparezcan los datos del correo que envia, serian tan amables de ayudarme 

    'Se crea un nuevo objeto del mensaje
            Dim mensaje As New System.Net.Mail.MailMessage
            'Direccion de correo a la cual enviaremos el mensaje
            mensaje.To.Add("guillermospindola@outlook.es")
            'Asunto
            mensaje.Subject = TextBox1.Text
            mensaje.SubjectEncoding = System.Text.Encoding.UTF8
            'Cuerpo del mensaje
            Dim body As String = String.Format("Mensaje: {0}  From: {1}", TextBox3.Text, TextBox2.Text)
            mensaje.Body = body
            mensaje.BodyEncoding = System.Text.Encoding.UTF8
            mensaje.IsBodyHtml = True 'Si no queremos que se envíe como HTML
            'Correo desde el cual enviaremos el mensaje
            mensaje.From = New System.Net.Mail.MailAddress(TextBox2.Text)
            '-----CLIENTE DE CORREO-----'
            'creamos un objeto del cliente de correo
            Dim cliente As New System.Net.Mail.SmtpClient
            'se crean las credenciales del correo emisor
            cliente.Credentials = New System.Net.NetworkCredential("guillermospindola@outlook.es", "spindola94")
            'configuramos el puerto y la seguridad
            cliente.Port = 25
            cliente.EnableSsl = True
            cliente.Host = "smtp.live.com"
    
            '-----ENVIO DEL CORREO-----'
            Try
                cliente.Send(mensaje)
                Response.Write("<script>alert('Tu mensaje fue enviado satisfactoriamente')</script>")
            Catch ex As System.Net.Mail.SmtpException
                Response.Write(String.Format("<script>alert('{0}')</script>", ex.Message))
            End Try

    martes, 2 de febrero de 2016 15:38