Updated documentation.

imap-support
Jordan Wages 1 month ago
parent 2c63a393e1
commit d911e2da88
  1. 44
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/Authenticate.md
  2. 51
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/Connect.md
  3. 39
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/DeleteMessage.md
  4. 39
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/Disconnect.md
  5. 30
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/Dispose.md
  6. 28
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/EmailClientType.md
  7. 37
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/GetMessages.md
  8. 31
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/IMAPClient.md
  9. 31
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/POP3Client.md
  10. 41
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/PerformClientMethod.md
  11. 48
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/PerformClientMethod__1.md
  12. 87
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/README.md
  13. 24
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/_cctor.md
  14. 39
      code-documentation/GrayDuckMail.Common/EmailClientWrapper/_ctor.md
  15. 36
      code-documentation/GrayDuckMail.Common/EmailProtocol/README.md
  16. 56
      code-documentation/GrayDuckMail.Common/README.md
  17. 17
      code-documentation/GrayDuckMail.Web.Worker/EmailFetcher/ProcessBounces.md
  18. 25
      code-documentation/GrayDuckMail.Web.Worker/EmailFetcher/ProcessDiscussionMessages.md
  19. 21
      code-documentation/GrayDuckMail.Web.Worker/EmailFetcher/ProcessRequests.md
  20. 21
      code-documentation/GrayDuckMail.Web.Worker/EmailFetcher/ProcessSubscriptionConfirmations.md
  21. 17
      code-documentation/GrayDuckMail.Web.Worker/EmailFetcher/ProcessUnsubscribeConfirmations.md
  22. 33
      code-documentation/GrayDuckMail.Web/DockerEnvironmentVariables/EmailProtocol.md
  23. 35
      code-documentation/GrayDuckMail.Web/DockerEnvironmentVariables/IMAPFolder.md
  24. 52
      code-documentation/GrayDuckMail.Web/DockerEnvironmentVariables/README.md
  25. 47
      code-documentation/_toc.xml

@ -0,0 +1,44 @@
EmailClientWrapper.Authenticate Method
======================================
Authenticate using the specified SASL method.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public void Authenticate(
string userName,
string password,
CancellationToken cancellationToken = default
)
```
#### Parameters
##### *userName*
Type: [System.String][2]
Name of the user.
##### *password*
Type: [System.String][2]
The password.
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][3]
(Optional) A token that allows processing to be cancelled.
See Also
--------
#### Reference
[EmailClientWrapper Class][4]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: https://docs.microsoft.com/dotnet/api/system.string
[3]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[4]: README.md

@ -0,0 +1,51 @@
EmailClientWrapper.Connect Method
=================================
Establish a connection to the specified mail server.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public void Connect(
string host,
int port,
bool useSSL,
CancellationToken cancellationToken = default
)
```
#### Parameters
##### *host*
Type: [System.String][2]
The host.
##### *port*
Type: [System.Int32][3]
The port.
##### *useSSL*
Type: [System.Boolean][4]
True to use ssl.
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][5]
(Optional) A token that allows processing to be cancelled.
See Also
--------
#### Reference
[EmailClientWrapper Class][6]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: https://docs.microsoft.com/dotnet/api/system.string
[3]: https://docs.microsoft.com/dotnet/api/system.int32
[4]: https://docs.microsoft.com/dotnet/api/system.boolean
[5]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[6]: README.md

@ -0,0 +1,39 @@
EmailClientWrapper.DeleteMessage Method
=======================================
Marks the specified message for deletion.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public void DeleteMessage(
int index,
CancellationToken cancellationToken = default
)
```
#### Parameters
##### *index*
Type: [System.Int32][2]
Zero-based index of the message.
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][3]
(Optional) A token that allows processing to be cancelled.
See Also
--------
#### Reference
[EmailClientWrapper Class][4]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: https://docs.microsoft.com/dotnet/api/system.int32
[3]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[4]: README.md

@ -0,0 +1,39 @@
EmailClientWrapper.Disconnect Method
====================================
Disconnects the service.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public void Disconnect(
bool quit,
CancellationToken cancellationToken = default
)
```
#### Parameters
##### *quit*
Type: [System.Boolean][2]
If true, then a `QUIT` command will be issued in order to disconnect cleanly.
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][3]
(Optional) A token that allows processing to be cancelled.
See Also
--------
#### Reference
[EmailClientWrapper Class][4]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: https://docs.microsoft.com/dotnet/api/system.boolean
[3]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[4]: README.md

@ -0,0 +1,30 @@
EmailClientWrapper.Dispose Method
=================================
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public void Dispose()
```
#### Implements
[IDisposable.Dispose()][2]
See Also
--------
#### Reference
[EmailClientWrapper Class][3]
[GrayDuckMail.Common Namespace][1]
[System.IDisposable][4]
[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.idisposable.dispose#system-idisposable-dispose
[3]: README.md
[4]: https://learn.microsoft.com/dotnet/api/system.idisposable

@ -0,0 +1,28 @@
EmailClientWrapper.EmailClientType Property
===========================================
Gets the type of the email client the wrapper represents.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public EmailProtocol EmailClientType { get; }
```
#### Property Value
Type: [EmailProtocol][2]
The type of the email client.
See Also
--------
#### Reference
[EmailClientWrapper Class][3]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: ../EmailProtocol/README.md
[3]: README.md

