Вот что у меня есть ...Программно отслеживать Exchange Inbox и печатать ярлык
У меня есть программа, которая отслеживает метки типа штрих-кода. Я могу выбрать элемент в базе данных и напечатать ярлык для него. Я добавляю возможность отправлять электронную почту на конкретный почтовый ящик на нашем сервере Exchange (2007 SP1) с идентификатором элемента в строке темы, а затем печатать ярлык с этим идентификатором. Пока я могу читать из Exchange и извлекать идентификационный номер, а затем отправить его в отчет и распечатать отчет. Где я застрял, отслеживает входящие. Как автоматически запустить метод readEmail()? Нет никакого события, чтобы это произошло. Я должен сам проверить его. Идея заключается в том, что если нам нужно напечатать ярлык, мы можем просто отправить электронное письмо на этот почтовый ящик, и метка будет печататься автоматически. Только один человек может их распечатать, и если его здесь нет, а кому-то нужен ярлык, это позволит ему отправить электронное письмо и напечатать ярлык.
private void readEmail()
{
ExchangeService _mailService = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
_mailService.UseDefaultCredentials = true;
_mailService.Url = new Uri("https://webmail.mydomain.com/ews/exchange.asmx");
try
{
ItemView allItems = new ItemView(100);
SearchFilter searchFilterInbox = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false);
Folder _inbox = Folder.Bind(_mailService, WellKnownFolderName.Inbox);
if (_inbox.UnreadCount > 0)
{
FindItemsResults<Item> findResults = _inbox.FindItems(searchFilterInbox, allItems);
List<Item> resultItems = new List<Item>();
foreach (Item item in findResults.Items)
{
resultItems.Add(item);
_mailService.LoadPropertiesForItems(resultItems, PropertySet.FirstClassProperties);
cboPropertyTag.Text = item.Subject;
GetReportVariables();
reportType = "autoPrint";
reportViewer rv = new reportViewer();
rv.Show();
item.Move(WellKnownFolderName.DeletedItems);
}
}
}
catch (ServiceVersionException)
{
}
}
Заранее благодарен!
Пол
Спасибо. Я добавил объект монитора, установил его на 30 секунд (будет делать это дольше, когда мы запустим), запустил его, сказал, когда он пропустил, запустил метод, как указано выше. Я остановил таймер в начале и сбросил, а затем начал его в конце. Проблема возникает, когда я обращаюсь к объекту в форме, я получаю ошибку поперечного потока. Поэтому я выясню, как получить данные для этого, а не полагаться на форму. –