Dart.Mail 名前空間 > Mailbox クラス : Search メソッド |
Public Function Search( _ ByVal criteria() As ImapSearchParameter _ ) As ImapMessage()
public ImapMessage[] Search( ImapSearchParameter[] criteria )
例外 | 解説 |
---|---|
ProtocolException | サーバーから受信したIMAPプロトコル応答が不良です。 |
System.Net.Sockets.SocketException | 通信エラーが発生しました。 |
System.InvalidCastException | 指定されたキャストが無効です。 |
このメソッドは、"SEARCH"コマンドをサーバーに送信します。複数のImapSearchParameterが論理ANDで結合されます。ImapCriterionの値であるImapCriterion.NotおよびImapCriterion.Orを使用して、その他の論理結合を表現できます。この検索ツールの使用方法のガイドについては、RFC 3501またはその他のオンラインリソースを参照してください。
Imap.Session.AutoUtf8が trueに設定され、サーバーが「UTF8=ACCEPT」を返す場合、UNICODE文字列のエンコードとデコードにUTF8が使用されます。
private void getMessages(object state) { // サーバーとアカウントの情報を設定します。 imap1.Session.RemoteEndPoint = new Dart.Mail.IPEndPoint(myServer, Imap.GetDefaultPort(imap1.Session)); imap1.Session.Username = myUsername; imap1.Session.Password = myPassword; // 接続してアカウントにログインします。 imap1.Connect(); imap1.Authenticate(); // 選択メールボックスをInboxに設定します。 imap1.SelectedMailbox = imap1.Mailboxes["INBOX"]; // 検索基準として"SEARCH SINCE 1-Jan-2012 NOT FROM JACKSON"を作成します。 ImapSearchParameter[] criteria = new ImapSearchParameter[] { new ImapSearchParameter(ImapCriterion.Since, "1-Jan-2012"), new ImapSearchParameter(ImapCriterion.Not, ""), new ImapSearchParameter(ImapCriterion.From, "JACKSON") }; // 検索を実行します。 ImapMessage[] messages = imap1.SelectedMailbox.Search(criteria); // 基準に一致するすべてのメッセージを'Save'メールボックスにコピーします。 foreach (ImapMessage imapMessage in messages) imapMessage.CopyTo(imap1.Mailboxes["Save"]); // 適切にログアウトします。 imap1.Close(); }
Private Sub getMessages(ByVal state As Object) ' サーバーとアカウントの情報を設定します。 imap1.Session.RemoteEndPoint = New Dart.Mail.IPEndPoint(myServer, Imap.GetDefaultPort(imap1.Session)) imap1.Session.Username = myUsername imap1.Session.Password = myPassword ' 接続してアカウントにログインします。 imap1.Connect() imap1.Authenticate() ' 選択メールボックスをInboxに設定します。 imap1.SelectedMailbox = imap1.Mailboxes("INBOX") ' 検索基準として"SEARCH SINCE 1-Jan-2012 NOT FROM JACKSON"を作成します。 Dim criteria() As ImapSearchParameter = { New ImapSearchParameter(ImapCriterion.Since, "1-Jan-2012"), New ImapSearchParameter(ImapCriterion.Not, ""), New ImapSearchParameter(ImapCriterion.From, "JACKSON") } ' 検索を実行します。 Dim messages() As ImapMessage = imap1.SelectedMailbox.Search(criteria) ' 基準に一致するすべてのメッセージを'Save'メールボックスにコピーします。 For Each imapMessage As ImapMessage In messages imapMessage.CopyTo(imap1.Mailboxes("Save")) Next imapMessage ' 適切にログアウトします。 imap1.Close() End Sub