@ -0,0 +1,37 @@
EmailClientWrapper.GetMessages Method
=====================================
Gets all messages.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public IList<MimeMessage> GetMessages(
CancellationToken cancellationToken = default
)
```
#### Parameters
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][2]
(Optional) A token that allows processing to be cancelled.
#### Return Value
Type: [IList][3]&lt;MimeMessage>
The messages.
See Also
--------
#### Reference
[EmailClientWrapper Class][4]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[3]: https://learn.microsoft.com/dotnet/api/system.collections.generic.ilist-1
[4]: README.md

@ -0,0 +1,31 @@
EmailClientWrapper.IMAPClient Property
======================================
Gets the IMAP client.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
private ImapClient IMAPClient { get; }
```
#### Property Value
Type: ImapClient
The IMAP client.
Remarks
-------
If the client is not yet initialized, it will be.
See Also
--------
#### Reference
[EmailClientWrapper Class][2]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: README.md

@ -0,0 +1,31 @@
EmailClientWrapper.POP3Client Property
======================================
Gets the POP3 client.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
private Pop3Client POP3Client { get; }
```
#### Property Value
Type: Pop3Client
The pop 3 client.
Remarks
-------
If the client is not yet initialized, it will be.
See Also
--------
#### Reference
[EmailClientWrapper Class][2]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: README.md

@ -0,0 +1,41 @@
EmailClientWrapper.PerformClientMethod Method (Action&lt;Pop3Client>, Action&lt;ImapClient, IMailFolder>)
=========================================================================================================
Performs the client method [Action][1].
**Namespace:**  [GrayDuckMail.Common][2]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
private void PerformClientMethod(
Action<Pop3Client> pop3Method,
Action<ImapClient, IMailFolder> imapMethod
)
```
#### Parameters
##### *pop3Method*
Type: [System.Action][3]&lt;Pop3Client>
The pop 3 method.
##### *imapMethod*
Type: [System.Action][4]&lt;ImapClient, IMailFolder>
The IMAP method.
See Also
--------
#### Reference
[EmailClientWrapper Class][5]
[GrayDuckMail.Common Namespace][2]
[System.Action][1]
[1]: https://learn.microsoft.com/dotnet/api/system.action
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.action-1
[4]: https://learn.microsoft.com/dotnet/api/system.action-2
[5]: README.md

@ -0,0 +1,48 @@
EmailClientWrapper.PerformClientMethod&lt;T> Method (Func&lt;Pop3Client, T>, Func&lt;ImapClient, IMailFolder, T>)
=================================================================================================================
Performs the client method [Func&lt;T, TResult>][1].
**Namespace:**  [GrayDuckMail.Common][2]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
private T PerformClientMethod<T>(
Func<Pop3Client, T> pop3Method,
Func<ImapClient, IMailFolder, T> imapMethod
)
```
#### Parameters
##### *pop3Method*
Type: [System.Func][1]&lt;Pop3Client, **T**>
The pop 3 method.
##### *imapMethod*
Type: [System.Func][3]&lt;ImapClient, IMailFolder, **T**>
The IMAP method.
#### Type Parameters
##### *T*
Generic type parameter.
#### Return Value
Type: **T**
A T object.
See Also
--------
#### Reference
[EmailClientWrapper Class][4]
[GrayDuckMail.Common Namespace][2]
[1]: https://docs.microsoft.com/dotnet/api/system.func-2
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.func-3
[4]: README.md

@ -0,0 +1,87 @@
EmailClientWrapper Class
========================
A wrapper that allows for configurable use of either a MailKitPop3Client or an ImapClient.
Inheritance Hierarchy
---------------------
[System.Object][1]
  **GrayDuckMail.Common.EmailClientWrapper**
**Namespace:**  [GrayDuckMail.Common][2]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public class EmailClientWrapper : IDisposable
```
The **EmailClientWrapper** type exposes the following members.
Constructors
------------
|   | Name | Description |
| --------------------------------- | ----------------------- | ------------ |
| ![Private method]![Static member] | [EmailClientWrapper][3] | |
| ![Public method] | [EmailClientWrapper][4] | Constructor. |
Properties
----------
|   | Name | Description |
| ------------------- | -------------------- | --------------------------------------------------------- |
| ![Public property] | [EmailClientType][5] | Gets the type of the email client the wrapper represents. |
| ![Private property] | [IMAPClient][6] | Gets the IMAP client. |
| ![Private property] | [POP3Client][7] | Gets the POP3 client. |
Methods
-------
|   | Name | Description |
| ----------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| ![Public method] | [Authenticate][8] | Authenticate using the specified SASL method. |
| ![Public method] | [Connect][9] | Establish a connection to the specified mail server. |
| ![Public method] | [DeleteMessage][10] | Marks the specified message for deletion. |
| ![Public method] | [Disconnect][11] | Disconnects the service. |
| ![Public method] | [Dispose][12] | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. |
| ![Public method] | [GetMessages][13] | Gets all messages. |
| ![Private method] | [PerformClientMethod(Action&lt;Pop3Client>, Action&lt;ImapClient, IMailFolder>)][14] | Performs the client method [Action][15]. |
| ![Private method] | [PerformClientMethod&lt;T>(Func&lt;Pop3Client, T>, Func&lt;ImapClient, IMailFolder, T>)][16] | Performs the client method [Func&lt;T, TResult>][17]. |
See Also
--------
#### Reference
[GrayDuckMail.Common Namespace][2]
Pop3Client
ImapClient
[1]: https://docs.microsoft.com/dotnet/api/system.object
[2]: ../README.md
[3]: _cctor.md
[4]: _ctor.md
[5]: EmailClientType.md
[6]: IMAPClient.md
[7]: POP3Client.md
[8]: Authenticate.md
[9]: Connect.md
[10]: DeleteMessage.md
[11]: Disconnect.md
[12]: Dispose.md
[13]: GetMessages.md
[14]: PerformClientMethod.md
[15]: https://learn.microsoft.com/dotnet/api/system.action
[16]: PerformClientMethod__1.md
[17]: https://docs.microsoft.com/dotnet/api/system.func-2
[Private method]: ../../icons/privmethod.gif "Private method"
[Static member]: ../../icons/static.gif "Static member"
[Public method]: ../../icons/pubmethod.svg "Public method"
[Public property]: ../../icons/pubproperty.svg "Public property"
[Private property]: ../../icons/privproperty.gif "Private property"

