Skip to content

Commit 09fdb31

Browse files
committed
updated readme to use Top()
1 parent 1ec0b12 commit 09fdb31

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Receiving emails with MailKitSimplified.Receiver is as easy as:
1717

1818
```csharp
1919
using var imapReceiver = ImapReceiver.Create("localhost");
20-
var mimeMessages = await imapReceiver.ReadMail.GetMimeMessagesAsync();
20+
var mimeMessages = await imapReceiver.ReadMail.Top(1).GetMimeMessagesAsync();
2121
```
2222

2323
You can even monitor an email folder for new messages asynchronously, never before has it been this easy!
@@ -29,7 +29,7 @@ await imapReceiver.MonitorFolder.OnMessageArrival(m => Console.WriteLine(m.Uniqu
2929
Once you've got either a mime message or a message summary, replying is now equally as intuitive.
3030

3131
```csharp
32-
var mimeReply = mimeMessages.GetReplyMessage("<p>Reply here.</p>");
32+
var mimeReply = mimeMessage.GetReplyMessage("<p>Reply here.</p>").From("noreply@example.com");
3333
```
3434

3535
You're welcome. 🥲
@@ -69,13 +69,17 @@ var mimeMessages = await imapReceiver.ReadMail
6969
.GetMimeMessagesAsync(cancellationToken);
7070
```
7171

72+
Note: Use imapReceiver.ReadMail.Top(#) to get the newest (descending) results.
73+
7274
To only download the email parts you want to use:
7375

7476
```csharp
7577
var messageSummaries = await imapReceiver.ReadMail
7678
.GetMessageSummariesAsync(cancellationToken);
7779
```
7880

81+
Note: MailKit returns results in ascending order by default, use messageSummaries.Reverse() to get descending results.
82+
7983
To query unread emails from the IMAP server and specify which message parts to download:
8084

8185
```csharp

source/MailKitSimplified.Receiver/Services/MailFolderReader.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,10 @@ public async Task<IList<MimeMessage>> GetMimeMessagesAsync(CancellationToken can
318318
}
319319
else if ((_take == _all && !_top.HasValue) || _searchQuery != _queryAll)
320320
{
321-
if (_take > _queryAmount)
322-
_logger.LogWarning($"Take({_take}) limited by SearchQuery to 250 results.");
321+
if (_take != _all && (uint)_skip + _take > _queryAmount)
322+
_logger.LogWarning($"Skip({_skip}).Take({_take}) limited by SearchQuery to 250 results.");
323+
else if (_take == _all)
324+
_logger.LogDebug("GetMimeMessagesAsync() limited by SearchQuery to 250 results.");
323325
var uniqueIds = await mailFolder.SearchAsync(_searchQuery, cancellationToken).ConfigureAwait(false);
324326
var descendingUids = new UniqueIdSet(uniqueIds, SortOrder.Descending).Skip(_skip);
325327
var filteredUids = _take == _all ? descendingUids : descendingUids.Take(_take);

0 commit comments

Comments
 (0)