Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Que aparezca el mensaje en pantalla (https://www.clubdelphi.com/foros/showthread.php?t=93992)

REHome 11-06-2019 21:52:02

Que aparezca el mensaje en pantalla
 
Buenas:

En la consola C# me aparece el asunto a la hora de leer el último email del, pero no aparece el mensaje. Quiero que me aparezca en pantalla tanto el asunto y el mensaje.

No se su código del pop3 para leer mensajes, si me envian un mensaje nuevo y luego ejecuto el programa, me apecere así sin mensaje porque no se como programarlo.


Ver zoom.

Código C#:
Código:

using System;
using System.Collections.Generic;
using OpenPop.Pop3;

namespace Recibir_email_Consola_01
{
    class Program
    {
        static void Main(string[] args)
        {
            // Título de la ventana.
            Console.Title = "Recibir e-mail con Consola C#";

            // Tamaño ventana consola.
            Console.WindowWidth = 80; // X. Ancho.
            Console.WindowHeight = 40; // Y. Alto.

            // Cursor invisible.
            Console.CursorVisible = false;

            // Título del programa.
            Console.WriteLine("\t\t----------------------------------------");
            Console.WriteLine("\t\t\tRecibir Correo Electrónico");
            Console.WriteLine("\t\t----------------------------------------");

            try
            {
                ConnectPop3 oC = new ConnectPop3();

                List<OpenPop.Mime.Message> lstMessages = oC.GetMessages();


                if (lstMessages != null)
                {

                    foreach (var oMessage in lstMessages)
                    {
                        Console.WriteLine("ASUNTO:  " + oMessage.Headers.Subject + "\n"); // Asunto.
                                                //Console.WriteLine();
                        Console.WriteLine("MENSAJE: "); // Aquí se pone código del mensaje que no se cual es.
                    }
                }
                Console.ForegroundColor = ConsoleColor.Yellow; // Letras amarillas.
                Console.WriteLine();
                Console.WriteLine("FIN DEL PROGRAMA.");
                Console.ReadKey(); // Pulse cualquier tecla para salir.
            }

            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    }

    public class ConnectPop3
    {
        public string email = "celltium@gmail.com";
        public string contraseña = "g0923490xgh0945g450Xj4025g"; // Ficticio.
        public int puerto = 995;
        public bool usarSLL = true;
        public string Hostame = "pop.gmail.com";

        public List<OpenPop.Mime.Message> GetMessages()
        {
            using (Pop3Client oClient = new Pop3Client())
            {
                oClient.Connect(Hostame, puerto, usarSLL);
                oClient.Authenticate(email, contraseña);

                int messageCount = oClient.GetMessageCount();
                List<OpenPop.Mime.Message> lstMessages = new List<OpenPop.Mime.Message>(messageCount);

                for (int i = messageCount; i > 0; i--)
                {
                    lstMessages.Add(oClient.GetMessage(i));
                }

                return lstMessages;
            }
        }
    }
}

Lo que si le logrado es poner email, fecha y algunos más datos, precisamente el que más quiero que es el mensaje no se como hacerlo o como buscarlo.

¿Alguna idea?

Saludos.

Casimiro Notevi 11-06-2019 22:47:46

Creo recordar que el mensaje estrá en ConnectPop3->Body->Text

tsk 12-06-2019 06:24:48

Esto es considerando que no es multiparte el mensaje y que todo es o HTML o Texto plano

Código PHP:

OpenPop.Mime.MessagePart plainText oMessage.FindFirstPlainTextVersion();
OpenPop.Mime.MessagePart html oMessage.FindFirstHtmlVersion();
Console.WriteLine("MENSAJE: "); // Aquí se pone código del mensaje que no se cual es.
Console.WriteLine("Plain Text: "+plainText.GetBodyAsText());
Console.WriteLine("Html: "html.GetBodyAsText()); 



Aquí está la documentación

http://hpop.sourceforge.net/documentation/index.html

REHome 16-06-2019 19:38:32

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 10:45:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi