using System;
using Limilabs.Mail;
using Limilabs.Client.POP3;
class Program
{
static void Main(string[] args)
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\*******\Desktop\WriteLines.txt", true)){
using (Pop3 pop3 = new Pop3())
{
Console.WriteLine("Connecting...");
pop3.ConnectSSL("pop3.live.com"); // or ConnectSSL for SSL
pop3.Login("****@live.com", "****");
// Receive all messages and display the subject
MailBuilder builder = new MailBuilder();
foreach (string uid in pop3.GetAll())
{
IMail email = builder.CreateFromEml(
pop3.GetMessageByUID(uid));
file.WriteLine("Header: " + email.Subject);
file.WriteLine("Message: " + email.Text);
}
pop3.Close();
}
}
}
}
所以我有這個問題,我想這個程序運行24/7;它仍然是不完整的,但這只是顯示基本的C#檢索電子郵件等。我如何才能在C#中有一個循環,只有當新郵件到達收件箱時纔會暫停或強制執行任何操作?我希望該計劃僅用於實時收到發送的電子郵件。我知道我可以一次一個地打印出我的電子郵件,但我希望它能夠正常運行,並且只有在收到新消息時才能讓我做任何事情。例如idk,如果我要發送一個類似乾淨的桌面的消息,它會停下來並被解析,如果我要創建另一個程序指定的有效命令序列,那麼它將執行該命令,然後繼續循環不斷等待另一條新消息。它基本上是一個全天候運行的服務器,只響應新的電子郵件。這就是我要做的。所有的幫助非常感謝。如何在C#中循環直到新郵件到達?
「我怎麼能在C#中有一個循環,只有當新電子郵件到達收件箱時纔會暫停或強制執行任何操作。」 - 這是您的電子郵件庫必須直接支持的內容。 (在POP3中我並不認爲這是可能的。)否則,您唯一的選擇就是輪詢。 – millimoose
相當大量的代碼後面跟着一段文字。這使得難以閱讀的問題。首先將你的文本分成幾段?另外,請確保你的代碼示例是最小的(同時還包括所有相關的細節)。 –