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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ¿Cómo recibir email filtrado?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo recibir email filtrado?  (Leído 2,242 veces)
Meta


Desconectado Desconectado

Mensajes: 3.499



Ver Perfil WWW
¿Cómo recibir email filtrado?
« en: 9 Enero 2022, 13:01 pm »

Buenas:

En modo consola puedo enviar correo electrónico, cuyo código fuente lo dejo abajo para que lo vean. Solo puede enviar mensajes o e-mail, funciona muy bien.

Ahora quiero hacer otro programa, que solo lee email también en modo consola y  los e-mail que tanga filtrado, si tengo tres e-mail filtrados, pues solo acepta esos e-mail en pantalla. Todo esto, lee un mensaje por cada 5 minutos. Mensaje, Asunto y la dirección del e-mail.

¿Cómo se hace?

Aquí abajo dejo el codigo de enviar e-mail por consola que funciona al 100 %, con tildes, ñ y otros símbolos correctamente a parte de enviar más de 255 caracteres.

Para que funcione y se usa gmail.

// Activar / desactivar Acceso de aplicaciones poco seguras en Google.
https://myaccount.google.com/lesssecureapps

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

Feliz año 2.022. ;)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre como resolver equivocacion con filtrado mac
Hacking Wireless
cornistavenezuela 4 4,186 Último mensaje 8 Septiembre 2010, 10:41 am
por zydas
como recibir hiddenfield en asp.net
.NET (C#, VB.NET, ASP)
almita 3 5,321 Último mensaje 7 Diciembre 2010, 20:46 pm
por [D4N93R]
Wifi WPA sin DHCP y Filtrado MAC - ¿Como detectar intrusos? « 1 2 »
Hacking Wireless
pacco 13 13,115 Último mensaje 23 Agosto 2012, 18:38 pm
por flacc
Filtrado MAC, qué es y cómo debes utilizarlo
Noticias
wolfbcn 0 1,639 Último mensaje 26 Noviembre 2017, 13:56 pm
por wolfbcn
Recibir email y enviar al puerto serie
.NET (C#, VB.NET, ASP)
Meta 1 3,337 Último mensaje 10 Febrero 2023, 18:14 pm
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines