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); } } }
private void FillMailExtraFields(TheMail mail, CachedEmailBox cachedEmailBox) { mail.IsOutcoming = (cachedEmailBox.Login == mail.FromAddress); mail.IsIncoming = (cachedEmailBox.Login == mail.ToAddress); mail.ChachedEmailBoxId = cachedEmailBox.Id.Value; }
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); } } }