@ -0,0 +1,24 @@
EmailClientWrapper Constructor
==============================
Initializes the static fields of the [EmailClientWrapper][1] class
**Namespace:**  [GrayDuckMail.Common][2]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
static EmailClientWrapper()
```
See Also
--------
#### Reference
[EmailClientWrapper Class][1]
[GrayDuckMail.Common Namespace][2]
[1]: README.md
[2]: ../README.md

@ -0,0 +1,39 @@
EmailClientWrapper Constructor
==============================
Constructor.
**Namespace:**  [GrayDuckMail.Common][1]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public EmailClientWrapper(
EmailProtocol emailClientType,
string imapFolderName = null
)
```
#### Parameters
##### *emailClientType*
Type: [GrayDuckMail.Common.EmailProtocol][2]
Type of the email client the wrapper represents.
##### *imapFolderName* (Optional)
Type: [System.String][3]
(Optional) Pathname of the IMAP folder if the *emailClientType* is set to [IMAP][2].
See Also
--------
#### Reference
[EmailClientWrapper Class][4]
[GrayDuckMail.Common Namespace][1]
[1]: ../README.md
[2]: ../EmailProtocol/README.md
[3]: https://docs.microsoft.com/dotnet/api/system.string
[4]: README.md

@ -0,0 +1,36 @@
EmailProtocol Enumeration
=========================
Values that represent email protocols for the [EmailClientWrapper][1].
**Namespace:**  [GrayDuckMail.Common][2]
**Assembly:** gray-duck-mail-common.dll
Syntax
------
```csharp
public enum EmailProtocol
```
Members
-------
| Member name | Value | Description |
| ----------- | ----- | ------------------------------------------------------------------------ |
| **Unknown** | 0 | The default email type. If this is chosen, an error has likely occurred. |
| **POP3** | 1 | An email client that connects using the [POP3][3] protocol. |
| **IMAP** | 2 | An email client that connects using the [IMAP][4] protocol. |
See Also
--------
#### Reference
[GrayDuckMail.Common Namespace][2]
[GrayDuckMail.Common.EmailClientWrapper][1]
[1]: ../EmailClientWrapper/README.md
[2]: ../README.md
[3]: https://en.wikipedia.org/wiki/Post_Office_Protocol
[4]: https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol

