本文整理汇总了C#中MessageSummaryItems类的典型用法代码示例。如果您正苦于以下问题:C# MessageSummaryItems类的具体用法?C# MessageSummaryItems怎么用?C# MessageSummaryItems使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MessageSummaryItems类属于命名空间,在下文中一共展示了MessageSummaryItems类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Fetch
/// <summary>
/// Fetches the message summaries for the messages between the two indexes (inclusive) that have a higher mod-sequence value than the one specified.
/// </summary>
/// <remarks>
/// Fetches the message summaries for the messages between the two indexes (inclusive) that have a higher mod-sequence value than the one specified.
/// </remarks>
/// <returns>An enumeration of summaries for the requested messages.</returns>
/// <param name="min">The minimum index.</param>
/// <param name="max">The maximum index, or <c>-1</c> to specify no upper bound.</param>
/// <param name="modseq">The mod-sequence value.</param>
/// <param name="items">The message summary items to fetch.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <para><paramref name="min"/> is out of range.</para>
/// <para>-or-</para>
/// <para><paramref name="max"/> is out of range.</para>
/// <para>-or-</para>
/// <para><paramref name="items"/> is empty.</para>
/// </exception>
/// <exception cref="System.ObjectDisposedException">
/// The <see cref="ImapClient"/> has been disposed.
/// </exception>
/// <exception cref="System.InvalidOperationException">
/// <para>The <see cref="ImapClient"/> is not connected.</para>
/// <para>-or-</para>
/// <para>The <see cref="ImapClient"/> is not authenticated.</para>
/// <para>-or-</para>
/// <para>The folder is not currently open.</para>
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <see cref="ImapFolder"/> does not support mod-sequences.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The operation was canceled via the cancellation token.
/// </exception>
/// <exception cref="System.IO.IOException">
/// An I/O error occurred.
/// </exception>
/// <exception cref="ImapProtocolException">
/// The server's response contained unexpected tokens.
/// </exception>
/// <exception cref="ImapCommandException">
/// The server replied with a NO or BAD response.
/// </exception>
public override IList<IMessageSummary> Fetch(int min, int max, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken))
{
if (min < 0 || min >= Count)
throw new ArgumentOutOfRangeException ("min");
if (max != -1 && max < min)
throw new ArgumentOutOfRangeException ("max");
if (items == MessageSummaryItems.None)
throw new ArgumentOutOfRangeException ("items");
if (!SupportsModSeq)
throw new NotSupportedException ("The ImapFolder does not support mod-sequences.");
CheckState (true, false);
var query = FormatSummaryItems (items, null);
var command = string.Format ("FETCH {0} {1} (CHANGEDSINCE {2})\r\n", GetFetchRange (min, max), query, modseq);
var ic = new ImapCommand (Engine, cancellationToken, this, command);
var results = new SortedDictionary<int, IMessageSummary> ();
ic.RegisterUntaggedHandler ("FETCH", FetchSummaryItems);
ic.UserData = results;
Engine.QueueCommand (ic);
Engine.Wait (ic);
ProcessResponseCodes (ic, null);
if (ic.Result != ImapCommandResult.Ok)
throw ImapCommandException.Create ("FETCH", ic);
return AsReadOnly (results.Values);
}
开发者ID:rajeshwarn,项目名称:MailKit,代码行数:77,代码来源:ImapFolder.cs
示例2: Fetch
/// <summary>
/// Fetches the message summaries for the specified message indexes that have a
/// higher mod-sequence value than the one specified.
/// </summary>
/// <remarks>
/// <para>Fetches the message summaries for the specified message indexes that
/// have a higher mod-sequence value than the one specified.</para>
/// <para>It should be noted that if another client has modified any message
/// in the folder, the IMAP server may choose to return information that was
/// not explicitly requested. It is therefore important to be prepared to
/// handle both additional fields on a <see cref="IMessageSummary"/> for
/// messages that were requested as well as summaries for messages that were
/// not requested at all.</para>
/// </remarks>
/// <returns>An enumeration of summaries for the requested messages.</returns>
/// <param name="indexes">The indexes.</param>
/// <param name="modseq">The mod-sequence value.</param>
/// <param name="items">The message summary items to fetch.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <exception cref="System.ArgumentNullException">
/// <paramref name="indexes"/> is <c>null</c>.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <paramref name="items"/> is empty.
/// </exception>
/// <exception cref="System.ArgumentException">
/// One or more of the <paramref name="indexes"/> is invalid.
/// </exception>
/// <exception cref="System.ObjectDisposedException">
/// The <see cref="ImapClient"/> has been disposed.
/// </exception>
/// <exception cref="ServiceNotConnectedException">
/// The <see cref="ImapClient"/> is not connected.
/// </exception>
/// <exception cref="ServiceNotAuthenticatedException">
/// The <see cref="ImapClient"/> is not authenticated.
/// </exception>
/// <exception cref="FolderNotOpenException">
/// The <see cref="ImapFolder"/> is not currently open.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <see cref="ImapFolder"/> does not support mod-sequences.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The operation was canceled via the cancellation token.
/// </exception>
/// <exception cref="System.IO.IOException">
/// An I/O error occurred.
/// </exception>
/// <exception cref="ImapProtocolException">
/// The server's response contained unexpected tokens.
/// </exception>
/// <exception cref="ImapCommandException">
/// The server replied with a NO or BAD response.
/// </exception>
public override IList<IMessageSummary> Fetch (IList<int> indexes, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken))
{
var set = ImapUtils.FormatIndexSet (indexes);
if (items == MessageSummaryItems.None)
throw new ArgumentOutOfRangeException ("items");
if (!SupportsModSeq)
throw new NotSupportedException ("The ImapFolder does not support mod-sequences.");
CheckState (true, false);
if (indexes.Count == 0)
return new IMessageSummary[0];
var query = FormatSummaryItems (ref items, null);
var command = string.Format ("FETCH {0} {1} (CHANGEDSINCE {2})\r\n", set, query, modseq);
var ic = new ImapCommand (Engine, cancellationToken, this, command);
var ctx = new FetchSummaryContext (items);
ic.RegisterUntaggedHandler ("FETCH", FetchSummaryItems);
ic.UserData = ctx;
Engine.QueueCommand (ic);
Engine.Wait (ic);
ProcessResponseCodes (ic, null);
if (ic.Response != ImapCommandResponse.Ok)
throw ImapCommandException.Create ("FETCH", ic);
return AsReadOnly (ctx.Results.Values);
}
开发者ID:dcga,项目名称:MailKit,代码行数:88,代码来源:ImapFolder.cs
示例3: Fetch
/// <summary>
/// Fetch the message summaries for the messages between the two indexes (inclusive)
/// that have a higher mod-sequence value than the one specified.
/// </summary>
/// <remarks>
/// <para>Fetches the message summaries for the messages between the two
/// indexes (inclusive) that have a higher mod-sequence value than the one
/// specified.</para>
/// <para>It should be noted that if another client has modified any message
/// in the folder, the mail service may choose to return information that was
/// not explicitly requested. It is therefore important to be prepared to
/// handle both additional fields on a <see cref="IMessageSummary"/> for
/// messages that were requested as well as summaries for messages that were
/// not requested at all.</para>
/// </remarks>
/// <returns>An enumeration of summaries for the requested messages.</returns>
/// <param name="min">The minimum index.</param>
/// <param name="max">The maximum index, or <c>-1</c> to specify no upper bound.</param>
/// <param name="modseq">The mod-sequence value.</param>
/// <param name="items">The message summary items to fetch.</param>
/// <param name="fields">The desired header fields.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <para><paramref name="min"/> is out of range.</para>
/// <para>-or-</para>
/// <para><paramref name="max"/> is out of range.</para>
/// </exception>
/// <exception cref="System.ArgumentNullException">
/// <paramref name="fields"/> is <c>null</c>.
/// </exception>
/// <exception cref="System.ArgumentException">
/// <paramref name="fields"/> is empty.
/// </exception>
/// <exception cref="System.ObjectDisposedException">
/// The <see cref="IMailStore"/> has been disposed.
/// </exception>
/// <exception cref="ServiceNotConnectedException">
/// The <see cref="IMailStore"/> is not connected.
/// </exception>
/// <exception cref="ServiceNotAuthenticatedException">
/// The <see cref="IMailStore"/> is not authenticated.
/// </exception>
/// <exception cref="FolderNotOpenException">
/// The folder is not currently open.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <see cref="MailFolder"/> does not support mod-sequences.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The operation was canceled via the cancellation token.
/// </exception>
/// <exception cref="System.IO.IOException">
/// An I/O error occurred.
/// </exception>
/// <exception cref="ProtocolException">
/// The server's response contained unexpected tokens.
/// </exception>
/// <exception cref="CommandException">
/// The command failed.
/// </exception>
public abstract IList<IMessageSummary> Fetch (int min, int max, ulong modseq, MessageSummaryItems items, HashSet<string> fields, CancellationToken cancellationToken = default (CancellationToken));
开发者ID:naeemkhedarun,项目名称:MailKit,代码行数:61,代码来源:MailFolder.cs
示例4: FetchSummaryContext
public FetchSummaryContext (MessageSummaryItems requestedItems)
{
Results = new SortedDictionary<int, IMessageSummary> ();
RequestedItems = requestedItems;
}
开发者ID:dcga,项目名称:MailKit,代码行数:5,代码来源:ImapFolder.cs
示例5: Fetch
/// <summary>
/// Fetches the message summaries for the specified message indexes that have a higher mod-sequence value than the one specified.
/// </summary>
/// <returns>An enumeration of summaries for the requested messages.</returns>
/// <param name="indexes">The indexes.</param>
/// <param name="modseq">The mod-sequence value.</param>
/// <param name="items">The message summary items to fetch.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <exception cref="System.ArgumentNullException">
/// <paramref name="indexes"/> is <c>null</c>.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <paramref name="items"/> is empty.
/// </exception>
/// <exception cref="System.ArgumentException">
/// One or more of the <paramref name="indexes"/> is invalid.
/// </exception>
/// <exception cref="System.ObjectDisposedException">
/// The <see cref="ImapClient"/> has been disposed.
/// </exception>
/// <exception cref="System.InvalidOperationException">
/// <para>The <see cref="ImapClient"/> is not connected.</para>
/// <para>-or-</para>
/// <para>The <see cref="ImapClient"/> is not authenticated.</para>
/// <para>-or-</para>
/// <para>The folder is not currently open.</para>
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <see cref="ImapFolder"/> does not support mod-sequences.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The operation was canceled via the cancellation token.
/// </exception>
/// <exception cref="System.IO.IOException">
/// An I/O error occurred.
/// </exception>
/// <exception cref="ImapProtocolException">
/// The server's response contained unexpected tokens.
/// </exception>
/// <exception cref="ImapCommandException">
/// The server replied with a NO or BAD response.
/// </exception>
public IEnumerable<MessageSummary> Fetch(int[] indexes, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken)
{
var set = ImapUtils.FormatIndexSet (indexes);
var query = FormatSummaryItems (items);
if (items == MessageSummaryItems.None)
throw new ArgumentOutOfRangeException ("items");
if (!SupportsModSeq)
throw new NotSupportedException ("The ImapFolder does not support mod-sequences.");
CheckState (true, false);
if (indexes.Length == 0)
return new MessageSummary[0];
var command = string.Format ("FETCH {0} ({1}) (CHANGEDSINCE {2})\r\n", set, query, modseq);
var ic = Engine.QueueCommand (cancellationToken, this, command);
var results = new SortedDictionary<int, MessageSummary> ();
ic.RegisterUntaggedHandler ("FETCH", FetchSummaryItems);
ic.UserData = results;
Engine.Wait (ic);
ProcessResponseCodes (ic, null);
if (ic.Result != ImapCommandResult.Ok)
throw new ImapCommandException ("FETCH", ic.Result);
return results.Values;
}
开发者ID:rashoodkhan,项目名称:MailKit,代码行数:73,代码来源:ImapFolder.cs
示例6: Fetch
/// <summary>
/// Fetches the message summaries for the messages between the two UIDs (inclusive) that have a higher mod-sequence value than the one specified.
/// </summary>
/// <remarks>
/// <para>If the IMAP server supports the QRESYNC extension and the application has
/// enabled this feature via <see cref="ImapClient.EnableQuickResync"/>, then this
/// method will emit <see cref="Vanished"/> events for messages that have vanished
/// since the specified mod-sequence value.</para>
/// </remarks>
/// <returns>An enumeration of summaries for the requested messages.</returns>
/// <param name="min">The minimum UID.</param>
/// <param name="max">The maximum UID.</param>
/// <param name="modseq">The mod-sequence value.</param>
/// <param name="items">The message summary items to fetch.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <exception cref="System.ArgumentException">
/// <paramref name="min"/> is invalid.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <paramref name="items"/> is empty.
/// </exception>
/// <exception cref="System.ObjectDisposedException">
/// The <see cref="ImapClient"/> has been disposed.
/// </exception>
/// <exception cref="System.InvalidOperationException">
/// <para>The <see cref="ImapClient"/> is not connected.</para>
/// <para>-or-</para>
/// <para>The <see cref="ImapClient"/> is not authenticated.</para>
/// <para>-or-</para>
/// <para>The folder is not currently open.</para>
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <see cref="ImapFolder"/> does not support mod-sequences.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The operation was canceled via the cancellation token.
/// </exception>
/// <exception cref="System.IO.IOException">
/// An I/O error occurred.
/// </exception>
/// <exception cref="ImapProtocolException">
/// The server's response contained unexpected tokens.
/// </exception>
/// <exception cref="ImapCommandException">
/// The server replied with a NO or BAD response.
/// </exception>
public IEnumerable<MessageSummary> Fetch(UniqueId min, UniqueId? max, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken)
{
if (min.Id == 0)
throw new ArgumentException ("The minimum uid is invalid.", "min");
if (items == MessageSummaryItems.None)
throw new ArgumentOutOfRangeException ("items");
if (!SupportsModSeq)
throw new NotSupportedException ("The ImapFolder does not support mod-sequences.");
CheckState (true, false);
var query = FormatSummaryItems (items);
var maxValue = max.HasValue ? max.Value.Id.ToString () : "*";
var vanished = Engine.QResyncEnabled ? " VANISHED" : string.Empty;
var command = string.Format ("UID FETCH {0}:{1} ({2}) (CHANGEDSINCE {3}{4})\r\n", min.Id, maxValue, query, modseq, vanished);
var ic = new ImapCommand (Engine, cancellationToken, this, command);
var results = new SortedDictionary<int, MessageSummary> ();
ic.RegisterUntaggedHandler ("FETCH", FetchSummaryItems);
ic.UserData = results;
Engine.QueueCommand (ic);
Engine.Wait (ic);
ProcessResponseCodes (ic, null);
if (ic.Result != ImapCommandResult.Ok)
throw new ImapCommandException ("FETCH", ic.Result);
return results.Values;
}
开发者ID:radiy,项目名称:MailKit,代码行数:78,代码来源:ImapFolder.cs
示例7: FetchAsync
/// <summary>
/// Asynchronously fetch the message summaries for the specified message UIDs.
/// </summary>
/// <remarks>
/// <para>Asynchronously fetches the message summaries for the specified message
/// UIDs.</para>
/// <para>It should be noted that if another client has modified any message
/// in the folder, the mail service may choose to return information that was
/// not explicitly requested. It is therefore important to be prepared to
/// handle both additional fields on a <see cref="IMessageSummary"/> for
/// messages that were requested as well as summaries for messages that were
/// not requested at all.</para>
/// </remarks>
/// <returns>An enumeration of summaries for the requested messages.</returns>
/// <param name="uids">The UIDs.</param>
/// <param name="items">The message summary items to fetch.</param>
/// <param name="fields">The desired header fields.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <exception cref="System.ArgumentNullException">
/// <para><paramref name="uids"/> is <c>null</c>.</para>
/// <para>-or-</para>
/// <para><paramref name="fields"/> is <c>null</c>.</para>
/// </exception>
/// <exception cref="System.ArgumentException">
/// <para>One or more of the <paramref name="uids"/> is invalid.</para>
/// <para>-or-</para>
/// <para><paramref name="fields"/> is empty.</para>
/// </exception>
/// <exception cref="System.ObjectDisposedException">
/// The <see cref="IMailStore"/> has been disposed.
/// </exception>
/// <exception cref="ServiceNotConnectedException">
/// The <see cref="IMailStore"/> is not connected.
/// </exception>
/// <exception cref="ServiceNotAuthenticatedException">
/// The <see cref="IMailStore"/> is not authenticated.
/// </exception>
/// <exception cref="FolderNotOpenException">
/// The folder is not currently open.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The operation was canceled via the cancellation token.
/// </exception>
/// <exception cref="System.IO.IOException">
/// An I/O error occurred.
/// </exception>
/// <exception cref="ProtocolException">
/// The server's response contained unexpected tokens.
/// </exception>
/// <exception cref="CommandException">
/// The command failed.
/// </exception>
public virtual Task<IList<IMessageSummary>> FetchAsync (IList<UniqueId> uids, MessageSummaryItems items, HashSet<string> fields, CancellationToken cancellationToken = default (CancellationToken))
{
if (uids == null)
throw new ArgumentNullException (nameof (uids));
if (fields == null)
throw new ArgumentNullException (nameof (fields));
if (fields.Count == 0)
throw new ArgumentException ("The set of header fields cannot be empty.", nameof (fields));
return Task.Factory.StartNew (() => {
lock (SyncRoot) {
return Fetch (uids, items, fields, cancellationToken);
}
}, cancellationToken, TaskCreationOptions.None, TaskScheduler.Default);
}
开发者ID:jstedfast,项目名称:MailKit,代码行数:69,代码来源:MailFolder.cs
示例8: FormatSummaryItems
string FormatSummaryItems(MessageSummaryItems items)
{
string query;
if ((items & MessageSummaryItems.BodyStructure) != 0 && (items & MessageSummaryItems.Body) != 0) {
// don't query both the BODY and BODYSTRUCTURE, that's just dumb...
items &= ~MessageSummaryItems.Body;
}
// Note: GMail doesn't properly handle aliases (or at least it doesn't handle "FULL")...
if ((Engine.Capabilities & ImapCapabilities.GMailExt1) == 0) {
// first, eliminate the aliases...
if ((items & MessageSummaryItems.Full) == MessageSummaryItems.Full) {
items &= ~MessageSummaryItems.Full;
query = "FULL ";
} else if ((items & MessageSummaryItems.All) == MessageSummaryItems.All) {
items &= ~MessageSummaryItems.All;
query = "ALL ";
} else if ((items & MessageSummaryItems.Fast) == MessageSummaryItems.Fast) {
items &= ~MessageSummaryItems.Fast;
query = "FAST ";
} else {
query = string.Empty;
}
} else {
query = string.Empty;
}
// now add on any additional summary items...
if ((items & MessageSummaryItems.Uid) != 0)
query += "UID ";
if ((items & MessageSummaryItems.Flags) != 0)
query += "FLAGS ";
if ((items & MessageSummaryItems.InternalDate) != 0)
query += "INTERNALDATE ";
if ((items & MessageSummaryItems.MessageSize) != 0)
query += "RFC822.SIZE ";
if ((items & MessageSummaryItems.Envelope) != 0)
query += "ENVELOPE ";
if ((items & MessageSummaryItems.BodyStructure) != 0)
query += "BODYSTRUCTURE ";
if ((items & MessageSummaryItems.Body) != 0)
query += "BODY ";
if ((Engine.Capabilities & ImapCapabilities.CondStore) != 0) {
if ((items & MessageSummaryItems.ModSeq) != 0)
query += "MODSEQ ";
}
if ((Engine.Capabilities & ImapCapabilities.GMailExt1) != 0) {
// now for the GMail extension items
if ((items & MessageSummaryItems.GMailMessageId) != 0)
query += "X-GM-MSGID ";
if ((items & MessageSummaryItems.GMailThreadId) != 0)
query += "X-GM-THRID ";
}
return query.TrimEnd ();
}
开发者ID:rashoodkhan,项目名称:MailKit,代码行数:59,代码来源:ImapFolder.cs
示例9: FetchAsync
/// <summary>
/// Asynchronously fetch the message summaries for the messages between the two indexes
/// (inclusive) that have a higher mod-sequence value than the one specified.
/// </summary>
/// <remarks>
/// <para>Asynchronously fetches the message summaries for the messages between
/// the two indexes (inclusive) that have a higher mod-sequence value than the
/// one specified.</para>
/// <para>It should be noted that if another client has modified any message
/// in the folder, the mail service may choose to return information that was
/// not explicitly requested. It is therefore important to be prepared to
/// handle both additional fields on a <see cref="IMessageSummary"/> for
/// messages that were requested as well as summaries for messages that were
/// not requested at all.</para>
/// </remarks>
/// <returns>An enumeration of summaries for the requested messages.</returns>
/// <param name="min">The minimum index.</param>
/// <param name="max">The maximum index, or <c>-1</c> to specify no upper bound.</param>
/// <param name="modseq">The mod-sequence value.</param>
/// <param name="items">The message summary items to fetch.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <para><paramref name="min"/> is out of range.</para>
/// <para>-or-</para>
/// <para><paramref name="max"/> is out of range.</para>
/// <para>-or-</para>
/// <para><paramref name="items"/> is empty.</para>
/// </exception>
/// <exception cref="System.ObjectDisposedException">
/// The <see cref="IMailStore"/> has been disposed.
/// </exception>
/// <exception cref="ServiceNotConnectedException">
/// The <see cref="IMailStore"/> is not connected.
/// </exception>
/// <exception cref="ServiceNotAuthenticatedException">
/// The <see cref="IMailStore"/> is not authenticated.
/// </exception>
/// <exception cref="FolderNotOpenException">
/// The folder is not currently open.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <see cref="MailFolder"/> does not support mod-sequences.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The operation was canceled via the cancellation token.
/// </exception>
/// <exception cref="System.IO.IOException">
/// An I/O error occurred.
/// </exception>
/// <exception cref="ProtocolException">
/// The server's response contained unexpected tokens.
/// </exception>
/// <exception cref="CommandException">
/// The command failed.
/// </exception>
public virtual Task<IList<IMessageSummary>> FetchAsync (int min, int max, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken))
{
if (min < 0)
throw new ArgumentOutOfRangeException ("min");
if (max != -1 && max < min)
throw new ArgumentOutOfRangeException ("max");
if (items == MessageSummaryItems.None)
throw new ArgumentOutOfRangeException ("items");
return Task.Factory.StartNew (() => {
lock (SyncRoot) {
return Fetch (min, max, modseq, items, cancellationToken);
}
}, cancellationToken, TaskCreationOptions.None, TaskScheduler.Default);
}
开发者ID:naeemkhedarun,项目名称:MailKit,代码行数:72,代码来源:MailFolder.cs
示例10: FormatSummaryItems
string FormatSummaryItems (ref MessageSummaryItems items, HashSet<string> fields)
{
if ((items & MessageSummaryItems.BodyStructure) != 0 && (items & MessageSummaryItems.Body) != 0) {
// don't query both the BODY and BODYSTRUCTURE, that's just dumb...
items &= ~MessageSummaryItems.Body;
}
if (!Engine.IsGMail) {
// first, eliminate the aliases...
if (items == MessageSummaryItems.All)
return "ALL";
if (items == MessageSummaryItems.Full)
return "FULL";
if (items == MessageSummaryItems.Fast)
return "FAST";
}
var tokens = new List<string> ();
// now add on any additional summary items...
if ((items & MessageSummaryItems.UniqueId) != 0)
tokens.Add ("UID");
if ((items & MessageSummaryItems.Flags) != 0)
tokens.Add ("FLAGS");
if ((items & MessageSummaryItems.InternalDate) != 0)
tokens.Add ("INTERNALDATE");
if ((items & MessageSummaryItems.MessageSize) != 0)
tokens.Add ("RFC822.SIZE");
if ((items & MessageSummaryItems.Envelope) != 0)
tokens.Add ("ENVELOPE");
if ((items & MessageSummaryItems.BodyStructure) != 0)
tokens.Add ("BODYSTRUCTURE");
if ((items & MessageSummaryItems.Body) != 0)
tokens.Add ("BODY");
if ((Engine.Capabilities & ImapCapabilities.CondStore) != 0) {
if ((items & MessageSummaryItems.ModSeq) != 0)
tokens.Add ("MODSEQ");
}
if ((Engine.Capabilities & ImapCapabilities.GMailExt1) != 0) {
// now for the GMail extension items
if ((items & MessageSummaryItems.GMailMessageId) != 0)
tokens.Add ("X-GM-MSGID");
if ((items & MessageSummaryItems.GMailThreadId) != 0)
tokens.Add ("X-GM-THRID");
if ((items & MessageSummaryItems.GMailLabels) != 0)
tokens.Add ("X-GM-LABELS");
}
if ((items & MessageSummaryItems.References) != 0 || fields != null) {
var headers = new StringBuilder ("BODY.PEEK[HEADER.FIELDS (");
bool references = false;
if (fields != null) {
foreach (var field in fields) {
var name = field.ToUpperInvariant ();
if (name == "REFERENCES")
references = true;
headers.Append (name);
headers.Append (' ');
}
}
if ((items & MessageSummaryItems.References) != 0 && !references)
headers.Append ("REFERENCES ");
headers[headers.Length - 1] = ')';
headers.Append (']');
tokens.Add (headers.ToString ());
}
if (tokens.Count == 1)
return tokens[0];
return string.Format ("({0})", string.Join (" ", tokens));
}
开发者ID:dcga,项目名称:MailKit,代码行数:82,代码来源:ImapFolder.cs
注:本文中的MessageSummaryItems类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论