¿Por qué solo puedo escribir 255 caracteres como máximo?

Iniciado por Meta, 12 Junio 2019, 07:00 AM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Buenas:

Con este programa que es enviar email, en el mensaje solo puedo escribir hasta 255 letras o caracteres, lo mismo para el asunto.

¿Cuál es el motivo de la causa?

Su código es este.

Código (csharp) [Seleccionar]
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();
        }
    }
}


Salu2. camaradas.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

@XSStringManolo

Console.ReadLine() solo pilla 256 caracteres.
   
Código (csharp) [Seleccionar]
byte[] bytes = new byte[2000]; //Nuevo tamanho maximo.
Stream inputStream = Console.OpenStandardInput(bytes.Length);
Console.SetIn(new StreamReader(inputStream));
Console.WriteLine("\t\tMensaje: ");
mensaje = Console.ReadLine();

Meta

Cita de: string Manolo en 12 Junio 2019, 14:58 PM
Console.ReadLine() solo pilla 256 caracteres.
   
Código (csharp) [Seleccionar]
byte[] bytes = new byte[2000]; //Nuevo tamanho maximo.
Stream inputStream = Console.OpenStandardInput(bytes.Length);
Console.SetIn(new StreamReader(inputStream));
Console.WriteLine("\t\tMensaje: ");
mensaje = Console.ReadLine();


Funciona de maravilla, muchas gracias mi muy distinguido amigo. ;)
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/