@ -6,39 +6,43 @@ A collection of shared classes and structures used across the components that ma
Classes
-------
|   | Class | Description |
| --------------- | ------------------------ | ----------------------------------------------------------------------------------------- |
| ![Public class] | [EmailAliasHelper][1] | A helper class generating alias names based on the [BaseEmailAddress][2]. |
| ![Public class] | [EmailDefinition][3] | Defines an email to be sent. |
| ![Public class] | [EmailHelper][4] | A helper class that contains data and methods for manipulating and processing email data. |
| ![Public class] | [HTMLCleaner][5] | A helper class for cleaning HTML strings. |
| ![Public class] | [IndexedMimeMessage][6] | An indexed MimeMessage. |
| ![Public class] | [LINQExtensions][7] | A helper class containing extensions for [LINQ][8] operations. |
| ![Public class] | [NLogConfiguration][9] | A static class that contains the NLog configuration. |
| ![Public class] | [SearchCache&lt;T>][10] | A cache of search results. |
| ![Public class] | [SearchResult&lt;T>][11] | Encapsulates the result of a search on a given T. |
| ![Public class] | [Tree&lt;T>][12] | A branching tree structure that can recursively populate child nodes. |
|   | Class | Description |
| --------------- | ------------------------ | ------------------------------------------------------------------------------------------ |
| ![Public class] | [EmailAliasHelper][1] | A helper class generating alias names based on the [BaseEmailAddress][2]. |
| ![Public class] | [EmailClientWrapper][3] | A wrapper that allows for configurable use of either a MailKitPop3Client or an ImapClient. |
| ![Public class] | [EmailDefinition][4] | Defines an email to be sent. |
| ![Public class] | [EmailHelper][5] | A helper class that contains data and methods for manipulating and processing email data. |
| ![Public class] | [HTMLCleaner][6] | A helper class for cleaning HTML strings. |
| ![Public class] | [IndexedMimeMessage][7] | An indexed MimeMessage. |
| ![Public class] | [LINQExtensions][8] | A helper class containing extensions for [LINQ][9] operations. |
| ![Public class] | [NLogConfiguration][10] | A static class that contains the NLog configuration. |
| ![Public class] | [SearchCache&lt;T>][11] | A cache of search results. |
| ![Public class] | [SearchResult&lt;T>][12] | Encapsulates the result of a search on a given T. |
| ![Public class] | [Tree&lt;T>][13] | A branching tree structure that can recursively populate child nodes. |
Enumerations
------------
|   | Enumeration | Description |
| --------------------- | ------------------------- | ------------------------------------------------------------ |
| ![Public enumeration] | [EmailDefinitionType][13] | Values that represent the types of email sent by the system. |
|   | Enumeration | Description |
| --------------------- | ------------------------- | ---------------------------------------------------------------------- |
| ![Public enumeration] | [EmailDefinitionType][14] | Values that represent the types of email sent by the system. |
| ![Public enumeration] | [EmailProtocol][15] | Values that represent email protocols for the [EmailClientWrapper][3]. |
[1]: EmailAliasHelper/README.md
[2]: ../GrayDuckMail.Common.Database/DiscussionList/BaseEmailAddress.md
[3]: EmailDefinition/README.md
[4]: EmailHelper/README.md
[5]: HTMLCleaner/README.md
[6]: IndexedMimeMessage/README.md
[7]: LINQExtensions/README.md
[8]: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/
[9]: NLogConfiguration/README.md
[10]: SearchCache_1/README.md
[11]: SearchResult_1/README.md
[12]: Tree_1/README.md
[13]: EmailDefinitionType/README.md
[3]: EmailClientWrapper/README.md
[4]: EmailDefinition/README.md
[5]: EmailHelper/README.md
[6]: HTMLCleaner/README.md
[7]: IndexedMimeMessage/README.md
[8]: LINQExtensions/README.md
[9]: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/
[10]: NLogConfiguration/README.md
[11]: SearchCache_1/README.md
[12]: SearchResult_1/README.md
[13]: Tree_1/README.md
[14]: EmailDefinitionType/README.md
[15]: EmailProtocol/README.md
[Public class]: ../icons/pubclass.svg "Public class"
[Public enumeration]: ../icons/pubenumeration.svg "Public enumeration"

@ -12,7 +12,7 @@ Syntax
private static void ProcessBounces(
DiscussionList discussionList,
SqliteDatabase database,
Pop3Client pop3Client,
EmailClientWrapper client,
IndexedMimeMessage bounce
)
```
@ -27,12 +27,12 @@ Type: [GrayDuckMail.Common.Database.DiscussionList][2]
Type: [GrayDuckMail.Common.Database.SqliteDatabase][3]
The database.
##### *pop3Client*
Type: Pop3Client
The POP3 client.
##### *client*
Type: [GrayDuckMail.Common.EmailClientWrapper][4]
The email client.
##### *bounce*
Type: [GrayDuckMail.Common.IndexedMimeMessage][4]
Type: [GrayDuckMail.Common.IndexedMimeMessage][5]
The bounced message.
@ -40,11 +40,12 @@ See Also
--------
#### Reference
[EmailFetcher Class][5]
[EmailFetcher Class][6]
[GrayDuckMail.Web.Worker Namespace][1]
[1]: ../README.md
[2]: ../../GrayDuckMail.Common.Database/DiscussionList/README.md
[3]: ../../GrayDuckMail.Common.Database/SqliteDatabase/README.md
[4]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[5]: README.md
[4]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[5]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[6]: README.md

@ -13,8 +13,8 @@ private static void ProcessDiscussionMessages(
DiscussionList discussionList,
IndexedMimeMessage discussionMessage,
SqliteDatabase database,
Pop3Client pop3Client,
CancellationToken stoppingToken
EmailClientWrapper client,
CancellationToken cancellationToken = default
)
```
@ -32,26 +32,27 @@ Type: [GrayDuckMail.Common.IndexedMimeMessage][3]
Type: [GrayDuckMail.Common.Database.SqliteDatabase][4]
The database.
##### *pop3Client*
Type: Pop3Client
The POP3 client.
##### *client*
Type: [GrayDuckMail.Common.EmailClientWrapper][5]
The email client.
##### *stoppingToken*
Type: [System.Threading.CancellationToken][5]
Triggered when [StopAsync(CancellationToken)][6] is called.
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][6]
Triggered when [StopAsync(CancellationToken)][7] is called.
See Also
--------
#### Reference
[EmailFetcher Class][7]
[EmailFetcher Class][8]
[GrayDuckMail.Web.Worker Namespace][1]
[1]: ../README.md
[2]: ../../GrayDuckMail.Common.Database/DiscussionList/README.md
[3]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[4]: ../../GrayDuckMail.Common.Database/SqliteDatabase/README.md
[5]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[6]: https://docs.microsoft.com/dotnet/api/microsoft.extensions.hosting.ihostedservice.stopasync#microsoft-extensions-hosting-ihostedservice-stopasync(system-threading-cancellationtoken)
[7]: README.md
[5]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[6]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[7]: https://docs.microsoft.com/dotnet/api/microsoft.extensions.hosting.ihostedservice.stopasync#microsoft-extensions-hosting-ihostedservice-stopasync(system-threading-cancellationtoken)
[8]: README.md

