FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Entrada de correo
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:
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. Console.Title = "Gestor correo electrónico"; // 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 inputStream = Console.OpenStandardInput(); byte[] buffer = new byte[MAXIMA_LONGITUD]; int numerosBytesLeidos = inputStream.Read(buffer, 0, MAXIMA_LONGITUD); char[] chars = Console.InputEncoding.GetChars(buffer, 0, numerosBytesLeidos); mensaje = new string(chars); // ######################################################################### #endregion Console.WriteLine(); Console.ForegroundColor = ConsoleColor.DarkCyan; Console.Write("\t\tCantidad de texto introducido: "); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(mensaje.Length); MailMessage correo = new MailMessage(usuario, destinatario, asunto, mensaje) { // Enviar textos con tildes. BodyEncoding = Encoding.UTF8 }; SmtpClient servidor = new SmtpClient("smtp.gmail.com") { Port = 587 }; NetworkCredential credenciales = new NetworkCredential(usuario, contraseña); 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\tCorreo 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; StringBuilder sb = new StringBuilder(); 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(); } } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Entrada RA0, salida RB0 | REHome | ASM y Microcontroladores | 2 | 02-03-2008 18:21:48 |
ENVIAR CORREO mi cuenta de correo es GMAIL | ASAPLTDA | PHP | 1 | 16-11-2006 00:54:03 |
Problemas al Enviar Correo con Ciertas Dir. de Correo | AGAG4 | Internet | 2 | 01-02-2006 20:37:42 |
Dll y puntos de entrada | chete | Varios | 1 | 11-01-2006 13:20:28 |
|