FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Enviar email con C#
Hola:
Me da error al enviar mensaje por emmail desde C#. El código por ahora es este. Código:
using System; using System.Windows.Forms; using System.Net; // No olvidar. using System.Net.Mail; // No olvidar. namespace Enviar_e_mail_01_cs { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button_Enviar_Click(object sender, EventArgs e) { //La cadena "servidor" es el servidor de correo que enviará tu mensaje string servidor = comboBox_smtp.SelectedItem.ToString(); // smtp.gmail.com // Crea el mensaje estableciendo quién lo manda y quién lo recibe MailMessage mensaje = new MailMessage( textBox_Emisor.Text, textBox_Receptor.Text, textBox_Asunto.Text, richTextBox_Mensaje.Text); //Envía el mensaje. SmtpClient cliente = new SmtpClient(servidor); cliente.DeliveryMethod = SmtpDeliveryMethod.Network; cliente.UseDefaultCredentials = false; cliente.Credentials = new System.Net.NetworkCredential(textBox_Emisor.Text, textBox_Contraseña.Text); cliente.Port = Int32.Parse(comboBox_Puerto.Text); ; // 587 //cliente.Port = 25; cliente.Host = servidor; // smtp.gmail.com cliente.EnableSsl = true; //Añade credenciales si el servidor lo requiere. cliente.Credentials = CredentialCache.DefaultNetworkCredentials; cliente.Send(mensaje); } } } Me llegó un mensaje al gmail de seguridad por usar formulario C#. Cita:
Cita:
Hace años no pasaba estas cosas. Saludos
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#2
|
||||
|
||||
Parte del mensaje de Google es para meterte miedo y que uses sus programas y no los de la competencia, así que puedes ignorar la mayor parte del mismo.
Para poder acceder a un buzón de Gmail tienes que cambiar la configuración de dicho correo. Para ello, accede a la cuenta, dale a la "Configuración" en el engranaje (rueda dentada arriba a la derecha), después en "Reenvío y correo POP/IMAP" y dale una vuelta, en especial léete los documentos enlazados por "Configura el cliente de correo electrónico". Volverá a intentar meterte miedo, pero ignóralo. Si lo configuras correctamente no tiene por qué ser inseguro*. Configura el protocolo adecuado, normalmente no es necesario que configures ambos. Una vez lo hayas hecho, vuelve a intentar conectarte con tu programa. _________________________ * Fíjate que dice "Si una aplicación o un dispositivo no cumple con nuestros estándares de seguridad", el principal de los cuales es "no estas usando el programa que queremos nosotros". Los estándares ISO para el correo electrónico ya son suficentemente seguros (si están bien implementados) y no necesitan más. Última edición por Ñuño Martínez fecha: 12-01-2019 a las 11:44:43. |
#3
|
|||
|
|||
Hola:
He llegado hasta aquí. Me sigue apareciendo el mensaje de seguridad. Coom indica abajo, parece faltar algo. En el código está esto: Cita:
Saludos.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#4
|
|||
|
|||
Si no te llegara a entender, choco con la pared. Es importante el enlace.
https://myaccount.google.com/lesssecureapps Ahora si funciona con Windows Form. Código:
using System; using System.Windows.Forms; using System.Net; // No olvidar. using System.Net.Mail; // No olvidar. namespace Enviar_e_mail_01_cs { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button_Enviar_Click(object sender, EventArgs e) { // La cadena "servidor" es el servidor de correo que enviará tu mensaje. string servidor = comboBox_smtp.SelectedItem.ToString(); // smtp.gmail.com // Crea el mensaje estableciendo quién lo manda y quién lo recibe. MailMessage mensaje = new MailMessage( textBox_Emisor.Text, textBox_Receptor.Text, textBox_Asunto.Text, richTextBox_Mensaje.Text); // Envía el mensaje. SmtpClient cliente = new SmtpClient(servidor); cliente.DeliveryMethod = SmtpDeliveryMethod.Network; cliente.UseDefaultCredentials = false; cliente.EnableSsl = true; cliente.Credentials = new NetworkCredential(textBox_Emisor.Text, textBox_Contraseña.Text); // usuario@gmail.com, Contraseña. cliente.Port = Int32.Parse(comboBox_Puerto.Text); ; // 587 cliente.Host = servidor; // smtp.gmail.com // Añade credenciales si el servidor lo requiere. //cliente.Credentials = CredentialCache.DefaultNetworkCredentials; cliente.Send(mensaje); } } } Por fin funciona. Muchas gracias a todos. Edito: Me dio por curiosidad probarlo en modo consola y no funciona, el mismo problema y no se parece nada de los credenciales. Algo no lo veo. Código:
using System; using System.Net.Mail; using System.Text; using System.Net; namespace Enviar_e_mail_Consola_03_cs { class Program { static void Main(string[] args) { string usuario, contraseña, destinatario, asunto, mensaje; // Título de la ventana. Console.Title = "Enviar e-mail con Consola C#"; // Tamaño ventana consola. Console.WindowWidth = 100; // X. Ancho. Console.WindowHeight = 40; // Y. Alto. Console.WriteLine("\t\t----------------------------------------"); Console.WriteLine("\t\t\tEnviar Correo Electrónico"); Console.WriteLine("\t\t----------------------------------------"); Console.WriteLine("\n"); Console.Write("\t\tIngresa tu correo electrónico: "); usuario = Console.ReadLine(); Console.Write("\t\tIngresa tu password: "); contraseña = leerPassword(); Console.Write("\t\tDestinatario: "); destinatario = Console.ReadLine(); Console.Write("\t\tAsunto: "); asunto = Console.ReadLine(); Console.Write("\t\tMensaje: "); mensaje = Console.ReadLine(); MailMessage correo = new MailMessage(usuario, destinatario, asunto, mensaje); SmtpClient servidor = new SmtpClient("smtp.gmail.com"); servidor.Port = 587; NetworkCredential credenciales = new NetworkCredential(usuario, contraseña); servidor.Credentials = credenciales; servidor.EnableSsl = true; try { Console.WriteLine("Enviando..."); servidor.Send(correo); Console.WriteLine("\t\tCorreo enviado de manera exitosa."); correo.Dispose(); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("\t\tNo se ha enviado nada."); Console.ReadKey(); } } // A la hora de introducir la contraseña, se sustituye por asterístos (*) en pantalla. public static string leerPassword() { ConsoleKeyInfo cki; StringBuilder sb = new StringBuilder(); do { cki = Console.ReadKey(true); if (cki.Key != ConsoleKey.Enter) { sb.Append(cki.Key); Console.Write("*"); } else break; } while (true); Console.WriteLine(); return sb.ToString(); } } } Saludos.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#5
|
||||
|
||||
¿Usas el mismo archivo fuente en ambos casos?
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Enviar web por email | fherwashere | Internet | 3 | 13-04-2011 04:03:02 |
Enviar email | mrh_peru | OOP | 1 | 17-08-2010 01:55:48 |
Enviar email | SMTZ | PHP | 1 | 01-07-2008 15:25:38 |
enviar email con bcc | raulmm26 | Internet | 1 | 03-11-2005 10:38:55 |
Enviar Email | satabel | Internet | 1 | 02-08-2005 01:12:56 |
|