OpenPop.net получить фактический текст сообщения



Я использую OpenPop.net чтобы попытаться проанализировать наши ссылки из всех писем, которые находятся в данном почтовом ящике. Я нашел этот метод, чтобы получить все сообщение:



    public static List<OpenPop.Mime.Message> FetchAllMessages(string hostname, int port, bool useSsl, string username, string password)
{
// The client disconnects from the server when being disposed
using (Pop3Client client = new Pop3Client())
{
// Connect to the server
client.Connect(hostname, port, useSsl);

// Authenticate ourselves towards the server
client.Authenticate(username, password);

// Get the number of messages in the inbox
int messageCount = client.GetMessageCount();

// We want to download all messages
List<OpenPop.Mime.Message> allMessages = new List<OpenPop.Mime.Message>(messageCount);

// Messages are numbered in the interval: [1, messageCount]
// Ergo: message numbers are 1-based.
// Most servers give the latest message the highest number
for (int i = messageCount; i > 0; i--)
{
allMessages.Add(client.GetMessage(i));
}

client.Disconnect();

// Now return the fetched messages
return allMessages;
}
}


Теперь я пытаюсь прокрутить каждое сообщение, но я не могу понять, как это сделать, у меня есть это до сих пор для моей кнопки:



    private void button7_Click(object sender, EventArgs e)
{

List<OpenPop.Mime.Message> allaEmail = FetchAllMessages("pop3.live.com", 995, true, "[email protected]", "xxxxx");

var message = string.Join(",", allaEmail);
MessageBox.Show(message);
}


Как бы я перебирал каждую запись в allaEmail, чтобы я мог отобразить ее в MessageBox?

638   2  

2 ответов:

Я вижу, что вы используете Пример fetchAllEmail с домашней страницы OpenPop. Аналогичный пример , показывающий, как получить основной текст, также находится на главной странице.

Вы также можете посмотреть, как на самом деле структурированы электронные письма. Введение в электронную почту существует именно для этой цели.

Сказав это, я бы сделал что-то подобное приведенному ниже коду.

private void button7_Click(object sender, EventArgs e)
{
    List<OpenPop.Mime.Message> allaEmail = FetchAllMessages(...);

    StringBuilder builder = new StringBuilder();
    foreach(OpenPop.Mime.Message message in allaEmail)
    {
         OpenPop.Mime.MessagePart plainText = message.FindFirstPlainTextVersion();
         if(plainText != null)
         {
             // We found some plaintext!
             builder.Append(plainText.GetBodyAsText());
         } else
         {
             // Might include a part holding html instead
             OpenPop.Mime.MessagePart html = message.FindFirstHtmlVersion();
             if(html != null)
             {
                 // We found some html!
                 builder.Append(html.GetBodyAsText());
             }
         }
    }
    MessageBox.Show(builder.ToString());
}
Я надеюсь, что это поможет вам в пути. Обратите внимание, что есть также онлайн документация для OpenPop.

Вот как я это сделал:

string Body = msgList[0].MessagePart.MessageParts[0].GetBodyAsText();
            foreach( string d in Body.Split('\n')){
                Console.WriteLine(d);                    
            }

Надеюсь, это поможет.

Comments

    Ничего не найдено.