2011-11-02 12 views
5

Soy un novato ASP y estoy solucionando un problema de forma de trabajo. Ninguno de nosotros aquí es experto en ASP ya que usamos PHP. Pero también estoy en la parte inferior de la experiencia de PHP, trabajando principalmente con HTML/CSS solo. Mis formas actuales credenciales parecen:Cómo usar el SMTP de Gmail en el formulario ASP.NET

rotected Sub SubmitForm_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
     If Not Page.IsValid Then Exit Sub 

     Dim SendResultsTo As String = "email to" 
     Dim smtpMailServer As String = "email server" 
     Dim smtpUsername As String = "email username" 
     Dim smtpPassword As String = "password" 
     Dim MailSubject As String = "Form Results" 

¿Cómo puedo llevarlos a cabo esta forma enviar a una dirección de Gmail? Sé que debo incluir el puerto (587) en alguna parte, pero no puedo entender dónde, ya que este formulario no coincide con la sintaxis de ninguna otra forma que haya visto. ¡Cualquier ayuda sería muy apreciada!

Respuesta

12
protected void SendMail() 
     { 
      MailMessage msg = new MailMessage(); 
      System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); 
      try 
      { 
       msg.Subject = "Add Subject"; 
       msg.Body = "Add Email Body Part"; 
       msg.From = new MailAddress("Valid Email Address"); 
       msg.To.Add("Valid Email Address"); 
       msg.IsBodyHtml = true; 
       client.Host = "smtp.gmail.com"; 
       System.Net.NetworkCredential basicauthenticationinfo = new System.Net.NetworkCredential("Valid Email Address", "Password"); 
       client.Port = int.Parse("587"); 
       client.EnableSsl = true; 
       client.UseDefaultCredentials = false; 
       client.Credentials = basicauthenticationinfo; 
       client.DeliveryMethod = SmtpDeliveryMethod.Network; 
       client.Send(msg); 
      } 
      catch (Exception ex) 
      { 
       log.Error(ex.Message); 
      } 
     } 
+2

¡Gracias! Lo tengo resuelto! –

+0

Gmail/Google le impedirá enviar el correo electrónico. Puede cambiar la configuración desde la cuenta de gmail del remitente para permitir que las "aplicaciones menos seguras" accedan a ella. – Shiljo

1

Cree un objeto System.Net.Mail.SmtpClient, configure la información del servidor SMTP que está utilizando.

A continuación, crear una System.Smtl.MailMessage con los datos del mensaje y enviarlo:

using (System.Net.Mail.SmtpClient mail = new System.Net.Mail.SmtpClient()) { 
    using (System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("from*where.com", "[email protected]") { 
     IsBodyHtml = true, 
     Subject = "Subject text", 
     Body = messageBody, 
    }) { 
     mail.Send(message); 
} // using 

puede configurar su SmtpClient en el constructor, utilizamos web.comfig, así que no tengo ese código .

+0

no tengo idea de cómo hacer para hacer eso, jajaja. Ni siquiera debería estar trabajando en este proyecto, pero desafortunadamente soy el único disponible para hacerlo. –

+0

El archivo web.config en la respuesta anterior configura el objeto SmtpClient, por lo que puede enviar un mensaje sin cambiar mi código. – drdwilcox

+0

Aquí está mi sintaxis completa http://pastebin.com/85Ad9swq Me disculpo, pero ni siquiera sé por dónde empezar. No tengo una razón viable para aprender ASP.NET ...aparte de esta instancia -_- –

16

Puede agregar esto en su archivo web.config

<system.net> 
    <mailSettings> 
     <smtp from="[email protected] "> 
     <network host="smtp.gmail.com" defaultCredentials="false" 
     port="587" userName ="[email protected]" password="yourpassword" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
+0

¿Eliminaría la porción completa de mi código existente? 'Dim SendResultsTo As String = "e-mail a" Dim smtpMailServer As String = "servidor de correo electrónico" Dim smtpUsername As String = "e-mail nombre de usuario" Dim smtpPassword As String = "contraseña" Dim MailSubject As String = "resultados de formulario "' –

+0

no necesitará especificar el nombre de usuario y la red de nuevo en el código, en su código cree un objeto SmtpClient para enviar el mensaje –

+0

gracias por este útil consejo. buen trabajo. –

-1

Hay no shortage of tutorials sobre cómo enviar un correo electrónico desde dentro de .NET.

Esencialmente desea que un objeto System.Net.Mail.SmtpClient para interactuar con el servidor SMTP, un objeto System.Net.Mail.MailMessage para contener los datos de mensajes y datos de configuración en el archivo de configuración para dirigir al cliente sobre cómo/dónde enviar el mensaje.

0

Pruebe esto.

Dim client As New Net.Mail.SmtpClient 
client.UseDefaultCredentials = False 
client.Credentials = New System.Net.NetworkCredential("[email protected]", "password") 
client.Host = "smtp.gmail.com" 
client.Port = 587 
client.EnableSsl = True 
client.Send("[email protected]","[email protected]","subject","body") 
+0

Aparece un error de tiempo de ejecución. Si no Page.IsValid Then Exit Sub cliente Dim como nuevo Net.Mail.SmtpClient client.UseDefaultCredentials = False client.Credentials = Net System.Net.NetworkCredential ("[email protected]", "pajax6767 ") client.Host = "smtp.gmail.com" client.Port = 587 client.EnableSsl = True client.Send (" [email protected]", "[email protected]", "sujeto" , "cuerpo") Pruebe Dim txtQ Como TextBox = Me.FormContent.FindControl ("TextBoxQ") ' –

+1

por favor elimine esto. ¡tu contraseña es revelada! – naveen

+1

es una contraseña falsa –

0

Si utilizas la verificación en 2 pasos, no se olvide de generar una contraseña específica de la aplicación y el uso que, no la contraseña que utiliza para iniciar sesión en Gmail.

(Lo siento, no se puede añadir esto como un comentario. Insuficiente de representante en el momento de la publicación de esta.)

0

Google ahora bloquea los inicios de sesión desde una aplicación (incluso a través de SSL) para enviar un correo electrónico. Tiene dos opciones:

  1. Habilite las aplicaciones menos seguras para la cuenta que está utilizando; O
  2. Generar una aplicación en contraseña de Google (recomendado)

Para la opción 2, se tendrá que habilitar la autenticación de 2 factores antes de poder generar un pasword aplicación. Éstos son los pasos que tomó para conseguir este trabajo en mi aplicación web ASP.NET

How to configure an ASP.NET web app with Gmail SMTP

Cuestiones relacionadas