OpenPop.net获取实际的消息文本 [英] OpenPop.net get actual message text
问题描述
我正在使用OpenPop.net尝试并解析我们在给定收件箱中的所有电子邮件的链接。我发现这个方法得到所有的消息:
I am using OpenPop.net to try and parse our links from all the emails that are in a given inbox. I found this method to get all the message:
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;
}
}
现在我试图循环每个消息,但我似乎无法弄清楚如何做到这一点,到目前为止我已经有了这个按钮:
Now I am trying to loop through each message but I cannot seem to figure out how to do it, I have this so far for my button:
private void button7_Click(object sender, EventArgs e)
{
List<OpenPop.Mime.Message> allaEmail = FetchAllMessages("pop3.live.com", 995, true, "xxxxx@hotmail.com", "xxxxx");
var message = string.Join(",", allaEmail);
MessageBox.Show(message);
}
如何循环遍历allaEmail中的每个条目,以便我可以在一个MessageBox?
How would i loop through each entry in allaEmail so that i can display it in a MessageBox?
推荐答案
我可以看到你使用 fetchAllEmail示例从OpenPop主页。相似的示例显示如何获取正文文本也在首页。
I can see that you use the fetchAllEmail example from the OpenPop homepage. A similar example showing how to get body text is also on the homepage.
您可能还想查看电子邮件的实际结构。只有这样的一个电子邮件介绍。
You might also want to look at how emails are actually structured. A email introduction exists for just this purpose.
说,我会做类似于下面的代码。
Having that said, I would do something similar to the code below.
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还有在线文档。
I hope this can help you on the way. Notice that there is also online documentation for OpenPop.
这篇关于OpenPop.net获取实际的消息文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!