using System;
using System.Net.Mail;
using System.Text;
using System.Net;
namespace Enviar_e_mail_Consola_04_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 = 80; // X. Ancho.
Console.WindowHeight = 40; // Y. Alto.
// Tamaño del cursor. Del 1 al 100.
Console.CursorSize = 50;
// 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.Write("\t\tIngresar tu correo electrónico: ");
usuario = Console.ReadLine();
Console.Write("\t\tIntroducir contraseña: ");
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") {
Port = 587
};
NetworkCredential credenciales
= new NetworkCredential
(usuario, contraseña
); servidor.Credentials = credenciales;
servidor.EnableSsl = true;
Console.WriteLine("\t\tEnviando correo...");
servidor.Send(correo);
Console.WriteLine("\t\tCorreo enviado satisfactoriamente.");
correo.Dispose();
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("\t\t" + ex.Message);
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 < 4)
{
Console.Write("*");
}
contador++;
}
else
{
break;
}
} while (true);
Console.WriteLine();
return sb.ToString();
}
}
}