AE.Net.MailからImapClient.ListMailboxes
方法は、IMAP LIST
コマンドのかなり薄いラッパーです。 IMAPのRFCの
public Mailbox[] ListMailboxes(string reference, string pattern)
{
IdlePause();
var x = new List<Mailbox>();
string command = GetTag() + "LIST " + reference.QuoteString() + " " + pattern.QuoteString();
string reg = "\\* LIST \\(([^\\)]*)\\) \\\"([^\\\"]+)\\\" \\\"?([^\\\"]+)\\\"?";
string response = SendCommandGetResponse(command);
Match m = Regex.Match(response, reg);
while (m.Groups.Count > 1)
{
Mailbox mailbox = new Mailbox(m.Groups[3].ToString());
x.Add(mailbox);
response = GetResponse();
m = Regex.Match(response, reg);
}
IdleResume();
return x.ToArray();
}
Section 6.3.8(「メールボックス名は」pattern
パラメータである)これらのパラメータは、一般的にIMAPサーバによってどのように解釈されるかの例をいくつか含まれています
Reference Mailbox Name Interpretation
------------ ------------ --------------
~smith/Mail/ foo.* ~smith/Mail/foo.*
archive/ % archive/%
#news. comp.mail.* #news.comp.mail.*
~smith/Mail/ /usr/doc/foo /usr/doc/foo
archive/ ~fred/Mail/* ~fred/Mail/*
それはまた次のよう述べていますがReference
パラメータに関して:
注:参照引数の解釈は、 実装です。定義される。 サーバーの実装に、 "現在の 作業ディレクトリ"という概念と、 "ブレイクアウト文字"である現行作業ディレクトリをオーバーライドする という概念があるかどうかによって異なります。
したがって、サーバーの実装によっては、例が機能する場合と動作しない場合があります。