@ -12,7 +12,7 @@ Syntax
private static void ProcessRequests(
DiscussionList discussionList,
SqliteDatabase database,
Pop3Client pop3Client,
EmailClientWrapper client,
IndexedMimeMessage request,
CancellationToken cancellationToken = default
)
@ -28,16 +28,16 @@ Type: [GrayDuckMail.Common.Database.DiscussionList][2]
Type: [GrayDuckMail.Common.Database.SqliteDatabase][3]
The database.
##### *pop3Client*
Type: Pop3Client
The POP3 client.
##### *client*
Type: [GrayDuckMail.Common.EmailClientWrapper][4]
The email client.
##### *request*
Type: [GrayDuckMail.Common.IndexedMimeMessage][4]
Type: [GrayDuckMail.Common.IndexedMimeMessage][5]
The request message.
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][5]
Type: [System.Threading.CancellationToken][6]
(Optional) A token that allows processing to be cancelled.
@ -45,12 +45,13 @@ See Also
--------
#### Reference
[EmailFetcher Class][6]
[EmailFetcher Class][7]
[GrayDuckMail.Web.Worker Namespace][1]
[1]: ../README.md
[2]: ../../GrayDuckMail.Common.Database/DiscussionList/README.md
[3]: ../../GrayDuckMail.Common.Database/SqliteDatabase/README.md
[4]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[5]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[6]: README.md
[4]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[5]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[6]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[7]: README.md

@ -12,7 +12,7 @@ Syntax
private static void ProcessSubscriptionConfirmations(
DiscussionList discussionList,
SqliteDatabase database,
Pop3Client pop3Client,
EmailClientWrapper client,
IndexedMimeMessage subscriptionConfirmation,
CancellationToken cancellationToken = default
)
@ -28,16 +28,16 @@ Type: [GrayDuckMail.Common.Database.DiscussionList][2]
Type: [GrayDuckMail.Common.Database.SqliteDatabase][3]
The database.
##### *pop3Client*
Type: Pop3Client
The POP3 client.
##### *client*
Type: [GrayDuckMail.Common.EmailClientWrapper][4]
The email client.
##### *subscriptionConfirmation*
Type: [GrayDuckMail.Common.IndexedMimeMessage][4]
Type: [GrayDuckMail.Common.IndexedMimeMessage][5]
The subscription confirmation.
##### *cancellationToken* (Optional)
Type: [System.Threading.CancellationToken][5]
Type: [System.Threading.CancellationToken][6]
(Optional) A token that allows processing to be cancelled.
@ -45,12 +45,13 @@ See Also
--------
#### Reference
[EmailFetcher Class][6]
[EmailFetcher Class][7]
[GrayDuckMail.Web.Worker Namespace][1]
[1]: ../README.md
[2]: ../../GrayDuckMail.Common.Database/DiscussionList/README.md
[3]: ../../GrayDuckMail.Common.Database/SqliteDatabase/README.md
[4]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[5]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[6]: README.md
[4]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[5]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[6]: https://docs.microsoft.com/dotnet/api/system.threading.cancellationtoken
[7]: README.md

