コード例 #1
0
 private IEnumerable <TheMail> GetNewMails(IEnumerable <Message> messages, CachedEmailBox cachedEmailBox)
 {
     foreach (var message in messages)
     {
         if (TryAddMailId(message.Headers.MessageId))
         {
             var mail = message.GetTheMail();
             FillMailExtraFields(mail, cachedEmailBox);
             yield return(mail);
         }
     }
 }
コード例 #2
0
 private void FillMailExtraFields(TheMail mail, CachedEmailBox cachedEmailBox)
 {
     mail.IsOutcoming       = (cachedEmailBox.Login == mail.FromAddress);
     mail.IsIncoming        = (cachedEmailBox.Login == mail.ToAddress);
     mail.ChachedEmailBoxId = cachedEmailBox.Id.Value;
 }
コード例 #3
0
 private IEnumerable <Message> FetchNewMails(DictionaryEmailServerParam serverParams, CachedEmailBox cachedEmailBox)
 {
     using (var client = new Pop3Client())
     {
         // Connect to the server
         client.Connect(serverParams.Hostname, serverParams.Port, serverParams.UseSsl);
         // Authenticate ourselves towards the server
         client.Authenticate($"recent:{cachedEmailBox.Login}", cachedEmailBox.Password);
         // Get the number of messages in the inbox
         var messageCount = client.GetMessageCount();
         // We want to download all messages
         // 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--)
         {
             var message = client.GetMessage(i);
             yield return(message);
         }
     }
 }