これが私が持っているものです...
バーコードタイプのラベルを追跡するプログラムがあります。データベース内のアイテムを選択して、そのラベルを印刷できます。Exchangeサーバー(2007 SP1)の特定の受信トレイに、件名にアイテムIDを含めて電子メールを送信し、そのIDでラベルを印刷する機能を追加しています。これまでのところ、Exchangeから読み取り、ID番号を抽出し、それをレポートに送信して、レポートに印刷させることができます。私が立ち往生しているのは、受信トレイの監視です。readEmail()メソッドを自動的に起動するにはどうすればよいですか?これを実現するイベントはありません。受信トレイを自分でチェックするようにする必要があります。ラベルを印刷する必要がある場合は、この受信トレイにメールを送信するだけで、ラベルが自動的に印刷されます。これらを印刷できるのは1人だけで、彼がここにいなくて誰かがラベルを必要としている場合、これにより彼は電子メールを送信してラベルを印刷することができます。
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)
{
}
}
前もって感謝します!
ポール