@ -12,7 +12,7 @@ Syntax
private static void ProcessUnsubscribeConfirmations(
DiscussionList discussionList,
SqliteDatabase database,
Pop3Client pop3Client,
EmailClientWrapper client,
IndexedMimeMessage unsubscribeConfirmation
)
```
@ -27,12 +27,12 @@ Type: [GrayDuckMail.Common.Database.DiscussionList][2]
Type: [GrayDuckMail.Common.Database.SqliteDatabase][3]
The database.
##### *pop3Client*
Type: Pop3Client
The POP3 client.
##### *client*
Type: [GrayDuckMail.Common.EmailClientWrapper][4]
The email client.
##### *unsubscribeConfirmation*
Type: [GrayDuckMail.Common.IndexedMimeMessage][4]
Type: [GrayDuckMail.Common.IndexedMimeMessage][5]
The unsubscribe confirmation.
@ -40,11 +40,12 @@ See Also
--------
#### Reference
[EmailFetcher Class][5]
[EmailFetcher Class][6]
[GrayDuckMail.Web.Worker Namespace][1]
[1]: ../README.md
[2]: ../../GrayDuckMail.Common.Database/DiscussionList/README.md
[3]: ../../GrayDuckMail.Common.Database/SqliteDatabase/README.md
[4]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[5]: README.md
[4]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[5]: ../../GrayDuckMail.Common/IndexedMimeMessage/README.md
[6]: README.md

@ -0,0 +1,33 @@
DockerEnvironmentVariables.EmailProtocol Property
=================================================
Gets the email protocol to be used by [EmailClientWrapper][1].
**Namespace:**  [GrayDuckMail.Web][2]
**Assembly:** gray-duck-mail-web.exe
Syntax
------
```csharp
public static EmailProtocol EmailProtocol { get; }
```
#### Property Value
Type: [EmailProtocol][3]
The email protocol.
Remarks
-------
The default value is `POP3`.
See Also
--------
#### Reference
[DockerEnvironmentVariables Class][4]
[GrayDuckMail.Web Namespace][2]
[1]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[2]: ../README.md
[3]: ../../GrayDuckMail.Common/EmailProtocol/README.md
[4]: README.md

@ -0,0 +1,35 @@
DockerEnvironmentVariables.IMAPFolder Property
==============================================
Gets the pathname of the IMAP folder used by the [EmailClientWrapper][1] when [EmailProtocol][2] is [IMAP][3].
**Namespace:**  [GrayDuckMail.Web][4]
**Assembly:** gray-duck-mail-web.exe
Syntax
------
```csharp
public static string IMAPFolder { get; }
```
#### Property Value
Type: [String][5]
The pathname of the IMAP folder.
Remarks
-------
The default value is `INBOX`.
See Also
--------
#### Reference
[DockerEnvironmentVariables Class][6]
[GrayDuckMail.Web Namespace][4]
[1]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[2]: EmailProtocol.md
[3]: ../../GrayDuckMail.Common/EmailProtocol/README.md
[4]: ../README.md
[5]: https://docs.microsoft.com/dotnet/api/system.string
[6]: README.md

@ -32,17 +32,19 @@ Constructors
Properties
----------
|   | Name | Description |
| ---------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![Public property]![Static member] | [FetchTime][4] | Gets the time between fetching email from the remote server. |
| ![Public property]![Static member] | [LogLevel][5] | Gets the verbosity level with which to log application events. |
| ![Public property]![Static member] | [MinimumSearchScore][6] | Gets the minimum viable search score. |
| ![Public property]![Static member] | [RateLimitPerRoundCount][7] | Gets the of queued emails that can be sent in one round. |
| ![Public property]![Static member] | [RateLimitRoundWaitTime][8] | Gets the time between rounds sending email messages. |
| ![Public property]![Static member] | [WebExternalURL][9] | Gets a URL used when creating an unsubscribe link. |
| ![Public property]![Static member] | [WebOnly][10] | Gets a value that if set, only the web interface will be initialized. [Background worker threads][11] will not be initialized. |
| ![Public property]![Static member] | [WebUnsubscribe][12] | Gets a value indicating whether the an externally accessable unsubscription link is supported. If set to true, messages will replace the unsubscribe link with a link pointing toward [!:]. |
| ![Public property]![Static member] | [WebUseHTTPS][13] | Gets a value indicating whether the an externally accessable unsubscription link should assume HTTPS transport. |
|   | Name | Description |
| ---------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![Public property]![Static member] | [EmailProtocol][4] | Gets the email protocol to be used by [EmailClientWrapper][5]. |
| ![Public property]![Static member] | [FetchTime][6] | Gets the time between fetching email from the remote server. |
| ![Public property]![Static member] | [IMAPFolder][7] | Gets the pathname of the IMAP folder used by the [EmailClientWrapper][5] when [EmailProtocol][4] is [IMAP][8]. |
| ![Public property]![Static member] | [LogLevel][9] | Gets the verbosity level with which to log application events. |
| ![Public property]![Static member] | [MinimumSearchScore][10] | Gets the minimum viable search score. |
| ![Public property]![Static member] | [RateLimitPerRoundCount][11] | Gets the of queued emails that can be sent in one round. |
| ![Public property]![Static member] | [RateLimitRoundWaitTime][12] | Gets the time between rounds sending email messages. |
| ![Public property]![Static member] | [WebExternalURL][13] | Gets a URL used when creating an unsubscribe link. |
| ![Public property]![Static member] | [WebOnly][14] | Gets a value that if set, only the web interface will be initialized. [Background worker threads][15] will not be initialized. |
| ![Public property]![Static member] | [WebUnsubscribe][16] | Gets a value indicating whether the an externally accessable unsubscription link is supported. If set to true, messages will replace the unsubscribe link with a link pointing toward [!:]. |
| ![Public property]![Static member] | [WebUseHTTPS][17] | Gets a value indicating whether the an externally accessable unsubscription link should assume HTTPS transport. |
See Also
@ -52,22 +54,26 @@ See Also
[GrayDuckMail.Web Namespace][2]
#### Other Resources
[https://docs.docker.com/compose/environment-variables/][14]
[https://docs.docker.com/compose/environment-variables/][18]
[1]: https://docs.microsoft.com/dotnet/api/system.object
[2]: ../README.md
[3]: _cctor.md
[4]: FetchTime.md
[5]: LogLevel.md
[6]: MinimumSearchScore.md
[7]: RateLimitPerRoundCount.md
[8]: RateLimitRoundWaitTime.md
[9]: WebExternalURL.md
[10]: WebOnly.md
[11]: https://docs.microsoft.com/dotnet/api/microsoft.extensions.hosting.backgroundservice
[12]: WebUnsubscribe.md
[13]: WebUseHTTPS.md
[14]: https://docs.docker.com/compose/environment-variables/
[4]: EmailProtocol.md
[5]: ../../GrayDuckMail.Common/EmailClientWrapper/README.md
[6]: FetchTime.md
[7]: IMAPFolder.md
[8]: ../../GrayDuckMail.Common/EmailProtocol/README.md
[9]: LogLevel.md
[10]: MinimumSearchScore.md
[11]: RateLimitPerRoundCount.md
[12]: RateLimitRoundWaitTime.md
[13]: WebExternalURL.md
[14]: WebOnly.md
[15]: https://docs.microsoft.com/dotnet/api/microsoft.extensions.hosting.backgroundservice
[16]: WebUnsubscribe.md
[17]: WebUseHTTPS.md
[18]: https://docs.docker.com/compose/environment-variables/
[Private method]: ../../icons/privmethod.gif "Private method"
[Static member]: ../../icons/static.gif "Static member"
[Public property]: ../../icons/pubproperty.svg "Public property"

@ -46,6 +46,36 @@
<topic id="M:GrayDuckMail.Common.EmailAliasHelper.GetUnsubscribeAlias(System.String)"
file="GrayDuckMail.Common/EmailAliasHelper/GetUnsubscribeAlias_1.md"/>
</topic>
<topic id="T:GrayDuckMail.Common.EmailClientWrapper"
file="GrayDuckMail.Common/EmailClientWrapper/README.md"
title="EmailClientWrapper">
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.#cctor"
file="GrayDuckMail.Common/EmailClientWrapper/_cctor.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.#ctor(GrayDuckMail.Common.EmailProtocol,System.String)"
file="GrayDuckMail.Common/EmailClientWrapper/_ctor.md"/>
<topic id="P:GrayDuckMail.Common.EmailClientWrapper.EmailClientType"
file="GrayDuckMail.Common/EmailClientWrapper/EmailClientType.md"/>
<topic id="P:GrayDuckMail.Common.EmailClientWrapper.IMAPClient"
file="GrayDuckMail.Common/EmailClientWrapper/IMAPClient.md"/>
<topic id="P:GrayDuckMail.Common.EmailClientWrapper.POP3Client"
file="GrayDuckMail.Common/EmailClientWrapper/POP3Client.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.Authenticate(System.String,System.String,System.Threading.CancellationToken)"
file="GrayDuckMail.Common/EmailClientWrapper/Authenticate.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.Connect(System.String,System.Int32,System.Boolean,System.Threading.CancellationToken)"
file="GrayDuckMail.Common/EmailClientWrapper/Connect.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.DeleteMessage(System.Int32,System.Threading.CancellationToken)"
file="GrayDuckMail.Common/EmailClientWrapper/DeleteMessage.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.Disconnect(System.Boolean,System.Threading.CancellationToken)"
file="GrayDuckMail.Common/EmailClientWrapper/Disconnect.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.Dispose"
file="GrayDuckMail.Common/EmailClientWrapper/Dispose.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.GetMessages(System.Threading.CancellationToken)"
file="GrayDuckMail.Common/EmailClientWrapper/GetMessages.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.PerformClientMethod(System.Action{MailKit.Net.Pop3.Pop3Client},System.Action{MailKit.Net.Imap.ImapClient,MailKit.IMailFolder})"
file="GrayDuckMail.Common/EmailClientWrapper/PerformClientMethod.md"/>
<topic id="M:GrayDuckMail.Common.EmailClientWrapper.PerformClientMethod``1(System.Func{MailKit.Net.Pop3.Pop3Client,``0},System.Func{MailKit.Net.Imap.ImapClient,MailKit.IMailFolder,``0})"
file="GrayDuckMail.Common/EmailClientWrapper/PerformClientMethod__1.md"/>
</topic>
<topic id="T:GrayDuckMail.Common.EmailDefinition"
file="GrayDuckMail.Common/EmailDefinition/README.md"
title="EmailDefinition">
@ -123,6 +153,9 @@
<topic id="F:GrayDuckMail.Common.EmailHelper.STATUS_GROUP_ACTION_FAILED"
file="GrayDuckMail.Common/EmailHelper/STATUS_GROUP_ACTION_FAILED.md"/>
</topic>
<topic id="T:GrayDuckMail.Common.EmailProtocol"
file="GrayDuckMail.Common/EmailProtocol/README.md"
title="EmailProtocol"/>
<topic id="T:GrayDuckMail.Common.HTMLCleaner"
file="GrayDuckMail.Common/HTMLCleaner/README.md"
title="HTMLCleaner">
@ -409,8 +442,12 @@
title="DockerEnvironmentVariables">
<topic id="M:GrayDuckMail.Web.DockerEnvironmentVariables.#cctor"
file="GrayDuckMail.Web/DockerEnvironmentVariables/_cctor.md"/>
<topic id="P:GrayDuckMail.Web.DockerEnvironmentVariables.EmailProtocol"
file="GrayDuckMail.Web/DockerEnvironmentVariables/EmailProtocol.md"/>
<topic id="P:GrayDuckMail.Web.DockerEnvironmentVariables.FetchTime"
file="GrayDuckMail.Web/DockerEnvironmentVariables/FetchTime.md"/>
<topic id="P:GrayDuckMail.Web.DockerEnvironmentVariables.IMAPFolder"
file="GrayDuckMail.Web/DockerEnvironmentVariables/IMAPFolder.md"/>
<topic id="P:GrayDuckMail.Web.DockerEnvironmentVariables.LogLevel"
file="GrayDuckMail.Web/DockerEnvironmentVariables/LogLevel.md"/>
<topic id="P:GrayDuckMail.Web.DockerEnvironmentVariables.MinimumSearchScore"
@ -919,15 +956,15 @@
file="GrayDuckMail.Web.Worker/EmailFetcher/FilterMessages.md"/>
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.FilterMessages(System.Collections.Generic.IEnumerable{GrayDuckMail.Common.IndexedMimeMessage},System.String)"
file="GrayDuckMail.Web.Worker/EmailFetcher/FilterMessages_1.md"/>
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessBounces(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,MailKit.Net.Pop3.Pop3Client,GrayDuckMail.Common.IndexedMimeMessage)"
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessBounces(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,GrayDuckMail.Common.EmailClientWrapper,GrayDuckMail.Common.IndexedMimeMessage)"
file="GrayDuckMail.Web.Worker/EmailFetcher/ProcessBounces.md"/>
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessDiscussionMessages(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.IndexedMimeMessage,GrayDuckMail.Common.Database.SqliteDatabase,MailKit.Net.Pop3.Pop3Client,System.Threading.CancellationToken)"
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessDiscussionMessages(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.IndexedMimeMessage,GrayDuckMail.Common.Database.SqliteDatabase,GrayDuckMail.Common.EmailClientWrapper,System.Threading.CancellationToken)"
file="GrayDuckMail.Web.Worker/EmailFetcher/ProcessDiscussionMessages.md"/>
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessRequests(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,MailKit.Net.Pop3.Pop3Client,GrayDuckMail.Common.IndexedMimeMessage,System.Threading.CancellationToken)"
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessRequests(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,GrayDuckMail.Common.EmailClientWrapper,GrayDuckMail.Common.IndexedMimeMessage,System.Threading.CancellationToken)"
file="GrayDuckMail.Web.Worker/EmailFetcher/ProcessRequests.md"/>
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessSubscriptionConfirmations(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,MailKit.Net.Pop3.Pop3Client,GrayDuckMail.Common.IndexedMimeMessage,System.Threading.CancellationToken)"
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessSubscriptionConfirmations(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,GrayDuckMail.Common.EmailClientWrapper,GrayDuckMail.Common.IndexedMimeMessage,System.Threading.CancellationToken)"
file="GrayDuckMail.Web.Worker/EmailFetcher/ProcessSubscriptionConfirmations.md"/>
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessUnsubscribeConfirmations(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,MailKit.Net.Pop3.Pop3Client,GrayDuckMail.Common.IndexedMimeMessage)"
<topic id="M:GrayDuckMail.Web.Worker.EmailFetcher.ProcessUnsubscribeConfirmations(GrayDuckMail.Common.Database.DiscussionList,GrayDuckMail.Common.Database.SqliteDatabase,GrayDuckMail.Common.EmailClientWrapper,GrayDuckMail.Common.IndexedMimeMessage)"
file="GrayDuckMail.Web.Worker/EmailFetcher/ProcessUnsubscribeConfirmations.md"/>
</topic>
<topic id="T:GrayDuckMail.Web.Worker.EmailSender"

Loading…
Cancel
Save