Antes para poder enviar e-mail desde la consola en C# podía hacerlo, antes había que activarlo por aquí en este enlace.
https://myaccount.google.com/lesssecureapps
¿Hay alguna otra forma de hacerlo o el cuento ya se acabó?
Código C#:
Código
using System; using System.IO; using System.Net; using System.Net.Mail; using System.Text; namespace Enviar_email_Consola_07 { internal class Program { static void Main(string[] args) { // Variables. string usuario, contraseña, destinatario, asunto, mensaje; const int MAXIMA_LONGITUD = 40000; #region Configuración ventana. // Título de la ventana y versión del .Net usando. Console.Title = "Gestor correo electrónico GMail. " // Tamaño de la ventana, x, y, o ancho y alto. const byte ancho = 80; const byte alto = 25; Console.SetWindowSize(ancho, alto); // Color de fondo. Console.BackgroundColor = ConsoleColor.Black; // Color de las letras. Console.ForegroundColor = ConsoleColor.Gray; // Limpiar pantalla y dejarlo todo en color de fondo. Console.Clear(); // Visible el cursor. Console.CursorVisible = true; #endregion // Título del programa. Console.WriteLine("\t\t----------------------------------------"); Console.WriteLine("\t\t\tEnviar Correo Electrónico"); Console.WriteLine("\t\t----------------------------------------"); try { Console.WriteLine("\n"); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\t\tTu correo electrónico: "); Console.ForegroundColor = ConsoleColor.Gray; usuario = Console.ReadLine(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\t\tIntroducir contraseña: "); Console.ForegroundColor = ConsoleColor.Gray; contraseña = LeerPassword(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\t\tDestinatario: "); Console.ForegroundColor = ConsoleColor.Gray; destinatario = Console.ReadLine(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\t\tAsunto: "); Console.ForegroundColor = ConsoleColor.Gray; asunto = Console.ReadLine(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\t\tMensaje: "); Console.ForegroundColor = ConsoleColor.Gray; //mensaje = Console.ReadLine(); #region Enviar más de 255 caracteres. // ######################################################################### Stream entradaDeDatos = Console.OpenStandardInput(); int numerosBytesLeidos = entradaDeDatos.Read(buffer, 0, MAXIMA_LONGITUD); char[] chars = Console.InputEncoding.GetChars(buffer, 0, numerosBytesLeidos); // ######################################################################### #endregion Console.WriteLine(); Console.ForegroundColor = ConsoleColor.DarkCyan; Console.Write("\t\tCantidad de texto introducido: "); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(mensaje.Length); { // Enviar textos con tildes. BodyEncoding = Encoding.UTF8 }; { Port = 587 }; servidor.Credentials = credenciales; servidor.EnableSsl = true; Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("\t\tEnviando correo..."); servidor.Send(correo); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("\t\t¡Correo enviado satisfactoriamente!"); correo.Dispose(); Console.CursorVisible = false; Console.ReadKey(); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("ERROR: \n"); Console.WriteLine("\t\t" + ex.Message); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("\t\tNo se ha enviado el correo."); Console.ReadKey(); } } // A la hora de introducir la contraseña, se sustituye por asterístos (*) en pantalla. public static string LeerPassword() { ConsoleKeyInfo cki; int contador = 0; do { cki = Console.ReadKey(true); if (cki.Key != ConsoleKey.Enter) { sb.Append(cki.KeyChar); if (contador < 1) { Console.Write("*"); } contador++; } else { break; } } while (true); Console.WriteLine(); return sb.ToString(); } } }
Saludos.