elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ya no puedo enviar e-mail con C#.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ya no puedo enviar e-mail con C#.  (Leído 2,801 veces)
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Ya no puedo enviar e-mail con C#.
« en: 8 Junio 2022, 07:20 am »

Hola:

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
  1. using System;
  2. using System.IO;
  3. using System.Net;
  4. using System.Net.Mail;
  5. using System.Text;
  6.  
  7. namespace Enviar_email_Consola_07
  8. {
  9.    internal class Program
  10.    {
  11.        static void Main(string[] args)
  12.        {
  13.  
  14.  
  15.            // Variables.
  16.            string usuario, contraseña, destinatario, asunto, mensaje;
  17.            const int MAXIMA_LONGITUD = 40000;
  18.  
  19.            #region Configuración ventana.
  20.            // Título de la ventana y versión del .Net usando.
  21.            Console.Title = "Gestor correo electrónico GMail. "
  22.                + typeof(string).Assembly.ImageRuntimeVersion;
  23.  
  24.            // Tamaño de la ventana, x, y, o ancho y alto.
  25.            const byte ancho = 80;
  26.            const byte alto = 25;
  27.            Console.SetWindowSize(ancho, alto);
  28.  
  29.            // Color de fondo.
  30.            Console.BackgroundColor = ConsoleColor.Black;
  31.  
  32.            // Color de las letras.
  33.            Console.ForegroundColor = ConsoleColor.Gray;
  34.  
  35.            // Limpiar pantalla y dejarlo todo en color de fondo.
  36.            Console.Clear();
  37.  
  38.            // Visible el cursor.
  39.            Console.CursorVisible = true;
  40.            #endregion
  41.  
  42.            // Título del programa.
  43.            Console.WriteLine("\t\t----------------------------------------");
  44.            Console.WriteLine("\t\t\tEnviar Correo Electrónico");
  45.            Console.WriteLine("\t\t----------------------------------------");
  46.  
  47.            try
  48.            {
  49.  
  50.                Console.WriteLine("\n");
  51.                Console.ForegroundColor = ConsoleColor.Cyan;
  52.                Console.Write("\t\tTu correo electrónico: ");
  53.                Console.ForegroundColor = ConsoleColor.Gray;
  54.                usuario = Console.ReadLine();
  55.                Console.WriteLine();
  56.                Console.ForegroundColor = ConsoleColor.Cyan;
  57.                Console.Write("\t\tIntroducir contraseña: ");
  58.                Console.ForegroundColor = ConsoleColor.Gray;
  59.                contraseña = LeerPassword();
  60.                Console.WriteLine();
  61.                Console.ForegroundColor = ConsoleColor.Cyan;
  62.                Console.Write("\t\tDestinatario: ");
  63.                Console.ForegroundColor = ConsoleColor.Gray;
  64.                destinatario = Console.ReadLine();
  65.                Console.WriteLine();
  66.                Console.ForegroundColor = ConsoleColor.Cyan;
  67.                Console.Write("\t\tAsunto: ");
  68.                Console.ForegroundColor = ConsoleColor.Gray;
  69.                asunto = Console.ReadLine();
  70.                Console.WriteLine();
  71.                Console.ForegroundColor = ConsoleColor.Cyan;
  72.                Console.Write("\t\tMensaje: ");
  73.                Console.ForegroundColor = ConsoleColor.Gray;
  74.                //mensaje = Console.ReadLine();
  75.  
  76.                #region Enviar más de 255 caracteres.
  77.                // #########################################################################
  78.                Stream entradaDeDatos = Console.OpenStandardInput();
  79.                byte[] buffer = new byte[MAXIMA_LONGITUD];
  80.                int numerosBytesLeidos = entradaDeDatos.Read(buffer, 0, MAXIMA_LONGITUD);
  81.                char[] chars = Console.InputEncoding.GetChars(buffer, 0, numerosBytesLeidos);
  82.                mensaje = new string(chars);
  83.                // #########################################################################
  84.                #endregion
  85.  
  86.                Console.WriteLine();
  87.                Console.ForegroundColor = ConsoleColor.DarkCyan;
  88.                Console.Write("\t\tCantidad de texto introducido: ");
  89.                Console.ForegroundColor = ConsoleColor.Gray;
  90.                Console.WriteLine(mensaje.Length);
  91.  
  92.                MailMessage correo = new MailMessage(usuario, destinatario, asunto, mensaje)
  93.                {
  94.                    // Enviar textos con tildes.
  95.                    BodyEncoding = Encoding.UTF8
  96.                };
  97.  
  98.                SmtpClient servidor = new SmtpClient("smtp.gmail.com")
  99.                {
  100.                    Port = 587
  101.                };
  102.                NetworkCredential credenciales = new NetworkCredential(usuario, contraseña);
  103.                servidor.Credentials = credenciales;
  104.                servidor.EnableSsl = true;
  105.  
  106.                Console.WriteLine();
  107.                Console.ForegroundColor = ConsoleColor.Yellow;
  108.                Console.WriteLine("\t\tEnviando correo...");
  109.                servidor.Send(correo);
  110.                Console.WriteLine();
  111.                Console.ForegroundColor = ConsoleColor.Green;
  112.                Console.WriteLine("\t\t¡Correo enviado satisfactoriamente!");
  113.                correo.Dispose();
  114.                Console.CursorVisible = false;
  115.                Console.ReadKey();
  116.            }
  117.            catch (Exception ex)
  118.            {
  119.                Console.ForegroundColor = ConsoleColor.Red;
  120.                Console.WriteLine("ERROR: \n");
  121.                Console.WriteLine("\t\t" + ex.Message);
  122.                Console.WriteLine();
  123.                Console.ForegroundColor = ConsoleColor.Yellow;
  124.                Console.WriteLine("\t\tNo se ha enviado el correo.");
  125.                Console.ReadKey();
  126.            }
  127.  
  128.        }
  129.  
  130.        // A la hora de introducir la contraseña, se sustituye por asterístos (*) en pantalla.
  131.        public static string LeerPassword()
  132.        {
  133.            ConsoleKeyInfo cki;
  134.            StringBuilder sb = new StringBuilder();
  135.            int contador = 0;
  136.  
  137.            do
  138.            {
  139.                cki = Console.ReadKey(true);
  140.                if (cki.Key != ConsoleKey.Enter)
  141.                {
  142.  
  143.                    sb.Append(cki.KeyChar);
  144.                    if (contador < 1)
  145.                    {
  146.                        Console.Write("*");
  147.                    }
  148.                    contador++;
  149.                }
  150.  
  151.                else
  152.                {
  153.                    break;
  154.                }
  155.  
  156.            } while (true);
  157.            Console.WriteLine();
  158.            return sb.ToString();
  159.        }
  160.    }
  161. }

