public IEnumerable <IIncomingEmailMessage> GetMessages() { Logger.InfoFormat("Getting email messages..."); var itemCount = _folder.TotalCount; if (itemCount <= 0) { return(new List <IIncomingEmailMessage>()); } List <Item> items = new List <Item>(); // Gets new email messages that were recieved after the initial startup. GetEventsResults eventResults = subscription.GetEvents(); foreach (ItemEvent itemEvent in eventResults.ItemEvents) { Item item = Item.Bind(_folder.Service, itemEvent.ItemId); items.Add(item); } // Gets new email messages on the initial startup. var view = new ItemView(itemCount); List <Item> itemsToAdd = _folder.FindItems(view).ToList(); items.AddRange(itemsToAdd); Logger.InfoFormat("Items found: {0}", items.Count()); var messages = new List <IIncomingEmailMessage>(); int junkCount = 0; foreach (var item in items) { if (item is EmailMessage) { EWSIncomingMessage message = new EWSIncomingMessage((EmailMessage)item); messages.Add(message); } else { junkCount++; item.Move(WellKnownFolderName.DeletedItems); } } Logger.InfoFormat("Message count: {0}, Junk count: {1}", messages.Count, junkCount); Logger.InfoFormat("Completed getting messages."); return(messages); }
private static void MoveMessageToFolder(EWSIncomingMessage ewsMessage, Folder rogueMessageFolder) { try { Logger.InfoFormat("Moving mail item to '{0}' folder.", rogueMessageFolder.DisplayName); ewsMessage.MoveMessage(rogueMessageFolder.Id); } catch (Exception) { Logger.ErrorFormat( "Failed to move message to '{0}' folder. Possible cause: original mail item moved by the Exchange Server rules.", rogueMessageFolder.DisplayName); } }
public IEnumerable <IIncomingEmailMessage> GetMessages() { Logger.InfoFormat("Getting email messages..."); var itemCount = _folder.TotalCount; if (itemCount <= 0) { return(new List <IIncomingEmailMessage>()); } var view = new ItemView(itemCount); var items = _folder.FindItems(view); Logger.InfoFormat("Items found: {0}", items.Count()); var messages = new List <IIncomingEmailMessage>(); int junkCount = 0; foreach (var item in items) { if (item is EmailMessage) { EWSIncomingMessage message = new EWSIncomingMessage((EmailMessage)item); messages.Add(message); } else { junkCount++; item.Move(WellKnownFolderName.DeletedItems); } } Logger.InfoFormat("Message count: {0}, Junk count: {1}", messages.Count, junkCount); Logger.InfoFormat("Completed getting messages."); return(messages); }
/// <summary> /// Process a single message based on whether it was processed successfully or not /// </summary> public void Process(EWSIncomingMessage message, bool successful) { var destination = successful ? _successFolderId : _failureFolderId; message.MoveMessage(destination); }
private void HandleEWSMessage(EWSIncomingMessage originalMessage, string workItemId) { originalMessage.Reply(GetReplyContents(workItemId), _config.EmailSettings.AckEmailsRecipientsAll); }