Saludos.


En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.637


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Ya no puedo enviar e-mail con C#.
« Respuesta #1 en: 8 Junio 2022, 11:18 am »

A mi muchas veces me cambia (cada x tiempo, meses) la configuración de "Acceso de aplicaciones menos seguras" de una cuenta de gmail y tengo que volver a cambiarlo manualmente, en algunas cuentas, por ejemplo en una impresora canon láser (que permite mandar por e-mail lo que escaneas).

En principio debería seguir funcionando, usando el smtp.gmail.com puerto 587

¿muestra algún error?



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Enviar mail vba
Programación Visual Basic
Ch3ck 4 4,817 Último mensaje 3 Junio 2005, 00:56 am
por Ch3ck
No puedo enviar mail con c#
.NET (C#, VB.NET, ASP)
nico56 7 5,913 Último mensaje 22 Enero 2010, 05:00 am
por nico56
mail(), error raro al intentar enviar mail !
PHP
Diabliyo 4 4,891 Último mensaje 25 Enero 2010, 06:04 am
por Diabliyo
Como puedo enviar un e-mail?
Scripting
Srare 1 2,322 Último mensaje 1 Mayo 2014, 02:47 am
por engel lex
Enviar mail sin formato mime (plain text)
.NET (C#, VB.NET, ASP)
dep_serg 1 2,542 Último mensaje 6 Febrero 2015, 07:10 am
por __Alvaro 2015__
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines