diff --git a/App/.vs/SERV_EMAIL/DesignTimeBuild/.dtbcache b/App/.vs/SERV_EMAIL/DesignTimeBuild/.dtbcache
index 65e68a9..4bc3b0c 100644
Binary files a/App/.vs/SERV_EMAIL/DesignTimeBuild/.dtbcache and b/App/.vs/SERV_EMAIL/DesignTimeBuild/.dtbcache differ
diff --git a/App/.vs/SERV_EMAIL/v15/.suo b/App/.vs/SERV_EMAIL/v15/.suo
index 07ac5e9..8a4f5c5 100644
Binary files a/App/.vs/SERV_EMAIL/v15/.suo and b/App/.vs/SERV_EMAIL/v15/.suo differ
diff --git a/App/CONFIG_APP/bin/Debug/AE.Net.Mail.dll b/App/CONFIG_APP/bin/Debug/AE.Net.Mail.dll
deleted file mode 100644
index fc7157f..0000000
Binary files a/App/CONFIG_APP/bin/Debug/AE.Net.Mail.dll and /dev/null differ
diff --git a/App/CONFIG_APP/bin/Debug/AE.Net.Mail.pdb b/App/CONFIG_APP/bin/Debug/AE.Net.Mail.pdb
deleted file mode 100644
index 5ad716a..0000000
Binary files a/App/CONFIG_APP/bin/Debug/AE.Net.Mail.pdb and /dev/null differ
diff --git a/App/CONFIG_APP/bin/Debug/CONFIG_APP.exe b/App/CONFIG_APP/bin/Debug/CONFIG_APP.exe
index 1697ce3..02e3f0a 100644
Binary files a/App/CONFIG_APP/bin/Debug/CONFIG_APP.exe and b/App/CONFIG_APP/bin/Debug/CONFIG_APP.exe differ
diff --git a/App/CONFIG_APP/bin/Debug/CONFIG_APP.pdb b/App/CONFIG_APP/bin/Debug/CONFIG_APP.pdb
index a03eba3..6777e3e 100644
Binary files a/App/CONFIG_APP/bin/Debug/CONFIG_APP.pdb and b/App/CONFIG_APP/bin/Debug/CONFIG_APP.pdb differ
diff --git a/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.dll b/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.dll
index 74cc564..e40f034 100644
Binary files a/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.dll and b/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.dll differ
diff --git a/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.pdb b/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.pdb
index e443f43..87cdc1a 100644
Binary files a/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.pdb and b/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.pdb differ
diff --git a/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.xml b/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.xml
index 0e67dde..f42200e 100644
--- a/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.xml
+++ b/App/CONFIG_APP/bin/Debug/DigitalData.EMLProfiler.xml
@@ -22,6 +22,12 @@ DigitalData.EMLProfiler
resource lookups using this strongly typed resource class.
+
+
+ Uses a private API from MailWriter to write a MailMessage to disk.
+ May break in future versions of .NET
+
+
Konstruktor für die windream-Klasse
diff --git a/App/CONFIG_APP/bin/Debug/S22.Imap.dll b/App/CONFIG_APP/bin/Debug/S22.Imap.dll
new file mode 100644
index 0000000..2786078
Binary files /dev/null and b/App/CONFIG_APP/bin/Debug/S22.Imap.dll differ
diff --git a/App/CONFIG_APP/bin/Debug/S22.Imap.xml b/App/CONFIG_APP/bin/Debug/S22.Imap.xml
new file mode 100644
index 0000000..9995b3c
--- /dev/null
+++ b/App/CONFIG_APP/bin/Debug/S22.Imap.xml
@@ -0,0 +1,7178 @@
+
+
+
+ S22.Imap
+
+
+
+
+ Defines supported means of authenticating with an IMAP server.
+
+
+
+
+ Automatically selects the most-secure authentication mechanism supported by the server.
+
+
+
+
+ Login using plaintext password authentication; This is supported by most servers.
+
+
+
+
+ Login using the SASL PLAIN authentication mechanism.
+
+
+
+
+ Login using the CRAM-MD5 authentication mechanism.
+
+
+
+
+ Login using the DIGEST-MD5 authentication mechanism.
+
+
+
+
+ Login using OAuth via the SASL XOAuth mechanism.
+
+
+
+
+ Login using OAuth 2.0 via the SASL XOAUTH2 mechanism.
+
+
+
+
+ Login using the NTLM authentication mechanism.
+
+
+
+
+ Login using the NTLMv2 authentication mechanism.
+
+
+
+
+ Login using the NTLM/NTLMv2 authentication mechanism via Microsoft's Security Support
+ Provider Interface (SSPI).
+
+
+
+
+ Login using Kerberos authentication via the SASL GSSAPI mechanism.
+
+
+
+
+ Login using the SCRAM-SHA-1 authentication mechanism.
+
+
+
+
+ Login using the Secure Remote Password (SRP) authentication mechanism.
+
+ The SRP mechanism is only available when targeting .NET 4.0 or newer.
+
+
+
+ A utility class modeled after the BCL StringBuilder to simplify
+ building binary-data messages.
+
+
+
+
+ The actual byte buffer.
+
+
+
+
+ The current position in the buffer.
+
+
+
+
+ Resizes the internal byte buffer.
+
+ Amount in bytes by which to increase the
+ size of the buffer.
+
+
+
+ Appends one or several byte values to this instance.
+
+ Byte values to append.
+ A reference to the calling instance.
+
+
+
+ Appends the specified number of bytes from the specified buffer
+ starting at the specified offset to this instance.
+
+ The buffer to append bytes from.
+ The offset into the buffert at which to start
+ reading bytes from.
+ The number of bytes to read from the buffer.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit integer value to this instance.
+
+ A 32-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit short value to this instance.
+
+ A 16-bit short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit unsigend short value to this instance.
+
+ A 16-bit unsigend short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit unsigned integer value to this instance.
+
+ A 32-bit unsigned integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 64-bit integer value to this instance.
+
+ A 64-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified string using the specified encoding to this
+ instance.
+
+ The string vale to append.
+ The encoding to use for decoding the string value
+ into a sequence of bytes. If this is null, ASCII encoding is used as a
+ default.
+ A reference to the calling instance.
+
+
+
+ Returns the ByteBuilder's content as an array of bytes.
+
+ An array of bytes.
+
+
+
+ Removes all bytes from the current ByteBuilder instance.
+
+
+
+
+ The length of the underlying data buffer.
+
+
+
+
+ A filter stream sitting between Negotiate- and NetworkStream to
+ enable managed NTLM/GSSAPI authentication.
+
+
+ We use a filter for hooking into the NegotiateStream protocol rather
+ than p/invoking SSPI directly as that would require unmanaged
+ code privileges (internally NegotiateStream uses an SSPI wrapper).
+
+ NegotiateStream - FilterStream - NetworkStream.
+
+
+
+
+ A buffer for accumulating handshake data until an entire handshake
+ has been read.
+
+
+
+
+ A buffer for accumulating the payload data following the handshake
+ data.
+
+
+
+
+ The latest handshake header sent by the client.
+
+
+
+
+ The buffer from which client reads will be satisfied.
+
+
+
+
+ The number of bytes the client has already consumed/read
+ from the receivedData buffer.
+
+
+
+
+ The current state of the filter stream.
+
+
+
+
+ Determines whether this instance should close the inner stream
+ when disposed.
+
+
+
+
+ An error code as specified by the NegotiateStream protocol which is
+ handed to the NegotiateStream instance in case authentication
+ unexpectedly fails.
+
+
+
+
+ Gets the stream used by this FilterStream for sending and
+ receiving data.
+
+
+
+
+ Initializes a new instance of the FilterStream class using the
+ specified Stream.
+
+ A Stream object used by the FilterStream for sending
+ and receiving data.
+ Set to true to indicate that closing this
+ FilterStream has no effect on innerstream, or set to false to
+ indicate that closing this FilterStream also closes innerStream.
+
+
+
+ Reads data from this stream and stores it in the specified array.
+
+ A byte array that receives the bytes read from
+ the stream.
+ The zero-based index into the buffer at which to
+ begin storing the data read from this stream.
+ The the maximum number of bytes to read from the
+ stream.
+ The the number of bytes read from the underlying stream. When
+ there is no more data to be read, returns 0.
+ The read operation failed.
+
+
+
+ Reads the server response from the underlying inner stream.
+
+
+
+
+ Write the specified number of bytes to the underlying stream using the
+ specified buffer and offset.
+
+ A byte array that supplies the bytes written to
+ the stream.
+ The zero-based index in the buffer at which to
+ begin reading bytes to be written to the stream.
+ The number of bytes to read from buffer.
+ The write operation failed.
+
+
+
+ Reads the client's handshake from the specified buffer.
+
+ A byte array from which the handshake data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if the handshake has been read completely, otherwise
+ false.
+
+
+
+ Reads the payload from the specified buffer.
+
+ A byte array from which the payload data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if all of the payload data has been read, otherwise
+ false.
+
+
+
+ Sends the accumulated payload data to the server.
+
+ true if the client is done sending data, otherwise
+ false.
+
+
+
+ Reads a line of ASCII-encoded text terminated by a CRLF from the
+ specified stream.
+
+ The stream to read the line of text from.
+ Set this to true, to resolve automatically
+ resolve possible literals.
+ A line of ASII-encoded text read from the specified
+ stream.
+ "Literals" are a special feature of IMAP, employed by some
+ server implementations. Please refer to RFC 3501 Section 4.3 for
+ details.
+
+
+
+ Reads the specified number of bytes from the specified stream and
+ returns them as an ASCII-encoded string.
+
+ The stream to read from.
+ The number of bytes to read.
+ The read bytes encoded as an ASCII string.
+
+
+
+ Causes any buffered data to be written to the underlying device.
+
+
+
+
+ Throws NotSupportedException.
+
+ This value is ignored.
+ This value is ignored.
+ Always throws a NotSupportedException.
+
+
+
+ Sets the length of the underlying stream.
+
+ A value that specifies the length of the
+ stream.
+
+
+
+ Releases all resources used by the stream.
+
+ True to release both managed and unmanaged
+ resources, false to release only unmanaged resources.
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ readable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ seekable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream
+ supports time-outs.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ writable.
+
+
+
+
+ Gets the length of the underlying stream.
+
+
+
+
+ Gets or sets the current position in the underlying stream.
+
+ Setting this property
+ is not supported.
+
+
+
+ The different states the FilterStream can be in.
+
+
+
+
+ The stream is reading the client's handshake message.
+
+
+
+
+ The stream is reading the client's payload data.
+
+
+
+
+ The stream is waiting for the server's response.
+
+
+
+
+ The stream has buffered the server's response and is satisfying
+ client reads from its buffer.
+
+
+
+
+ Represents a NegotiateStream handshake message.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ Creates a new instance of the Handshake class using the specified type
+ and payload size.
+
+ The type of handshake.
+ The size, in bytes, of the payload following
+ the handshake header.
+
+
+
+ Private default constructor for deserializing.
+
+
+
+
+ Deserializes a handshake instance from the specified byte array.
+
+ An array of bytes containing handshake data.
+ An initialized instance of the Handshake class deserialized
+ from the specified byte array.
+ Thrown if the specified byte
+ array does not contain valid handshake data.
+
+
+
+ Serializes an instance of the Handshake class to a sequence of bytes.
+
+ A sequence of bytes representing this Handshake instance.
+
+
+
+ The type of the handshake message.
+
+
+
+
+ Specifies the major version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Specifies the minor version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Defines the size, in bytes, of the AuthPayload field, which immediately
+ follows the handshake.
+
+
+
+
+ Describes the different types of handshake messages.
+
+
+
+
+ The handshake has completed successfully.
+
+
+
+
+ An error occurred during the handshake. The AuthPayload field contains
+ an HRESULT.
+
+
+
+
+ The message is part of the handshake phase and is not the final message
+ from the host. The final Handshake message from a host is always
+ transferred in a HandshakeDone message.
+
+
+
+
+ Implements the Sasl SCRAM-SHA-1 authentication method as described in
+ RFC 5802.
+
+
+
+
+ The abstract base class from which all classes implementing a Sasl
+ authentication mechanism must derive.
+
+
+
+
+ Computes the client response to a challenge sent by the server.
+
+
+ The client response to the specified challenge.
+
+
+
+
+
+
+
+ Retrieves the base64-encoded client response for the specified
+ base64-encoded challenge sent by the server.
+
+ A base64-encoded string representing a challenge
+ sent by the server.
+ A base64-encoded string representing the client response to the
+ server challenge.
+ The IMAP, POP3 and SMTP authentication commands expect challenges
+ and responses to be base64-encoded. This method automatically decodes the
+ server challenge before passing it to the Sasl implementation and
+ encodes the client response to a base64-string before returning it to the
+ caller.
+ Thrown if the client response could
+ not be retrieved. Refer to the inner exception for error details.
+
+
+
+ Retrieves the client response for the specified server challenge.
+
+ A byte array containing the challenge sent by
+ the server.
+ An array of bytes representing the client response to the
+ server challenge.
+
+
+
+ IANA name of the authentication mechanism.
+
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ A map of mechanism-specific properties which are needed by the
+ authentication mechanism to compute it's challenge-responses.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Scram-Sha-1 involves several steps.
+
+
+
+
+ The salted password. This is needed for client authentication and later
+ on again for verifying the server signature.
+
+
+
+
+ The auth message is part of the authentication exchange and is needed for
+ authentication as well as for verifying the server signature.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslScramSha1
+ class using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified SCRAM-SHA-1 challenge.
+
+ The challenge sent by the server
+ The response to the SCRAM-SHA-1 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial response sent by the client to the server.
+
+ An array of bytes containing the initial client
+ response.
+
+
+
+ Computes the "client-final-message" which completes the authentication
+ process.
+
+ The "server-first-message" challenge received
+ from the server in response to the initial client response.
+ An array of bytes containing the client's challenge
+ response.
+
+
+
+ Verifies the nonce value sent by the server.
+
+ The nonce value sent by the server as part of the
+ server-first-message.
+ True if the nonce value is valid, otherwise false.
+
+
+
+ Verifies the server signature which is sent by the server as the final
+ step of the authentication process.
+
+ The server signature as a base64-encoded
+ string.
+ The client's response to the server. This will be an empty
+ byte array if verification was successful, or the '*' SASL cancellation
+ token.
+
+
+
+ Parses the "server-first-message" received from the server.
+
+ The challenge received from the server.
+ A collection of key/value pairs contained extracted from
+ the server message.
+ Thrown if the message parameter
+ is null.
+
+
+
+ Computes the "Hi()"-formula which is part of the client's response
+ to the server challenge.
+
+ The supplied password to use.
+ The salt received from the server.
+ The iteration count.
+ An array of bytes containing the result of the computation of the
+ "Hi()"-formula.
+
+ Hi is, essentially, PBKDF2 with HMAC as the pseudorandom function (PRF) and with
+ dkLen == output length of HMAC() == output length of H(). (Refer to RFC 5802, p.6)
+
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input data.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input to compute the hashcode for.
+ The hashcode of the specified data input.
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input string.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input string to compute the hashcode for.
+ The hashcode of the specified string.
+
+
+
+ Applies the cryptographic hash function SHA-1 to the specified data
+ array.
+
+ The data array to apply the hash function to.
+ The hash value for the specified byte array.
+
+
+
+ Applies the exclusive-or operation to combine the specified byte array
+ a with the specified byte array b.
+
+ The first byte array.
+ The second byte array.
+ An array of bytes of the same length as the input arrays
+ containing the result of the exclusive-or operation.
+ Thrown if either argument is
+ null.
+ Thrown if the input arrays
+ are not of the same length.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ Prepares the specified string as is described in RFC 5802.
+
+ A string value.
+ A "Saslprepped" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Scram-Sha-1 authentication mechanism as described
+ in RFC 5802.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl Secure Remote Password (SRP) authentication
+ mechanism as is described in the IETF SRP 08 draft.
+
+
+ This requires .NET Framework 4 because it makes use of the System.Numeric namespace
+ which has only been part of .NET since version 4.
+
+ Some notes:
+ - Don't bother with the example given in the IETF 08 draft
+ document (7.5 Example); It is broken.
+ - Integrity and confidentiality protection is not implemented.
+ In fact, the "mandatory"-option is not supported at all.
+
+
+
+
+ SRP involves several steps.
+
+
+
+
+ The negotiated hash algorithm which will be used to perform any
+ message digest calculations.
+
+
+
+
+ The public key computed as part of the authentication exchange.
+
+
+
+
+ The client's private key used for calculating the client evidence.
+
+
+
+
+ The secret key shared between client and server.
+
+
+
+
+ The client evidence calculated as part of the authentication exchange.
+
+
+
+
+ The options chosen by the client, picked from the list of options
+ advertised by the server.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client private key to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslSrp class using
+ the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified SRP challenge.
+
+ The challenge sent by the server
+ The response to the SRP challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial response sent by the client to the server.
+
+ An array of bytes containing the initial client
+ response.
+
+
+
+ Computes the client response containing the client's public key and
+ evidence.
+
+ The challenge containing the protocol elements
+ received from the server in response to the initial client
+ response.
+ An array of bytes containing the client's challenge
+ response.
+ Thrown if the server specified any
+ mandatory options which are not supported.
+
+
+
+ Verifies the server signature which is sent by the server as the final
+ step of the authentication process.
+
+ The server signature as a base64-encoded
+ string.
+ The client's response to the server. This will be an empty
+ byte array if verification was successful, or the '*' SASL cancellation
+ token.
+
+
+
+ Selects a message digest algorithm from the specified list of
+ supported algorithms.
+
+ A tuple containing the name of the selected message digest
+ algorithm as well as the type.
+ Thrown if none of the algorithms
+ specified in the list parameter is supported.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the SRP authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ The authorization id (userid in draft jargon).
+
+
+
+
+ Represents the initial client-response sent to the server to initiate
+ the authentication exchange.
+
+
+
+
+ Creates a new instance of the ClientMessage1 class using the specified
+ username.
+
+ The username to authenticate with.
+ The authorization id to authenticate with.
+ Thrown if the username parameter
+ is null.
+
+
+
+ Serializes this instance of the ClientMessage1 class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ ClientMessage1 class.
+ Thrown if the cummultative length
+ of the serialized data fields exceeds the maximum number of bytes
+ allowed as per SRP specification.
+ SRP specification imposes a limit of 2,147,483,643 bytes on
+ the serialized data.
+
+
+
+ The username to authenticate with.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field.
+
+
+
+ The authorization identity to authenticate with.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field.
+
+
+
+ The session identifier of a previous session whose parameters the
+ client wishes to re-use.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field. If the client wishes to initialize a new session,
+ this parameter must be set to the empty string.
+
+
+
+ The client's nonce used in deriving a new shared context key from
+ the shared context key of the previous session.
+
+ SRP specification imposes a limit of 255 bytes on this
+ field. If not needed, it must be set to an empty byte array.
+
+
+
+ Represents the second client-response sent to the server as part of
+ the SRP authentication exchange.
+
+
+
+
+ Creates and initializes a new instance of the ClientMessage2 class.
+
+
+
+
+ Creates and initializes a new instance of the ClientMessage2 class using
+ the specified public key and client proof.
+
+ The client's public key.
+ The calculated client proof.
+ Thrown if either the public key
+ or the proof parameter is null.
+
+
+
+ Serializes this instance of the ClientMessage2 class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ ClientMessage2 class.
+ Thrown if the cummultative length
+ of the serialized data fields exceeds the maximum number of bytes
+ allowed as per SRP specification.
+ SRP specification imposes a limit of 2,147,483,643 bytes on
+ the serialized data.
+
+
+
+ Serializes the client's options collection into a comma-seperated
+ options string.
+
+ A comma-seperated string containing the client's chosen
+ options.
+
+
+
+ The client's ephemeral public key.
+
+
+
+
+ The evidence which proves to the server client-knowledge of the shared
+ context key.
+
+
+
+
+ The options list indicating the security services chosen by the client.
+
+
+
+
+ The initial vector the server will use to set up its encryption
+ context, if confidentiality protection will be employed.
+
+
+
+
+ Adds extension methods to the BinaryReader class to simplify the
+ deserialization of SRP messages.
+
+
+
+
+ Reads an unsigned integer value from the underlying stream,
+ optionally using big endian byte ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the integer value
+ as big endian value.
+ The 32-byte unsigned integer value read from the underlying
+ stream.
+
+
+
+ Reads an unsigned short value from the underlying stream, optionally
+ using big endian byte ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the short value
+ as big endian value.
+ The 16-byte unsigned short value read from the underlying
+ stream.
+
+
+
+ Reads a "multi-precision integer" from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the Mpi class decoded from the bytes read
+ from the underlying stream.
+
+
+
+ Reads an "octet-sequence" from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the OctetSequence class decoded from the bytes
+ read from the underlying stream.
+
+
+
+ Reads an UTF-8 string from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the Utf8String class decoded from the bytes
+ read from the underlying stream.
+
+
+
+ Contains helper methods for calculating the various components of the
+ SRP authentication exchange.
+
+
+
+
+ The trace source used for informational and debug messages.
+
+
+
+
+ Determines whether the specified modulus is valid.
+
+ The modulus to validate.
+ True if the specified modulus is valid, otherwise
+ false.
+
+
+
+ Determines whether the specified generator is valid.
+
+ The generator to validate.
+ True if the specified generator is valid, otherwise
+ false.
+
+
+
+ Generates a random "multi-precision integer" which will act as the
+ client's private key.
+
+ The client's ephemeral private key as a "multi-precision
+ integer".
+
+
+
+ Calculates the client's ephemeral public key.
+
+ The generator sent by the server.
+ The safe prime modulus sent by
+ the server.
+ The client's private key.
+ The client's ephemeral public key as a
+ "multi-precision integer".
+
+ A = Client Public Key
+ g = Generator
+ a = Client Private Key
+ N = Safe Prime Modulus
+
+
+
+
+ Calculates the shared context key K from the given parameters.
+
+ The user's password salt.
+ The username to authenticate with.
+ The password to authenticate with.
+ The client's ephemeral public key.
+ The server's ephemeral public key.
+ The client's private key.
+ The generator sent by the server.
+ The safe prime modulus sent by the
+ server.
+ The negotiated hash algorithm to use
+ for the calculations.
+ The shared context key K as a "multi-precision
+ integer".
+
+ A = Client Public Key
+ B = Server Public Key
+ N = Safe Prime Modulus
+ U = Username
+ p = Password
+ s = User's Password Salt
+ a = Client Private Key
+ g = Generator
+ K = Shared Public Key
+
+
+
+
+ Computes the client evidence from the given parameters.
+
+ The safe prime modulus sent by the
+ server.
+ The generator sent by the server.
+ The username to authenticate with.
+ The client's password salt.
+ The client's ephemeral public key.
+ The server's ephemeral public key.
+ The shared context key.
+ The authorization identity.
+ The raw options string as received from the
+ server.
+ The message digest algorithm to use for
+ calculating the client proof.
+ The client proof as an array of bytes.
+
+
+
+ Computes the server evidence from the given parameters.
+
+ The client's ephemeral public key.
+
+ The shared context key.
+ The authorization identity.
+ The raw options string as sent by the
+ client.
+ The session id sent by the server.
+ The time-to-live value for the session id sent
+ by the server.
+ The message digest algorithm to use for
+ calculating the server proof.
+ The server proof as an array of bytes.
+
+
+
+ Applies the exclusive-or operation to combine the specified byte array
+ a with the specified byte array b.
+
+ The first byte array.
+ The second byte array.
+ An array of bytes of the same length as the input arrays
+ containing the result of the exclusive-or operation.
+ Thrown if either argument is
+ null.
+ Thrown if the input arrays
+ are not of the same length.
+
+
+
+ Recommended values for the safe prime modulus (Refer to Appendix A.
+ "Modulus and Generator Values" of the IETF SRP draft).
+
+
+
+
+ Represents a "multi-precision integer" (MPI) as is described in the
+ SRP specification (3.2 Multi-Precision Integers, p.5).
+
+ Multi-Precision Integers, or MPIs, are positive integers used
+ to hold large integers used in cryptographic computations.
+
+
+
+ Creates a new "multi-precision integer" from the specified array
+ of bytes.
+
+ A big-endian sequence of bytes forming the
+ integer value of the multi-precision integer.
+
+
+
+ Creates a new "multi-precision integer" from the specified BigInteger
+ instance.
+
+ The BigInteger instance to initialize the MPI
+ with.
+
+
+
+ Returns a sequence of bytes in big-endian order forming the integer
+ value of this "multi-precision integer" instance.
+
+ Returns a sequence of bytes in big-endian order representing
+ this "multi-precision integer" instance.
+
+
+
+ Serializes the "multi-precision integer" into a sequence of bytes
+ according to the requirements of the SRP specification.
+
+ A big-endian sequence of bytes representing the integer
+ value of the MPI.
+
+
+
+ The underlying BigInteger instance used to represent this
+ "multi-precision integer".
+
+
+
+
+ Represents an "octet-sequence" as is described in the SRP specification
+ (3.3 Octet sequences, p.6).
+
+
+
+
+ Creates a new instance of the OctetSequence class using the specified
+ byte array.
+
+ The sequence of bytes to initialize this instance
+ of the OctetSequence class with.
+
+
+
+ Serializes this instance of the OctetSequence class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ OctetSequence class.
+ Thrown if the length of the byte
+ sequence exceeds the maximum number of bytes allowed as per SRP
+ specification.
+ SRP specification imposes a limit of 255 bytes on the
+ length of the underlying byte array.
+
+
+
+ The underlying byte array forming this instance of the OctetSequence
+ class.
+
+
+
+
+ Represents the first message sent by the server in response to an
+ initial client-response.
+
+
+
+
+ Deserializes a new instance of the ServerMessage1 class from the
+ specified buffer of bytes.
+
+ The byte buffer to deserialize the ServerMessage1
+ instance from.
+ An instance of the ServerMessage1 class deserialized from the
+ specified byte array.
+ Thrown if the byte buffer does not
+ contain valid data.
+
+
+
+ Parses the options string sent by the server.
+
+ A comma-delimited options string.
+ An initialized instance of the NameValueCollection class
+ containing the parsed server options.
+
+
+
+ The safe prime modulus sent by the server.
+
+
+
+
+ The generator sent by the server.
+
+
+
+
+ The user's password salt.
+
+
+
+
+ The server's ephemeral public key.
+
+
+
+
+ The options list indicating available security services.
+
+
+
+
+ The raw options as received from the server.
+
+
+
+
+ Represents the second message sent by the server as part of the SRP
+ authentication exchange.
+
+
+
+
+ Deserializes a new instance of the ServerMessage2 class from the
+ specified buffer of bytes.
+
+ The byte buffer to deserialize the ServerMessage2
+ instance from.
+ An instance of the ServerMessage2 class deserialized from the
+ specified byte array.
+ Thrown if the byte buffer does not
+ contain valid data.
+
+
+
+ The evidence which proves to the client server-knowledge of the shared
+ context key.
+
+
+
+
+ The initial vector the client will use to set up its encryption
+ context, if confidentiality protection will be employed.
+
+
+
+
+ The session identifier the server has given to this session.
+
+
+
+
+ The time period for which this session's parameters may be re-usable.
+
+
+
+
+ Represents an UTF-8 string as is described in the SRP specification
+ (3.5 Text, p.6).
+
+
+
+
+ The value of the UTF-8 string.
+
+
+
+
+ Creates a new instance of the Utf8String class using the specified
+ string value.
+
+ The string to initialize the Utf8String instance
+ with.
+
+
+
+ Serializes this instance of the Utf8String class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ Utf8String class.
+ Thrown if the string value exceeds
+ the maximum number of bytes allowed as per SRP specification.
+ SRP specification imposes a limit of 65535 bytes on the
+ string data after it has been encoded into a sequence of bytes
+ using an encoding of UTF-8.
+
+
+
+ Represents a MIME body part of a mail message that has multiple
+ parts.
+
+
+
+
+ Initializes a new instance of the Bodypart class with default
+ values.
+
+ The part number as is expected by the
+ IMAP FETCH command.
+
+
+
+ Returns a detailed description listing all properties of this
+ Bodypart instance.
+
+ A string describing this instance of the Bodypart class
+
+
+
+ The body part number which acts as part specifier for
+ the FETCH BODY command.
+
+
+
+
+ The MIME content-type of this body part. The content-type is
+ used to declare the general type of data.
+
+
+
+
+ The MIME content-subtype of this body part. The subtype
+ specifies a specific format for the type of data.
+
+
+
+
+ Parameter values present in the MIME content-type header
+ of this body part (for instance, 'charset').
+
+
+
+
+ The MIME content-id of this body part, if any. This value
+ may be used for uniquely identifying MIME entities in
+ several contexts.
+
+
+
+
+ The MIME content-description of this body part. This value
+ may contain some descriptive information on the body part.
+
+
+
+
+ The MIME content-transfer-encoding mechanism used for
+ encoding this body part's data.
+
+
+
+
+ The size of this body part in bytes. Note that this size
+ is the size in its transfer encoding and not the resulting
+ size after any decoding.
+
+
+
+
+ The size of the body in text lines. This field is only
+ present in body parts with a content-type of text.
+
+
+
+
+ The computed MD5-Hash of the body part. This field is not
+ mandatory and may be empty.
+
+
+
+
+ The MIME content-disposition for this body part. This field
+ is not mandatory and may be empty.
+
+
+
+
+ A string giving the body language. This field is not mandatory
+ and may be empty.
+
+
+
+
+ A string list giving the body content URI. This field is not
+ mandatory and may be empty.
+
+
+
+
+ Provides a means for parsing the textual description of the body structure of a mail
+ message as is returned by an IMAP server for a "FETCH BODYSTRUCTURE" command.
+
+
+ They couldn't have made the BODYSTRUCTURE any more complicated and unnecessarily
+ hard to parse. I wonder what they were thinking when they came up with this.
+
+
+
+
+ Parses the body structure of a mail message as is returned by the IMAP server
+ in response to a FETCH BODYSTRUCTURE command.
+
+ The body structure server response
+ An array of initialized Bodypart objects representing the body
+ structure of the mail message
+ Thrown if the passed string does not
+ contain a valid body structure and parsing failed.
+
+
+
+ A Reader object initialized with the string containing the bodystructure
+ response.
+
+
+
+
+ Initializes a new instance of the Bodystructure class.
+
+
+
+
+
+ Parses a bodypart entry from the body structure and advances the
+ read pointer.
+
+ The designated part specifier by which the body
+ part is refered to by the server.
+ Set to true if the bodypart is enclosed
+ in parenthesis.
+
+
+
+
+ Parses the mandatory extra fields that are present if the bodypart is
+ of type message/rfc822 (see RFC 3501, p. 75).
+
+ The bodypart instance the parsed fields will be
+ added to.
+
+
+
+ Parses the optional fields of a bodypart entry from the body structure
+ and advances the read pointer.
+
+ The bodypart instance the parsed fields will be
+ added to.
+ Set to true if the bodypart entry is enclosed
+ in parenthesis.
+
+
+
+ Parses a list of bodypart entries as is outlined in the description of the
+ BODYPART response in RFC 3501.
+
+ The nesting prefix that will be prefixed to the
+ bodyparts partNumber.
+ An array of initialized Bodypart objects parsed from the
+ list.
+
+
+
+ Advances the read pointer to skip over a multipart entry.
+
+
+
+
+ Advances the read pointer to skip over an arbitrary
+ expression enclosed in parentheses.
+
+
+
+
+ Represents the content disposition as is presented in the BODYSTRUCTURE
+ response by the IMAP server.
+
+
+
+
+ Initializes a new instance of the ContentDisposition class with
+ default values.
+
+
+
+
+ Maps MIME content disposition string values to their corresponding
+ counter-parts of the ContentDispositionType enumeration.
+
+
+
+
+ The content disposition specifies the presentation style.
+
+
+
+
+ Additional attribute fields for specifying the name of a file, the creation
+ date and modification date, which can be used by the reader's mail user agent
+ to store the attachment.
+
+
+
+
+ Contains the name of the transmitted file if the content-disposition is of type
+ "Attachment" and if the name value was provided as part of the header information.
+ This field may be empty.
+
+
+
+
+ Possible values for the content disposition type which determines the presentation
+ style
+
+
+
+
+ The content disposition could not be determined.
+
+
+
+
+ An inline content disposition means that the content should be automatically
+ displayed when the message is displayed.
+
+
+
+
+ An attachment content disposition means that the content should not be displayed
+ automatically and requires some form of action from the user to open it.
+
+
+
+
+ Possible values for the "Encoding" property of the Bodypart class. The content
+ transfer encoding indicates whether or not a binary-to-text encoding
+ scheme has been used on top of the original encoding as specified within the
+ Content-Type header.
+
+
+
+
+ The content tranfer encoding could not be determined or is unknown.
+
+
+
+
+ Up to 998 bytes per line of the code range 1 - 127 with CR and LF only
+ allowed to appear as part of a CRLF line ending.
+
+
+
+
+ Up to 998 bytes per line with CR and LF only allowed to appear as part
+ of a CRLF line ending.
+
+
+
+
+ Any sequence of bytes.
+
+
+
+
+ Byte sequence is encoded using the quoted-printable encoding.
+
+
+
+
+ Byte sequence is encoded using Base64 encoding.
+
+
+
+
+ Possible values for the "Type" property of the Bodypart class.
+ For a detailed description of MIME Media Types refer to
+ RFC 2046.
+
+
+
+
+ The "text" media type is intended for sending material which
+ is principally textual in form.
+
+
+
+
+ A media type of "image" indicates that the body contains an image.
+ The subtype names the specific image format.
+
+
+
+
+ A media type of "audio" indicates that the body contains audio
+ data.
+
+
+
+
+ A media type of "video" indicates that the body contains a
+ time-varying-picture image, possibly with color and coordinated sound.
+
+
+
+
+ The "application" media type is to be used for discrete data which do
+ not fit in any of the other categories, and particularly for data to
+ be processed by some type of application program.
+
+
+
+
+ The "message" content type allows messages to contain other messages
+ or pointers to other messages.
+
+
+
+
+ The media type value is unknown or could not be determined.
+
+
+
+
+ A helper class for parsing the BODYSTRUCTURE response of an
+ IMAP FETCH command more conveniently.
+
+
+
+
+ Initializes a new instance of the Reader class that reads from the
+ specified string.
+
+ The string to which the Reader instance should be
+ initialized.
+
+
+
+ Reads the next character from the input string and advances the
+ character position by one character.
+
+ The next character from the underlying string.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Returns the next available character but does not consume it.
+
+ Set to true to skip any preceding
+ whitespace characters.
+ An integer representing the next character to be read,
+ or -1 if no more characters are available.
+
+
+
+ Advances the character position until the specified character
+ is encountered.
+
+ The character to skip to.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Advances the character position over any whitespace characters
+ and subsequently ensures the next read will not return a
+ whitespace character.
+
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads characters until the specified character is encountered.
+
+ The character to read up to.
+ The read characters as a string value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a word from the underlying string. A word in this context
+ is a literal enclosed in double-quotes.
+
+ The read word.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads an integer from the underlying string.
+
+ The read integer value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a list from the underlying string. A list in this context
+ is a list of attribute/value literals (enclosed in double-quotes)
+ enclosed in parenthesis.
+
+ The read list as a dictionary with the attribute names
+ as keys and attribute values as values.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a disposition from the underlying string. A disposition in
+ this context is a list of attribute/value literals (enclosed in
+ double-quotes) preceded by a word enclosed in parenthesis.
+
+ An initialized ContentDisposition instance representing
+ the parsed disposition.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ The exception that is thrown when reading is attempted past the end
+ of a string.
+
+
+
+
+ Initializes a new instance of the EndOfStringException class
+
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the EndOfStringException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Defines the different means by which mail messages may be fetched from the server.
+
+
+
+
+ Fetches the entire mail message with all of its content.
+
+
+
+
+ Only the mail message headers will be retrieved, while the actual content will not be
+ downloaded. If this option is specified, only the header fields of the returned MailMessage
+ object will be initialized.
+
+
+
+
+ Retrieves the mail message, but will only download content that has a content-type of text.
+ This will retrieve text as well as HTML representation, while skipping inline content and
+ attachments.
+
+
+
+
+ Retrieves the mail message, but skips any content that is an attachment.
+
+
+
+
+ Provides data for IMAP idle error events.
+
+
+
+
+ Initializes a new instance of the IdleErrorEventArgs class.
+
+ The exception that causes the event.
+ The instance of the ImapClient class that raised the event.
+ The exception parameter or the client parameter
+ is null.
+
+
+
+ The exception that caused the error event.
+
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Provides data for IMAP idle notification events.
+
+
+
+
+ Initializes a new instance of the IdleMessageEventArgs class and sets the
+ MessageCount attribute to the value of the
+ parameter.
+
+ The number of messages in the selected mailbox.
+ The unique identifier (UID) of the newest message in the
+ mailbox.
+ The instance of the ImapClient class that raised the event.
+
+
+
+ The total number of messages in the selected mailbox.
+
+
+
+
+ The unique identifier (UID) of the newest message in the mailbox.
+
+ The UID can be passed to the GetMessage method in order to retrieve the mail
+ message from the server.
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ This constructor is solely used for unit testing.
+
+ A stream to initialize the ImapClient instance with.
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port
+ on the specified host, optionally using the Secure Socket Layer (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets
+ Layer (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example shows how to establish a connection with an IMAP server
+ and print out the IMAP options, which the server supports.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ // Print out the server's capabilities.
+ foreach(string s in Client.Capabilities())
+ Console.WriteLine(s);
+
+ Client.Dispose();
+
+
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port on
+ the specified host, optionally using the Secure Socket Layer (SSL) security protocol and
+ attempts to authenticate with the server using the specified authentication method and
+ credentials.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer
+ (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ The provided credentials were rejected by the
+ server.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Connects to the specified port on the specified host, optionally using the Secure Socket Layer
+ (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer (SSL)
+ certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received
+ from the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+
+
+ Determines whether the specified response is a valid IMAP OK response.
+
+ A response string received from the server.
+ A tag if the response is associated with a command.
+ true if the response is a valid IMAP OK response; Otherwise false.
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Performs authentication using the most secure authentication mechanism supported by the
+ server.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+ The order of preference of authentication types employed by this method is
+ Ntlm, Scram-Sha-1, Digest-Md5, followed by Cram-Md5 and finally plaintext Login as
+ a last resort.
+
+
+
+ Performs an actual IMAP "LOGIN" command using the specified username and plain-text
+ password.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+
+
+
+ Performs NTLM and Kerberos authentication via the Security Support Provider Interface (SSPI).
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ True to authenticate using NTLM, otherwise GSSAPI (Kerberos) is
+ used.
+ The response sent by the server.
+ The specified authentication method is not
+ supported by the server.
+
+
+
+ Performs authentication using a SASL authentication mechanism via IMAP's authenticate
+ command.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The name of the SASL authentication mechanism to use.
+ The response sent by the server.
+ The authentication mechanism with the specified name could
+ not be found.
+ The specified authentication mechanism is not
+ supported by the server.
+ An unexpected response has been received from
+ the server.
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Generates a unique identifier to prefix a command with, as is required by the IMAP protocol.
+
+ A unique identifier string.
+
+
+
+ Sends a command string to the server. This method blocks until the command has been
+ transmitted.
+
+ The command to send to the server. The string is suffixed by CRLF
+ prior to sending.
+
+
+
+ Sends a command string to the server and subsequently waits for a response, which is then
+ returned to the caller. This method blocks until the server response has been received.
+
+ The command to send to the server. This is suffixed by CRLF prior
+ to sending.
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ The response received by the server.
+
+
+
+ Waits for a response from the server. This method blocks until a response has been received.
+
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ A response string from the server
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Reads the specified amount of bytes from the server. This method blocks until the specified
+ amount of bytes has been read from the network stream.
+
+ The number of bytes to read.
+ The read bytes as an ASCII-encoded string.
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Selects the specified mailbox so that the messages of the mailbox can be accessed.
+
+ The mailbox to select. If this parameter is null, the
+ default mailbox is selected.
+ The specified mailbox could not be selected.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ IMAP Idle must be paused or stopped before calling this method.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of special-use flags associated with the specified mailbox.
+
+ The mailbox to receive the special-use flags for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ An enumerable collection of special-use flags set on the specified
+ mailbox.
+ This feature is an optional extension to the IMAP protocol and as such some servers
+ may not report any flags at all.
+
+
+
+ Retrieves status information (total number of messages, number of unread messages, etc.) for
+ the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxStatus object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the mail header for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the mail header for.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw mail header of the mail message with the specified
+ UID.
+ The mail header could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the body structure for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the body structure for.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw body structure of the mail message with the specified
+ UID.
+ The body structure could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A body structure is a textual description of the layout of a mail message. It is
+ described in some detail in RFC 3501 under 7.4.2 FETCH response.
+
+
+
+ Retrieves the MIME body-part with the specified part number of the multipart message with
+ the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve a MIME body part for.
+ The part number of the body part to fetch.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the specified body part of the mail message with the specified
+ UID.
+ The body part could not be fetched. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the raw MIME/RFC822 mail message data for the mail message with the specified UID.
+
+ The UID of the mail message to retrieve as a MIME/RFC822 string.
+ Set this to true to set the \Seen flag for the fetched message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw MIME/RFC822 data of the mail message with the
+ specified UID.
+ The mail message data could not be fetched.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the highest UID in the specified mailbox.
+
+ The mailbox to find the highest UID for. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ The highest unique identifier value (UID) in the mailbox.
+ The UID could not be determined. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The highest UID usually corresponds to the newest message in a mailbox.
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Starts receiving of IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when already receiving idle notifications has no
+ effect.
+
+
+
+
+
+
+ Stops receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when not receiving idle notifications has no effect.
+
+
+
+
+
+ Temporarily pauses receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ To resume receiving IDLE notifications ResumeIdling must be called.
+
+
+
+
+
+
+ Resumes receiving IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ The main idle loop. Waits for incoming IMAP IDLE notifications and dispatches
+ them as events. This runs in its own thread whenever IMAP IDLE
+ notifications are being received.
+
+
+
+
+ Blocks on a queue and wakes up whenever a new notification is put into the queue. The
+ notification is then examined and dispatched as an event.
+
+
+
+
+ Issues a NOOP command to the IMAP server. Called in the context of a System.Timer event
+ when IDLE notifications are being received.
+
+ This is needed by the IMAP IDLE mechanism to give the server an indication that the
+ connection is still active.
+
+
+
+
+ Retrieves IMAP QUOTA information for the specified mailbox.
+
+ The mailbox to retrieve QUOTA information for. If this parameter is
+ null, the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ An enumerable collection of MailboxQuota objects describing usage and limits of the
+ quota roots for the mailbox.
+ The quota operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The IMAP4 QUOTA extension is not supported by
+ the server.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Releases all resources used by the current instance of the ImapClient class.
+
+
+
+
+ Releases all resources used by the current instance of the ImapClient class, optionally
+ disposing of managed resource.
+
+ true to dispose of managed resources, otherwise false.
+
+
+
+ Asserts the instance has not been disposed of and is in a valid state.
+
+ The ImapClient object has been
+ disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when an I/O exception occurs in the idle-thread.
+
+
+ An I/O exception can occur if the underlying network connection has been reset or the
+ server unexpectedly closed the connection.
+
+
+
+
+ A delegate which is invoked during a call to GetMessage or GetMessages for every MIME part in
+ a multipart mail message. The delegate can examine the MIME body part and decide to either
+ include it in the returned mail message or dismiss it.
+
+ A MIME body part of a mail message which consists of multiple parts.
+ true to include the body part in the returned MailMessage object, or false to skip
+ it.
+
+
+
+ The exception that is thrown when an unexpected response is received from the server.
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when the supplied credentials were rejected by the server.
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when a client has not authenticated with the server and
+ attempts to call a method which can only be called when authenticated.
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Provides access to status information such as the total number of messages and quota
+ information for a mailbox.
+
+
+ The terms "mailbox" and "folder" can be used interchangeably and refer to the IMAP concept of
+ multiple server-side directories into which messages can be stored (such as "Inbox",
+ "Sent Items", "Trash", etc.).
+
+
+
+
+ Initializes a new instance of the MailboxInfo class with the specified values.
+
+ The IMAP name of the mailbox.
+ The IMAP flags set on this mailbox.
+ The number of messages in the mailbox.
+ The number of unread messages in the mailbox.
+ The next unique identifier (UID) of the mailbox.
+ The amount of used storage of the mailbox, in bytes.
+ The amount of free storage of the mailbox, in bytes.
+
+
+
+ Returns the name of the mailbox.
+
+ The name of the mailbox
+
+
+
+ The name of the mailbox.
+
+
+
+
+ An enumerable collection of flags set on the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The amount of used storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of used storage, this property will be 0.
+
+
+
+
+ The amount of free storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of free storage, this property will be 0.
+
+
+
+
+ Defines possible attributes for mailboxes.
+
+
+
+ An IMAP mailbox can have a number of flags (read: attributes) set on it, indicating its
+ designated purpose (such as "Spam" or "Drafts").
+
+
+ This is especially convenient when dealing with international mailbox names, because, by
+ examining the associated flags, the mailbox purpose can be determined, even if the mailbox
+ name provides no useful indication.
+
+
+ Unfortunately, as with many things IMAP, reporting the flags described here is an optional
+ extension (XLIST) to the IMAP protocol and as such may or may not be supported by an IMAP
+ server.
+
+
+
+
+
+ The mailbox presents a view on all messages in the user's message store.
+
+
+
+
+ The mailbox is used to archive messages. The meaning of an "archival" mailbox is server
+ dependent.
+
+
+
+
+ The mailbox is used to hold draft messages, typically these are messages that are being
+ composed but have not yet been sent.
+
+
+
+
+ The mailbox is used to hold copies of messages that have been sent.
+
+
+
+
+ The mailbox is where messages deemed to be junk mail (spam) are held.
+
+
+
+
+ The mailbox is used to hold messages that have been deleted or marked for deletion.
+
+
+
+
+ Represents an IMAP QUOTA entry for a resource which typically consists of a resource name,
+ the current usage of the resource, and the resource limit.
+
+
+
+
+ Initializes a new instance of the MailboxQuota class with the specified values.
+
+ The name of the resource this MailboxQuota instance describes.
+ The current usage of the resource in units of 1024 bytes.
+ The limit of the resource in units of 1024 bytes.
+
+
+
+ The name of the resource this MailboxQuota instance describes.
+
+
+
+
+ The current usage of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ The limit of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ Represents the status information of a mailbox which can be constructed from the server
+ response to a STATUS command.
+
+
+
+
+ Initializes a new MailboxStatus instance with the specified number of total and unread
+ messages.
+
+ The total number of messages in the mailbox.
+ The number of unread (unseen) messages in the mailbox.
+ The next unique identifier value of the mailbox
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ Adds extension methods to the MailMessage class of the .NET Framework.
+
+
+ Most of the methods are only used internally and are not visible outside of the
+ S22.Imap assembly.
+
+
+
+
+ Returns the date and time the mail message was composed.
+
+ The MailMessage instance to return the date and time for.
+ The date and time the mail message was composed, or null if the mail message
+ does not contain any date information.
+
+
+
+ Constructs a textual representation of a mail message from the specified MailMessage
+ instance compliant with the RFC822 and MIME standards.
+
+ The MailMessage instance to construct the textual representation
+ from.
+ An RFC822/MIME-compliant string representing the specified mail message.
+ The From property is null or has not been
+ properly initialized.
+
+
+
+ Builds a RFC822/MIME-compliant mail header from the specified MailMessage instance and
+ returns it as a NameValueCollection.
+
+ The MailMessage instance to build the header from.
+ A NameValueCollection representing the RFC822/MIME mail header fields.
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ priority values as defined in RFC2156.
+
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ importance values as defined in RFC2156.
+
+
+
+
+ Takes a unicode string and encodes it using Q-encoding.
+
+ The string to encode.
+ The input string encoded as Q-encoded string containing only ASCII
+ characters.
+
+
+
+ Takes a unicode string and encodes it using Base64-encoding.
+
+ The string to encode.
+ The input string encoded as Base64-encoded string containing only ASCII
+ characters.
+
+
+
+ Creates an address string from the specified MailAddress instance in compliance with the
+ address specification as outlined in RFC2822 under section 3.4
+
+ The MailAddress instance to create the address string from.
+ An address string as is used in RFC822 mail headers.
+
+
+
+ Generates a unique sequence of characters for indicating a boundary between parts in a
+ multipart message.
+
+ A unique content boundary string.
+
+
+
+ Builds an RFC822/MIME-compliant mail body from the specified MailMessage instance and
+ returns it as a formatted string.
+
+ The MailMessage instance to build the mail body from.
+ The RFC822/MIME mail header to use for constructing the mail
+ body.
+ An RFC822/MIME-compliant mail body as a string.
+ According to RFC2822 each line of a mail message should at max be 78 characters in
+ length excluding carriage return and newline characters. This method accounts for that and
+ ensures line breaks are inserted to meet this requirement.
+
+
+
+ Adds a body part to the specified Stringbuilder object composed from the Body and
+ BodyEncoding properties of the MailMessage class.
+
+ The Stringbuilder to append the body part to.
+ The MailMessage instance to build the body part from.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ Set to true to append body headers before adding the actual body
+ part content.
+
+
+
+ Creates a MIME body part from an entry of the AlternateView or Attachments collection of a
+ MailMessage instance and appends it to the specified Stringbuilder instance.
+
+ The Stringbuilder instance to append the body part to.
+ An entry from either the AlternateView or the Attachments collection of
+ a MailMessage instance.
+
+
+
+ Creates a nested multipart/alternative part which contains all entries from the
+ AlternateViews collection of the specified MailMessage instance as well as the body part
+ for the Body and BodyEncoding properties of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose AlternateView collection will be added to the
+ nested multipart/alternative part.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ Creates a nested multipart/mixed part which contains all entries from the Attachments
+ collection of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose Attachments collection will be added to the
+ nested multipart/mixed part.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ A helper class for reading mail message data and building a MailMessage instance out of it.
+
+
+
+
+ Creates a new empty instance of the MailMessage class from a string containing a raw mail
+ message header.
+
+ The mail header to create the MailMessage instance from.
+ A MailMessage instance with initialized Header fields but without any
+ content.
+
+
+
+ Creates a new instance of the MailMessage class from a string containing raw RFC822/MIME
+ mail message data.
+
+ The mail message data to create the MailMessage instance from.
+ An initialized instance of the MailMessage class.
+ This is used when fetching entire messages instead of the partial-fetch mechanism
+ because it saves redundant round-trips to the server.
+
+
+
+ Parses the mail header of a mail message and returns it as a NameValueCollection.
+
+ The mail header to parse.
+ A NameValueCollection containing the header fields as keys with their respective
+ values as values.
+
+
+
+ Strips RFC822/MIME comments from the specified string.
+
+ The string to strip comments from.
+ A new string stripped of any comments.
+
+
+
+ Parses a MIME header field which can contain multiple 'parameter = value'
+ pairs (such as Content-Type: text/html; charset=iso-8859-1).
+
+ The header field to parse.
+ A NameValueCollection containing the parameter names as keys with the respective
+ parameter values as values.
+ The value of the actual field disregarding the 'parameter = value' pairs is stored
+ in the collection under the key "value" (in the above example of Content-Type, this would
+ be "text/html").
+
+
+
+ Parses a mail header address-list field such as To, Cc and Bcc which can contain multiple
+ email addresses.
+
+ The address-list field to parse
+ An array of MailAddress objects representing the parsed mail addresses.
+
+
+
+ Splits the specified address-list into individual parts consisting of a mail address and
+ optionally a display-name.
+
+ The address-list to split into parts.
+ An enumerable collection of parts.
+
+
+
+ Parses a mail message identifier from a string.
+
+ The field to parse the message id from
+ The field argument does not contain a valid message
+ identifier.
+ The parsed message id.
+ A message identifier (msg-id) is a globally unique identifier for a
+ message.
+
+
+
+ Parses the priority of a mail message which can be specified as part of the header
+ information.
+
+ The mail header priority value. The value can be null in which case
+ a "normal priority" is returned.
+ A value from the MailPriority enumeration corresponding to the specified mail
+ priority. If the passed priority value is null or invalid, a normal priority is assumed and
+ MailPriority.Normal is returned.
+
+
+
+ Sets the address fields (From, To, CC, etc.) of a MailMessage object using the specified
+ mail message header information.
+
+ The MailMessage instance to operate on.
+ A collection of mail and MIME headers.
+
+
+
+ Adds a body part to an existing MailMessage instance.
+
+ Extension method for the MailMessage class.
+ The body part to add to the MailMessage instance.
+ The content of the body part.
+
+
+
+ Creates an instance of the Attachment class used by the MailMessage class to store mail
+ message attachments.
+
+ The MIME body part to create the attachment from.
+ An array of bytes composing the content of the attachment.
+ An initialized instance of the Attachment class.
+
+
+
+ Creates an instance of the AlternateView class used by the MailMessage class to store
+ alternate views of the mail message's content.
+
+ The MIME body part to create the alternate view from.
+ An array of bytes composing the content of the alternate view.
+ An initialized instance of the AlternateView class.
+
+
+
+ Parses the body part of a MIME/RFC822 mail message.
+
+ The body of the mail message.
+ The header of the mail message whose body will be parsed.
+ An array of initialized MIMEPart instances representing the body parts of the mail
+ message.
+
+
+
+ Parses the body of a multipart MIME mail message.
+
+ An instance of the StringReader class initialized with a string
+ containing the body of the mail message.
+ The boundary value as is present as part of the Content-Type header
+ field in multipart mail messages.
+ An array of initialized MIMEPart instances representing the various parts of the
+ MIME mail message.
+
+
+
+ Glue method to create a bodypart from a MIMEPart instance.
+
+ The MIMEPart instance to create the bodypart instance from.
+ An initialized instance of the Bodypart class.
+
+
+
+ Defines possible attributes for mail messages on an IMAP server.
+
+
+
+
+ Indicates that the message has been read.
+
+
+
+
+ Indicates that the message has been answered.
+
+
+
+
+ Indicates that the message is "flagged" for urgent/special attention.
+
+
+
+
+ Indicates that the message has been marked as "deleted" and will be removed upon the next
+ call to the Expunge method.
+
+
+
+
+ Indicates that the message has not completed composition and is marked as a draft.
+
+
+
+
+ Indicates that the message has recently arrived in the mailbox.
+
+
+
+
+ Represents a part of a MIME multi-part message. Each part consists of its own content header
+ and a content body.
+
+
+
+
+ A collection containing the content header information as key-value pairs.
+
+
+
+
+ A string containing the content body of the part.
+
+
+
+
+ A thread-safe Queue.
+
+
+
+
+ Adds an object to the end of the queue.
+
+ The object to add to the queue.
+
+
+
+ Removes and returns the object at the beginning of the queue. If the queue is empty, the
+ method blocks the calling thread until an object is put into the queue by another thread.
+
+ The object that was removed from the beginning of the queue.
+
+
+
+ Adds extension methods to the BinaryReader class to simplify the
+ deserialization of NTLM messages.
+
+
+
+
+ Reads an ASCII-string of the specified length from this instance.
+
+ Extension method for the BinaryReader class.
+ The number of bytes to read from the underlying
+ stream.
+ A string decoded from the bytes read from the underlying
+ stream using the ASCII character set.
+
+
+
+ The NTLM flags which are contained in a bitfield within the header of
+ an NTLM message.
+
+
+
+
+ Indicates that Unicode strings are supported for use in security
+ buffer data.
+
+
+
+
+ Indicates that OEM strings are supported for use in security
+ buffer data.
+
+
+
+
+ Requests that the server's authentication realm be included in
+ the Type 2 message.
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should carry a digital signature (message integrity).
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should be encrypted (message confidentiality).
+
+
+
+
+ Indicates that datagram authentication is being used.
+
+
+
+
+ Indicates that the Lan Manager Session Key should be used for signing
+ and sealing authenticated communications.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Indicates that NTLM authentication is being used.
+
+
+
+
+ Sent by the client in the Type 3 message to indicate that an anonymous
+ context has been established. This also affects the response fields.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the name of
+ the domain in which the client workstation has membership is included
+ in the message. This is used by the server to determine whether the
+ client is eligible for local authentication.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the client
+ workstation's name is included in the message. This is used by the
+ server to determine whether the client is eligible for local
+ authentication.
+
+
+
+
+ Sent by the server to indicate that the server and client are on the
+ same machine. Implies that the client may use the established local
+ credentials for authentication instead of calculating a response to
+ the challenge.
+
+
+
+
+ Indicates that authenticated communication between the client and
+ server should be signed with a "dummy" signature.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a domain.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a server.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a share. Presumably, this is for share-level
+ authentication. Usage is unclear.
+
+
+
+
+ Indicates that the NTLM2 signing and sealing scheme should be used for
+ protecting authenticated communications. Note that this refers to a
+ particular session security scheme, and is not related to the use of
+ NTLMv2 authentication. This flag can, however, have an effect on the
+ response calculations.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that it is including
+ a Target Information block in the message. The Target Information block
+ is used in the calculation of the NTLMv2 response.
+
+
+
+
+ Indicates that 128-bit encryption is supported.
+
+
+
+
+ Indicates that the client will provide an encrypted master key in the
+ "Session Key" field of the Type 3 message.
+
+
+
+
+ Indicates that 56-bit encryption is supported.
+
+
+
+
+ Represents the data contained in the target information block of an
+ NTLM type 2 message.
+
+
+
+
+ The server name.
+
+
+
+
+ The domain name.
+
+
+
+
+ The fully-qualified DNS host name.
+
+
+
+
+ The fully-qualified DNS domain name.
+
+
+
+
+ Describes the different versions of the Type 2 message that have
+ been observed.
+
+
+
+
+ The version is unknown.
+
+
+
+
+ This form is seen in older Win9x-based systems.
+
+
+
+
+ This form is seen in most out-of-box shipping versions of Windows.
+
+
+
+
+ This form was introduced in a relatively recent Service Pack, and
+ is seen on currently-patched versions of Windows 2000, Windows XP,
+ and Windows 2003.
+
+
+
+
+ Indicates the type of data in Type 2 target information blocks.
+
+
+
+
+ Signals the end of the target information block.
+
+
+
+
+ The data in the information block contains the server name.
+
+
+
+
+ The data in the information block contains the domain name.
+
+
+
+
+ The data in the information block contains the DNS hostname.
+
+
+
+
+ The data in the information block contans the DNS domain name.
+
+
+
+
+ Computes the MD4 hash value for the input data.
+ Courtesy of Keith Wood.
+
+
+
+
+ Describes the different types of NTLM messages.
+
+
+
+
+ An NTLM type 1 message is the initial client response to the
+ server.
+
+
+
+
+ An NTLM type 2 message is the challenge sent by the server in
+ response to an NTLM type 1 message.
+
+
+
+
+ An NTLM type 3 message is the challenge response sent by the client
+ in response to an NTLM type 2 message.
+
+
+
+
+ Indicates the version and build number of the operating system.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Creates a new instance of the OSVersion class using the specified
+ values.
+
+ The major version of the operating
+ system.
+ The minor version of the operating
+ system.
+ The build number of the operating systen.
+
+
+
+ Serializes this instance of the OSVersion class to an array of
+ bytes.
+
+ An array of bytes representing this instance of the OSVersion
+ class.
+
+
+
+ The major version number of the operating system.
+
+
+
+
+ The minor version number of the operating system.
+
+
+
+
+ The build number of the operating system.
+
+
+
+
+ Contains methods for calculating the various Type 3 challenge
+ responses.
+
+
+
+
+ Computes the LM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account name to authenticate with.
+ The user account password.
+ The target information block from
+ the NTLM type 2 message.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the LMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account to authenticate with.
+ The user account password.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Creates the LM Hash of the specified password.
+
+ The password to create the LM Hash of.
+ The LM Hash of the given password, used in the calculation
+ of the LM Response.
+ Thrown if the password argument
+ is null.
+
+
+
+ Creates a DES encryption key from the specified key material.
+
+ The key material to create the DES encryption
+ key from.
+ An offset into the byte array at which to
+ extract the key material from.
+ A 56-bit DES encryption key as an array of bytes.
+
+
+
+ Applies odd parity to the specified byte array.
+
+ The byte array to apply odd parity to.
+ A reference to the byte array.
+
+
+
+ Creates the LM Response from the specified hash and Type 2 challenge.
+
+ An LM or NTLM hash.
+ The server challenge from the Type 2
+ message.
+ The challenge response as an array of bytes.
+ Thrown if the hash or the
+ challenge parameter is null.
+
+
+
+ Creates the NTLM Hash of the specified password.
+
+ The password to create the NTLM hash of.
+ The NTLM hash for the specified password.
+ Thrown if the password
+ parameter is null.
+
+
+
+ Creates the NTLMv2 Hash of the specified target, username
+ and password values.
+
+ The name of the authentication target as is
+ specified in the target name field of the NTLM type 3 message.
+ The user account name.
+ The password for the user account.
+ The NTLMv2 hash for the specified input values.
+ Thrown if the username or
+ the password parameter is null.
+
+
+
+ Returns the current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+ The current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+
+
+ Creates the "blob" data block which is part of the NTLMv2 challenge
+ response.
+
+ The target information block from
+ the NTLM type 2 message.
+ A random 8-byte client nonce.
+ The blob, used in the calculation of the NTLMv2 Response.
+
+
+
+ Creates the LMv2 Response from the given NTLMv2 hash, client data, and
+ Type 2 challenge.
+
+ The NTLMv2 Hash.
+ The client data (blob or client nonce).
+ The server challenge from the Type 2 message.
+ The response which is either for NTLMv2 or LMv2, depending
+ on the client data.
+
+
+
+ Represents an NTLM security buffer, which is a structure used to point
+ to a buffer of binary data within an NTLM message.
+
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The length of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length value exceeds
+ the maximum value allowed. The security buffer structure stores the
+ length value as a 2-byte short value.
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The data of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length of the data
+ buffer exceeds the maximum value allowed. The security buffer structure
+ stores the buffer length value as a 2-byte short value.
+
+
+
+ Serializes this instance of the SecurityBuffer into an array of bytes.
+
+ A byte array representing this instance of the SecurityBuffer
+ class.
+
+
+
+ The length of the buffer content in bytes (may be zero).
+
+
+
+
+ The allocated space for the buffer in bytes (typically the same as
+ the length).
+
+
+
+
+ The offset from the beginning of the NTLM message to the start of
+ the buffer, in bytes.
+
+
+
+
+ Represents an NTLM Type 1 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 1 for an NTLM Type 1 message.
+
+
+
+
+ Creates a new instance of the Type1Message class using the specified
+ domain and workstation names.
+
+ The domain in which the client's workstation has
+ membership.
+ The client's workstation name.
+ Thrown if the domain or the
+ workstation parameter is null.
+ Thrown if the domain
+ or the workstation name exceeds the maximum allowed string
+ length.
+ The domain as well as the workstation name is restricted
+ to ASCII characters and must not be longer than 65536 characters.
+
+
+
+
+ Serializes this instance of the Type1 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type1
+ class.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The supplied domain name as an array of bytes in the ASCII
+ range.
+
+
+
+
+ The offset within the message where the domain name data starts.
+
+
+
+
+ The supplied workstation name as an array of bytes in the
+ ASCII range.
+
+
+
+
+ The offset within the message where the workstation name data starts.
+
+
+
+
+ The length of the supplied workstation name as a 16-bit short value.
+
+
+
+
+ Contains information about the client's OS version.
+
+
+
+
+ Represents an NTLM Type 2 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 2 for an NTLM Type 2 message.
+
+
+
+
+ Private constructor.
+
+
+
+
+ Deserializes a Type 2 message instance from the specified buffer
+ of bytes.
+
+ The buffer containing a sequence of bytes
+ representing an NTLM Type 2 message.
+ An initialized instance of the Type2 class.
+ Thrown if an error occurs
+ during deserialization of the Type 2 message.
+
+
+
+ Determines the version of an NTLM type 2 message.
+
+ The target offset field of the NTLM
+ type 2 message.
+ A value from the Type2Version enumeration.
+
+
+
+ Reads the OS information data present in version 3 of an NTLM
+ type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the OSVersion class.
+
+
+
+ Reads the target information data present in version 2 and 3 of
+ an NTLM type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the Type2TargetInformation
+ class.
+
+
+
+ Retrieves the target name from the specified byte array.
+
+ A byte array containing the target name.
+ If true the target name will be decoded
+ using UTF-16 unicode encoding.
+
+
+
+
+ The challenge is an 8-byte block of random data.
+
+
+
+
+ The target name of the authentication target.
+
+
+
+
+ The NTLM flags set on this message.
+
+
+
+
+ The SSPI context handle when a local call is being made,
+ otherwise null.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The version of this Type 2 message instance.
+
+
+
+
+ Contains the data present in the target information block.
+
+
+
+
+ Contains the raw data present in the target information block.
+
+
+
+
+ Represents an NTLM Type 3 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 3 for an NTLM Type 3 message.
+
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts. All security buffers will
+ be encoded as Unicode.
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ Set this to true, if Unicode encoding has been
+ negotiated between client and server.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts.
+ Thrown if the username, password
+ or challenge parameters are null.
+
+
+
+ Serializes this instance of the Type3 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type3
+ class.
+
+
+
+ Returns a random 8-byte cnonce value.
+
+ A random 8-byte cnonce value.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The "Lan Manager" challenge response.
+
+
+
+
+ The offset at which the LM challenge response data starts.
+
+
+
+
+ The NTLM challenge response.
+
+
+
+
+ The offset at which the NTLM challenge response data starts.
+
+
+
+
+ The authentication realm in which the authenticating account
+ has membership.
+
+
+
+
+ The offset at which the target name data starts.
+
+
+
+
+ The authenticating account name.
+
+
+
+
+ The offset at which the username data starts.
+
+
+
+
+ The client workstation's name.
+
+
+
+
+ The offset at which the client workstation's name data starts.
+
+
+
+
+ The session key value which is used by the session security mechanism
+ during key exchange.
+
+
+
+
+ The offset at which the session key data starts.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The encoding used for transmitting the contents of the various
+ security buffers.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2195.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslCramMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Cram-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Cram-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Cram-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2831.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Cram-Md5 involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslDigestMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Digest-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Digest-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Parses the challenge string sent by the server in response to a Digest-Md5
+ authentication request.
+
+ The challenge sent by the server as part of
+ "Step One" of the Digest-Md5 authentication mechanism.
+ An initialized NameValueCollection instance made up of the
+ attribute/value pairs contained in the challenge.
+ Thrown if the challenge parameter
+ is null.
+ Refer to RFC 2831 section 2.1.1 for a detailed description of the
+ format of the challenge sent by the server.
+
+
+
+ Computes the "response-value" hex-string which is part of the
+ Digest-MD5 challenge-response.
+
+ A collection containing the attributes
+ and values of the challenge sent by the server.
+ The cnonce value to use for computing
+ the response-value.
+ The "digest-uri" string to use for
+ computing the response-value.
+ The username to use for computing the
+ response-value.
+ The password to use for computing the
+ response-value.
+ A string containing a hash-value which is part of the
+ response sent by the client.
+ Refer to RFC 2831, section 2.1.2.1 for a detailed
+ description of the computation of the response-value.
+
+
+
+ Calculates the MD5 hash value for the specified string.
+
+ The string to calculate the MD5 hash value for.
+ The encoding to employ for encoding the
+ characters in the specified string into a sequence of bytes for
+ which the MD5 hash will be calculated.
+ An MD5 hash as a 32-character hex-string.
+ Thrown if the input string
+ is null.
+
+
+
+ Encloses the specified string in double-quotes.
+
+ The string to enclose in double-quote characters.
+ The enclosed string.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Digest-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLM authentication method which is used in various
+ Microsoft network protocol implementations.
+
+ Implemented with the help of the excellent documentation on
+ NTLM composed by Eric Glass.
+
+
+
+ NTLM involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlm class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an NTLM challenge.
+
+ The challenge sent by the server. Since
+ NTLM expects an initial client response, this will usually be
+ empty.
+ The initial response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the NTLM authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLMv2 authentication method which addresses
+ some of the security issues present in NTLM version 1.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlmv2 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ Implements the Sasl OAuth authentication method.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ Thrown if the accessToken
+ parameter is null.
+ Thrown if the accessToken
+ parameter is empty.
+
+
+
+ Computes the client response for a OAuth challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth authentication mechanism.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl OAuth 2.0 authentication method.
+
+
+
+
+ The server sends an error response in case authentication fails
+ which must be acknowledged.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The username to authenticate with.
+ Thrown if the username
+ or the accessToken parameter is null.
+ Thrown if the username or
+ the accessToken parameter is empty.
+
+
+
+ Computes the client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth 2.0 authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl Plain authentication method as described in
+ RFC 4616.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslPlain class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response for a plain-challenge.
+
+ The challenge sent by the server. For the
+ "plain" mechanism this will usually be empty.
+ The response for the "plain"-challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Plain authentication mechanism as described
+ in RFC 4616.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The plain-text password to authenticate with.
+
+
+
+
+ The exception is thrown when a Sasl-related error or unexpected condition occurs.
+
+
+
+
+ Initializes a new instance of the SaslException class
+
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the SaslException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ A factory class for producing instances of Sasl mechanisms.
+
+
+
+
+ Creates an instance of the Sasl mechanism with the specified
+ name.
+
+ The name of the Sasl mechanism of which an
+ instance will be created.
+ An instance of the Sasl mechanism with the specified name.
+ Thrown if the name parameter
+ is null.
+ Thrown if the Sasl mechanism with the
+ specified name is not registered with Sasl.SaslFactory.
+
+
+
+ Registers a Sasl mechanism with the factory using the specified name.
+
+ The name with which to register the Sasl mechanism
+ with the factory class.
+ The type of the class implementing the Sasl mechanism.
+ The implementing class must be a subclass of Sasl.SaslMechanism.
+ Thrown if the name or the t
+ parameter is null.
+ Thrown if the class represented
+ by the specified type does not derive from Sasl.SaslMechanism.
+ Thrown if the Sasl mechanism could not
+ be registered with the factory. Refer to the inner exception for error
+ details.
+
+
+
+ Static class constructor. Initializes static properties.
+
+
+
+
+ A dictionary of Sasl mechanisms registered with the factory class.
+
+
+
+
+ Represents chainable search conditions that can be used with the Search method.
+
+
+
+
+ Finds all messages in the mailbox.
+
+ A SearchCondition object representing the "all" search criterion.
+
+
+
+ Finds messages that contain the specified string in the header or body of the message.
+
+ String to search messages for.
+ A SearchCondition object representing the "text" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's BCC field.
+
+ String to search the envelope structure's BCC field for.
+ A SearchCondition object representing the "BCC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages whose internal date (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the message's internal date with.
+ A SearchCondition object representing the "Before" search criterion.
+
+
+
+ Finds messages that contain the specified string in the body of the message.
+
+ String to search the message body for.
+ A SearchCondition object representing the "Body" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's CC field.
+
+ String to search the envelope structure's CC field for.
+ A SearchCondition object representing the "CC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's FROM field.
+
+ String to search the envelope structure's FROM field for.
+ A SearchCondition object representing the "FROM" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have a header with the specified field-name and that contains the
+ specified string in the text of the header.
+
+ field-name of the header to search for.
+ String to search for in the text of the header.
+ A SearchCondition object representing the "HEADER" search criterion.
+
+ If the string to search is zero-length, this matches all messages that have a header line
+ with the specified field-name regardless of the contents.
+
+ The name parameter or the text parameter is
+ null.
+
+
+
+ Finds messages with the specified keyword flag set.
+
+ The keyword flag to search for.
+ A SearchCondition object representing the "KEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with a size larger than the specified number of bytes.
+
+ Minimum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "LARGER" search criterion.
+
+
+
+ Finds messages with a size smaller than the specified number of bytes.
+
+ Maximum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "SMALLER" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTBEFORE" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within the specified
+ date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTON" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within or later than
+ the specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTSINCE" search criterion.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's SUBJECT field.
+
+ String to search the envelope structure's SUBJECT field for.
+ A SearchCondition object representing the "SUBJECT" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's TO field.
+
+ String to search the envelope structure's TO field for.
+ A SearchCondition object representing the "TO" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with unique identifiers corresponding to the specified unique identifier set.
+
+ One or several unique identifiers (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages with a unique identifier greater than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+ Because of the nature of the IMAP search mechanism, the result set will always contain the
+ UID of the last message in the mailbox, even if said UID is smaller than the UID specified.
+
+
+
+
+ Finds messages with a unique identifier less than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages that do not have the specified keyword flag set.
+
+ The IMAP keyword flag to search for.
+ A SearchCondition object representing the "UNKEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have the \Answered flag set.
+
+ A SearchCondition object representing the "ANSWERED" search criterion.
+
+
+
+ Finds messages that have the \Deleted flag set.
+
+ A SearchCondition object representing the "DELETED" search criterion.
+
+
+
+ Finds messages that have the \Draft flag set.
+
+ A SearchCondition object representing the "DRAFT" search criterion.
+
+
+
+ Finds messages that have the \Flagged flag set.
+
+ A SearchCondition object representing the "FLAGGED" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set but not the \Seen flag.
+
+ A SearchCondition object representing the "NEW" search criterion.
+
+
+
+ Finds messages that do not have the \Recent flag set.
+
+ A SearchCondition object representing the "OLD" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set.
+
+ A SearchCondition object representing the "RECENT" search criterion.
+
+
+
+ Finds messages that have the \Seen flag set.
+
+ A SearchCondition object representing the "SEEN" search criterion.
+
+
+
+ Finds messages that do not have the \Answered flag set.
+
+ A SearchCondition object representing the "UNANSWERED" search criterion.
+
+
+
+ Finds messages that do not have the \Deleted flag set.
+
+ A SearchCondition object representing the "UNDELETED" search criterion.
+
+
+
+ Finds messages that do not have the \Draft flag set.
+
+ A SearchCondition object representing the "UNDRAFT" search criterion.
+
+
+
+ Finds messages that do not have the \Flagged flag set.
+
+ A SearchCondition object representing the "UNFLAGGED" search criterion.
+
+
+
+ Finds messages that do not have the \Seen flag set.
+
+ A SearchCondition object representing the "UNSEEN" search criterion.
+
+
+
+ Logically ANDs multiple search conditions, meaning a message will only be included in the
+ search result if both of the ANDed conditions are met.
+
+ A search condition to logically AND this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically negates search conditions, meaning a message will only be included in the search
+ result if the specified conditions are not met.
+
+ A search condition that must not be met by a message for it to be
+ included in the search result set.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically ORs multiple search conditions, meaning a message will be included in the search
+ result if it meets at least either of the conditions.
+
+ A search condition to logically OR this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Joins two SearchCondition objects into a new one using the specified logical operator.
+
+ The logical operator to use for joining the search conditions.
+ Possible values are "OR", "NOT" and the empty string "" which denotes a logical AND.
+ The first SearchCondition object
+ The second SearchCondition object
+ A new SearchCondition object representing the two search conditions joined by the
+ specified logical operator.
+
+
+
+ Concatenates the members of a collection, using the specified separator between each
+ member.
+
+ The type of the members of values.
+ The string to use as a separator.
+ A collection that contains the objects to concatenate.
+ A string that consists of the members of values delimited by the separator
+ string. If values has no members, the method returns System.String.Empty.
+ The values parameter is null.
+ This is already part of the String class in .NET 4.0 and newer but is needed
+ for backwards compatibility with .NET 3.5.
+
+
+
+ Constructs a string from the SearchCondition object using the proper syntax as is required
+ for the IMAP SEARCH command.
+
+ A string representing this SearchCondition instance that can be used with the IMAP
+ SEARCH command.
+
+
+
+ The search keys which can be used with the IMAP SEARCH command, as are defined in section
+ 6.4.4 of RFC 3501.
+
+
+
+
+ A static utility class containing methods for decoding encoded non-ASCII data as well as
+ extension methods for some classes of the base class library.
+
+
+
+
+ Returns a copy of the string enclosed in double-quotes and with escaped CRLF, back-slash
+ and double-quote characters (as is expected by some commands of the IMAP protocol).
+
+ Extends the System.String class
+ A copy of the string enclosed in double-quotes and properly escaped as is required
+ by the IMAP protocol.
+
+
+
+ Returns true if the string contains only ASCII characters.
+
+ Extension method for the String class.
+ true if the string contains only ASCII characters; Otherwise false.
+
+
+
+ Splits a string into chunks of the specified number of characters.
+
+ Extension method for the String class.
+ The length of a chunk, measured in characters.
+ An array of string chunks.
+
+
+
+ Determines whether the specified string occurs within this string.
+
+ Extension method for the String class.
+ The string to seek.
+ One of the enumeration values that specifies the rules for the
+ search.
+ true if the value parameter occurs within this string, or if value is the empty
+ string (""); otherwise, false.
+ The value parameter is null.
+
+
+
+ Raises the event. Ensures the event is only raised, if it is not null.
+
+ Extends System.EventHandler class.
+ Extends System.EventHandler class.
+ The sender of the event.
+ The event arguments associated with this event.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ The name to use when throwing an exception, if necessary.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+ The name to use when throwing an exception, if necessary.
+
+
+
+ Reads an unsigned short value from the underlying stream, optionally using big-endian byte
+ ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the short value as big endian value.
+ The 16-byte unsigned short value read from the underlying stream.
+
+
+
+ Decodes a string composed of one or several MIME 'encoded-words'.
+
+ A string to composed of one or several MIME 'encoded-words'.
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A concatenation of all enconded-words in the passed string
+
+
+
+ Internal function reuse to add separation between multiple 'encoded-word's correctly.
+
+
+
+
+ The regular expression for matching encoded-words. This also accounts for the extension for
+ including language information (as defined in RFC2231).
+
+
+
+
+ Decodes a MIME 'encoded-word' string.
+
+ The encoded word to decode
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A decoded string
+ MIME encoded-word syntax is a way to encode strings that contain non-ASCII data.
+ Commonly used encodings for the encoded-word sytax are Q-Encoding and Base64. For an
+ in-depth description, refer to RFC 2047.
+
+
+
+ Takes a Q-encoded string and decodes it using the specified encoding.
+
+ The Q-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid Q-encoded string.
+ The Q-decoded string.
+
+
+
+ Takes a quoted-printable encoded string and decodes it using the specified encoding.
+
+ The quoted-printable-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid quoted-printable encoded
+ string.
+ A quoted-printable decoded string.
+
+
+
+ Decodes the specified MIME parameter value.
+
+ The MIME parameter value to decode.
+ The decoded MIME parameter value.
+ The specified value is not a valid Rfc2231-encoded
+ string.
+ Refer to RFC2231 for the details of the encoding mechanism.
+
+
+
+ Takes a Base64-encoded string and decodes it.
+
+ The Base64-encoded string to decode.
+ A byte array containing the Base64-decoded bytes of the input string.
+ The value parameter is null.
+ The length of value, ignoring white-space
+ characters, is not zero or a multiple of 4, or the format of value is invalid, or the value
+ contains a non-base-64 character, more than two padding characters, or a non-white
+ space-character among the padding characters.
+
+
+
+ Takes a UTF-16 encoded string and encodes it as modified UTF-7.
+
+ The string to encode.
+ A UTF-7 encoded string
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ Takes a modified UTF-7 encoded string and decodes it.
+
+ The UTF-7 encoded string to decode.
+ A UTF-16 encoded "standard" C# string
+ The input string is not a properly UTF-7 encoded
+ string.
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ This just wraps Encoding.GetEncoding in a try-catch block to ensure it never fails. If the
+ encoding can not be determined ASCII is returned as a default.
+
+ The code page name of the preferred encoding. Any value returned by
+ System.Text.Encoding.WebName is a valid input.
+ The System.Text.Encoding associated with the specified code page or Encoding.ASCII
+ if the specified code page could not be resolved.
+
+
+
+ Converts the specified enumerable collection of UIDs into an IMAP sequence-set.
+
+ An enumerable collection of UIDs.
+ An IMAP sequence-set suitable for use with IMAP commands.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ Refer to RFC3501, 9.Formal Syntax "sequence-set" for a description of IMAP
+ sequence-sets.
+
+
+
diff --git a/App/CONFIG_APP/frmMain.vb b/App/CONFIG_APP/frmMain.vb
index ff72104..26cb12d 100644
--- a/App/CONFIG_APP/frmMain.vb
+++ b/App/CONFIG_APP/frmMain.vb
@@ -665,7 +665,7 @@ Public Class frmMain
My.Settings.Save()
Dim PWPlain = _Encryption.DecryptData(EMAIL_PWTextBox.Text)
- Dim oResult = _emailIMAP.TestIMAPLogin(EMAIL_SMTPTextBox.Text, PORT_INTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, txtInboxname.Text)
+ Dim oResult = _emailIMAP.FetchIMAPMessages(EMAIL_SMTPTextBox.Text, PORT_INTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, txtInboxname.Text, True)
If oResult = False Then
MsgBox("Access Imap NOT successfull", MsgBoxStyle.Critical)
diff --git a/App/CONFIG_APP/obj/Debug/CONFIG_APP.exe b/App/CONFIG_APP/obj/Debug/CONFIG_APP.exe
index 1697ce3..02e3f0a 100644
Binary files a/App/CONFIG_APP/obj/Debug/CONFIG_APP.exe and b/App/CONFIG_APP/obj/Debug/CONFIG_APP.exe differ
diff --git a/App/CONFIG_APP/obj/Debug/CONFIG_APP.pdb b/App/CONFIG_APP/obj/Debug/CONFIG_APP.pdb
index a03eba3..6777e3e 100644
Binary files a/App/CONFIG_APP/obj/Debug/CONFIG_APP.pdb and b/App/CONFIG_APP/obj/Debug/CONFIG_APP.pdb differ
diff --git a/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.CoreCompileInputs.cache b/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.CoreCompileInputs.cache
index 588c15c..02de3ca 100644
--- a/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.CoreCompileInputs.cache
+++ b/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.CoreCompileInputs.cache
@@ -1 +1 @@
-4256f12197ded35be4e879c825880b46866bf653
+24c23c6a1a08822658338bc1efd1138033e53eb9
diff --git a/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.FileListAbsolute.txt b/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.FileListAbsolute.txt
index 6a45416..7863c2f 100644
--- a/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.FileListAbsolute.txt
+++ b/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbproj.FileListAbsolute.txt
@@ -109,6 +109,6 @@ E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\obj\Debug\CONFIG
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\obj\Debug\CONFIG_APP.exe
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\obj\Debug\CONFIG_APP.xml
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\obj\Debug\CONFIG_APP.pdb
-E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\bin\Debug\AE.Net.Mail.dll
-E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\bin\Debug\AE.Net.Mail.pdb
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\obj\Debug\CONFIG_APP.vbprojAssemblyReference.cache
+E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\bin\Debug\S22.Imap.dll
+E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\CONFIG_APP\bin\Debug\S22.Imap.xml
diff --git a/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbprojAssemblyReference.cache b/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbprojAssemblyReference.cache
index 5666f8f..ad737e8 100644
Binary files a/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbprojAssemblyReference.cache and b/App/CONFIG_APP/obj/Debug/CONFIG_APP.vbprojAssemblyReference.cache differ
diff --git a/App/CONFIG_APP/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/App/CONFIG_APP/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index d1b5081..8bae8de 100644
Binary files a/App/CONFIG_APP/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/App/CONFIG_APP/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.dll b/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.dll
index ea18586..e40f034 100644
Binary files a/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.dll and b/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.dll differ
diff --git a/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.pdb b/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.pdb
index 9b5bb2c..87cdc1a 100644
Binary files a/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.pdb and b/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.pdb differ
diff --git a/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.xml b/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.xml
index 0e67dde..f42200e 100644
--- a/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.xml
+++ b/App/DigitalData.EMLProfiler/bin/Debug/DigitalData.EMLProfiler.xml
@@ -22,6 +22,12 @@ DigitalData.EMLProfiler
resource lookups using this strongly typed resource class.
+
+
+ Uses a private API from MailWriter to write a MailMessage to disk.
+ May break in future versions of .NET
+
+
Konstruktor für die windream-Klasse
diff --git a/App/DigitalData.EMLProfiler/bin/Debug/S22.Imap.dll b/App/DigitalData.EMLProfiler/bin/Debug/S22.Imap.dll
new file mode 100644
index 0000000..2786078
Binary files /dev/null and b/App/DigitalData.EMLProfiler/bin/Debug/S22.Imap.dll differ
diff --git a/App/DigitalData.EMLProfiler/bin/Debug/S22.Imap.xml b/App/DigitalData.EMLProfiler/bin/Debug/S22.Imap.xml
new file mode 100644
index 0000000..9995b3c
--- /dev/null
+++ b/App/DigitalData.EMLProfiler/bin/Debug/S22.Imap.xml
@@ -0,0 +1,7178 @@
+
+
+
+ S22.Imap
+
+
+
+
+ Defines supported means of authenticating with an IMAP server.
+
+
+
+
+ Automatically selects the most-secure authentication mechanism supported by the server.
+
+
+
+
+ Login using plaintext password authentication; This is supported by most servers.
+
+
+
+
+ Login using the SASL PLAIN authentication mechanism.
+
+
+
+
+ Login using the CRAM-MD5 authentication mechanism.
+
+
+
+
+ Login using the DIGEST-MD5 authentication mechanism.
+
+
+
+
+ Login using OAuth via the SASL XOAuth mechanism.
+
+
+
+
+ Login using OAuth 2.0 via the SASL XOAUTH2 mechanism.
+
+
+
+
+ Login using the NTLM authentication mechanism.
+
+
+
+
+ Login using the NTLMv2 authentication mechanism.
+
+
+
+
+ Login using the NTLM/NTLMv2 authentication mechanism via Microsoft's Security Support
+ Provider Interface (SSPI).
+
+
+
+
+ Login using Kerberos authentication via the SASL GSSAPI mechanism.
+
+
+
+
+ Login using the SCRAM-SHA-1 authentication mechanism.
+
+
+
+
+ Login using the Secure Remote Password (SRP) authentication mechanism.
+
+ The SRP mechanism is only available when targeting .NET 4.0 or newer.
+
+
+
+ A utility class modeled after the BCL StringBuilder to simplify
+ building binary-data messages.
+
+
+
+
+ The actual byte buffer.
+
+
+
+
+ The current position in the buffer.
+
+
+
+
+ Resizes the internal byte buffer.
+
+ Amount in bytes by which to increase the
+ size of the buffer.
+
+
+
+ Appends one or several byte values to this instance.
+
+ Byte values to append.
+ A reference to the calling instance.
+
+
+
+ Appends the specified number of bytes from the specified buffer
+ starting at the specified offset to this instance.
+
+ The buffer to append bytes from.
+ The offset into the buffert at which to start
+ reading bytes from.
+ The number of bytes to read from the buffer.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit integer value to this instance.
+
+ A 32-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit short value to this instance.
+
+ A 16-bit short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit unsigend short value to this instance.
+
+ A 16-bit unsigend short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit unsigned integer value to this instance.
+
+ A 32-bit unsigned integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 64-bit integer value to this instance.
+
+ A 64-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified string using the specified encoding to this
+ instance.
+
+ The string vale to append.
+ The encoding to use for decoding the string value
+ into a sequence of bytes. If this is null, ASCII encoding is used as a
+ default.
+ A reference to the calling instance.
+
+
+
+ Returns the ByteBuilder's content as an array of bytes.
+
+ An array of bytes.
+
+
+
+ Removes all bytes from the current ByteBuilder instance.
+
+
+
+
+ The length of the underlying data buffer.
+
+
+
+
+ A filter stream sitting between Negotiate- and NetworkStream to
+ enable managed NTLM/GSSAPI authentication.
+
+
+ We use a filter for hooking into the NegotiateStream protocol rather
+ than p/invoking SSPI directly as that would require unmanaged
+ code privileges (internally NegotiateStream uses an SSPI wrapper).
+
+ NegotiateStream - FilterStream - NetworkStream.
+
+
+
+
+ A buffer for accumulating handshake data until an entire handshake
+ has been read.
+
+
+
+
+ A buffer for accumulating the payload data following the handshake
+ data.
+
+
+
+
+ The latest handshake header sent by the client.
+
+
+
+
+ The buffer from which client reads will be satisfied.
+
+
+
+
+ The number of bytes the client has already consumed/read
+ from the receivedData buffer.
+
+
+
+
+ The current state of the filter stream.
+
+
+
+
+ Determines whether this instance should close the inner stream
+ when disposed.
+
+
+
+
+ An error code as specified by the NegotiateStream protocol which is
+ handed to the NegotiateStream instance in case authentication
+ unexpectedly fails.
+
+
+
+
+ Gets the stream used by this FilterStream for sending and
+ receiving data.
+
+
+
+
+ Initializes a new instance of the FilterStream class using the
+ specified Stream.
+
+ A Stream object used by the FilterStream for sending
+ and receiving data.
+ Set to true to indicate that closing this
+ FilterStream has no effect on innerstream, or set to false to
+ indicate that closing this FilterStream also closes innerStream.
+
+
+
+ Reads data from this stream and stores it in the specified array.
+
+ A byte array that receives the bytes read from
+ the stream.
+ The zero-based index into the buffer at which to
+ begin storing the data read from this stream.
+ The the maximum number of bytes to read from the
+ stream.
+ The the number of bytes read from the underlying stream. When
+ there is no more data to be read, returns 0.
+ The read operation failed.
+
+
+
+ Reads the server response from the underlying inner stream.
+
+
+
+
+ Write the specified number of bytes to the underlying stream using the
+ specified buffer and offset.
+
+ A byte array that supplies the bytes written to
+ the stream.
+ The zero-based index in the buffer at which to
+ begin reading bytes to be written to the stream.
+ The number of bytes to read from buffer.
+ The write operation failed.
+
+
+
+ Reads the client's handshake from the specified buffer.
+
+ A byte array from which the handshake data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if the handshake has been read completely, otherwise
+ false.
+
+
+
+ Reads the payload from the specified buffer.
+
+ A byte array from which the payload data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if all of the payload data has been read, otherwise
+ false.
+
+
+
+ Sends the accumulated payload data to the server.
+
+ true if the client is done sending data, otherwise
+ false.
+
+
+
+ Reads a line of ASCII-encoded text terminated by a CRLF from the
+ specified stream.
+
+ The stream to read the line of text from.
+ Set this to true, to resolve automatically
+ resolve possible literals.
+ A line of ASII-encoded text read from the specified
+ stream.
+ "Literals" are a special feature of IMAP, employed by some
+ server implementations. Please refer to RFC 3501 Section 4.3 for
+ details.
+
+
+
+ Reads the specified number of bytes from the specified stream and
+ returns them as an ASCII-encoded string.
+
+ The stream to read from.
+ The number of bytes to read.
+ The read bytes encoded as an ASCII string.
+
+
+
+ Causes any buffered data to be written to the underlying device.
+
+
+
+
+ Throws NotSupportedException.
+
+ This value is ignored.
+ This value is ignored.
+ Always throws a NotSupportedException.
+
+
+
+ Sets the length of the underlying stream.
+
+ A value that specifies the length of the
+ stream.
+
+
+
+ Releases all resources used by the stream.
+
+ True to release both managed and unmanaged
+ resources, false to release only unmanaged resources.
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ readable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ seekable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream
+ supports time-outs.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ writable.
+
+
+
+
+ Gets the length of the underlying stream.
+
+
+
+
+ Gets or sets the current position in the underlying stream.
+
+ Setting this property
+ is not supported.
+
+
+
+ The different states the FilterStream can be in.
+
+
+
+
+ The stream is reading the client's handshake message.
+
+
+
+
+ The stream is reading the client's payload data.
+
+
+
+
+ The stream is waiting for the server's response.
+
+
+
+
+ The stream has buffered the server's response and is satisfying
+ client reads from its buffer.
+
+
+
+
+ Represents a NegotiateStream handshake message.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ Creates a new instance of the Handshake class using the specified type
+ and payload size.
+
+ The type of handshake.
+ The size, in bytes, of the payload following
+ the handshake header.
+
+
+
+ Private default constructor for deserializing.
+
+
+
+
+ Deserializes a handshake instance from the specified byte array.
+
+ An array of bytes containing handshake data.
+ An initialized instance of the Handshake class deserialized
+ from the specified byte array.
+ Thrown if the specified byte
+ array does not contain valid handshake data.
+
+
+
+ Serializes an instance of the Handshake class to a sequence of bytes.
+
+ A sequence of bytes representing this Handshake instance.
+
+
+
+ The type of the handshake message.
+
+
+
+
+ Specifies the major version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Specifies the minor version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Defines the size, in bytes, of the AuthPayload field, which immediately
+ follows the handshake.
+
+
+
+
+ Describes the different types of handshake messages.
+
+
+
+
+ The handshake has completed successfully.
+
+
+
+
+ An error occurred during the handshake. The AuthPayload field contains
+ an HRESULT.
+
+
+
+
+ The message is part of the handshake phase and is not the final message
+ from the host. The final Handshake message from a host is always
+ transferred in a HandshakeDone message.
+
+
+
+
+ Implements the Sasl SCRAM-SHA-1 authentication method as described in
+ RFC 5802.
+
+
+
+
+ The abstract base class from which all classes implementing a Sasl
+ authentication mechanism must derive.
+
+
+
+
+ Computes the client response to a challenge sent by the server.
+
+
+ The client response to the specified challenge.
+
+
+
+
+
+
+
+ Retrieves the base64-encoded client response for the specified
+ base64-encoded challenge sent by the server.
+
+ A base64-encoded string representing a challenge
+ sent by the server.
+ A base64-encoded string representing the client response to the
+ server challenge.
+ The IMAP, POP3 and SMTP authentication commands expect challenges
+ and responses to be base64-encoded. This method automatically decodes the
+ server challenge before passing it to the Sasl implementation and
+ encodes the client response to a base64-string before returning it to the
+ caller.
+ Thrown if the client response could
+ not be retrieved. Refer to the inner exception for error details.
+
+
+
+ Retrieves the client response for the specified server challenge.
+
+ A byte array containing the challenge sent by
+ the server.
+ An array of bytes representing the client response to the
+ server challenge.
+
+
+
+ IANA name of the authentication mechanism.
+
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ A map of mechanism-specific properties which are needed by the
+ authentication mechanism to compute it's challenge-responses.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Scram-Sha-1 involves several steps.
+
+
+
+
+ The salted password. This is needed for client authentication and later
+ on again for verifying the server signature.
+
+
+
+
+ The auth message is part of the authentication exchange and is needed for
+ authentication as well as for verifying the server signature.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslScramSha1
+ class using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified SCRAM-SHA-1 challenge.
+
+ The challenge sent by the server
+ The response to the SCRAM-SHA-1 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial response sent by the client to the server.
+
+ An array of bytes containing the initial client
+ response.
+
+
+
+ Computes the "client-final-message" which completes the authentication
+ process.
+
+ The "server-first-message" challenge received
+ from the server in response to the initial client response.
+ An array of bytes containing the client's challenge
+ response.
+
+
+
+ Verifies the nonce value sent by the server.
+
+ The nonce value sent by the server as part of the
+ server-first-message.
+ True if the nonce value is valid, otherwise false.
+
+
+
+ Verifies the server signature which is sent by the server as the final
+ step of the authentication process.
+
+ The server signature as a base64-encoded
+ string.
+ The client's response to the server. This will be an empty
+ byte array if verification was successful, or the '*' SASL cancellation
+ token.
+
+
+
+ Parses the "server-first-message" received from the server.
+
+ The challenge received from the server.
+ A collection of key/value pairs contained extracted from
+ the server message.
+ Thrown if the message parameter
+ is null.
+
+
+
+ Computes the "Hi()"-formula which is part of the client's response
+ to the server challenge.
+
+ The supplied password to use.
+ The salt received from the server.
+ The iteration count.
+ An array of bytes containing the result of the computation of the
+ "Hi()"-formula.
+
+ Hi is, essentially, PBKDF2 with HMAC as the pseudorandom function (PRF) and with
+ dkLen == output length of HMAC() == output length of H(). (Refer to RFC 5802, p.6)
+
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input data.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input to compute the hashcode for.
+ The hashcode of the specified data input.
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input string.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input string to compute the hashcode for.
+ The hashcode of the specified string.
+
+
+
+ Applies the cryptographic hash function SHA-1 to the specified data
+ array.
+
+ The data array to apply the hash function to.
+ The hash value for the specified byte array.
+
+
+
+ Applies the exclusive-or operation to combine the specified byte array
+ a with the specified byte array b.
+
+ The first byte array.
+ The second byte array.
+ An array of bytes of the same length as the input arrays
+ containing the result of the exclusive-or operation.
+ Thrown if either argument is
+ null.
+ Thrown if the input arrays
+ are not of the same length.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ Prepares the specified string as is described in RFC 5802.
+
+ A string value.
+ A "Saslprepped" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Scram-Sha-1 authentication mechanism as described
+ in RFC 5802.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl Secure Remote Password (SRP) authentication
+ mechanism as is described in the IETF SRP 08 draft.
+
+
+ This requires .NET Framework 4 because it makes use of the System.Numeric namespace
+ which has only been part of .NET since version 4.
+
+ Some notes:
+ - Don't bother with the example given in the IETF 08 draft
+ document (7.5 Example); It is broken.
+ - Integrity and confidentiality protection is not implemented.
+ In fact, the "mandatory"-option is not supported at all.
+
+
+
+
+ SRP involves several steps.
+
+
+
+
+ The negotiated hash algorithm which will be used to perform any
+ message digest calculations.
+
+
+
+
+ The public key computed as part of the authentication exchange.
+
+
+
+
+ The client's private key used for calculating the client evidence.
+
+
+
+
+ The secret key shared between client and server.
+
+
+
+
+ The client evidence calculated as part of the authentication exchange.
+
+
+
+
+ The options chosen by the client, picked from the list of options
+ advertised by the server.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client private key to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslSrp class using
+ the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified SRP challenge.
+
+ The challenge sent by the server
+ The response to the SRP challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial response sent by the client to the server.
+
+ An array of bytes containing the initial client
+ response.
+
+
+
+ Computes the client response containing the client's public key and
+ evidence.
+
+ The challenge containing the protocol elements
+ received from the server in response to the initial client
+ response.
+ An array of bytes containing the client's challenge
+ response.
+ Thrown if the server specified any
+ mandatory options which are not supported.
+
+
+
+ Verifies the server signature which is sent by the server as the final
+ step of the authentication process.
+
+ The server signature as a base64-encoded
+ string.
+ The client's response to the server. This will be an empty
+ byte array if verification was successful, or the '*' SASL cancellation
+ token.
+
+
+
+ Selects a message digest algorithm from the specified list of
+ supported algorithms.
+
+ A tuple containing the name of the selected message digest
+ algorithm as well as the type.
+ Thrown if none of the algorithms
+ specified in the list parameter is supported.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the SRP authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ The authorization id (userid in draft jargon).
+
+
+
+
+ Represents the initial client-response sent to the server to initiate
+ the authentication exchange.
+
+
+
+
+ Creates a new instance of the ClientMessage1 class using the specified
+ username.
+
+ The username to authenticate with.
+ The authorization id to authenticate with.
+ Thrown if the username parameter
+ is null.
+
+
+
+ Serializes this instance of the ClientMessage1 class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ ClientMessage1 class.
+ Thrown if the cummultative length
+ of the serialized data fields exceeds the maximum number of bytes
+ allowed as per SRP specification.
+ SRP specification imposes a limit of 2,147,483,643 bytes on
+ the serialized data.
+
+
+
+ The username to authenticate with.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field.
+
+
+
+ The authorization identity to authenticate with.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field.
+
+
+
+ The session identifier of a previous session whose parameters the
+ client wishes to re-use.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field. If the client wishes to initialize a new session,
+ this parameter must be set to the empty string.
+
+
+
+ The client's nonce used in deriving a new shared context key from
+ the shared context key of the previous session.
+
+ SRP specification imposes a limit of 255 bytes on this
+ field. If not needed, it must be set to an empty byte array.
+
+
+
+ Represents the second client-response sent to the server as part of
+ the SRP authentication exchange.
+
+
+
+
+ Creates and initializes a new instance of the ClientMessage2 class.
+
+
+
+
+ Creates and initializes a new instance of the ClientMessage2 class using
+ the specified public key and client proof.
+
+ The client's public key.
+ The calculated client proof.
+ Thrown if either the public key
+ or the proof parameter is null.
+
+
+
+ Serializes this instance of the ClientMessage2 class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ ClientMessage2 class.
+ Thrown if the cummultative length
+ of the serialized data fields exceeds the maximum number of bytes
+ allowed as per SRP specification.
+ SRP specification imposes a limit of 2,147,483,643 bytes on
+ the serialized data.
+
+
+
+ Serializes the client's options collection into a comma-seperated
+ options string.
+
+ A comma-seperated string containing the client's chosen
+ options.
+
+
+
+ The client's ephemeral public key.
+
+
+
+
+ The evidence which proves to the server client-knowledge of the shared
+ context key.
+
+
+
+
+ The options list indicating the security services chosen by the client.
+
+
+
+
+ The initial vector the server will use to set up its encryption
+ context, if confidentiality protection will be employed.
+
+
+
+
+ Adds extension methods to the BinaryReader class to simplify the
+ deserialization of SRP messages.
+
+
+
+
+ Reads an unsigned integer value from the underlying stream,
+ optionally using big endian byte ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the integer value
+ as big endian value.
+ The 32-byte unsigned integer value read from the underlying
+ stream.
+
+
+
+ Reads an unsigned short value from the underlying stream, optionally
+ using big endian byte ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the short value
+ as big endian value.
+ The 16-byte unsigned short value read from the underlying
+ stream.
+
+
+
+ Reads a "multi-precision integer" from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the Mpi class decoded from the bytes read
+ from the underlying stream.
+
+
+
+ Reads an "octet-sequence" from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the OctetSequence class decoded from the bytes
+ read from the underlying stream.
+
+
+
+ Reads an UTF-8 string from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the Utf8String class decoded from the bytes
+ read from the underlying stream.
+
+
+
+ Contains helper methods for calculating the various components of the
+ SRP authentication exchange.
+
+
+
+
+ The trace source used for informational and debug messages.
+
+
+
+
+ Determines whether the specified modulus is valid.
+
+ The modulus to validate.
+ True if the specified modulus is valid, otherwise
+ false.
+
+
+
+ Determines whether the specified generator is valid.
+
+ The generator to validate.
+ True if the specified generator is valid, otherwise
+ false.
+
+
+
+ Generates a random "multi-precision integer" which will act as the
+ client's private key.
+
+ The client's ephemeral private key as a "multi-precision
+ integer".
+
+
+
+ Calculates the client's ephemeral public key.
+
+ The generator sent by the server.
+ The safe prime modulus sent by
+ the server.
+ The client's private key.
+ The client's ephemeral public key as a
+ "multi-precision integer".
+
+ A = Client Public Key
+ g = Generator
+ a = Client Private Key
+ N = Safe Prime Modulus
+
+
+
+
+ Calculates the shared context key K from the given parameters.
+
+ The user's password salt.
+ The username to authenticate with.
+ The password to authenticate with.
+ The client's ephemeral public key.
+ The server's ephemeral public key.
+ The client's private key.
+ The generator sent by the server.
+ The safe prime modulus sent by the
+ server.
+ The negotiated hash algorithm to use
+ for the calculations.
+ The shared context key K as a "multi-precision
+ integer".
+
+ A = Client Public Key
+ B = Server Public Key
+ N = Safe Prime Modulus
+ U = Username
+ p = Password
+ s = User's Password Salt
+ a = Client Private Key
+ g = Generator
+ K = Shared Public Key
+
+
+
+
+ Computes the client evidence from the given parameters.
+
+ The safe prime modulus sent by the
+ server.
+ The generator sent by the server.
+ The username to authenticate with.
+ The client's password salt.
+ The client's ephemeral public key.
+ The server's ephemeral public key.
+ The shared context key.
+ The authorization identity.
+ The raw options string as received from the
+ server.
+ The message digest algorithm to use for
+ calculating the client proof.
+ The client proof as an array of bytes.
+
+
+
+ Computes the server evidence from the given parameters.
+
+ The client's ephemeral public key.
+
+ The shared context key.
+ The authorization identity.
+ The raw options string as sent by the
+ client.
+ The session id sent by the server.
+ The time-to-live value for the session id sent
+ by the server.
+ The message digest algorithm to use for
+ calculating the server proof.
+ The server proof as an array of bytes.
+
+
+
+ Applies the exclusive-or operation to combine the specified byte array
+ a with the specified byte array b.
+
+ The first byte array.
+ The second byte array.
+ An array of bytes of the same length as the input arrays
+ containing the result of the exclusive-or operation.
+ Thrown if either argument is
+ null.
+ Thrown if the input arrays
+ are not of the same length.
+
+
+
+ Recommended values for the safe prime modulus (Refer to Appendix A.
+ "Modulus and Generator Values" of the IETF SRP draft).
+
+
+
+
+ Represents a "multi-precision integer" (MPI) as is described in the
+ SRP specification (3.2 Multi-Precision Integers, p.5).
+
+ Multi-Precision Integers, or MPIs, are positive integers used
+ to hold large integers used in cryptographic computations.
+
+
+
+ Creates a new "multi-precision integer" from the specified array
+ of bytes.
+
+ A big-endian sequence of bytes forming the
+ integer value of the multi-precision integer.
+
+
+
+ Creates a new "multi-precision integer" from the specified BigInteger
+ instance.
+
+ The BigInteger instance to initialize the MPI
+ with.
+
+
+
+ Returns a sequence of bytes in big-endian order forming the integer
+ value of this "multi-precision integer" instance.
+
+ Returns a sequence of bytes in big-endian order representing
+ this "multi-precision integer" instance.
+
+
+
+ Serializes the "multi-precision integer" into a sequence of bytes
+ according to the requirements of the SRP specification.
+
+ A big-endian sequence of bytes representing the integer
+ value of the MPI.
+
+
+
+ The underlying BigInteger instance used to represent this
+ "multi-precision integer".
+
+
+
+
+ Represents an "octet-sequence" as is described in the SRP specification
+ (3.3 Octet sequences, p.6).
+
+
+
+
+ Creates a new instance of the OctetSequence class using the specified
+ byte array.
+
+ The sequence of bytes to initialize this instance
+ of the OctetSequence class with.
+
+
+
+ Serializes this instance of the OctetSequence class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ OctetSequence class.
+ Thrown if the length of the byte
+ sequence exceeds the maximum number of bytes allowed as per SRP
+ specification.
+ SRP specification imposes a limit of 255 bytes on the
+ length of the underlying byte array.
+
+
+
+ The underlying byte array forming this instance of the OctetSequence
+ class.
+
+
+
+
+ Represents the first message sent by the server in response to an
+ initial client-response.
+
+
+
+
+ Deserializes a new instance of the ServerMessage1 class from the
+ specified buffer of bytes.
+
+ The byte buffer to deserialize the ServerMessage1
+ instance from.
+ An instance of the ServerMessage1 class deserialized from the
+ specified byte array.
+ Thrown if the byte buffer does not
+ contain valid data.
+
+
+
+ Parses the options string sent by the server.
+
+ A comma-delimited options string.
+ An initialized instance of the NameValueCollection class
+ containing the parsed server options.
+
+
+
+ The safe prime modulus sent by the server.
+
+
+
+
+ The generator sent by the server.
+
+
+
+
+ The user's password salt.
+
+
+
+
+ The server's ephemeral public key.
+
+
+
+
+ The options list indicating available security services.
+
+
+
+
+ The raw options as received from the server.
+
+
+
+
+ Represents the second message sent by the server as part of the SRP
+ authentication exchange.
+
+
+
+
+ Deserializes a new instance of the ServerMessage2 class from the
+ specified buffer of bytes.
+
+ The byte buffer to deserialize the ServerMessage2
+ instance from.
+ An instance of the ServerMessage2 class deserialized from the
+ specified byte array.
+ Thrown if the byte buffer does not
+ contain valid data.
+
+
+
+ The evidence which proves to the client server-knowledge of the shared
+ context key.
+
+
+
+
+ The initial vector the client will use to set up its encryption
+ context, if confidentiality protection will be employed.
+
+
+
+
+ The session identifier the server has given to this session.
+
+
+
+
+ The time period for which this session's parameters may be re-usable.
+
+
+
+
+ Represents an UTF-8 string as is described in the SRP specification
+ (3.5 Text, p.6).
+
+
+
+
+ The value of the UTF-8 string.
+
+
+
+
+ Creates a new instance of the Utf8String class using the specified
+ string value.
+
+ The string to initialize the Utf8String instance
+ with.
+
+
+
+ Serializes this instance of the Utf8String class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ Utf8String class.
+ Thrown if the string value exceeds
+ the maximum number of bytes allowed as per SRP specification.
+ SRP specification imposes a limit of 65535 bytes on the
+ string data after it has been encoded into a sequence of bytes
+ using an encoding of UTF-8.
+
+
+
+ Represents a MIME body part of a mail message that has multiple
+ parts.
+
+
+
+
+ Initializes a new instance of the Bodypart class with default
+ values.
+
+ The part number as is expected by the
+ IMAP FETCH command.
+
+
+
+ Returns a detailed description listing all properties of this
+ Bodypart instance.
+
+ A string describing this instance of the Bodypart class
+
+
+
+ The body part number which acts as part specifier for
+ the FETCH BODY command.
+
+
+
+
+ The MIME content-type of this body part. The content-type is
+ used to declare the general type of data.
+
+
+
+
+ The MIME content-subtype of this body part. The subtype
+ specifies a specific format for the type of data.
+
+
+
+
+ Parameter values present in the MIME content-type header
+ of this body part (for instance, 'charset').
+
+
+
+
+ The MIME content-id of this body part, if any. This value
+ may be used for uniquely identifying MIME entities in
+ several contexts.
+
+
+
+
+ The MIME content-description of this body part. This value
+ may contain some descriptive information on the body part.
+
+
+
+
+ The MIME content-transfer-encoding mechanism used for
+ encoding this body part's data.
+
+
+
+
+ The size of this body part in bytes. Note that this size
+ is the size in its transfer encoding and not the resulting
+ size after any decoding.
+
+
+
+
+ The size of the body in text lines. This field is only
+ present in body parts with a content-type of text.
+
+
+
+
+ The computed MD5-Hash of the body part. This field is not
+ mandatory and may be empty.
+
+
+
+
+ The MIME content-disposition for this body part. This field
+ is not mandatory and may be empty.
+
+
+
+
+ A string giving the body language. This field is not mandatory
+ and may be empty.
+
+
+
+
+ A string list giving the body content URI. This field is not
+ mandatory and may be empty.
+
+
+
+
+ Provides a means for parsing the textual description of the body structure of a mail
+ message as is returned by an IMAP server for a "FETCH BODYSTRUCTURE" command.
+
+
+ They couldn't have made the BODYSTRUCTURE any more complicated and unnecessarily
+ hard to parse. I wonder what they were thinking when they came up with this.
+
+
+
+
+ Parses the body structure of a mail message as is returned by the IMAP server
+ in response to a FETCH BODYSTRUCTURE command.
+
+ The body structure server response
+ An array of initialized Bodypart objects representing the body
+ structure of the mail message
+ Thrown if the passed string does not
+ contain a valid body structure and parsing failed.
+
+
+
+ A Reader object initialized with the string containing the bodystructure
+ response.
+
+
+
+
+ Initializes a new instance of the Bodystructure class.
+
+
+
+
+
+ Parses a bodypart entry from the body structure and advances the
+ read pointer.
+
+ The designated part specifier by which the body
+ part is refered to by the server.
+ Set to true if the bodypart is enclosed
+ in parenthesis.
+
+
+
+
+ Parses the mandatory extra fields that are present if the bodypart is
+ of type message/rfc822 (see RFC 3501, p. 75).
+
+ The bodypart instance the parsed fields will be
+ added to.
+
+
+
+ Parses the optional fields of a bodypart entry from the body structure
+ and advances the read pointer.
+
+ The bodypart instance the parsed fields will be
+ added to.
+ Set to true if the bodypart entry is enclosed
+ in parenthesis.
+
+
+
+ Parses a list of bodypart entries as is outlined in the description of the
+ BODYPART response in RFC 3501.
+
+ The nesting prefix that will be prefixed to the
+ bodyparts partNumber.
+ An array of initialized Bodypart objects parsed from the
+ list.
+
+
+
+ Advances the read pointer to skip over a multipart entry.
+
+
+
+
+ Advances the read pointer to skip over an arbitrary
+ expression enclosed in parentheses.
+
+
+
+
+ Represents the content disposition as is presented in the BODYSTRUCTURE
+ response by the IMAP server.
+
+
+
+
+ Initializes a new instance of the ContentDisposition class with
+ default values.
+
+
+
+
+ Maps MIME content disposition string values to their corresponding
+ counter-parts of the ContentDispositionType enumeration.
+
+
+
+
+ The content disposition specifies the presentation style.
+
+
+
+
+ Additional attribute fields for specifying the name of a file, the creation
+ date and modification date, which can be used by the reader's mail user agent
+ to store the attachment.
+
+
+
+
+ Contains the name of the transmitted file if the content-disposition is of type
+ "Attachment" and if the name value was provided as part of the header information.
+ This field may be empty.
+
+
+
+
+ Possible values for the content disposition type which determines the presentation
+ style
+
+
+
+
+ The content disposition could not be determined.
+
+
+
+
+ An inline content disposition means that the content should be automatically
+ displayed when the message is displayed.
+
+
+
+
+ An attachment content disposition means that the content should not be displayed
+ automatically and requires some form of action from the user to open it.
+
+
+
+
+ Possible values for the "Encoding" property of the Bodypart class. The content
+ transfer encoding indicates whether or not a binary-to-text encoding
+ scheme has been used on top of the original encoding as specified within the
+ Content-Type header.
+
+
+
+
+ The content tranfer encoding could not be determined or is unknown.
+
+
+
+
+ Up to 998 bytes per line of the code range 1 - 127 with CR and LF only
+ allowed to appear as part of a CRLF line ending.
+
+
+
+
+ Up to 998 bytes per line with CR and LF only allowed to appear as part
+ of a CRLF line ending.
+
+
+
+
+ Any sequence of bytes.
+
+
+
+
+ Byte sequence is encoded using the quoted-printable encoding.
+
+
+
+
+ Byte sequence is encoded using Base64 encoding.
+
+
+
+
+ Possible values for the "Type" property of the Bodypart class.
+ For a detailed description of MIME Media Types refer to
+ RFC 2046.
+
+
+
+
+ The "text" media type is intended for sending material which
+ is principally textual in form.
+
+
+
+
+ A media type of "image" indicates that the body contains an image.
+ The subtype names the specific image format.
+
+
+
+
+ A media type of "audio" indicates that the body contains audio
+ data.
+
+
+
+
+ A media type of "video" indicates that the body contains a
+ time-varying-picture image, possibly with color and coordinated sound.
+
+
+
+
+ The "application" media type is to be used for discrete data which do
+ not fit in any of the other categories, and particularly for data to
+ be processed by some type of application program.
+
+
+
+
+ The "message" content type allows messages to contain other messages
+ or pointers to other messages.
+
+
+
+
+ The media type value is unknown or could not be determined.
+
+
+
+
+ A helper class for parsing the BODYSTRUCTURE response of an
+ IMAP FETCH command more conveniently.
+
+
+
+
+ Initializes a new instance of the Reader class that reads from the
+ specified string.
+
+ The string to which the Reader instance should be
+ initialized.
+
+
+
+ Reads the next character from the input string and advances the
+ character position by one character.
+
+ The next character from the underlying string.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Returns the next available character but does not consume it.
+
+ Set to true to skip any preceding
+ whitespace characters.
+ An integer representing the next character to be read,
+ or -1 if no more characters are available.
+
+
+
+ Advances the character position until the specified character
+ is encountered.
+
+ The character to skip to.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Advances the character position over any whitespace characters
+ and subsequently ensures the next read will not return a
+ whitespace character.
+
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads characters until the specified character is encountered.
+
+ The character to read up to.
+ The read characters as a string value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a word from the underlying string. A word in this context
+ is a literal enclosed in double-quotes.
+
+ The read word.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads an integer from the underlying string.
+
+ The read integer value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a list from the underlying string. A list in this context
+ is a list of attribute/value literals (enclosed in double-quotes)
+ enclosed in parenthesis.
+
+ The read list as a dictionary with the attribute names
+ as keys and attribute values as values.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a disposition from the underlying string. A disposition in
+ this context is a list of attribute/value literals (enclosed in
+ double-quotes) preceded by a word enclosed in parenthesis.
+
+ An initialized ContentDisposition instance representing
+ the parsed disposition.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ The exception that is thrown when reading is attempted past the end
+ of a string.
+
+
+
+
+ Initializes a new instance of the EndOfStringException class
+
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the EndOfStringException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Defines the different means by which mail messages may be fetched from the server.
+
+
+
+
+ Fetches the entire mail message with all of its content.
+
+
+
+
+ Only the mail message headers will be retrieved, while the actual content will not be
+ downloaded. If this option is specified, only the header fields of the returned MailMessage
+ object will be initialized.
+
+
+
+
+ Retrieves the mail message, but will only download content that has a content-type of text.
+ This will retrieve text as well as HTML representation, while skipping inline content and
+ attachments.
+
+
+
+
+ Retrieves the mail message, but skips any content that is an attachment.
+
+
+
+
+ Provides data for IMAP idle error events.
+
+
+
+
+ Initializes a new instance of the IdleErrorEventArgs class.
+
+ The exception that causes the event.
+ The instance of the ImapClient class that raised the event.
+ The exception parameter or the client parameter
+ is null.
+
+
+
+ The exception that caused the error event.
+
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Provides data for IMAP idle notification events.
+
+
+
+
+ Initializes a new instance of the IdleMessageEventArgs class and sets the
+ MessageCount attribute to the value of the
+ parameter.
+
+ The number of messages in the selected mailbox.
+ The unique identifier (UID) of the newest message in the
+ mailbox.
+ The instance of the ImapClient class that raised the event.
+
+
+
+ The total number of messages in the selected mailbox.
+
+
+
+
+ The unique identifier (UID) of the newest message in the mailbox.
+
+ The UID can be passed to the GetMessage method in order to retrieve the mail
+ message from the server.
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ This constructor is solely used for unit testing.
+
+ A stream to initialize the ImapClient instance with.
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port
+ on the specified host, optionally using the Secure Socket Layer (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets
+ Layer (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example shows how to establish a connection with an IMAP server
+ and print out the IMAP options, which the server supports.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ // Print out the server's capabilities.
+ foreach(string s in Client.Capabilities())
+ Console.WriteLine(s);
+
+ Client.Dispose();
+
+
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port on
+ the specified host, optionally using the Secure Socket Layer (SSL) security protocol and
+ attempts to authenticate with the server using the specified authentication method and
+ credentials.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer
+ (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ The provided credentials were rejected by the
+ server.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Connects to the specified port on the specified host, optionally using the Secure Socket Layer
+ (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer (SSL)
+ certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received
+ from the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+
+
+ Determines whether the specified response is a valid IMAP OK response.
+
+ A response string received from the server.
+ A tag if the response is associated with a command.
+ true if the response is a valid IMAP OK response; Otherwise false.
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Performs authentication using the most secure authentication mechanism supported by the
+ server.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+ The order of preference of authentication types employed by this method is
+ Ntlm, Scram-Sha-1, Digest-Md5, followed by Cram-Md5 and finally plaintext Login as
+ a last resort.
+
+
+
+ Performs an actual IMAP "LOGIN" command using the specified username and plain-text
+ password.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+
+
+
+ Performs NTLM and Kerberos authentication via the Security Support Provider Interface (SSPI).
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ True to authenticate using NTLM, otherwise GSSAPI (Kerberos) is
+ used.
+ The response sent by the server.
+ The specified authentication method is not
+ supported by the server.
+
+
+
+ Performs authentication using a SASL authentication mechanism via IMAP's authenticate
+ command.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The name of the SASL authentication mechanism to use.
+ The response sent by the server.
+ The authentication mechanism with the specified name could
+ not be found.
+ The specified authentication mechanism is not
+ supported by the server.
+ An unexpected response has been received from
+ the server.
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Generates a unique identifier to prefix a command with, as is required by the IMAP protocol.
+
+ A unique identifier string.
+
+
+
+ Sends a command string to the server. This method blocks until the command has been
+ transmitted.
+
+ The command to send to the server. The string is suffixed by CRLF
+ prior to sending.
+
+
+
+ Sends a command string to the server and subsequently waits for a response, which is then
+ returned to the caller. This method blocks until the server response has been received.
+
+ The command to send to the server. This is suffixed by CRLF prior
+ to sending.
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ The response received by the server.
+
+
+
+ Waits for a response from the server. This method blocks until a response has been received.
+
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ A response string from the server
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Reads the specified amount of bytes from the server. This method blocks until the specified
+ amount of bytes has been read from the network stream.
+
+ The number of bytes to read.
+ The read bytes as an ASCII-encoded string.
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Selects the specified mailbox so that the messages of the mailbox can be accessed.
+
+ The mailbox to select. If this parameter is null, the
+ default mailbox is selected.
+ The specified mailbox could not be selected.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ IMAP Idle must be paused or stopped before calling this method.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of special-use flags associated with the specified mailbox.
+
+ The mailbox to receive the special-use flags for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ An enumerable collection of special-use flags set on the specified
+ mailbox.
+ This feature is an optional extension to the IMAP protocol and as such some servers
+ may not report any flags at all.
+
+
+
+ Retrieves status information (total number of messages, number of unread messages, etc.) for
+ the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxStatus object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the mail header for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the mail header for.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw mail header of the mail message with the specified
+ UID.
+ The mail header could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the body structure for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the body structure for.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw body structure of the mail message with the specified
+ UID.
+ The body structure could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A body structure is a textual description of the layout of a mail message. It is
+ described in some detail in RFC 3501 under 7.4.2 FETCH response.
+
+
+
+ Retrieves the MIME body-part with the specified part number of the multipart message with
+ the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve a MIME body part for.
+ The part number of the body part to fetch.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the specified body part of the mail message with the specified
+ UID.
+ The body part could not be fetched. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the raw MIME/RFC822 mail message data for the mail message with the specified UID.
+
+ The UID of the mail message to retrieve as a MIME/RFC822 string.
+ Set this to true to set the \Seen flag for the fetched message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw MIME/RFC822 data of the mail message with the
+ specified UID.
+ The mail message data could not be fetched.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the highest UID in the specified mailbox.
+
+ The mailbox to find the highest UID for. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ The highest unique identifier value (UID) in the mailbox.
+ The UID could not be determined. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The highest UID usually corresponds to the newest message in a mailbox.
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Starts receiving of IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when already receiving idle notifications has no
+ effect.
+
+
+
+
+
+
+ Stops receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when not receiving idle notifications has no effect.
+
+
+
+
+
+ Temporarily pauses receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ To resume receiving IDLE notifications ResumeIdling must be called.
+
+
+
+
+
+
+ Resumes receiving IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ The main idle loop. Waits for incoming IMAP IDLE notifications and dispatches
+ them as events. This runs in its own thread whenever IMAP IDLE
+ notifications are being received.
+
+
+
+
+ Blocks on a queue and wakes up whenever a new notification is put into the queue. The
+ notification is then examined and dispatched as an event.
+
+
+
+
+ Issues a NOOP command to the IMAP server. Called in the context of a System.Timer event
+ when IDLE notifications are being received.
+
+ This is needed by the IMAP IDLE mechanism to give the server an indication that the
+ connection is still active.
+
+
+
+
+ Retrieves IMAP QUOTA information for the specified mailbox.
+
+ The mailbox to retrieve QUOTA information for. If this parameter is
+ null, the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ An enumerable collection of MailboxQuota objects describing usage and limits of the
+ quota roots for the mailbox.
+ The quota operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The IMAP4 QUOTA extension is not supported by
+ the server.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Releases all resources used by the current instance of the ImapClient class.
+
+
+
+
+ Releases all resources used by the current instance of the ImapClient class, optionally
+ disposing of managed resource.
+
+ true to dispose of managed resources, otherwise false.
+
+
+
+ Asserts the instance has not been disposed of and is in a valid state.
+
+ The ImapClient object has been
+ disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when an I/O exception occurs in the idle-thread.
+
+
+ An I/O exception can occur if the underlying network connection has been reset or the
+ server unexpectedly closed the connection.
+
+
+
+
+ A delegate which is invoked during a call to GetMessage or GetMessages for every MIME part in
+ a multipart mail message. The delegate can examine the MIME body part and decide to either
+ include it in the returned mail message or dismiss it.
+
+ A MIME body part of a mail message which consists of multiple parts.
+ true to include the body part in the returned MailMessage object, or false to skip
+ it.
+
+
+
+ The exception that is thrown when an unexpected response is received from the server.
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when the supplied credentials were rejected by the server.
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when a client has not authenticated with the server and
+ attempts to call a method which can only be called when authenticated.
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Provides access to status information such as the total number of messages and quota
+ information for a mailbox.
+
+
+ The terms "mailbox" and "folder" can be used interchangeably and refer to the IMAP concept of
+ multiple server-side directories into which messages can be stored (such as "Inbox",
+ "Sent Items", "Trash", etc.).
+
+
+
+
+ Initializes a new instance of the MailboxInfo class with the specified values.
+
+ The IMAP name of the mailbox.
+ The IMAP flags set on this mailbox.
+ The number of messages in the mailbox.
+ The number of unread messages in the mailbox.
+ The next unique identifier (UID) of the mailbox.
+ The amount of used storage of the mailbox, in bytes.
+ The amount of free storage of the mailbox, in bytes.
+
+
+
+ Returns the name of the mailbox.
+
+ The name of the mailbox
+
+
+
+ The name of the mailbox.
+
+
+
+
+ An enumerable collection of flags set on the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The amount of used storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of used storage, this property will be 0.
+
+
+
+
+ The amount of free storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of free storage, this property will be 0.
+
+
+
+
+ Defines possible attributes for mailboxes.
+
+
+
+ An IMAP mailbox can have a number of flags (read: attributes) set on it, indicating its
+ designated purpose (such as "Spam" or "Drafts").
+
+
+ This is especially convenient when dealing with international mailbox names, because, by
+ examining the associated flags, the mailbox purpose can be determined, even if the mailbox
+ name provides no useful indication.
+
+
+ Unfortunately, as with many things IMAP, reporting the flags described here is an optional
+ extension (XLIST) to the IMAP protocol and as such may or may not be supported by an IMAP
+ server.
+
+
+
+
+
+ The mailbox presents a view on all messages in the user's message store.
+
+
+
+
+ The mailbox is used to archive messages. The meaning of an "archival" mailbox is server
+ dependent.
+
+
+
+
+ The mailbox is used to hold draft messages, typically these are messages that are being
+ composed but have not yet been sent.
+
+
+
+
+ The mailbox is used to hold copies of messages that have been sent.
+
+
+
+
+ The mailbox is where messages deemed to be junk mail (spam) are held.
+
+
+
+
+ The mailbox is used to hold messages that have been deleted or marked for deletion.
+
+
+
+
+ Represents an IMAP QUOTA entry for a resource which typically consists of a resource name,
+ the current usage of the resource, and the resource limit.
+
+
+
+
+ Initializes a new instance of the MailboxQuota class with the specified values.
+
+ The name of the resource this MailboxQuota instance describes.
+ The current usage of the resource in units of 1024 bytes.
+ The limit of the resource in units of 1024 bytes.
+
+
+
+ The name of the resource this MailboxQuota instance describes.
+
+
+
+
+ The current usage of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ The limit of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ Represents the status information of a mailbox which can be constructed from the server
+ response to a STATUS command.
+
+
+
+
+ Initializes a new MailboxStatus instance with the specified number of total and unread
+ messages.
+
+ The total number of messages in the mailbox.
+ The number of unread (unseen) messages in the mailbox.
+ The next unique identifier value of the mailbox
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ Adds extension methods to the MailMessage class of the .NET Framework.
+
+
+ Most of the methods are only used internally and are not visible outside of the
+ S22.Imap assembly.
+
+
+
+
+ Returns the date and time the mail message was composed.
+
+ The MailMessage instance to return the date and time for.
+ The date and time the mail message was composed, or null if the mail message
+ does not contain any date information.
+
+
+
+ Constructs a textual representation of a mail message from the specified MailMessage
+ instance compliant with the RFC822 and MIME standards.
+
+ The MailMessage instance to construct the textual representation
+ from.
+ An RFC822/MIME-compliant string representing the specified mail message.
+ The From property is null or has not been
+ properly initialized.
+
+
+
+ Builds a RFC822/MIME-compliant mail header from the specified MailMessage instance and
+ returns it as a NameValueCollection.
+
+ The MailMessage instance to build the header from.
+ A NameValueCollection representing the RFC822/MIME mail header fields.
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ priority values as defined in RFC2156.
+
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ importance values as defined in RFC2156.
+
+
+
+
+ Takes a unicode string and encodes it using Q-encoding.
+
+ The string to encode.
+ The input string encoded as Q-encoded string containing only ASCII
+ characters.
+
+
+
+ Takes a unicode string and encodes it using Base64-encoding.
+
+ The string to encode.
+ The input string encoded as Base64-encoded string containing only ASCII
+ characters.
+
+
+
+ Creates an address string from the specified MailAddress instance in compliance with the
+ address specification as outlined in RFC2822 under section 3.4
+
+ The MailAddress instance to create the address string from.
+ An address string as is used in RFC822 mail headers.
+
+
+
+ Generates a unique sequence of characters for indicating a boundary between parts in a
+ multipart message.
+
+ A unique content boundary string.
+
+
+
+ Builds an RFC822/MIME-compliant mail body from the specified MailMessage instance and
+ returns it as a formatted string.
+
+ The MailMessage instance to build the mail body from.
+ The RFC822/MIME mail header to use for constructing the mail
+ body.
+ An RFC822/MIME-compliant mail body as a string.
+ According to RFC2822 each line of a mail message should at max be 78 characters in
+ length excluding carriage return and newline characters. This method accounts for that and
+ ensures line breaks are inserted to meet this requirement.
+
+
+
+ Adds a body part to the specified Stringbuilder object composed from the Body and
+ BodyEncoding properties of the MailMessage class.
+
+ The Stringbuilder to append the body part to.
+ The MailMessage instance to build the body part from.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ Set to true to append body headers before adding the actual body
+ part content.
+
+
+
+ Creates a MIME body part from an entry of the AlternateView or Attachments collection of a
+ MailMessage instance and appends it to the specified Stringbuilder instance.
+
+ The Stringbuilder instance to append the body part to.
+ An entry from either the AlternateView or the Attachments collection of
+ a MailMessage instance.
+
+
+
+ Creates a nested multipart/alternative part which contains all entries from the
+ AlternateViews collection of the specified MailMessage instance as well as the body part
+ for the Body and BodyEncoding properties of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose AlternateView collection will be added to the
+ nested multipart/alternative part.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ Creates a nested multipart/mixed part which contains all entries from the Attachments
+ collection of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose Attachments collection will be added to the
+ nested multipart/mixed part.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ A helper class for reading mail message data and building a MailMessage instance out of it.
+
+
+
+
+ Creates a new empty instance of the MailMessage class from a string containing a raw mail
+ message header.
+
+ The mail header to create the MailMessage instance from.
+ A MailMessage instance with initialized Header fields but without any
+ content.
+
+
+
+ Creates a new instance of the MailMessage class from a string containing raw RFC822/MIME
+ mail message data.
+
+ The mail message data to create the MailMessage instance from.
+ An initialized instance of the MailMessage class.
+ This is used when fetching entire messages instead of the partial-fetch mechanism
+ because it saves redundant round-trips to the server.
+
+
+
+ Parses the mail header of a mail message and returns it as a NameValueCollection.
+
+ The mail header to parse.
+ A NameValueCollection containing the header fields as keys with their respective
+ values as values.
+
+
+
+ Strips RFC822/MIME comments from the specified string.
+
+ The string to strip comments from.
+ A new string stripped of any comments.
+
+
+
+ Parses a MIME header field which can contain multiple 'parameter = value'
+ pairs (such as Content-Type: text/html; charset=iso-8859-1).
+
+ The header field to parse.
+ A NameValueCollection containing the parameter names as keys with the respective
+ parameter values as values.
+ The value of the actual field disregarding the 'parameter = value' pairs is stored
+ in the collection under the key "value" (in the above example of Content-Type, this would
+ be "text/html").
+
+
+
+ Parses a mail header address-list field such as To, Cc and Bcc which can contain multiple
+ email addresses.
+
+ The address-list field to parse
+ An array of MailAddress objects representing the parsed mail addresses.
+
+
+
+ Splits the specified address-list into individual parts consisting of a mail address and
+ optionally a display-name.
+
+ The address-list to split into parts.
+ An enumerable collection of parts.
+
+
+
+ Parses a mail message identifier from a string.
+
+ The field to parse the message id from
+ The field argument does not contain a valid message
+ identifier.
+ The parsed message id.
+ A message identifier (msg-id) is a globally unique identifier for a
+ message.
+
+
+
+ Parses the priority of a mail message which can be specified as part of the header
+ information.
+
+ The mail header priority value. The value can be null in which case
+ a "normal priority" is returned.
+ A value from the MailPriority enumeration corresponding to the specified mail
+ priority. If the passed priority value is null or invalid, a normal priority is assumed and
+ MailPriority.Normal is returned.
+
+
+
+ Sets the address fields (From, To, CC, etc.) of a MailMessage object using the specified
+ mail message header information.
+
+ The MailMessage instance to operate on.
+ A collection of mail and MIME headers.
+
+
+
+ Adds a body part to an existing MailMessage instance.
+
+ Extension method for the MailMessage class.
+ The body part to add to the MailMessage instance.
+ The content of the body part.
+
+
+
+ Creates an instance of the Attachment class used by the MailMessage class to store mail
+ message attachments.
+
+ The MIME body part to create the attachment from.
+ An array of bytes composing the content of the attachment.
+ An initialized instance of the Attachment class.
+
+
+
+ Creates an instance of the AlternateView class used by the MailMessage class to store
+ alternate views of the mail message's content.
+
+ The MIME body part to create the alternate view from.
+ An array of bytes composing the content of the alternate view.
+ An initialized instance of the AlternateView class.
+
+
+
+ Parses the body part of a MIME/RFC822 mail message.
+
+ The body of the mail message.
+ The header of the mail message whose body will be parsed.
+ An array of initialized MIMEPart instances representing the body parts of the mail
+ message.
+
+
+
+ Parses the body of a multipart MIME mail message.
+
+ An instance of the StringReader class initialized with a string
+ containing the body of the mail message.
+ The boundary value as is present as part of the Content-Type header
+ field in multipart mail messages.
+ An array of initialized MIMEPart instances representing the various parts of the
+ MIME mail message.
+
+
+
+ Glue method to create a bodypart from a MIMEPart instance.
+
+ The MIMEPart instance to create the bodypart instance from.
+ An initialized instance of the Bodypart class.
+
+
+
+ Defines possible attributes for mail messages on an IMAP server.
+
+
+
+
+ Indicates that the message has been read.
+
+
+
+
+ Indicates that the message has been answered.
+
+
+
+
+ Indicates that the message is "flagged" for urgent/special attention.
+
+
+
+
+ Indicates that the message has been marked as "deleted" and will be removed upon the next
+ call to the Expunge method.
+
+
+
+
+ Indicates that the message has not completed composition and is marked as a draft.
+
+
+
+
+ Indicates that the message has recently arrived in the mailbox.
+
+
+
+
+ Represents a part of a MIME multi-part message. Each part consists of its own content header
+ and a content body.
+
+
+
+
+ A collection containing the content header information as key-value pairs.
+
+
+
+
+ A string containing the content body of the part.
+
+
+
+
+ A thread-safe Queue.
+
+
+
+
+ Adds an object to the end of the queue.
+
+ The object to add to the queue.
+
+
+
+ Removes and returns the object at the beginning of the queue. If the queue is empty, the
+ method blocks the calling thread until an object is put into the queue by another thread.
+
+ The object that was removed from the beginning of the queue.
+
+
+
+ Adds extension methods to the BinaryReader class to simplify the
+ deserialization of NTLM messages.
+
+
+
+
+ Reads an ASCII-string of the specified length from this instance.
+
+ Extension method for the BinaryReader class.
+ The number of bytes to read from the underlying
+ stream.
+ A string decoded from the bytes read from the underlying
+ stream using the ASCII character set.
+
+
+
+ The NTLM flags which are contained in a bitfield within the header of
+ an NTLM message.
+
+
+
+
+ Indicates that Unicode strings are supported for use in security
+ buffer data.
+
+
+
+
+ Indicates that OEM strings are supported for use in security
+ buffer data.
+
+
+
+
+ Requests that the server's authentication realm be included in
+ the Type 2 message.
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should carry a digital signature (message integrity).
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should be encrypted (message confidentiality).
+
+
+
+
+ Indicates that datagram authentication is being used.
+
+
+
+
+ Indicates that the Lan Manager Session Key should be used for signing
+ and sealing authenticated communications.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Indicates that NTLM authentication is being used.
+
+
+
+
+ Sent by the client in the Type 3 message to indicate that an anonymous
+ context has been established. This also affects the response fields.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the name of
+ the domain in which the client workstation has membership is included
+ in the message. This is used by the server to determine whether the
+ client is eligible for local authentication.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the client
+ workstation's name is included in the message. This is used by the
+ server to determine whether the client is eligible for local
+ authentication.
+
+
+
+
+ Sent by the server to indicate that the server and client are on the
+ same machine. Implies that the client may use the established local
+ credentials for authentication instead of calculating a response to
+ the challenge.
+
+
+
+
+ Indicates that authenticated communication between the client and
+ server should be signed with a "dummy" signature.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a domain.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a server.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a share. Presumably, this is for share-level
+ authentication. Usage is unclear.
+
+
+
+
+ Indicates that the NTLM2 signing and sealing scheme should be used for
+ protecting authenticated communications. Note that this refers to a
+ particular session security scheme, and is not related to the use of
+ NTLMv2 authentication. This flag can, however, have an effect on the
+ response calculations.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that it is including
+ a Target Information block in the message. The Target Information block
+ is used in the calculation of the NTLMv2 response.
+
+
+
+
+ Indicates that 128-bit encryption is supported.
+
+
+
+
+ Indicates that the client will provide an encrypted master key in the
+ "Session Key" field of the Type 3 message.
+
+
+
+
+ Indicates that 56-bit encryption is supported.
+
+
+
+
+ Represents the data contained in the target information block of an
+ NTLM type 2 message.
+
+
+
+
+ The server name.
+
+
+
+
+ The domain name.
+
+
+
+
+ The fully-qualified DNS host name.
+
+
+
+
+ The fully-qualified DNS domain name.
+
+
+
+
+ Describes the different versions of the Type 2 message that have
+ been observed.
+
+
+
+
+ The version is unknown.
+
+
+
+
+ This form is seen in older Win9x-based systems.
+
+
+
+
+ This form is seen in most out-of-box shipping versions of Windows.
+
+
+
+
+ This form was introduced in a relatively recent Service Pack, and
+ is seen on currently-patched versions of Windows 2000, Windows XP,
+ and Windows 2003.
+
+
+
+
+ Indicates the type of data in Type 2 target information blocks.
+
+
+
+
+ Signals the end of the target information block.
+
+
+
+
+ The data in the information block contains the server name.
+
+
+
+
+ The data in the information block contains the domain name.
+
+
+
+
+ The data in the information block contains the DNS hostname.
+
+
+
+
+ The data in the information block contans the DNS domain name.
+
+
+
+
+ Computes the MD4 hash value for the input data.
+ Courtesy of Keith Wood.
+
+
+
+
+ Describes the different types of NTLM messages.
+
+
+
+
+ An NTLM type 1 message is the initial client response to the
+ server.
+
+
+
+
+ An NTLM type 2 message is the challenge sent by the server in
+ response to an NTLM type 1 message.
+
+
+
+
+ An NTLM type 3 message is the challenge response sent by the client
+ in response to an NTLM type 2 message.
+
+
+
+
+ Indicates the version and build number of the operating system.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Creates a new instance of the OSVersion class using the specified
+ values.
+
+ The major version of the operating
+ system.
+ The minor version of the operating
+ system.
+ The build number of the operating systen.
+
+
+
+ Serializes this instance of the OSVersion class to an array of
+ bytes.
+
+ An array of bytes representing this instance of the OSVersion
+ class.
+
+
+
+ The major version number of the operating system.
+
+
+
+
+ The minor version number of the operating system.
+
+
+
+
+ The build number of the operating system.
+
+
+
+
+ Contains methods for calculating the various Type 3 challenge
+ responses.
+
+
+
+
+ Computes the LM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account name to authenticate with.
+ The user account password.
+ The target information block from
+ the NTLM type 2 message.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the LMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account to authenticate with.
+ The user account password.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Creates the LM Hash of the specified password.
+
+ The password to create the LM Hash of.
+ The LM Hash of the given password, used in the calculation
+ of the LM Response.
+ Thrown if the password argument
+ is null.
+
+
+
+ Creates a DES encryption key from the specified key material.
+
+ The key material to create the DES encryption
+ key from.
+ An offset into the byte array at which to
+ extract the key material from.
+ A 56-bit DES encryption key as an array of bytes.
+
+
+
+ Applies odd parity to the specified byte array.
+
+ The byte array to apply odd parity to.
+ A reference to the byte array.
+
+
+
+ Creates the LM Response from the specified hash and Type 2 challenge.
+
+ An LM or NTLM hash.
+ The server challenge from the Type 2
+ message.
+ The challenge response as an array of bytes.
+ Thrown if the hash or the
+ challenge parameter is null.
+
+
+
+ Creates the NTLM Hash of the specified password.
+
+ The password to create the NTLM hash of.
+ The NTLM hash for the specified password.
+ Thrown if the password
+ parameter is null.
+
+
+
+ Creates the NTLMv2 Hash of the specified target, username
+ and password values.
+
+ The name of the authentication target as is
+ specified in the target name field of the NTLM type 3 message.
+ The user account name.
+ The password for the user account.
+ The NTLMv2 hash for the specified input values.
+ Thrown if the username or
+ the password parameter is null.
+
+
+
+ Returns the current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+ The current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+
+
+ Creates the "blob" data block which is part of the NTLMv2 challenge
+ response.
+
+ The target information block from
+ the NTLM type 2 message.
+ A random 8-byte client nonce.
+ The blob, used in the calculation of the NTLMv2 Response.
+
+
+
+ Creates the LMv2 Response from the given NTLMv2 hash, client data, and
+ Type 2 challenge.
+
+ The NTLMv2 Hash.
+ The client data (blob or client nonce).
+ The server challenge from the Type 2 message.
+ The response which is either for NTLMv2 or LMv2, depending
+ on the client data.
+
+
+
+ Represents an NTLM security buffer, which is a structure used to point
+ to a buffer of binary data within an NTLM message.
+
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The length of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length value exceeds
+ the maximum value allowed. The security buffer structure stores the
+ length value as a 2-byte short value.
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The data of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length of the data
+ buffer exceeds the maximum value allowed. The security buffer structure
+ stores the buffer length value as a 2-byte short value.
+
+
+
+ Serializes this instance of the SecurityBuffer into an array of bytes.
+
+ A byte array representing this instance of the SecurityBuffer
+ class.
+
+
+
+ The length of the buffer content in bytes (may be zero).
+
+
+
+
+ The allocated space for the buffer in bytes (typically the same as
+ the length).
+
+
+
+
+ The offset from the beginning of the NTLM message to the start of
+ the buffer, in bytes.
+
+
+
+
+ Represents an NTLM Type 1 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 1 for an NTLM Type 1 message.
+
+
+
+
+ Creates a new instance of the Type1Message class using the specified
+ domain and workstation names.
+
+ The domain in which the client's workstation has
+ membership.
+ The client's workstation name.
+ Thrown if the domain or the
+ workstation parameter is null.
+ Thrown if the domain
+ or the workstation name exceeds the maximum allowed string
+ length.
+ The domain as well as the workstation name is restricted
+ to ASCII characters and must not be longer than 65536 characters.
+
+
+
+
+ Serializes this instance of the Type1 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type1
+ class.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The supplied domain name as an array of bytes in the ASCII
+ range.
+
+
+
+
+ The offset within the message where the domain name data starts.
+
+
+
+
+ The supplied workstation name as an array of bytes in the
+ ASCII range.
+
+
+
+
+ The offset within the message where the workstation name data starts.
+
+
+
+
+ The length of the supplied workstation name as a 16-bit short value.
+
+
+
+
+ Contains information about the client's OS version.
+
+
+
+
+ Represents an NTLM Type 2 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 2 for an NTLM Type 2 message.
+
+
+
+
+ Private constructor.
+
+
+
+
+ Deserializes a Type 2 message instance from the specified buffer
+ of bytes.
+
+ The buffer containing a sequence of bytes
+ representing an NTLM Type 2 message.
+ An initialized instance of the Type2 class.
+ Thrown if an error occurs
+ during deserialization of the Type 2 message.
+
+
+
+ Determines the version of an NTLM type 2 message.
+
+ The target offset field of the NTLM
+ type 2 message.
+ A value from the Type2Version enumeration.
+
+
+
+ Reads the OS information data present in version 3 of an NTLM
+ type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the OSVersion class.
+
+
+
+ Reads the target information data present in version 2 and 3 of
+ an NTLM type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the Type2TargetInformation
+ class.
+
+
+
+ Retrieves the target name from the specified byte array.
+
+ A byte array containing the target name.
+ If true the target name will be decoded
+ using UTF-16 unicode encoding.
+
+
+
+
+ The challenge is an 8-byte block of random data.
+
+
+
+
+ The target name of the authentication target.
+
+
+
+
+ The NTLM flags set on this message.
+
+
+
+
+ The SSPI context handle when a local call is being made,
+ otherwise null.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The version of this Type 2 message instance.
+
+
+
+
+ Contains the data present in the target information block.
+
+
+
+
+ Contains the raw data present in the target information block.
+
+
+
+
+ Represents an NTLM Type 3 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 3 for an NTLM Type 3 message.
+
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts. All security buffers will
+ be encoded as Unicode.
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ Set this to true, if Unicode encoding has been
+ negotiated between client and server.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts.
+ Thrown if the username, password
+ or challenge parameters are null.
+
+
+
+ Serializes this instance of the Type3 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type3
+ class.
+
+
+
+ Returns a random 8-byte cnonce value.
+
+ A random 8-byte cnonce value.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The "Lan Manager" challenge response.
+
+
+
+
+ The offset at which the LM challenge response data starts.
+
+
+
+
+ The NTLM challenge response.
+
+
+
+
+ The offset at which the NTLM challenge response data starts.
+
+
+
+
+ The authentication realm in which the authenticating account
+ has membership.
+
+
+
+
+ The offset at which the target name data starts.
+
+
+
+
+ The authenticating account name.
+
+
+
+
+ The offset at which the username data starts.
+
+
+
+
+ The client workstation's name.
+
+
+
+
+ The offset at which the client workstation's name data starts.
+
+
+
+
+ The session key value which is used by the session security mechanism
+ during key exchange.
+
+
+
+
+ The offset at which the session key data starts.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The encoding used for transmitting the contents of the various
+ security buffers.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2195.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslCramMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Cram-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Cram-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Cram-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2831.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Cram-Md5 involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslDigestMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Digest-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Digest-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Parses the challenge string sent by the server in response to a Digest-Md5
+ authentication request.
+
+ The challenge sent by the server as part of
+ "Step One" of the Digest-Md5 authentication mechanism.
+ An initialized NameValueCollection instance made up of the
+ attribute/value pairs contained in the challenge.
+ Thrown if the challenge parameter
+ is null.
+ Refer to RFC 2831 section 2.1.1 for a detailed description of the
+ format of the challenge sent by the server.
+
+
+
+ Computes the "response-value" hex-string which is part of the
+ Digest-MD5 challenge-response.
+
+ A collection containing the attributes
+ and values of the challenge sent by the server.
+ The cnonce value to use for computing
+ the response-value.
+ The "digest-uri" string to use for
+ computing the response-value.
+ The username to use for computing the
+ response-value.
+ The password to use for computing the
+ response-value.
+ A string containing a hash-value which is part of the
+ response sent by the client.
+ Refer to RFC 2831, section 2.1.2.1 for a detailed
+ description of the computation of the response-value.
+
+
+
+ Calculates the MD5 hash value for the specified string.
+
+ The string to calculate the MD5 hash value for.
+ The encoding to employ for encoding the
+ characters in the specified string into a sequence of bytes for
+ which the MD5 hash will be calculated.
+ An MD5 hash as a 32-character hex-string.
+ Thrown if the input string
+ is null.
+
+
+
+ Encloses the specified string in double-quotes.
+
+ The string to enclose in double-quote characters.
+ The enclosed string.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Digest-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLM authentication method which is used in various
+ Microsoft network protocol implementations.
+
+ Implemented with the help of the excellent documentation on
+ NTLM composed by Eric Glass.
+
+
+
+ NTLM involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlm class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an NTLM challenge.
+
+ The challenge sent by the server. Since
+ NTLM expects an initial client response, this will usually be
+ empty.
+ The initial response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the NTLM authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLMv2 authentication method which addresses
+ some of the security issues present in NTLM version 1.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlmv2 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ Implements the Sasl OAuth authentication method.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ Thrown if the accessToken
+ parameter is null.
+ Thrown if the accessToken
+ parameter is empty.
+
+
+
+ Computes the client response for a OAuth challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth authentication mechanism.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl OAuth 2.0 authentication method.
+
+
+
+
+ The server sends an error response in case authentication fails
+ which must be acknowledged.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The username to authenticate with.
+ Thrown if the username
+ or the accessToken parameter is null.
+ Thrown if the username or
+ the accessToken parameter is empty.
+
+
+
+ Computes the client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth 2.0 authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl Plain authentication method as described in
+ RFC 4616.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslPlain class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response for a plain-challenge.
+
+ The challenge sent by the server. For the
+ "plain" mechanism this will usually be empty.
+ The response for the "plain"-challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Plain authentication mechanism as described
+ in RFC 4616.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The plain-text password to authenticate with.
+
+
+
+
+ The exception is thrown when a Sasl-related error or unexpected condition occurs.
+
+
+
+
+ Initializes a new instance of the SaslException class
+
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the SaslException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ A factory class for producing instances of Sasl mechanisms.
+
+
+
+
+ Creates an instance of the Sasl mechanism with the specified
+ name.
+
+ The name of the Sasl mechanism of which an
+ instance will be created.
+ An instance of the Sasl mechanism with the specified name.
+ Thrown if the name parameter
+ is null.
+ Thrown if the Sasl mechanism with the
+ specified name is not registered with Sasl.SaslFactory.
+
+
+
+ Registers a Sasl mechanism with the factory using the specified name.
+
+ The name with which to register the Sasl mechanism
+ with the factory class.
+ The type of the class implementing the Sasl mechanism.
+ The implementing class must be a subclass of Sasl.SaslMechanism.
+ Thrown if the name or the t
+ parameter is null.
+ Thrown if the class represented
+ by the specified type does not derive from Sasl.SaslMechanism.
+ Thrown if the Sasl mechanism could not
+ be registered with the factory. Refer to the inner exception for error
+ details.
+
+
+
+ Static class constructor. Initializes static properties.
+
+
+
+
+ A dictionary of Sasl mechanisms registered with the factory class.
+
+
+
+
+ Represents chainable search conditions that can be used with the Search method.
+
+
+
+
+ Finds all messages in the mailbox.
+
+ A SearchCondition object representing the "all" search criterion.
+
+
+
+ Finds messages that contain the specified string in the header or body of the message.
+
+ String to search messages for.
+ A SearchCondition object representing the "text" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's BCC field.
+
+ String to search the envelope structure's BCC field for.
+ A SearchCondition object representing the "BCC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages whose internal date (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the message's internal date with.
+ A SearchCondition object representing the "Before" search criterion.
+
+
+
+ Finds messages that contain the specified string in the body of the message.
+
+ String to search the message body for.
+ A SearchCondition object representing the "Body" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's CC field.
+
+ String to search the envelope structure's CC field for.
+ A SearchCondition object representing the "CC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's FROM field.
+
+ String to search the envelope structure's FROM field for.
+ A SearchCondition object representing the "FROM" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have a header with the specified field-name and that contains the
+ specified string in the text of the header.
+
+ field-name of the header to search for.
+ String to search for in the text of the header.
+ A SearchCondition object representing the "HEADER" search criterion.
+
+ If the string to search is zero-length, this matches all messages that have a header line
+ with the specified field-name regardless of the contents.
+
+ The name parameter or the text parameter is
+ null.
+
+
+
+ Finds messages with the specified keyword flag set.
+
+ The keyword flag to search for.
+ A SearchCondition object representing the "KEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with a size larger than the specified number of bytes.
+
+ Minimum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "LARGER" search criterion.
+
+
+
+ Finds messages with a size smaller than the specified number of bytes.
+
+ Maximum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "SMALLER" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTBEFORE" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within the specified
+ date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTON" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within or later than
+ the specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTSINCE" search criterion.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's SUBJECT field.
+
+ String to search the envelope structure's SUBJECT field for.
+ A SearchCondition object representing the "SUBJECT" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's TO field.
+
+ String to search the envelope structure's TO field for.
+ A SearchCondition object representing the "TO" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with unique identifiers corresponding to the specified unique identifier set.
+
+ One or several unique identifiers (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages with a unique identifier greater than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+ Because of the nature of the IMAP search mechanism, the result set will always contain the
+ UID of the last message in the mailbox, even if said UID is smaller than the UID specified.
+
+
+
+
+ Finds messages with a unique identifier less than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages that do not have the specified keyword flag set.
+
+ The IMAP keyword flag to search for.
+ A SearchCondition object representing the "UNKEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have the \Answered flag set.
+
+ A SearchCondition object representing the "ANSWERED" search criterion.
+
+
+
+ Finds messages that have the \Deleted flag set.
+
+ A SearchCondition object representing the "DELETED" search criterion.
+
+
+
+ Finds messages that have the \Draft flag set.
+
+ A SearchCondition object representing the "DRAFT" search criterion.
+
+
+
+ Finds messages that have the \Flagged flag set.
+
+ A SearchCondition object representing the "FLAGGED" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set but not the \Seen flag.
+
+ A SearchCondition object representing the "NEW" search criterion.
+
+
+
+ Finds messages that do not have the \Recent flag set.
+
+ A SearchCondition object representing the "OLD" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set.
+
+ A SearchCondition object representing the "RECENT" search criterion.
+
+
+
+ Finds messages that have the \Seen flag set.
+
+ A SearchCondition object representing the "SEEN" search criterion.
+
+
+
+ Finds messages that do not have the \Answered flag set.
+
+ A SearchCondition object representing the "UNANSWERED" search criterion.
+
+
+
+ Finds messages that do not have the \Deleted flag set.
+
+ A SearchCondition object representing the "UNDELETED" search criterion.
+
+
+
+ Finds messages that do not have the \Draft flag set.
+
+ A SearchCondition object representing the "UNDRAFT" search criterion.
+
+
+
+ Finds messages that do not have the \Flagged flag set.
+
+ A SearchCondition object representing the "UNFLAGGED" search criterion.
+
+
+
+ Finds messages that do not have the \Seen flag set.
+
+ A SearchCondition object representing the "UNSEEN" search criterion.
+
+
+
+ Logically ANDs multiple search conditions, meaning a message will only be included in the
+ search result if both of the ANDed conditions are met.
+
+ A search condition to logically AND this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically negates search conditions, meaning a message will only be included in the search
+ result if the specified conditions are not met.
+
+ A search condition that must not be met by a message for it to be
+ included in the search result set.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically ORs multiple search conditions, meaning a message will be included in the search
+ result if it meets at least either of the conditions.
+
+ A search condition to logically OR this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Joins two SearchCondition objects into a new one using the specified logical operator.
+
+ The logical operator to use for joining the search conditions.
+ Possible values are "OR", "NOT" and the empty string "" which denotes a logical AND.
+ The first SearchCondition object
+ The second SearchCondition object
+ A new SearchCondition object representing the two search conditions joined by the
+ specified logical operator.
+
+
+
+ Concatenates the members of a collection, using the specified separator between each
+ member.
+
+ The type of the members of values.
+ The string to use as a separator.
+ A collection that contains the objects to concatenate.
+ A string that consists of the members of values delimited by the separator
+ string. If values has no members, the method returns System.String.Empty.
+ The values parameter is null.
+ This is already part of the String class in .NET 4.0 and newer but is needed
+ for backwards compatibility with .NET 3.5.
+
+
+
+ Constructs a string from the SearchCondition object using the proper syntax as is required
+ for the IMAP SEARCH command.
+
+ A string representing this SearchCondition instance that can be used with the IMAP
+ SEARCH command.
+
+
+
+ The search keys which can be used with the IMAP SEARCH command, as are defined in section
+ 6.4.4 of RFC 3501.
+
+
+
+
+ A static utility class containing methods for decoding encoded non-ASCII data as well as
+ extension methods for some classes of the base class library.
+
+
+
+
+ Returns a copy of the string enclosed in double-quotes and with escaped CRLF, back-slash
+ and double-quote characters (as is expected by some commands of the IMAP protocol).
+
+ Extends the System.String class
+ A copy of the string enclosed in double-quotes and properly escaped as is required
+ by the IMAP protocol.
+
+
+
+ Returns true if the string contains only ASCII characters.
+
+ Extension method for the String class.
+ true if the string contains only ASCII characters; Otherwise false.
+
+
+
+ Splits a string into chunks of the specified number of characters.
+
+ Extension method for the String class.
+ The length of a chunk, measured in characters.
+ An array of string chunks.
+
+
+
+ Determines whether the specified string occurs within this string.
+
+ Extension method for the String class.
+ The string to seek.
+ One of the enumeration values that specifies the rules for the
+ search.
+ true if the value parameter occurs within this string, or if value is the empty
+ string (""); otherwise, false.
+ The value parameter is null.
+
+
+
+ Raises the event. Ensures the event is only raised, if it is not null.
+
+ Extends System.EventHandler class.
+ Extends System.EventHandler class.
+ The sender of the event.
+ The event arguments associated with this event.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ The name to use when throwing an exception, if necessary.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+ The name to use when throwing an exception, if necessary.
+
+
+
+ Reads an unsigned short value from the underlying stream, optionally using big-endian byte
+ ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the short value as big endian value.
+ The 16-byte unsigned short value read from the underlying stream.
+
+
+
+ Decodes a string composed of one or several MIME 'encoded-words'.
+
+ A string to composed of one or several MIME 'encoded-words'.
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A concatenation of all enconded-words in the passed string
+
+
+
+ Internal function reuse to add separation between multiple 'encoded-word's correctly.
+
+
+
+
+ The regular expression for matching encoded-words. This also accounts for the extension for
+ including language information (as defined in RFC2231).
+
+
+
+
+ Decodes a MIME 'encoded-word' string.
+
+ The encoded word to decode
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A decoded string
+ MIME encoded-word syntax is a way to encode strings that contain non-ASCII data.
+ Commonly used encodings for the encoded-word sytax are Q-Encoding and Base64. For an
+ in-depth description, refer to RFC 2047.
+
+
+
+ Takes a Q-encoded string and decodes it using the specified encoding.
+
+ The Q-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid Q-encoded string.
+ The Q-decoded string.
+
+
+
+ Takes a quoted-printable encoded string and decodes it using the specified encoding.
+
+ The quoted-printable-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid quoted-printable encoded
+ string.
+ A quoted-printable decoded string.
+
+
+
+ Decodes the specified MIME parameter value.
+
+ The MIME parameter value to decode.
+ The decoded MIME parameter value.
+ The specified value is not a valid Rfc2231-encoded
+ string.
+ Refer to RFC2231 for the details of the encoding mechanism.
+
+
+
+ Takes a Base64-encoded string and decodes it.
+
+ The Base64-encoded string to decode.
+ A byte array containing the Base64-decoded bytes of the input string.
+ The value parameter is null.
+ The length of value, ignoring white-space
+ characters, is not zero or a multiple of 4, or the format of value is invalid, or the value
+ contains a non-base-64 character, more than two padding characters, or a non-white
+ space-character among the padding characters.
+
+
+
+ Takes a UTF-16 encoded string and encodes it as modified UTF-7.
+
+ The string to encode.
+ A UTF-7 encoded string
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ Takes a modified UTF-7 encoded string and decodes it.
+
+ The UTF-7 encoded string to decode.
+ A UTF-16 encoded "standard" C# string
+ The input string is not a properly UTF-7 encoded
+ string.
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ This just wraps Encoding.GetEncoding in a try-catch block to ensure it never fails. If the
+ encoding can not be determined ASCII is returned as a default.
+
+ The code page name of the preferred encoding. Any value returned by
+ System.Text.Encoding.WebName is a valid input.
+ The System.Text.Encoding associated with the specified code page or Encoding.ASCII
+ if the specified code page could not be resolved.
+
+
+
+ Converts the specified enumerable collection of UIDs into an IMAP sequence-set.
+
+ An enumerable collection of UIDs.
+ An IMAP sequence-set suitable for use with IMAP commands.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ Refer to RFC3501, 9.Formal Syntax "sequence-set" for a description of IMAP
+ sequence-sets.
+
+
+
diff --git a/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb b/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb
index 7966f0d..9e5dedd 100644
--- a/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb
+++ b/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb
@@ -18,38 +18,38 @@ Public Class clsEmailIMAP
' Logger.Info(e.Log)
'End Sub
- Public Function TestIMAPLogin(Server As String, Port As Integer, Username As String, Password As String, Inbox As String) As Boolean
- Logger.Debug("Testing Login to Server {0}:{1} with user {2}", Server, Port, Username)
+ 'Public Function TestIMAPLogin(Server As String, Port As Integer, Username As String, Password As String, Inbox As String) As Boolean
+ ' Logger.Debug("Testing Login to Server {0}:{1} with user {2}", Server, Port, Username)
- Try
- Logger.Debug("Connecting...")
- Using oClient As New S22.Imap.ImapClient(Server, Port, Username, Password, S22.Imap.AuthMethod.Login, True)
- If Not oClient.Authed Then
- Logger.Warn("Connected to server but authentication failed.")
- Return False
- End If
- Logger.Debug("Connection successful")
+ ' Try
+ ' Logger.Debug("Connecting...")
+ ' Using oClient As New S22.Imap.ImapClient(Server, Port, Username, Password, S22.Imap.AuthMethod.Login, True)
+ ' If Not oClient.Authed Then
+ ' Logger.Warn("Connected to server but authentication failed.")
+ ' Return False
+ ' End If
+ ' Logger.Debug("Connection successful")
- Logger.Debug("Fetching MessageIds..")
- Dim oMessageIds As IEnumerable(Of UInteger) = oClient.Search(S22.Imap.SearchCondition.Unseen, Inbox)
+ ' Logger.Debug("Fetching MessageIds..")
+ ' Dim oMessageIds As IEnumerable(Of UInteger) = oClient.Search(S22.Imap.SearchCondition.Unseen, Inbox)
- Logger.Debug("Found {0} messages", oMessageIds.Count)
- Logger.Debug("Fetching messages...")
+ ' Logger.Debug("Found {0} messages", oMessageIds.Count)
+ ' Logger.Debug("Fetching messages...")
- Dim oMessages As IEnumerable(Of Mail.MailMessage) = oClient.GetMessages(oMessageIds, False, Inbox)
- Logger.Debug("Messages fetched")
+ ' Dim oMessages As IEnumerable(Of Mail.MailMessage) = oClient.GetMessages(oMessageIds, False, Inbox)
+ ' Logger.Debug("Messages fetched")
- oClient.Dispose()
+ ' oClient.Dispose()
- Return True
- End Using
- Catch ex As Exception
- Logger.Error(ex)
- Return False
- End Try
- End Function
+ ' Return True
+ ' End Using
+ ' Catch ex As Exception
+ ' Logger.Error(ex)
+ ' Return False
+ ' End Try
+ 'End Function
- Public Function FetchIMAPMessages(Server As String, Port As Integer, Username As String, Password As String, Inbox As String) As Boolean
+ Public Function FetchIMAPMessages(Server As String, Port As Integer, Username As String, Password As String, Inbox As String, Optional IsTest As Boolean = False) As Boolean
Logger.Debug("Connecting to Server {0}:{1} with user {2}", Server, Port, Username)
Try
@@ -73,12 +73,20 @@ Public Class clsEmailIMAP
Dim oResult = WriteMessageToFile(oMessage, oTempPath)
Dim oMsg As New Message(oTempPath)
- MAIL_LIST.Add(oMsg)
+ If IsTest = False Then
+ MAIL_LIST.Add(oMsg)
+ Else
+ Logger.Debug($"message correctly fetched. Mail has been downloaded to {oTempPath}")
+ End If
+
Try
- File.Delete(oTempPath)
+ If IsTest = False Then
+ File.Delete(oTempPath)
+ End If
+
Catch ex As Exception
- Logger.Error(ex)
+ Logger.Error(ex)
Logger.Warn("Temp file could not be deleted")
End Try
Next
@@ -199,43 +207,5 @@ Public Class clsEmailIMAP
' End Try
'End Function
- Public Function TEST_AEIMAP_COLLECT(INBOXNAME As String, MYMAIL_SERVER As String, MYMAIL_PORT As Integer, MYMAIL_USER As String, MYMAIL_USER_PW As String)
- Try
- Logger.Info(String.Format("Working on TEST_AEIMAP_COLLECT....."))
- 'Dim oLogPath = System.IO.Path.Combine(My.Application.Info.DirectoryPath, "Log\logindependentSoft.txt")
- 'Logger.Debug($"IsoftLog: {oLogPath}...")
- 'Dim oindependentLogger As New Independentsoft.Email.Logger(oLogPath)
- ' Dim sslProtocol As System.Security.Authentication.SslProtocols = Security.Authentication.SslProtocols.Default
- Dim oImapClient As New AE.Net.Mail.ImapClient(MYMAIL_SERVER, MYMAIL_USER, MYMAIL_USER_PW, AE.Net.Mail.AuthMethods.Login, MYMAIL_PORT)
- 'oImapClient.Logger = oindependentLogger
- 'oImapClient.ValidateRemoteCertificate = False
- Try
- If (oImapClient.IsConnected) Then
- Logger.Debug($"oImapClient Login successfull...")
- Else
- Logger.Info($"oImapClient NOT connected...")
- Return False
- End If
- Catch ex As Exception
- Logger.Warn(ex.Message)
- Logger.Error(ex)
- Return False
- End Try
-
-
- oImapClient.Disconnect()
-
-
-
- Logger.Info("TEST_IMAP_COLLECT finished!")
- Return True
-
- Catch ex As Exception
- Logger.Info($"Unexpected error in TEST_IMAP_COLLECT - User: [{MYMAIL_USER}] PW: [{MYMAIL_USER_PW}]")
- Logger.Error(ex, "Unexpected Error in TEST_IMAP_COLLECT:")
- MsgBox($"Unexpected error in TEST_IMAP_COLLECT: {ex.Message}")
- Return False
- End Try
- End Function
End Class
diff --git a/App/DigitalData.EMLProfiler/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/App/DigitalData.EMLProfiler/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 5c4cdd9..be7ad95 100644
Binary files a/App/DigitalData.EMLProfiler/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/App/DigitalData.EMLProfiler/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.dll b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.dll
index ea18586..e40f034 100644
Binary files a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.dll and b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.dll differ
diff --git a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.pdb b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.pdb
index 9b5bb2c..87cdc1a 100644
Binary files a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.pdb and b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.pdb differ
diff --git a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.CoreCompileInputs.cache b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.CoreCompileInputs.cache
index f382832..61c4f63 100644
--- a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.CoreCompileInputs.cache
+++ b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.CoreCompileInputs.cache
@@ -1 +1 @@
-e16852c9dcabf8ca2116c0fea0baeab31771f4e2
+064839440650a653f8e769d63390527023957743
diff --git a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.FileListAbsolute.txt b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.FileListAbsolute.txt
index 32d02c9..cb75be7 100644
--- a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.FileListAbsolute.txt
+++ b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbproj.FileListAbsolute.txt
@@ -2,13 +2,16 @@ E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.EMLProfiler.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.EMLProfiler.pdb
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.EMLProfiler.xml
+E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\AE.Net.Mail.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.Modules.Database.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.Modules.Logging.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\Independentsoft.Email.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\Interop.WINDREAMLib.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\NLog.dll
+E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\S22.Imap.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\FirebirdSql.Data.FirebirdClient.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\Oracle.ManagedDataAccess.dll
+E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\AE.Net.Mail.pdb
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.Modules.Database.pdb
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.Modules.Database.xml
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.Modules.Database.dll.config
@@ -16,6 +19,7 @@ E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.Modules.Logging.xml
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\Independentsoft.Email.xml
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\NLog.xml
+E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\S22.Imap.xml
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\FirebirdSql.Data.FirebirdClient.pdb
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\obj\Debug\DigitalData.EMLProfiler.Resources.resources
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\obj\Debug\DigitalData.EMLProfiler.vbproj.GenerateResource.cache
@@ -24,5 +28,3 @@ E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\obj
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\obj\Debug\DigitalData.EMLProfiler.dll
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\obj\Debug\DigitalData.EMLProfiler.xml
E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\obj\Debug\DigitalData.EMLProfiler.pdb
-E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\AE.Net.Mail.dll
-E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\AE.Net.Mail.pdb
diff --git a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbprojAssemblyReference.cache b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbprojAssemblyReference.cache
deleted file mode 100644
index 9e859b0..0000000
Binary files a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.vbprojAssemblyReference.cache and /dev/null differ
diff --git a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.xml b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.xml
index 0e67dde..f42200e 100644
--- a/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.xml
+++ b/App/DigitalData.EMLProfiler/obj/Debug/DigitalData.EMLProfiler.xml
@@ -22,6 +22,12 @@ DigitalData.EMLProfiler
resource lookups using this strongly typed resource class.
+
+
+ Uses a private API from MailWriter to write a MailMessage to disk.
+ May break in future versions of .NET
+
+
Konstruktor für die windream-Klasse
diff --git a/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL-Error.log b/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL-Error.0.log
similarity index 75%
rename from App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL-Error.log
rename to App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL-Error.0.log
index 9a8f114..541fe5f 100644
--- a/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL-Error.log
+++ b/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL-Error.0.log
@@ -1517,3 +1517,500 @@
bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
2019-04-11 18:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:23:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:33:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:43:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:48:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 18:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:03:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:13:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:23:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:33:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:43:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:48:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 19:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:23:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:33:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:43:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:48:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 20:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:23:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:33:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:43:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:48:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 21:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:23:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:33:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:43:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:48:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 22:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:23:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:28:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:33:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:43:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:48:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:58:02|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-11 23:58:02|clsWorker|WARN >> Error while polling emails....
diff --git a/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL.log b/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL.0.log
similarity index 75%
rename from App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL.log
rename to App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL.0.log
index ca70d75..d1cbe41 100644
--- a/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL.log
+++ b/App/SERV_EMAIL/bin/Debug/Log/2019-04-11-SERV_EMAIL.0.log
@@ -1517,3 +1517,500 @@
2019-04-11 18:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
2019-04-11 18:03:00|clsWorker|WARN >> Error while polling emails....
2019-04-11 18:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:07:59|MyService|INFO >> ## running thread......
+2019-04-11 18:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:07:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:12:59|MyService|INFO >> ## running thread......
+2019-04-11 18:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:12:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:13:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:17:59|MyService|INFO >> ## running thread......
+2019-04-11 18:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:17:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:18:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:22:59|MyService|INFO >> ## running thread......
+2019-04-11 18:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:23:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:27:59|MyService|INFO >> ## running thread......
+2019-04-11 18:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:32:59|MyService|INFO >> ## running thread......
+2019-04-11 18:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:37:59|MyService|INFO >> ## running thread......
+2019-04-11 18:37:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:37:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:37:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:42:59|MyService|INFO >> ## running thread......
+2019-04-11 18:42:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:42:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:42:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:43:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:47:59|MyService|INFO >> ## running thread......
+2019-04-11 18:47:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:47:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:47:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:48:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:52:59|MyService|INFO >> ## running thread......
+2019-04-11 18:52:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:52:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:52:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 18:57:59|MyService|INFO >> ## running thread......
+2019-04-11 18:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 18:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 18:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 18:57:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 18:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 18:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:02:59|MyService|INFO >> ## running thread......
+2019-04-11 19:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:02:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:03:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:07:59|MyService|INFO >> ## running thread......
+2019-04-11 19:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:07:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:12:59|MyService|INFO >> ## running thread......
+2019-04-11 19:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:12:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:13:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:17:59|MyService|INFO >> ## running thread......
+2019-04-11 19:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:17:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:22:59|MyService|INFO >> ## running thread......
+2019-04-11 19:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:23:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:27:59|MyService|INFO >> ## running thread......
+2019-04-11 19:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:32:59|MyService|INFO >> ## running thread......
+2019-04-11 19:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:33:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:37:59|MyService|INFO >> ## running thread......
+2019-04-11 19:37:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:37:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:37:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:42:59|MyService|INFO >> ## running thread......
+2019-04-11 19:42:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:42:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:42:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:43:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:47:59|MyService|INFO >> ## running thread......
+2019-04-11 19:47:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:47:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:47:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:48:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:52:59|MyService|INFO >> ## running thread......
+2019-04-11 19:52:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:52:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:52:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 19:57:59|MyService|INFO >> ## running thread......
+2019-04-11 19:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 19:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 19:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 19:57:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 19:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 19:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:02:59|MyService|INFO >> ## running thread......
+2019-04-11 20:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:02:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:07:59|MyService|INFO >> ## running thread......
+2019-04-11 20:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:07:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:12:59|MyService|INFO >> ## running thread......
+2019-04-11 20:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:12:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:13:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:17:59|MyService|INFO >> ## running thread......
+2019-04-11 20:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:17:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:22:59|MyService|INFO >> ## running thread......
+2019-04-11 20:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:23:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:27:59|MyService|INFO >> ## running thread......
+2019-04-11 20:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:32:59|MyService|INFO >> ## running thread......
+2019-04-11 20:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:33:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:37:59|MyService|INFO >> ## running thread......
+2019-04-11 20:37:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:37:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:37:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:42:59|MyService|INFO >> ## running thread......
+2019-04-11 20:42:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:42:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:42:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:43:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:47:59|MyService|INFO >> ## running thread......
+2019-04-11 20:47:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:47:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:47:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:48:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:52:59|MyService|INFO >> ## running thread......
+2019-04-11 20:52:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:52:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:52:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 20:57:59|MyService|INFO >> ## running thread......
+2019-04-11 20:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 20:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 20:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 20:57:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 20:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 20:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:02:59|MyService|INFO >> ## running thread......
+2019-04-11 21:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:02:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:07:59|MyService|INFO >> ## running thread......
+2019-04-11 21:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:07:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:12:59|MyService|INFO >> ## running thread......
+2019-04-11 21:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:12:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:13:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:17:59|MyService|INFO >> ## running thread......
+2019-04-11 21:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:17:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:22:59|MyService|INFO >> ## running thread......
+2019-04-11 21:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:23:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:27:59|MyService|INFO >> ## running thread......
+2019-04-11 21:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:32:59|MyService|INFO >> ## running thread......
+2019-04-11 21:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:33:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:37:59|MyService|INFO >> ## running thread......
+2019-04-11 21:37:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:37:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:37:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:42:59|MyService|INFO >> ## running thread......
+2019-04-11 21:42:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:42:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:42:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:43:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:47:59|MyService|INFO >> ## running thread......
+2019-04-11 21:47:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:47:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:47:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:48:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:52:59|MyService|INFO >> ## running thread......
+2019-04-11 21:52:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:52:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:52:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 21:57:59|MyService|INFO >> ## running thread......
+2019-04-11 21:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 21:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 21:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 21:57:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 21:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 21:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:02:59|MyService|INFO >> ## running thread......
+2019-04-11 22:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:02:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:07:59|MyService|INFO >> ## running thread......
+2019-04-11 22:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:07:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:12:59|MyService|INFO >> ## running thread......
+2019-04-11 22:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:12:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:13:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:17:59|MyService|INFO >> ## running thread......
+2019-04-11 22:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:17:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:22:59|MyService|INFO >> ## running thread......
+2019-04-11 22:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:23:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:27:59|MyService|INFO >> ## running thread......
+2019-04-11 22:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:32:59|MyService|INFO >> ## running thread......
+2019-04-11 22:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:33:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:37:59|MyService|INFO >> ## running thread......
+2019-04-11 22:37:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:37:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:37:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:42:59|MyService|INFO >> ## running thread......
+2019-04-11 22:42:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:42:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:42:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:43:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:47:59|MyService|INFO >> ## running thread......
+2019-04-11 22:47:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:47:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:47:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:48:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:52:59|MyService|INFO >> ## running thread......
+2019-04-11 22:52:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:52:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:52:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 22:57:59|MyService|INFO >> ## running thread......
+2019-04-11 22:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 22:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 22:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 22:57:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 22:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 22:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:02:59|MyService|INFO >> ## running thread......
+2019-04-11 23:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:02:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:07:59|MyService|INFO >> ## running thread......
+2019-04-11 23:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:07:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:08:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:12:59|MyService|INFO >> ## running thread......
+2019-04-11 23:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:12:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:13:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:17:59|MyService|INFO >> ## running thread......
+2019-04-11 23:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:17:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:22:59|MyService|INFO >> ## running thread......
+2019-04-11 23:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:23:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:27:59|MyService|INFO >> ## running thread......
+2019-04-11 23:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:28:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:32:59|MyService|INFO >> ## running thread......
+2019-04-11 23:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:37:59|MyService|INFO >> ## running thread......
+2019-04-11 23:37:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:37:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:37:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:42:59|MyService|INFO >> ## running thread......
+2019-04-11 23:42:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:42:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:42:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:43:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:47:59|MyService|INFO >> ## running thread......
+2019-04-11 23:47:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:47:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:47:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:52:59|MyService|INFO >> ## running thread......
+2019-04-11 23:52:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:52:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:52:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-11 23:57:59|MyService|INFO >> ## running thread......
+2019-04-11 23:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-11 23:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-11 23:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-11 23:57:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-11 23:58:02|clsWorker|WARN >> Error while polling emails....
+2019-04-11 23:58:02|clsWorker|INFO >> No emails for profile!
diff --git a/App/SERV_EMAIL/bin/Debug/Log/2019-04-12-SERV_EMAIL-Error.log b/App/SERV_EMAIL/bin/Debug/Log/2019-04-12-SERV_EMAIL-Error.log
new file mode 100644
index 0000000..53850e1
--- /dev/null
+++ b/App/SERV_EMAIL/bin/Debug/Log/2019-04-12-SERV_EMAIL-Error.log
@@ -0,0 +1,917 @@
+2019-04-12 00:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:18:02|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:18:02|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:23:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:33:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:43:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:48:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 00:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:23:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:33:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:43:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:48:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 01:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:23:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:33:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:43:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:48:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:53:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 02:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:03:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:08:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:13:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:23:02|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:23:02|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:33:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:43:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:48:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:53:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:58:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 03:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:03:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:08:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:18:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:23:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:28:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:33:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:38:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:43:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:48:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:53:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:58:02|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 04:58:02|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:03:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:08:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:13:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:18:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:23:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:28:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:33:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:38:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:43:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:48:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:53:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:58:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 05:58:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:03:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:08:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:13:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:18:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:23:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:28:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:33:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:38:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:43:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:48:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:53:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:58:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 06:58:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:03:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:08:00|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:13:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:18:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:23:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:28:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:33:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:38:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:43:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:48:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:53:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:58:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 07:58:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:03:01|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:09:15|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:09:18|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:09:18|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:14:13|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:14:14|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:14:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:19:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:19:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:19:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:24:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:24:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:24:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:29:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:29:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:29:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:34:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:34:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:34:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:39:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:39:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:39:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:44:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:44:14|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:44:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:49:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:49:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:49:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:54:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:54:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:54:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:59:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:59:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 08:59:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:04:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:04:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:04:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:09:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:09:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:09:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:14:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:14:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:14:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:19:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:19:14|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:19:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:24:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:24:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:24:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:29:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:29:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:29:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:34:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:34:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:34:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:39:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:39:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:39:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:44:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:44:14|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:44:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:49:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:49:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:49:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:54:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:54:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:54:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:59:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:59:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 09:59:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:04:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:04:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:04:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:09:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:09:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:09:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:14:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:14:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:14:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:19:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:19:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:19:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:24:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:24:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:24:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:29:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:29:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:29:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:34:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:34:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:34:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:39:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:39:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:39:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:44:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:44:14|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:44:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:49:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:49:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:49:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:54:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:54:13|clsEmailIMAP|ERROR >> LOGIN failed.
+ bei Independentsoft.Email.Imap.ImapClient.?(String ?, String ?)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password, AuthenticationType authenticationType)
+ bei Independentsoft.Email.Imap.ImapClient.Login(String username, String password)
+ bei DigitalData.EMLProfiler.clsEmailIMAP.IMAP_COLLECT() in E:\SchreiberM\Visual Studio\GIT\DD_EmailProfiler\App\DigitalData.EMLProfiler\clsEmail.IMAP.vb:Zeile 28.
+2019-04-12 10:54:13|clsWorker|WARN >> Error while polling emails....
diff --git a/App/SERV_EMAIL/bin/Debug/Log/2019-04-12-SERV_EMAIL.log b/App/SERV_EMAIL/bin/Debug/Log/2019-04-12-SERV_EMAIL.log
new file mode 100644
index 0000000..075cdc4
--- /dev/null
+++ b/App/SERV_EMAIL/bin/Debug/Log/2019-04-12-SERV_EMAIL.log
@@ -0,0 +1,920 @@
+2019-04-12 00:02:59|MyService|INFO >> ## running thread......
+2019-04-12 00:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:02:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:07:59|MyService|INFO >> ## running thread......
+2019-04-12 00:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:08:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:12:59|MyService|INFO >> ## running thread......
+2019-04-12 00:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:13:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:13:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:17:59|MyService|INFO >> ## running thread......
+2019-04-12 00:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:18:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:18:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:18:02|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:18:02|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:23:00|MyService|INFO >> ## running thread......
+2019-04-12 00:23:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:23:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:23:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:23:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:28:00|MyService|INFO >> ## running thread......
+2019-04-12 00:28:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:28:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:28:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:33:00|MyService|INFO >> ## running thread......
+2019-04-12 00:33:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:33:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:33:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:33:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:38:00|MyService|INFO >> ## running thread......
+2019-04-12 00:38:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:38:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:38:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:43:00|MyService|INFO >> ## running thread......
+2019-04-12 00:43:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:43:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:43:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:43:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:48:00|MyService|INFO >> ## running thread......
+2019-04-12 00:48:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:48:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:48:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:53:00|MyService|INFO >> ## running thread......
+2019-04-12 00:53:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:53:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:53:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 00:58:00|MyService|INFO >> ## running thread......
+2019-04-12 00:58:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 00:58:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 00:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 00:58:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 00:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 00:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:03:00|MyService|INFO >> ## running thread......
+2019-04-12 01:03:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:03:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:03:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:08:00|MyService|INFO >> ## running thread......
+2019-04-12 01:08:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:08:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:08:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:12:59|MyService|INFO >> ## running thread......
+2019-04-12 01:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:13:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:13:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:13:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:17:59|MyService|INFO >> ## running thread......
+2019-04-12 01:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:18:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:22:59|MyService|INFO >> ## running thread......
+2019-04-12 01:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:23:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:23:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:27:59|MyService|INFO >> ## running thread......
+2019-04-12 01:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:32:59|MyService|INFO >> ## running thread......
+2019-04-12 01:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:37:59|MyService|INFO >> ## running thread......
+2019-04-12 01:37:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:37:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:37:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:37:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:42:59|MyService|INFO >> ## running thread......
+2019-04-12 01:42:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:42:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:42:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:42:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:43:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:43:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:47:59|MyService|INFO >> ## running thread......
+2019-04-12 01:47:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:47:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:47:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:47:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:48:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:48:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:52:59|MyService|INFO >> ## running thread......
+2019-04-12 01:52:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:52:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:52:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:52:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 01:57:59|MyService|INFO >> ## running thread......
+2019-04-12 01:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 01:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 01:57:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 01:57:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 01:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 01:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:02:59|MyService|INFO >> ## running thread......
+2019-04-12 02:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:02:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:02:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:02:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:07:59|MyService|INFO >> ## running thread......
+2019-04-12 02:07:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:07:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:07:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:07:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:08:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:08:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:12:59|MyService|INFO >> ## running thread......
+2019-04-12 02:12:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:12:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:12:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:12:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:13:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:17:59|MyService|INFO >> ## running thread......
+2019-04-12 02:17:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:17:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:17:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:17:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:22:59|MyService|INFO >> ## running thread......
+2019-04-12 02:22:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:22:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:22:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:22:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:23:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:27:59|MyService|INFO >> ## running thread......
+2019-04-12 02:27:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:27:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:27:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:27:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:32:59|MyService|INFO >> ## running thread......
+2019-04-12 02:32:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:32:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:32:59|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:32:59|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:33:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:37:59|MyService|INFO >> ## running thread......
+2019-04-12 02:38:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:38:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:38:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:42:59|MyService|INFO >> ## running thread......
+2019-04-12 02:43:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:43:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:43:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:43:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:47:59|MyService|INFO >> ## running thread......
+2019-04-12 02:48:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:48:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:48:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:52:59|MyService|INFO >> ## running thread......
+2019-04-12 02:53:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:53:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:53:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:53:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 02:57:59|MyService|INFO >> ## running thread......
+2019-04-12 02:57:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 02:57:59|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 02:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 02:58:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 02:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 02:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:02:59|MyService|INFO >> ## running thread......
+2019-04-12 03:02:59|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:03:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:03:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:03:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:07:59|MyService|INFO >> ## running thread......
+2019-04-12 03:08:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:08:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:08:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:08:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:12:59|MyService|INFO >> ## running thread......
+2019-04-12 03:13:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:13:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:13:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:13:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:18:00|MyService|INFO >> ## running thread......
+2019-04-12 03:18:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:18:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:18:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:18:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:23:00|MyService|INFO >> ## running thread......
+2019-04-12 03:23:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:23:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:23:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:23:02|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:23:02|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:28:00|MyService|INFO >> ## running thread......
+2019-04-12 03:28:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:28:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:28:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:28:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:28:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:33:00|MyService|INFO >> ## running thread......
+2019-04-12 03:33:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:33:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:33:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:38:00|MyService|INFO >> ## running thread......
+2019-04-12 03:38:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:38:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:38:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:38:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:38:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:43:00|MyService|INFO >> ## running thread......
+2019-04-12 03:43:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:43:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:43:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:43:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:48:00|MyService|INFO >> ## running thread......
+2019-04-12 03:48:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:48:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:48:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:53:00|MyService|INFO >> ## running thread......
+2019-04-12 03:53:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:53:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:53:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:53:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:53:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 03:58:00|MyService|INFO >> ## running thread......
+2019-04-12 03:58:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 03:58:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 03:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 03:58:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 03:58:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 03:58:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:03:00|MyService|INFO >> ## running thread......
+2019-04-12 04:03:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:03:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:03:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:03:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:08:00|MyService|INFO >> ## running thread......
+2019-04-12 04:08:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:08:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:08:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:08:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:13:00|MyService|INFO >> ## running thread......
+2019-04-12 04:13:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:13:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:13:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:13:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:18:00|MyService|INFO >> ## running thread......
+2019-04-12 04:18:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:18:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:18:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:18:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:18:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:23:00|MyService|INFO >> ## running thread......
+2019-04-12 04:23:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:23:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:23:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:23:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:28:00|MyService|INFO >> ## running thread......
+2019-04-12 04:28:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:28:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:28:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:28:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:33:00|MyService|INFO >> ## running thread......
+2019-04-12 04:33:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:33:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:33:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:38:00|MyService|INFO >> ## running thread......
+2019-04-12 04:38:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:38:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:38:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:38:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:43:00|MyService|INFO >> ## running thread......
+2019-04-12 04:43:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:43:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:43:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:43:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:48:00|MyService|INFO >> ## running thread......
+2019-04-12 04:48:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:48:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:48:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:53:00|MyService|INFO >> ## running thread......
+2019-04-12 04:53:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:53:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:53:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:53:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 04:58:00|MyService|INFO >> ## running thread......
+2019-04-12 04:58:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 04:58:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 04:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 04:58:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 04:58:02|clsWorker|WARN >> Error while polling emails....
+2019-04-12 04:58:02|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:03:00|MyService|INFO >> ## running thread......
+2019-04-12 05:03:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:03:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:03:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:03:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:08:00|MyService|INFO >> ## running thread......
+2019-04-12 05:08:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:08:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:08:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:08:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:13:00|MyService|INFO >> ## running thread......
+2019-04-12 05:13:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:13:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:13:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:13:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:18:00|MyService|INFO >> ## running thread......
+2019-04-12 05:18:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:18:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:18:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:18:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:23:00|MyService|INFO >> ## running thread......
+2019-04-12 05:23:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:23:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:23:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:23:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:28:00|MyService|INFO >> ## running thread......
+2019-04-12 05:28:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:28:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:28:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:28:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:33:00|MyService|INFO >> ## running thread......
+2019-04-12 05:33:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:33:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:33:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:38:00|MyService|INFO >> ## running thread......
+2019-04-12 05:38:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:38:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:38:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:38:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:43:00|MyService|INFO >> ## running thread......
+2019-04-12 05:43:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:43:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:43:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:43:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:48:00|MyService|INFO >> ## running thread......
+2019-04-12 05:48:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:48:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:48:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:53:00|MyService|INFO >> ## running thread......
+2019-04-12 05:53:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:53:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:53:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:53:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 05:58:00|MyService|INFO >> ## running thread......
+2019-04-12 05:58:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 05:58:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 05:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 05:58:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 05:58:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 05:58:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:03:00|MyService|INFO >> ## running thread......
+2019-04-12 06:03:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:03:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:03:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:03:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:03:00|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:08:00|MyService|INFO >> ## running thread......
+2019-04-12 06:08:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:08:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:08:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:08:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:13:00|MyService|INFO >> ## running thread......
+2019-04-12 06:13:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:13:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:13:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:13:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:13:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:18:00|MyService|INFO >> ## running thread......
+2019-04-12 06:18:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:18:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:18:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:18:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:23:00|MyService|INFO >> ## running thread......
+2019-04-12 06:23:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:23:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:23:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:23:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:28:00|MyService|INFO >> ## running thread......
+2019-04-12 06:28:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:28:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:28:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:28:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:33:00|MyService|INFO >> ## running thread......
+2019-04-12 06:33:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:33:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:33:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:33:00|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:38:00|MyService|INFO >> ## running thread......
+2019-04-12 06:38:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:38:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:38:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:38:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:43:00|MyService|INFO >> ## running thread......
+2019-04-12 06:43:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:43:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:43:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:43:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:48:00|MyService|INFO >> ## running thread......
+2019-04-12 06:48:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:48:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:48:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:53:00|MyService|INFO >> ## running thread......
+2019-04-12 06:53:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:53:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:53:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:53:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 06:58:00|MyService|INFO >> ## running thread......
+2019-04-12 06:58:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 06:58:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 06:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 06:58:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 06:58:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 06:58:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:03:00|MyService|INFO >> ## running thread......
+2019-04-12 07:03:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:03:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:03:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:03:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:08:00|MyService|INFO >> ## running thread......
+2019-04-12 07:08:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:08:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:08:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:08:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:08:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:08:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:13:00|MyService|INFO >> ## running thread......
+2019-04-12 07:13:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:13:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:13:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:13:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:13:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:13:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:18:00|MyService|INFO >> ## running thread......
+2019-04-12 07:18:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:18:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:18:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:18:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:18:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:18:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:23:00|MyService|INFO >> ## running thread......
+2019-04-12 07:23:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:23:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:23:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:23:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:23:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:23:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:28:00|MyService|INFO >> ## running thread......
+2019-04-12 07:28:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:28:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:28:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:28:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:28:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:28:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:33:00|MyService|INFO >> ## running thread......
+2019-04-12 07:33:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:33:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:33:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:33:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:33:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:33:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:38:00|MyService|INFO >> ## running thread......
+2019-04-12 07:38:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:38:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:38:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:38:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:38:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:38:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:43:00|MyService|INFO >> ## running thread......
+2019-04-12 07:43:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:43:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:43:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:43:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:43:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:43:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:48:00|MyService|INFO >> ## running thread......
+2019-04-12 07:48:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:48:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:48:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:48:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:48:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:48:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:53:00|MyService|INFO >> ## running thread......
+2019-04-12 07:53:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:53:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:53:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:53:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:53:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:53:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 07:58:00|MyService|INFO >> ## running thread......
+2019-04-12 07:58:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 07:58:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 07:58:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 07:58:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 07:58:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 07:58:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:03:00|MyService|INFO >> ## running thread......
+2019-04-12 08:03:00|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:03:00|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:03:00|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:03:00|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:03:01|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:03:01|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:08:46|MyService|INFO >> ## Service started ##
+2019-04-12 08:08:53|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:09:13|MyService|INFO >> ...Timer started.
+2019-04-12 08:09:13|MyService|INFO >> ## running thread......
+2019-04-12 08:09:14|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:09:15|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:09:15|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:09:15|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:09:18|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:09:18|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:14:13|MyService|INFO >> ## running thread......
+2019-04-12 08:14:13|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:14:13|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:14:13|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:14:13|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:14:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:14:14|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:19:12|MyService|INFO >> ## running thread......
+2019-04-12 08:19:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:19:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:19:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:19:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:19:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:19:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:24:12|MyService|INFO >> ## running thread......
+2019-04-12 08:24:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:24:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:24:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:24:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:24:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:24:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:29:12|MyService|INFO >> ## running thread......
+2019-04-12 08:29:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:29:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:29:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:29:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:29:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:29:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:34:12|MyService|INFO >> ## running thread......
+2019-04-12 08:34:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:34:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:34:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:34:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:34:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:34:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:39:12|MyService|INFO >> ## running thread......
+2019-04-12 08:39:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:39:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:39:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:39:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:39:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:39:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:44:12|MyService|INFO >> ## running thread......
+2019-04-12 08:44:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:44:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:44:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:44:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:44:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:44:14|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:49:12|MyService|INFO >> ## running thread......
+2019-04-12 08:49:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:49:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:49:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:49:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:49:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:49:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:54:12|MyService|INFO >> ## running thread......
+2019-04-12 08:54:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:54:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:54:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:54:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:54:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:54:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 08:59:12|MyService|INFO >> ## running thread......
+2019-04-12 08:59:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 08:59:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 08:59:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 08:59:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 08:59:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 08:59:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:04:12|MyService|INFO >> ## running thread......
+2019-04-12 09:04:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:04:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:04:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:04:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:04:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:04:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:09:12|MyService|INFO >> ## running thread......
+2019-04-12 09:09:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:09:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:09:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:09:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:09:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:09:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:14:12|MyService|INFO >> ## running thread......
+2019-04-12 09:14:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:14:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:14:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:14:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:14:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:14:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:19:12|MyService|INFO >> ## running thread......
+2019-04-12 09:19:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:19:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:19:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:19:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:19:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:19:14|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:24:12|MyService|INFO >> ## running thread......
+2019-04-12 09:24:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:24:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:24:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:24:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:24:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:24:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:29:12|MyService|INFO >> ## running thread......
+2019-04-12 09:29:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:29:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:29:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:29:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:29:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:29:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:34:12|MyService|INFO >> ## running thread......
+2019-04-12 09:34:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:34:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:34:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:34:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:34:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:34:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:39:12|MyService|INFO >> ## running thread......
+2019-04-12 09:39:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:39:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:39:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:39:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:39:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:39:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:44:12|MyService|INFO >> ## running thread......
+2019-04-12 09:44:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:44:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:44:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:44:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:44:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:44:14|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:49:12|MyService|INFO >> ## running thread......
+2019-04-12 09:49:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:49:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:49:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:49:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:49:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:49:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:54:12|MyService|INFO >> ## running thread......
+2019-04-12 09:54:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:54:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:54:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:54:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:54:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:54:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 09:59:12|MyService|INFO >> ## running thread......
+2019-04-12 09:59:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 09:59:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 09:59:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 09:59:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 09:59:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 09:59:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:04:12|MyService|INFO >> ## running thread......
+2019-04-12 10:04:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:04:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:04:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:04:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:04:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:04:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:09:12|MyService|INFO >> ## running thread......
+2019-04-12 10:09:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:09:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:09:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:09:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:09:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:09:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:14:12|MyService|INFO >> ## running thread......
+2019-04-12 10:14:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:14:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:14:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:14:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:14:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:14:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:19:12|MyService|INFO >> ## running thread......
+2019-04-12 10:19:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:19:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:19:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:19:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:19:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:19:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:24:12|MyService|INFO >> ## running thread......
+2019-04-12 10:24:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:24:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:24:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:24:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:24:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:24:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:29:12|MyService|INFO >> ## running thread......
+2019-04-12 10:29:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:29:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:29:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:29:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:29:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:29:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:34:12|MyService|INFO >> ## running thread......
+2019-04-12 10:34:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:34:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:34:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:34:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:34:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:34:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:39:12|MyService|INFO >> ## running thread......
+2019-04-12 10:39:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:39:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:39:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:39:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:39:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:39:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:44:12|MyService|INFO >> ## running thread......
+2019-04-12 10:44:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:44:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:44:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:44:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:44:14|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:44:14|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:49:12|MyService|INFO >> ## running thread......
+2019-04-12 10:49:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:49:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:49:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:49:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:49:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:49:13|clsWorker|INFO >> No emails for profile!
+2019-04-12 10:54:12|MyService|INFO >> ## running thread......
+2019-04-12 10:54:12|clsWorkEmail|INFO >> Detail-Log is on
+2019-04-12 10:54:12|clsWorker|INFO >> Working on profile: (1-TEST1-IMAP)
+2019-04-12 10:54:12|clsWorker|WARN >> PWPlain is nothing - Could not decrypt passwort
+2019-04-12 10:54:12|clsEmailIMAP|INFO >> Working on IMAP_COLLECT.....
+2019-04-12 10:54:13|clsWorker|WARN >> Error while polling emails....
+2019-04-12 10:54:13|clsWorker|INFO >> No emails for profile!
diff --git a/App/packages/S22.Imap.3.6.0.0/.signature.p7s b/App/packages/S22.Imap.3.6.0.0/.signature.p7s
new file mode 100644
index 0000000..4e6f56a
Binary files /dev/null and b/App/packages/S22.Imap.3.6.0.0/.signature.p7s differ
diff --git a/App/packages/S22.Imap.3.6.0.0/S22.Imap.3.6.0.0.nupkg b/App/packages/S22.Imap.3.6.0.0/S22.Imap.3.6.0.0.nupkg
new file mode 100644
index 0000000..ebfc67c
Binary files /dev/null and b/App/packages/S22.Imap.3.6.0.0/S22.Imap.3.6.0.0.nupkg differ
diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.XML b/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.XML
new file mode 100644
index 0000000..f92a55b
--- /dev/null
+++ b/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.XML
@@ -0,0 +1,6498 @@
+
+
+
+ S22.Imap
+
+
+
+
+ Defines supported means of authenticating with an IMAP server.
+
+
+
+
+ Automatically selects the most-secure authentication mechanism supported by the server.
+
+
+
+
+ Login using plaintext password authentication; This is supported by most servers.
+
+
+
+
+ Login using the SASL PLAIN authentication mechanism.
+
+
+
+
+ Login using the CRAM-MD5 authentication mechanism.
+
+
+
+
+ Login using the DIGEST-MD5 authentication mechanism.
+
+
+
+
+ Login using OAuth via the SASL XOAuth mechanism.
+
+
+
+
+ Login using OAuth 2.0 via the SASL XOAUTH2 mechanism.
+
+
+
+
+ Login using the NTLM authentication mechanism.
+
+
+
+
+ Login using the NTLMv2 authentication mechanism.
+
+
+
+
+ Login using the NTLM/NTLMv2 authentication mechanism via Microsoft's Security Support
+ Provider Interface (SSPI).
+
+
+
+
+ Login using Kerberos authentication via the SASL GSSAPI mechanism.
+
+
+
+
+ Login using the SCRAM-SHA-1 authentication mechanism.
+
+
+
+
+ Login using the Secure Remote Password (SRP) authentication mechanism.
+
+ The SRP mechanism is only available when targeting .NET 4.0 or newer.
+
+
+
+ A utility class modeled after the BCL StringBuilder to simplify
+ building binary-data messages.
+
+
+
+
+ The actual byte buffer.
+
+
+
+
+ The current position in the buffer.
+
+
+
+
+ Resizes the internal byte buffer.
+
+ Amount in bytes by which to increase the
+ size of the buffer.
+
+
+
+ Appends one or several byte values to this instance.
+
+ Byte values to append.
+ A reference to the calling instance.
+
+
+
+ Appends the specified number of bytes from the specified buffer
+ starting at the specified offset to this instance.
+
+ The buffer to append bytes from.
+ The offset into the buffert at which to start
+ reading bytes from.
+ The number of bytes to read from the buffer.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit integer value to this instance.
+
+ A 32-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit short value to this instance.
+
+ A 16-bit short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit unsigend short value to this instance.
+
+ A 16-bit unsigend short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit unsigned integer value to this instance.
+
+ A 32-bit unsigned integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 64-bit integer value to this instance.
+
+ A 64-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified string using the specified encoding to this
+ instance.
+
+ The string vale to append.
+ The encoding to use for decoding the string value
+ into a sequence of bytes. If this is null, ASCII encoding is used as a
+ default.
+ A reference to the calling instance.
+
+
+
+ Returns the ByteBuilder's content as an array of bytes.
+
+ An array of bytes.
+
+
+
+ Removes all bytes from the current ByteBuilder instance.
+
+
+
+
+ The length of the underlying data buffer.
+
+
+
+
+ A filter stream sitting between Negotiate- and NetworkStream to
+ enable managed NTLM/GSSAPI authentication.
+
+
+ We use a filter for hooking into the NegotiateStream protocol rather
+ than p/invoking SSPI directly as that would require unmanaged
+ code privileges (internally NegotiateStream uses an SSPI wrapper).
+
+ NegotiateStream - FilterStream - NetworkStream.
+
+
+
+
+ A buffer for accumulating handshake data until an entire handshake
+ has been read.
+
+
+
+
+ A buffer for accumulating the payload data following the handshake
+ data.
+
+
+
+
+ The latest handshake header sent by the client.
+
+
+
+
+ The buffer from which client reads will be satisfied.
+
+
+
+
+ The number of bytes the client has already consumed/read
+ from the receivedData buffer.
+
+
+
+
+ The current state of the filter stream.
+
+
+
+
+ Determines whether this instance should close the inner stream
+ when disposed.
+
+
+
+
+ An error code as specified by the NegotiateStream protocol which is
+ handed to the NegotiateStream instance in case authentication
+ unexpectedly fails.
+
+
+
+
+ Gets the stream used by this FilterStream for sending and
+ receiving data.
+
+
+
+
+ Initializes a new instance of the FilterStream class using the
+ specified Stream.
+
+ A Stream object used by the FilterStream for sending
+ and receiving data.
+ Set to true to indicate that closing this
+ FilterStream has no effect on innerstream, or set to false to
+ indicate that closing this FilterStream also closes innerStream.
+
+
+
+ Reads data from this stream and stores it in the specified array.
+
+ A byte array that receives the bytes read from
+ the stream.
+ The zero-based index into the buffer at which to
+ begin storing the data read from this stream.
+ The the maximum number of bytes to read from the
+ stream.
+ The the number of bytes read from the underlying stream. When
+ there is no more data to be read, returns 0.
+ The read operation failed.
+
+
+
+ Reads the server response from the underlying inner stream.
+
+
+
+
+ Write the specified number of bytes to the underlying stream using the
+ specified buffer and offset.
+
+ A byte array that supplies the bytes written to
+ the stream.
+ The zero-based index in the buffer at which to
+ begin reading bytes to be written to the stream.
+ The number of bytes to read from buffer.
+ The write operation failed.
+
+
+
+ Reads the client's handshake from the specified buffer.
+
+ A byte array from which the handshake data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if the handshake has been read completely, otherwise
+ false.
+
+
+
+ Reads the payload from the specified buffer.
+
+ A byte array from which the payload data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if all of the payload data has been read, otherwise
+ false.
+
+
+
+ Sends the accumulated payload data to the server.
+
+ true if the client is done sending data, otherwise
+ false.
+
+
+
+ Reads a line of ASCII-encoded text terminated by a CRLF from the
+ specified stream.
+
+ The stream to read the line of text from.
+ Set this to true, to resolve automatically
+ resolve possible literals.
+ A line of ASII-encoded text read from the specified
+ stream.
+ "Literals" are a special feature of IMAP, employed by some
+ server implementations. Please refer to RFC 3501 Section 4.3 for
+ details.
+
+
+
+ Reads the specified number of bytes from the specified stream and
+ returns them as an ASCII-encoded string.
+
+ The stream to read from.
+ The number of bytes to read.
+ The read bytes encoded as an ASCII string.
+
+
+
+ Causes any buffered data to be written to the underlying device.
+
+
+
+
+ Throws NotSupportedException.
+
+ This value is ignored.
+ This value is ignored.
+ Always throws a NotSupportedException.
+
+
+
+ Sets the length of the underlying stream.
+
+ A value that specifies the length of the
+ stream.
+
+
+
+ Releases all resources used by the stream.
+
+ True to release both managed and unmanaged
+ resources, false to release only unmanaged resources.
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ readable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ seekable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream
+ supports time-outs.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ writable.
+
+
+
+
+ Gets the length of the underlying stream.
+
+
+
+
+ Gets or sets the current position in the underlying stream.
+
+ Setting this property
+ is not supported.
+
+
+
+ The different states the FilterStream can be in.
+
+
+
+
+ The stream is reading the client's handshake message.
+
+
+
+
+ The stream is reading the client's payload data.
+
+
+
+
+ The stream is waiting for the server's response.
+
+
+
+
+ The stream has buffered the server's response and is satisfying
+ client reads from its buffer.
+
+
+
+
+ Represents a NegotiateStream handshake message.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ Creates a new instance of the Handshake class using the specified type
+ and payload size.
+
+ The type of handshake.
+ The size, in bytes, of the payload following
+ the handshake header.
+
+
+
+ Private default constructor for deserializing.
+
+
+
+
+ Deserializes a handshake instance from the specified byte array.
+
+ An array of bytes containing handshake data.
+ An initialized instance of the Handshake class deserialized
+ from the specified byte array.
+ Thrown if the specified byte
+ array does not contain valid handshake data.
+
+
+
+ Serializes an instance of the Handshake class to a sequence of bytes.
+
+ A sequence of bytes representing this Handshake instance.
+
+
+
+ The type of the handshake message.
+
+
+
+
+ Specifies the major version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Specifies the minor version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Defines the size, in bytes, of the AuthPayload field, which immediately
+ follows the handshake.
+
+
+
+
+ Describes the different types of handshake messages.
+
+
+
+
+ The handshake has completed successfully.
+
+
+
+
+ An error occurred during the handshake. The AuthPayload field contains
+ an HRESULT.
+
+
+
+
+ The message is part of the handshake phase and is not the final message
+ from the host. The final Handshake message from a host is always
+ transferred in a HandshakeDone message.
+
+
+
+
+ Implements the Sasl SCRAM-SHA-1 authentication method as described in
+ RFC 5802.
+
+
+
+
+ The abstract base class from which all classes implementing a Sasl
+ authentication mechanism must derive.
+
+
+
+
+ Computes the client response to a challenge sent by the server.
+
+
+ The client response to the specified challenge.
+
+
+
+
+
+
+
+ Retrieves the base64-encoded client response for the specified
+ base64-encoded challenge sent by the server.
+
+ A base64-encoded string representing a challenge
+ sent by the server.
+ A base64-encoded string representing the client response to the
+ server challenge.
+ The IMAP, POP3 and SMTP authentication commands expect challenges
+ and responses to be base64-encoded. This method automatically decodes the
+ server challenge before passing it to the Sasl implementation and
+ encodes the client response to a base64-string before returning it to the
+ caller.
+ Thrown if the client response could
+ not be retrieved. Refer to the inner exception for error details.
+
+
+
+ Retrieves the client response for the specified server challenge.
+
+ A byte array containing the challenge sent by
+ the server.
+ An array of bytes representing the client response to the
+ server challenge.
+
+
+
+ IANA name of the authentication mechanism.
+
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ A map of mechanism-specific properties which are needed by the
+ authentication mechanism to compute it's challenge-responses.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Scram-Sha-1 involves several steps.
+
+
+
+
+ The salted password. This is needed for client authentication and later
+ on again for verifying the server signature.
+
+
+
+
+ The auth message is part of the authentication exchange and is needed for
+ authentication as well as for verifying the server signature.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslScramSha1
+ class using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified SCRAM-SHA-1 challenge.
+
+ The challenge sent by the server
+ The response to the SCRAM-SHA-1 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial response sent by the client to the server.
+
+ An array of bytes containing the initial client
+ response.
+
+
+
+ Computes the "client-final-message" which completes the authentication
+ process.
+
+ The "server-first-message" challenge received
+ from the server in response to the initial client response.
+ An array of bytes containing the client's challenge
+ response.
+
+
+
+ Verifies the nonce value sent by the server.
+
+ The nonce value sent by the server as part of the
+ server-first-message.
+ True if the nonce value is valid, otherwise false.
+
+
+
+ Verifies the server signature which is sent by the server as the final
+ step of the authentication process.
+
+ The server signature as a base64-encoded
+ string.
+ The client's response to the server. This will be an empty
+ byte array if verification was successful, or the '*' SASL cancellation
+ token.
+
+
+
+ Parses the "server-first-message" received from the server.
+
+ The challenge received from the server.
+ A collection of key/value pairs contained extracted from
+ the server message.
+ Thrown if the message parameter
+ is null.
+
+
+
+ Computes the "Hi()"-formula which is part of the client's response
+ to the server challenge.
+
+ The supplied password to use.
+ The salt received from the server.
+ The iteration count.
+ An array of bytes containing the result of the computation of the
+ "Hi()"-formula.
+
+ Hi is, essentially, PBKDF2 with HMAC as the pseudorandom function (PRF) and with
+ dkLen == output length of HMAC() == output length of H(). (Refer to RFC 5802, p.6)
+
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input data.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input to compute the hashcode for.
+ The hashcode of the specified data input.
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input string.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input string to compute the hashcode for.
+ The hashcode of the specified string.
+
+
+
+ Applies the cryptographic hash function SHA-1 to the specified data
+ array.
+
+ The data array to apply the hash function to.
+ The hash value for the specified byte array.
+
+
+
+ Applies the exclusive-or operation to combine the specified byte array
+ a with the specified byte array b.
+
+ The first byte array.
+ The second byte array.
+ An array of bytes of the same length as the input arrays
+ containing the result of the exclusive-or operation.
+ Thrown if either argument is
+ null.
+ Thrown if the input arrays
+ are not of the same length.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ Prepares the specified string as is described in RFC 5802.
+
+ A string value.
+ A "Saslprepped" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Scram-Sha-1 authentication mechanism as described
+ in RFC 5802.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Represents a MIME body part of a mail message that has multiple
+ parts.
+
+
+
+
+ Initializes a new instance of the Bodypart class with default
+ values.
+
+ The part number as is expected by the
+ IMAP FETCH command.
+
+
+
+ Returns a detailed description listing all properties of this
+ Bodypart instance.
+
+ A string describing this instance of the Bodypart class
+
+
+
+ The body part number which acts as part specifier for
+ the FETCH BODY command.
+
+
+
+
+ The MIME content-type of this body part. The content-type is
+ used to declare the general type of data.
+
+
+
+
+ The MIME content-subtype of this body part. The subtype
+ specifies a specific format for the type of data.
+
+
+
+
+ Parameter values present in the MIME content-type header
+ of this body part (for instance, 'charset').
+
+
+
+
+ The MIME content-id of this body part, if any. This value
+ may be used for uniquely identifying MIME entities in
+ several contexts.
+
+
+
+
+ The MIME content-description of this body part. This value
+ may contain some descriptive information on the body part.
+
+
+
+
+ The MIME content-transfer-encoding mechanism used for
+ encoding this body part's data.
+
+
+
+
+ The size of this body part in bytes. Note that this size
+ is the size in its transfer encoding and not the resulting
+ size after any decoding.
+
+
+
+
+ The size of the body in text lines. This field is only
+ present in body parts with a content-type of text.
+
+
+
+
+ The computed MD5-Hash of the body part. This field is not
+ mandatory and may be empty.
+
+
+
+
+ The MIME content-disposition for this body part. This field
+ is not mandatory and may be empty.
+
+
+
+
+ A string giving the body language. This field is not mandatory
+ and may be empty.
+
+
+
+
+ A string list giving the body content URI. This field is not
+ mandatory and may be empty.
+
+
+
+
+ Provides a means for parsing the textual description of the body structure of a mail
+ message as is returned by an IMAP server for a "FETCH BODYSTRUCTURE" command.
+
+
+ They couldn't have made the BODYSTRUCTURE any more complicated and unnecessarily
+ hard to parse. I wonder what they were thinking when they came up with this.
+
+
+
+
+ Parses the body structure of a mail message as is returned by the IMAP server
+ in response to a FETCH BODYSTRUCTURE command.
+
+ The body structure server response
+ An array of initialized Bodypart objects representing the body
+ structure of the mail message
+ Thrown if the passed string does not
+ contain a valid body structure and parsing failed.
+
+
+
+ A Reader object initialized with the string containing the bodystructure
+ response.
+
+
+
+
+ Initializes a new instance of the Bodystructure class.
+
+
+
+
+
+ Parses a bodypart entry from the body structure and advances the
+ read pointer.
+
+ The designated part specifier by which the body
+ part is refered to by the server.
+ Set to true if the bodypart is enclosed
+ in parenthesis.
+
+
+
+
+ Parses the mandatory extra fields that are present if the bodypart is
+ of type message/rfc822 (see RFC 3501, p. 75).
+
+ The bodypart instance the parsed fields will be
+ added to.
+
+
+
+ Parses the optional fields of a bodypart entry from the body structure
+ and advances the read pointer.
+
+ The bodypart instance the parsed fields will be
+ added to.
+ Set to true if the bodypart entry is enclosed
+ in parenthesis.
+
+
+
+ Parses a list of bodypart entries as is outlined in the description of the
+ BODYPART response in RFC 3501.
+
+ The nesting prefix that will be prefixed to the
+ bodyparts partNumber.
+ An array of initialized Bodypart objects parsed from the
+ list.
+
+
+
+ Advances the read pointer to skip over a multipart entry.
+
+
+
+
+ Advances the read pointer to skip over an arbitrary
+ expression enclosed in parentheses.
+
+
+
+
+ Represents the content disposition as is presented in the BODYSTRUCTURE
+ response by the IMAP server.
+
+
+
+
+ Initializes a new instance of the ContentDisposition class with
+ default values.
+
+
+
+
+ Maps MIME content disposition string values to their corresponding
+ counter-parts of the ContentDispositionType enumeration.
+
+
+
+
+ The content disposition specifies the presentation style.
+
+
+
+
+ Additional attribute fields for specifying the name of a file, the creation
+ date and modification date, which can be used by the reader's mail user agent
+ to store the attachment.
+
+
+
+
+ Contains the name of the transmitted file if the content-disposition is of type
+ "Attachment" and if the name value was provided as part of the header information.
+ This field may be empty.
+
+
+
+
+ Possible values for the content disposition type which determines the presentation
+ style
+
+
+
+
+ The content disposition could not be determined.
+
+
+
+
+ An inline content disposition means that the content should be automatically
+ displayed when the message is displayed.
+
+
+
+
+ An attachment content disposition means that the content should not be displayed
+ automatically and requires some form of action from the user to open it.
+
+
+
+
+ Possible values for the "Encoding" property of the Bodypart class. The content
+ transfer encoding indicates whether or not a binary-to-text encoding
+ scheme has been used on top of the original encoding as specified within the
+ Content-Type header.
+
+
+
+
+ The content tranfer encoding could not be determined or is unknown.
+
+
+
+
+ Up to 998 bytes per line of the code range 1 - 127 with CR and LF only
+ allowed to appear as part of a CRLF line ending.
+
+
+
+
+ Up to 998 bytes per line with CR and LF only allowed to appear as part
+ of a CRLF line ending.
+
+
+
+
+ Any sequence of bytes.
+
+
+
+
+ Byte sequence is encoded using the quoted-printable encoding.
+
+
+
+
+ Byte sequence is encoded using Base64 encoding.
+
+
+
+
+ Possible values for the "Type" property of the Bodypart class.
+ For a detailed description of MIME Media Types refer to
+ RFC 2046.
+
+
+
+
+ The "text" media type is intended for sending material which
+ is principally textual in form.
+
+
+
+
+ A media type of "image" indicates that the body contains an image.
+ The subtype names the specific image format.
+
+
+
+
+ A media type of "audio" indicates that the body contains audio
+ data.
+
+
+
+
+ A media type of "video" indicates that the body contains a
+ time-varying-picture image, possibly with color and coordinated sound.
+
+
+
+
+ The "application" media type is to be used for discrete data which do
+ not fit in any of the other categories, and particularly for data to
+ be processed by some type of application program.
+
+
+
+
+ The "message" content type allows messages to contain other messages
+ or pointers to other messages.
+
+
+
+
+ The media type value is unknown or could not be determined.
+
+
+
+
+ A helper class for parsing the BODYSTRUCTURE response of an
+ IMAP FETCH command more conveniently.
+
+
+
+
+ Initializes a new instance of the Reader class that reads from the
+ specified string.
+
+ The string to which the Reader instance should be
+ initialized.
+
+
+
+ Reads the next character from the input string and advances the
+ character position by one character.
+
+ The next character from the underlying string.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Returns the next available character but does not consume it.
+
+ Set to true to skip any preceding
+ whitespace characters.
+ An integer representing the next character to be read,
+ or -1 if no more characters are available.
+
+
+
+ Advances the character position until the specified character
+ is encountered.
+
+ The character to skip to.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Advances the character position over any whitespace characters
+ and subsequently ensures the next read will not return a
+ whitespace character.
+
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads characters until the specified character is encountered.
+
+ The character to read up to.
+ The read characters as a string value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a word from the underlying string. A word in this context
+ is a literal enclosed in double-quotes.
+
+ The read word.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads an integer from the underlying string.
+
+ The read integer value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a list from the underlying string. A list in this context
+ is a list of attribute/value literals (enclosed in double-quotes)
+ enclosed in parenthesis.
+
+ The read list as a dictionary with the attribute names
+ as keys and attribute values as values.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a disposition from the underlying string. A disposition in
+ this context is a list of attribute/value literals (enclosed in
+ double-quotes) preceded by a word enclosed in parenthesis.
+
+ An initialized ContentDisposition instance representing
+ the parsed disposition.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ The exception that is thrown when reading is attempted past the end
+ of a string.
+
+
+
+
+ Initializes a new instance of the EndOfStringException class
+
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the EndOfStringException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Defines the different means by which mail messages may be fetched from the server.
+
+
+
+
+ Fetches the entire mail message with all of its content.
+
+
+
+
+ Only the mail message headers will be retrieved, while the actual content will not be
+ downloaded. If this option is specified, only the header fields of the returned MailMessage
+ object will be initialized.
+
+
+
+
+ Retrieves the mail message, but will only download content that has a content-type of text.
+ This will retrieve text as well as HTML representation, while skipping inline content and
+ attachments.
+
+
+
+
+ Retrieves the mail message, but skips any content that is an attachment.
+
+
+
+
+ Provides data for IMAP idle error events.
+
+
+
+
+ Initializes a new instance of the IdleErrorEventArgs class.
+
+ The exception that causes the event.
+ The instance of the ImapClient class that raised the event.
+ The exception parameter or the client parameter
+ is null.
+
+
+
+ The exception that caused the error event.
+
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Provides data for IMAP idle notification events.
+
+
+
+
+ Initializes a new instance of the IdleMessageEventArgs class and sets the
+ MessageCount attribute to the value of the
+ parameter.
+
+ The number of messages in the selected mailbox.
+ The unique identifier (UID) of the newest message in the
+ mailbox.
+ The instance of the ImapClient class that raised the event.
+
+
+
+ The total number of messages in the selected mailbox.
+
+
+
+
+ The unique identifier (UID) of the newest message in the mailbox.
+
+ The UID can be passed to the GetMessage method in order to retrieve the mail
+ message from the server.
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ This constructor is solely used for unit testing.
+
+ A stream to initialize the ImapClient instance with.
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port
+ on the specified host, optionally using the Secure Socket Layer (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets
+ Layer (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example shows how to establish a connection with an IMAP server
+ and print out the IMAP options, which the server supports.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ // Print out the server's capabilities.
+ foreach(string s in Client.Capabilities())
+ Console.WriteLine(s);
+
+ Client.Dispose();
+
+
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port on
+ the specified host, optionally using the Secure Socket Layer (SSL) security protocol and
+ attempts to authenticate with the server using the specified authentication method and
+ credentials.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer
+ (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ The provided credentials were rejected by the
+ server.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Connects to the specified port on the specified host, optionally using the Secure Socket Layer
+ (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer (SSL)
+ certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received
+ from the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+
+
+ Determines whether the specified response is a valid IMAP OK response.
+
+ A response string received from the server.
+ A tag if the response is associated with a command.
+ true if the response is a valid IMAP OK response; Otherwise false.
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Performs authentication using the most secure authentication mechanism supported by the
+ server.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+ The order of preference of authentication types employed by this method is
+ Ntlm, Scram-Sha-1, Digest-Md5, followed by Cram-Md5 and finally plaintext Login as
+ a last resort.
+
+
+
+ Performs an actual IMAP "LOGIN" command using the specified username and plain-text
+ password.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+
+
+
+ Performs NTLM and Kerberos authentication via the Security Support Provider Interface (SSPI).
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ True to authenticate using NTLM, otherwise GSSAPI (Kerberos) is
+ used.
+ The response sent by the server.
+ The specified authentication method is not
+ supported by the server.
+
+
+
+ Performs authentication using a SASL authentication mechanism via IMAP's authenticate
+ command.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The name of the SASL authentication mechanism to use.
+ The response sent by the server.
+ The authentication mechanism with the specified name could
+ not be found.
+ The specified authentication mechanism is not
+ supported by the server.
+ An unexpected response has been received from
+ the server.
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Generates a unique identifier to prefix a command with, as is required by the IMAP protocol.
+
+ A unique identifier string.
+
+
+
+ Sends a command string to the server. This method blocks until the command has been
+ transmitted.
+
+ The command to send to the server. The string is suffixed by CRLF
+ prior to sending.
+
+
+
+ Sends a command string to the server and subsequently waits for a response, which is then
+ returned to the caller. This method blocks until the server response has been received.
+
+ The command to send to the server. This is suffixed by CRLF prior
+ to sending.
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ The response received by the server.
+
+
+
+ Waits for a response from the server. This method blocks until a response has been received.
+
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ A response string from the server
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Reads the specified amount of bytes from the server. This method blocks until the specified
+ amount of bytes has been read from the network stream.
+
+ The number of bytes to read.
+ The read bytes as an ASCII-encoded string.
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Selects the specified mailbox so that the messages of the mailbox can be accessed.
+
+ The mailbox to select. If this parameter is null, the
+ default mailbox is selected.
+ The specified mailbox could not be selected.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ IMAP Idle must be paused or stopped before calling this method.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of special-use flags associated with the specified mailbox.
+
+ The mailbox to receive the special-use flags for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ An enumerable collection of special-use flags set on the specified
+ mailbox.
+ This feature is an optional extension to the IMAP protocol and as such some servers
+ may not report any flags at all.
+
+
+
+ Retrieves status information (total number of messages, number of unread messages, etc.) for
+ the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxStatus object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the mail header for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the mail header for.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw mail header of the mail message with the specified
+ UID.
+ The mail header could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the body structure for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the body structure for.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw body structure of the mail message with the specified
+ UID.
+ The body structure could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A body structure is a textual description of the layout of a mail message. It is
+ described in some detail in RFC 3501 under 7.4.2 FETCH response.
+
+
+
+ Retrieves the MIME body-part with the specified part number of the multipart message with
+ the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve a MIME body part for.
+ The part number of the body part to fetch.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the specified body part of the mail message with the specified
+ UID.
+ The body part could not be fetched. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the raw MIME/RFC822 mail message data for the mail message with the specified UID.
+
+ The UID of the mail message to retrieve as a MIME/RFC822 string.
+ Set this to true to set the \Seen flag for the fetched message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw MIME/RFC822 data of the mail message with the
+ specified UID.
+ The mail message data could not be fetched.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the highest UID in the specified mailbox.
+
+ The mailbox to find the highest UID for. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ The highest unique identifier value (UID) in the mailbox.
+ The UID could not be determined. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The highest UID usually corresponds to the newest message in a mailbox.
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Starts receiving of IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when already receiving idle notifications has no
+ effect.
+
+
+
+
+
+
+ Stops receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when not receiving idle notifications has no effect.
+
+
+
+
+
+ Temporarily pauses receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ To resume receiving IDLE notifications ResumeIdling must be called.
+
+
+
+
+
+
+ Resumes receiving IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ The main idle loop. Waits for incoming IMAP IDLE notifications and dispatches
+ them as events. This runs in its own thread whenever IMAP IDLE
+ notifications are being received.
+
+
+
+
+ Blocks on a queue and wakes up whenever a new notification is put into the queue. The
+ notification is then examined and dispatched as an event.
+
+
+
+
+ Issues a NOOP command to the IMAP server. Called in the context of a System.Timer event
+ when IDLE notifications are being received.
+
+ This is needed by the IMAP IDLE mechanism to give the server an indication that the
+ connection is still active.
+
+
+
+
+ Retrieves IMAP QUOTA information for the specified mailbox.
+
+ The mailbox to retrieve QUOTA information for. If this parameter is
+ null, the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ An enumerable collection of MailboxQuota objects describing usage and limits of the
+ quota roots for the mailbox.
+ The quota operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The IMAP4 QUOTA extension is not supported by
+ the server.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Releases all resources used by the current instance of the ImapClient class.
+
+
+
+
+ Releases all resources used by the current instance of the ImapClient class, optionally
+ disposing of managed resource.
+
+ true to dispose of managed resources, otherwise false.
+
+
+
+ Asserts the instance has not been disposed of and is in a valid state.
+
+ The ImapClient object has been
+ disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when an I/O exception occurs in the idle-thread.
+
+
+ An I/O exception can occur if the underlying network connection has been reset or the
+ server unexpectedly closed the connection.
+
+
+
+
+ A delegate which is invoked during a call to GetMessage or GetMessages for every MIME part in
+ a multipart mail message. The delegate can examine the MIME body part and decide to either
+ include it in the returned mail message or dismiss it.
+
+ A MIME body part of a mail message which consists of multiple parts.
+ true to include the body part in the returned MailMessage object, or false to skip
+ it.
+
+
+
+ The exception that is thrown when an unexpected response is received from the server.
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when the supplied credentials were rejected by the server.
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when a client has not authenticated with the server and
+ attempts to call a method which can only be called when authenticated.
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Provides access to status information such as the total number of messages and quota
+ information for a mailbox.
+
+
+ The terms "mailbox" and "folder" can be used interchangeably and refer to the IMAP concept of
+ multiple server-side directories into which messages can be stored (such as "Inbox",
+ "Sent Items", "Trash", etc.).
+
+
+
+
+ Initializes a new instance of the MailboxInfo class with the specified values.
+
+ The IMAP name of the mailbox.
+ The IMAP flags set on this mailbox.
+ The number of messages in the mailbox.
+ The number of unread messages in the mailbox.
+ The next unique identifier (UID) of the mailbox.
+ The amount of used storage of the mailbox, in bytes.
+ The amount of free storage of the mailbox, in bytes.
+
+
+
+ Returns the name of the mailbox.
+
+ The name of the mailbox
+
+
+
+ The name of the mailbox.
+
+
+
+
+ An enumerable collection of flags set on the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The amount of used storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of used storage, this property will be 0.
+
+
+
+
+ The amount of free storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of free storage, this property will be 0.
+
+
+
+
+ Defines possible attributes for mailboxes.
+
+
+
+ An IMAP mailbox can have a number of flags (read: attributes) set on it, indicating its
+ designated purpose (such as "Spam" or "Drafts").
+
+
+ This is especially convenient when dealing with international mailbox names, because, by
+ examining the associated flags, the mailbox purpose can be determined, even if the mailbox
+ name provides no useful indication.
+
+
+ Unfortunately, as with many things IMAP, reporting the flags described here is an optional
+ extension (XLIST) to the IMAP protocol and as such may or may not be supported by an IMAP
+ server.
+
+
+
+
+
+ The mailbox presents a view on all messages in the user's message store.
+
+
+
+
+ The mailbox is used to archive messages. The meaning of an "archival" mailbox is server
+ dependent.
+
+
+
+
+ The mailbox is used to hold draft messages, typically these are messages that are being
+ composed but have not yet been sent.
+
+
+
+
+ The mailbox is used to hold copies of messages that have been sent.
+
+
+
+
+ The mailbox is where messages deemed to be junk mail (spam) are held.
+
+
+
+
+ The mailbox is used to hold messages that have been deleted or marked for deletion.
+
+
+
+
+ Represents an IMAP QUOTA entry for a resource which typically consists of a resource name,
+ the current usage of the resource, and the resource limit.
+
+
+
+
+ Initializes a new instance of the MailboxQuota class with the specified values.
+
+ The name of the resource this MailboxQuota instance describes.
+ The current usage of the resource in units of 1024 bytes.
+ The limit of the resource in units of 1024 bytes.
+
+
+
+ The name of the resource this MailboxQuota instance describes.
+
+
+
+
+ The current usage of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ The limit of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ Represents the status information of a mailbox which can be constructed from the server
+ response to a STATUS command.
+
+
+
+
+ Initializes a new MailboxStatus instance with the specified number of total and unread
+ messages.
+
+ The total number of messages in the mailbox.
+ The number of unread (unseen) messages in the mailbox.
+ The next unique identifier value of the mailbox
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ Adds extension methods to the MailMessage class of the .NET Framework.
+
+
+ Most of the methods are only used internally and are not visible outside of the
+ S22.Imap assembly.
+
+
+
+
+ Returns the date and time the mail message was composed.
+
+ The MailMessage instance to return the date and time for.
+ The date and time the mail message was composed, or null if the mail message
+ does not contain any date information.
+
+
+
+ Constructs a textual representation of a mail message from the specified MailMessage
+ instance compliant with the RFC822 and MIME standards.
+
+ The MailMessage instance to construct the textual representation
+ from.
+ An RFC822/MIME-compliant string representing the specified mail message.
+ The From property is null or has not been
+ properly initialized.
+
+
+
+ Builds a RFC822/MIME-compliant mail header from the specified MailMessage instance and
+ returns it as a NameValueCollection.
+
+ The MailMessage instance to build the header from.
+ A NameValueCollection representing the RFC822/MIME mail header fields.
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ priority values as defined in RFC2156.
+
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ importance values as defined in RFC2156.
+
+
+
+
+ Takes a unicode string and encodes it using Q-encoding.
+
+ The string to encode.
+ The input string encoded as Q-encoded string containing only ASCII
+ characters.
+
+
+
+ Takes a unicode string and encodes it using Base64-encoding.
+
+ The string to encode.
+ The input string encoded as Base64-encoded string containing only ASCII
+ characters.
+
+
+
+ Creates an address string from the specified MailAddress instance in compliance with the
+ address specification as outlined in RFC2822 under section 3.4
+
+ The MailAddress instance to create the address string from.
+ An address string as is used in RFC822 mail headers.
+
+
+
+ Generates a unique sequence of characters for indicating a boundary between parts in a
+ multipart message.
+
+ A unique content boundary string.
+
+
+
+ Builds an RFC822/MIME-compliant mail body from the specified MailMessage instance and
+ returns it as a formatted string.
+
+ The MailMessage instance to build the mail body from.
+ The RFC822/MIME mail header to use for constructing the mail
+ body.
+ An RFC822/MIME-compliant mail body as a string.
+ According to RFC2822 each line of a mail message should at max be 78 characters in
+ length excluding carriage return and newline characters. This method accounts for that and
+ ensures line breaks are inserted to meet this requirement.
+
+
+
+ Adds a body part to the specified Stringbuilder object composed from the Body and
+ BodyEncoding properties of the MailMessage class.
+
+ The Stringbuilder to append the body part to.
+ The MailMessage instance to build the body part from.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ Set to true to append body headers before adding the actual body
+ part content.
+
+
+
+ Creates a MIME body part from an entry of the AlternateView or Attachments collection of a
+ MailMessage instance and appends it to the specified Stringbuilder instance.
+
+ The Stringbuilder instance to append the body part to.
+ An entry from either the AlternateView or the Attachments collection of
+ a MailMessage instance.
+
+
+
+ Creates a nested multipart/alternative part which contains all entries from the
+ AlternateViews collection of the specified MailMessage instance as well as the body part
+ for the Body and BodyEncoding properties of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose AlternateView collection will be added to the
+ nested multipart/alternative part.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ Creates a nested multipart/mixed part which contains all entries from the Attachments
+ collection of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose Attachments collection will be added to the
+ nested multipart/mixed part.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ A helper class for reading mail message data and building a MailMessage instance out of it.
+
+
+
+
+ Creates a new empty instance of the MailMessage class from a string containing a raw mail
+ message header.
+
+ The mail header to create the MailMessage instance from.
+ A MailMessage instance with initialized Header fields but without any
+ content.
+
+
+
+ Creates a new instance of the MailMessage class from a string containing raw RFC822/MIME
+ mail message data.
+
+ The mail message data to create the MailMessage instance from.
+ An initialized instance of the MailMessage class.
+ This is used when fetching entire messages instead of the partial-fetch mechanism
+ because it saves redundant round-trips to the server.
+
+
+
+ Parses the mail header of a mail message and returns it as a NameValueCollection.
+
+ The mail header to parse.
+ A NameValueCollection containing the header fields as keys with their respective
+ values as values.
+
+
+
+ Strips RFC822/MIME comments from the specified string.
+
+ The string to strip comments from.
+ A new string stripped of any comments.
+
+
+
+ Parses a MIME header field which can contain multiple 'parameter = value'
+ pairs (such as Content-Type: text/html; charset=iso-8859-1).
+
+ The header field to parse.
+ A NameValueCollection containing the parameter names as keys with the respective
+ parameter values as values.
+ The value of the actual field disregarding the 'parameter = value' pairs is stored
+ in the collection under the key "value" (in the above example of Content-Type, this would
+ be "text/html").
+
+
+
+ Parses a mail header address-list field such as To, Cc and Bcc which can contain multiple
+ email addresses.
+
+ The address-list field to parse
+ An array of MailAddress objects representing the parsed mail addresses.
+
+
+
+ Splits the specified address-list into individual parts consisting of a mail address and
+ optionally a display-name.
+
+ The address-list to split into parts.
+ An enumerable collection of parts.
+
+
+
+ Parses a mail message identifier from a string.
+
+ The field to parse the message id from
+ The field argument does not contain a valid message
+ identifier.
+ The parsed message id.
+ A message identifier (msg-id) is a globally unique identifier for a
+ message.
+
+
+
+ Parses the priority of a mail message which can be specified as part of the header
+ information.
+
+ The mail header priority value. The value can be null in which case
+ a "normal priority" is returned.
+ A value from the MailPriority enumeration corresponding to the specified mail
+ priority. If the passed priority value is null or invalid, a normal priority is assumed and
+ MailPriority.Normal is returned.
+
+
+
+ Sets the address fields (From, To, CC, etc.) of a MailMessage object using the specified
+ mail message header information.
+
+ The MailMessage instance to operate on.
+ A collection of mail and MIME headers.
+
+
+
+ Adds a body part to an existing MailMessage instance.
+
+ Extension method for the MailMessage class.
+ The body part to add to the MailMessage instance.
+ The content of the body part.
+
+
+
+ Creates an instance of the Attachment class used by the MailMessage class to store mail
+ message attachments.
+
+ The MIME body part to create the attachment from.
+ An array of bytes composing the content of the attachment.
+ An initialized instance of the Attachment class.
+
+
+
+ Creates an instance of the AlternateView class used by the MailMessage class to store
+ alternate views of the mail message's content.
+
+ The MIME body part to create the alternate view from.
+ An array of bytes composing the content of the alternate view.
+ An initialized instance of the AlternateView class.
+
+
+
+ Parses the body part of a MIME/RFC822 mail message.
+
+ The body of the mail message.
+ The header of the mail message whose body will be parsed.
+ An array of initialized MIMEPart instances representing the body parts of the mail
+ message.
+
+
+
+ Parses the body of a multipart MIME mail message.
+
+ An instance of the StringReader class initialized with a string
+ containing the body of the mail message.
+ The boundary value as is present as part of the Content-Type header
+ field in multipart mail messages.
+ An array of initialized MIMEPart instances representing the various parts of the
+ MIME mail message.
+
+
+
+ Glue method to create a bodypart from a MIMEPart instance.
+
+ The MIMEPart instance to create the bodypart instance from.
+ An initialized instance of the Bodypart class.
+
+
+
+ Defines possible attributes for mail messages on an IMAP server.
+
+
+
+
+ Indicates that the message has been read.
+
+
+
+
+ Indicates that the message has been answered.
+
+
+
+
+ Indicates that the message is "flagged" for urgent/special attention.
+
+
+
+
+ Indicates that the message has been marked as "deleted" and will be removed upon the next
+ call to the Expunge method.
+
+
+
+
+ Indicates that the message has not completed composition and is marked as a draft.
+
+
+
+
+ Indicates that the message has recently arrived in the mailbox.
+
+
+
+
+ Represents a part of a MIME multi-part message. Each part consists of its own content header
+ and a content body.
+
+
+
+
+ A collection containing the content header information as key-value pairs.
+
+
+
+
+ A string containing the content body of the part.
+
+
+
+
+ A thread-safe Queue.
+
+
+
+
+ Adds an object to the end of the queue.
+
+ The object to add to the queue.
+
+
+
+ Removes and returns the object at the beginning of the queue. If the queue is empty, the
+ method blocks the calling thread until an object is put into the queue by another thread.
+
+ The object that was removed from the beginning of the queue.
+
+
+
+ Adds extension methods to the BinaryReader class to simplify the
+ deserialization of NTLM messages.
+
+
+
+
+ Reads an ASCII-string of the specified length from this instance.
+
+ Extension method for the BinaryReader class.
+ The number of bytes to read from the underlying
+ stream.
+ A string decoded from the bytes read from the underlying
+ stream using the ASCII character set.
+
+
+
+ The NTLM flags which are contained in a bitfield within the header of
+ an NTLM message.
+
+
+
+
+ Indicates that Unicode strings are supported for use in security
+ buffer data.
+
+
+
+
+ Indicates that OEM strings are supported for use in security
+ buffer data.
+
+
+
+
+ Requests that the server's authentication realm be included in
+ the Type 2 message.
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should carry a digital signature (message integrity).
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should be encrypted (message confidentiality).
+
+
+
+
+ Indicates that datagram authentication is being used.
+
+
+
+
+ Indicates that the Lan Manager Session Key should be used for signing
+ and sealing authenticated communications.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Indicates that NTLM authentication is being used.
+
+
+
+
+ Sent by the client in the Type 3 message to indicate that an anonymous
+ context has been established. This also affects the response fields.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the name of
+ the domain in which the client workstation has membership is included
+ in the message. This is used by the server to determine whether the
+ client is eligible for local authentication.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the client
+ workstation's name is included in the message. This is used by the
+ server to determine whether the client is eligible for local
+ authentication.
+
+
+
+
+ Sent by the server to indicate that the server and client are on the
+ same machine. Implies that the client may use the established local
+ credentials for authentication instead of calculating a response to
+ the challenge.
+
+
+
+
+ Indicates that authenticated communication between the client and
+ server should be signed with a "dummy" signature.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a domain.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a server.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a share. Presumably, this is for share-level
+ authentication. Usage is unclear.
+
+
+
+
+ Indicates that the NTLM2 signing and sealing scheme should be used for
+ protecting authenticated communications. Note that this refers to a
+ particular session security scheme, and is not related to the use of
+ NTLMv2 authentication. This flag can, however, have an effect on the
+ response calculations.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that it is including
+ a Target Information block in the message. The Target Information block
+ is used in the calculation of the NTLMv2 response.
+
+
+
+
+ Indicates that 128-bit encryption is supported.
+
+
+
+
+ Indicates that the client will provide an encrypted master key in the
+ "Session Key" field of the Type 3 message.
+
+
+
+
+ Indicates that 56-bit encryption is supported.
+
+
+
+
+ Represents the data contained in the target information block of an
+ NTLM type 2 message.
+
+
+
+
+ The server name.
+
+
+
+
+ The domain name.
+
+
+
+
+ The fully-qualified DNS host name.
+
+
+
+
+ The fully-qualified DNS domain name.
+
+
+
+
+ Describes the different versions of the Type 2 message that have
+ been observed.
+
+
+
+
+ The version is unknown.
+
+
+
+
+ This form is seen in older Win9x-based systems.
+
+
+
+
+ This form is seen in most out-of-box shipping versions of Windows.
+
+
+
+
+ This form was introduced in a relatively recent Service Pack, and
+ is seen on currently-patched versions of Windows 2000, Windows XP,
+ and Windows 2003.
+
+
+
+
+ Indicates the type of data in Type 2 target information blocks.
+
+
+
+
+ Signals the end of the target information block.
+
+
+
+
+ The data in the information block contains the server name.
+
+
+
+
+ The data in the information block contains the domain name.
+
+
+
+
+ The data in the information block contains the DNS hostname.
+
+
+
+
+ The data in the information block contans the DNS domain name.
+
+
+
+
+ Computes the MD4 hash value for the input data.
+ Courtesy of Keith Wood.
+
+
+
+
+ Describes the different types of NTLM messages.
+
+
+
+
+ An NTLM type 1 message is the initial client response to the
+ server.
+
+
+
+
+ An NTLM type 2 message is the challenge sent by the server in
+ response to an NTLM type 1 message.
+
+
+
+
+ An NTLM type 3 message is the challenge response sent by the client
+ in response to an NTLM type 2 message.
+
+
+
+
+ Indicates the version and build number of the operating system.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Creates a new instance of the OSVersion class using the specified
+ values.
+
+ The major version of the operating
+ system.
+ The minor version of the operating
+ system.
+ The build number of the operating systen.
+
+
+
+ Serializes this instance of the OSVersion class to an array of
+ bytes.
+
+ An array of bytes representing this instance of the OSVersion
+ class.
+
+
+
+ The major version number of the operating system.
+
+
+
+
+ The minor version number of the operating system.
+
+
+
+
+ The build number of the operating system.
+
+
+
+
+ Contains methods for calculating the various Type 3 challenge
+ responses.
+
+
+
+
+ Computes the LM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account name to authenticate with.
+ The user account password.
+ The target information block from
+ the NTLM type 2 message.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the LMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account to authenticate with.
+ The user account password.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Creates the LM Hash of the specified password.
+
+ The password to create the LM Hash of.
+ The LM Hash of the given password, used in the calculation
+ of the LM Response.
+ Thrown if the password argument
+ is null.
+
+
+
+ Creates a DES encryption key from the specified key material.
+
+ The key material to create the DES encryption
+ key from.
+ An offset into the byte array at which to
+ extract the key material from.
+ A 56-bit DES encryption key as an array of bytes.
+
+
+
+ Applies odd parity to the specified byte array.
+
+ The byte array to apply odd parity to.
+ A reference to the byte array.
+
+
+
+ Creates the LM Response from the specified hash and Type 2 challenge.
+
+ An LM or NTLM hash.
+ The server challenge from the Type 2
+ message.
+ The challenge response as an array of bytes.
+ Thrown if the hash or the
+ challenge parameter is null.
+
+
+
+ Creates the NTLM Hash of the specified password.
+
+ The password to create the NTLM hash of.
+ The NTLM hash for the specified password.
+ Thrown if the password
+ parameter is null.
+
+
+
+ Creates the NTLMv2 Hash of the specified target, username
+ and password values.
+
+ The name of the authentication target as is
+ specified in the target name field of the NTLM type 3 message.
+ The user account name.
+ The password for the user account.
+ The NTLMv2 hash for the specified input values.
+ Thrown if the username or
+ the password parameter is null.
+
+
+
+ Returns the current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+ The current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+
+
+ Creates the "blob" data block which is part of the NTLMv2 challenge
+ response.
+
+ The target information block from
+ the NTLM type 2 message.
+ A random 8-byte client nonce.
+ The blob, used in the calculation of the NTLMv2 Response.
+
+
+
+ Creates the LMv2 Response from the given NTLMv2 hash, client data, and
+ Type 2 challenge.
+
+ The NTLMv2 Hash.
+ The client data (blob or client nonce).
+ The server challenge from the Type 2 message.
+ The response which is either for NTLMv2 or LMv2, depending
+ on the client data.
+
+
+
+ Represents an NTLM security buffer, which is a structure used to point
+ to a buffer of binary data within an NTLM message.
+
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The length of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length value exceeds
+ the maximum value allowed. The security buffer structure stores the
+ length value as a 2-byte short value.
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The data of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length of the data
+ buffer exceeds the maximum value allowed. The security buffer structure
+ stores the buffer length value as a 2-byte short value.
+
+
+
+ Serializes this instance of the SecurityBuffer into an array of bytes.
+
+ A byte array representing this instance of the SecurityBuffer
+ class.
+
+
+
+ The length of the buffer content in bytes (may be zero).
+
+
+
+
+ The allocated space for the buffer in bytes (typically the same as
+ the length).
+
+
+
+
+ The offset from the beginning of the NTLM message to the start of
+ the buffer, in bytes.
+
+
+
+
+ Represents an NTLM Type 1 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 1 for an NTLM Type 1 message.
+
+
+
+
+ Creates a new instance of the Type1Message class using the specified
+ domain and workstation names.
+
+ The domain in which the client's workstation has
+ membership.
+ The client's workstation name.
+ Thrown if the domain or the
+ workstation parameter is null.
+ Thrown if the domain
+ or the workstation name exceeds the maximum allowed string
+ length.
+ The domain as well as the workstation name is restricted
+ to ASCII characters and must not be longer than 65536 characters.
+
+
+
+
+ Serializes this instance of the Type1 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type1
+ class.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The supplied domain name as an array of bytes in the ASCII
+ range.
+
+
+
+
+ The offset within the message where the domain name data starts.
+
+
+
+
+ The supplied workstation name as an array of bytes in the
+ ASCII range.
+
+
+
+
+ The offset within the message where the workstation name data starts.
+
+
+
+
+ The length of the supplied workstation name as a 16-bit short value.
+
+
+
+
+ Contains information about the client's OS version.
+
+
+
+
+ Represents an NTLM Type 2 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 2 for an NTLM Type 2 message.
+
+
+
+
+ Private constructor.
+
+
+
+
+ Deserializes a Type 2 message instance from the specified buffer
+ of bytes.
+
+ The buffer containing a sequence of bytes
+ representing an NTLM Type 2 message.
+ An initialized instance of the Type2 class.
+ Thrown if an error occurs
+ during deserialization of the Type 2 message.
+
+
+
+ Determines the version of an NTLM type 2 message.
+
+ The target offset field of the NTLM
+ type 2 message.
+ A value from the Type2Version enumeration.
+
+
+
+ Reads the OS information data present in version 3 of an NTLM
+ type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the OSVersion class.
+
+
+
+ Reads the target information data present in version 2 and 3 of
+ an NTLM type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the Type2TargetInformation
+ class.
+
+
+
+ Retrieves the target name from the specified byte array.
+
+ A byte array containing the target name.
+ If true the target name will be decoded
+ using UTF-16 unicode encoding.
+
+
+
+
+ The challenge is an 8-byte block of random data.
+
+
+
+
+ The target name of the authentication target.
+
+
+
+
+ The NTLM flags set on this message.
+
+
+
+
+ The SSPI context handle when a local call is being made,
+ otherwise null.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The version of this Type 2 message instance.
+
+
+
+
+ Contains the data present in the target information block.
+
+
+
+
+ Contains the raw data present in the target information block.
+
+
+
+
+ Represents an NTLM Type 3 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 3 for an NTLM Type 3 message.
+
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts. All security buffers will
+ be encoded as Unicode.
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ Set this to true, if Unicode encoding has been
+ negotiated between client and server.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts.
+ Thrown if the username, password
+ or challenge parameters are null.
+
+
+
+ Serializes this instance of the Type3 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type3
+ class.
+
+
+
+ Returns a random 8-byte cnonce value.
+
+ A random 8-byte cnonce value.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The "Lan Manager" challenge response.
+
+
+
+
+ The offset at which the LM challenge response data starts.
+
+
+
+
+ The NTLM challenge response.
+
+
+
+
+ The offset at which the NTLM challenge response data starts.
+
+
+
+
+ The authentication realm in which the authenticating account
+ has membership.
+
+
+
+
+ The offset at which the target name data starts.
+
+
+
+
+ The authenticating account name.
+
+
+
+
+ The offset at which the username data starts.
+
+
+
+
+ The client workstation's name.
+
+
+
+
+ The offset at which the client workstation's name data starts.
+
+
+
+
+ The session key value which is used by the session security mechanism
+ during key exchange.
+
+
+
+
+ The offset at which the session key data starts.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The encoding used for transmitting the contents of the various
+ security buffers.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2195.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslCramMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Cram-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Cram-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Cram-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2831.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Cram-Md5 involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslDigestMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Digest-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Digest-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Parses the challenge string sent by the server in response to a Digest-Md5
+ authentication request.
+
+ The challenge sent by the server as part of
+ "Step One" of the Digest-Md5 authentication mechanism.
+ An initialized NameValueCollection instance made up of the
+ attribute/value pairs contained in the challenge.
+ Thrown if the challenge parameter
+ is null.
+ Refer to RFC 2831 section 2.1.1 for a detailed description of the
+ format of the challenge sent by the server.
+
+
+
+ Computes the "response-value" hex-string which is part of the
+ Digest-MD5 challenge-response.
+
+ A collection containing the attributes
+ and values of the challenge sent by the server.
+ The cnonce value to use for computing
+ the response-value.
+ The "digest-uri" string to use for
+ computing the response-value.
+ The username to use for computing the
+ response-value.
+ The password to use for computing the
+ response-value.
+ A string containing a hash-value which is part of the
+ response sent by the client.
+ Refer to RFC 2831, section 2.1.2.1 for a detailed
+ description of the computation of the response-value.
+
+
+
+ Calculates the MD5 hash value for the specified string.
+
+ The string to calculate the MD5 hash value for.
+ The encoding to employ for encoding the
+ characters in the specified string into a sequence of bytes for
+ which the MD5 hash will be calculated.
+ An MD5 hash as a 32-character hex-string.
+ Thrown if the input string
+ is null.
+
+
+
+ Encloses the specified string in double-quotes.
+
+ The string to enclose in double-quote characters.
+ The enclosed string.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Digest-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLM authentication method which is used in various
+ Microsoft network protocol implementations.
+
+ Implemented with the help of the excellent documentation on
+ NTLM composed by Eric Glass.
+
+
+
+ NTLM involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlm class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an NTLM challenge.
+
+ The challenge sent by the server. Since
+ NTLM expects an initial client response, this will usually be
+ empty.
+ The initial response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the NTLM authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLMv2 authentication method which addresses
+ some of the security issues present in NTLM version 1.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlmv2 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ Implements the Sasl OAuth authentication method.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ Thrown if the accessToken
+ parameter is null.
+ Thrown if the accessToken
+ parameter is empty.
+
+
+
+ Computes the client response for a OAuth challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth authentication mechanism.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl OAuth 2.0 authentication method.
+
+
+
+
+ The server sends an error response in case authentication fails
+ which must be acknowledged.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The username to authenticate with.
+ Thrown if the username
+ or the accessToken parameter is null.
+ Thrown if the username or
+ the accessToken parameter is empty.
+
+
+
+ Computes the client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth 2.0 authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl Plain authentication method as described in
+ RFC 4616.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslPlain class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response for a plain-challenge.
+
+ The challenge sent by the server. For the
+ "plain" mechanism this will usually be empty.
+ The response for the "plain"-challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Plain authentication mechanism as described
+ in RFC 4616.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The plain-text password to authenticate with.
+
+
+
+
+ The exception is thrown when a Sasl-related error or unexpected condition occurs.
+
+
+
+
+ Initializes a new instance of the SaslException class
+
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the SaslException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ A factory class for producing instances of Sasl mechanisms.
+
+
+
+
+ Creates an instance of the Sasl mechanism with the specified
+ name.
+
+ The name of the Sasl mechanism of which an
+ instance will be created.
+ An instance of the Sasl mechanism with the specified name.
+ Thrown if the name parameter
+ is null.
+ Thrown if the Sasl mechanism with the
+ specified name is not registered with Sasl.SaslFactory.
+
+
+
+ Registers a Sasl mechanism with the factory using the specified name.
+
+ The name with which to register the Sasl mechanism
+ with the factory class.
+ The type of the class implementing the Sasl mechanism.
+ The implementing class must be a subclass of Sasl.SaslMechanism.
+ Thrown if the name or the t
+ parameter is null.
+ Thrown if the class represented
+ by the specified type does not derive from Sasl.SaslMechanism.
+ Thrown if the Sasl mechanism could not
+ be registered with the factory. Refer to the inner exception for error
+ details.
+
+
+
+ Static class constructor. Initializes static properties.
+
+
+
+
+ A dictionary of Sasl mechanisms registered with the factory class.
+
+
+
+
+ Represents chainable search conditions that can be used with the Search method.
+
+
+
+
+ Finds all messages in the mailbox.
+
+ A SearchCondition object representing the "all" search criterion.
+
+
+
+ Finds messages that contain the specified string in the header or body of the message.
+
+ String to search messages for.
+ A SearchCondition object representing the "text" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's BCC field.
+
+ String to search the envelope structure's BCC field for.
+ A SearchCondition object representing the "BCC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages whose internal date (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the message's internal date with.
+ A SearchCondition object representing the "Before" search criterion.
+
+
+
+ Finds messages that contain the specified string in the body of the message.
+
+ String to search the message body for.
+ A SearchCondition object representing the "Body" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's CC field.
+
+ String to search the envelope structure's CC field for.
+ A SearchCondition object representing the "CC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's FROM field.
+
+ String to search the envelope structure's FROM field for.
+ A SearchCondition object representing the "FROM" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have a header with the specified field-name and that contains the
+ specified string in the text of the header.
+
+ field-name of the header to search for.
+ String to search for in the text of the header.
+ A SearchCondition object representing the "HEADER" search criterion.
+
+ If the string to search is zero-length, this matches all messages that have a header line
+ with the specified field-name regardless of the contents.
+
+ The name parameter or the text parameter is
+ null.
+
+
+
+ Finds messages with the specified keyword flag set.
+
+ The keyword flag to search for.
+ A SearchCondition object representing the "KEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with a size larger than the specified number of bytes.
+
+ Minimum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "LARGER" search criterion.
+
+
+
+ Finds messages with a size smaller than the specified number of bytes.
+
+ Maximum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "SMALLER" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTBEFORE" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within the specified
+ date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTON" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within or later than
+ the specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTSINCE" search criterion.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's SUBJECT field.
+
+ String to search the envelope structure's SUBJECT field for.
+ A SearchCondition object representing the "SUBJECT" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's TO field.
+
+ String to search the envelope structure's TO field for.
+ A SearchCondition object representing the "TO" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with unique identifiers corresponding to the specified unique identifier set.
+
+ One or several unique identifiers (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages with a unique identifier greater than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+ Because of the nature of the IMAP search mechanism, the result set will always contain the
+ UID of the last message in the mailbox, even if said UID is smaller than the UID specified.
+
+
+
+
+ Finds messages with a unique identifier less than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages that do not have the specified keyword flag set.
+
+ The IMAP keyword flag to search for.
+ A SearchCondition object representing the "UNKEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have the \Answered flag set.
+
+ A SearchCondition object representing the "ANSWERED" search criterion.
+
+
+
+ Finds messages that have the \Deleted flag set.
+
+ A SearchCondition object representing the "DELETED" search criterion.
+
+
+
+ Finds messages that have the \Draft flag set.
+
+ A SearchCondition object representing the "DRAFT" search criterion.
+
+
+
+ Finds messages that have the \Flagged flag set.
+
+ A SearchCondition object representing the "FLAGGED" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set but not the \Seen flag.
+
+ A SearchCondition object representing the "NEW" search criterion.
+
+
+
+ Finds messages that do not have the \Recent flag set.
+
+ A SearchCondition object representing the "OLD" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set.
+
+ A SearchCondition object representing the "RECENT" search criterion.
+
+
+
+ Finds messages that have the \Seen flag set.
+
+ A SearchCondition object representing the "SEEN" search criterion.
+
+
+
+ Finds messages that do not have the \Answered flag set.
+
+ A SearchCondition object representing the "UNANSWERED" search criterion.
+
+
+
+ Finds messages that do not have the \Deleted flag set.
+
+ A SearchCondition object representing the "UNDELETED" search criterion.
+
+
+
+ Finds messages that do not have the \Draft flag set.
+
+ A SearchCondition object representing the "UNDRAFT" search criterion.
+
+
+
+ Finds messages that do not have the \Flagged flag set.
+
+ A SearchCondition object representing the "UNFLAGGED" search criterion.
+
+
+
+ Finds messages that do not have the \Seen flag set.
+
+ A SearchCondition object representing the "UNSEEN" search criterion.
+
+
+
+ Logically ANDs multiple search conditions, meaning a message will only be included in the
+ search result if both of the ANDed conditions are met.
+
+ A search condition to logically AND this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically negates search conditions, meaning a message will only be included in the search
+ result if the specified conditions are not met.
+
+ A search condition that must not be met by a message for it to be
+ included in the search result set.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically ORs multiple search conditions, meaning a message will be included in the search
+ result if it meets at least either of the conditions.
+
+ A search condition to logically OR this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Joins two SearchCondition objects into a new one using the specified logical operator.
+
+ The logical operator to use for joining the search conditions.
+ Possible values are "OR", "NOT" and the empty string "" which denotes a logical AND.
+ The first SearchCondition object
+ The second SearchCondition object
+ A new SearchCondition object representing the two search conditions joined by the
+ specified logical operator.
+
+
+
+ Concatenates the members of a collection, using the specified separator between each
+ member.
+
+ The type of the members of values.
+ The string to use as a separator.
+ A collection that contains the objects to concatenate.
+ A string that consists of the members of values delimited by the separator
+ string. If values has no members, the method returns System.String.Empty.
+ The values parameter is null.
+ This is already part of the String class in .NET 4.0 and newer but is needed
+ for backwards compatibility with .NET 3.5.
+
+
+
+ Constructs a string from the SearchCondition object using the proper syntax as is required
+ for the IMAP SEARCH command.
+
+ A string representing this SearchCondition instance that can be used with the IMAP
+ SEARCH command.
+
+
+
+ The search keys which can be used with the IMAP SEARCH command, as are defined in section
+ 6.4.4 of RFC 3501.
+
+
+
+
+ A static utility class containing methods for decoding encoded non-ASCII data as well as
+ extension methods for some classes of the base class library.
+
+
+
+
+ Returns a copy of the string enclosed in double-quotes and with escaped CRLF, back-slash
+ and double-quote characters (as is expected by some commands of the IMAP protocol).
+
+ Extends the System.String class
+ A copy of the string enclosed in double-quotes and properly escaped as is required
+ by the IMAP protocol.
+
+
+
+ Returns true if the string contains only ASCII characters.
+
+ Extension method for the String class.
+ true if the string contains only ASCII characters; Otherwise false.
+
+
+
+ Splits a string into chunks of the specified number of characters.
+
+ Extension method for the String class.
+ The length of a chunk, measured in characters.
+ An array of string chunks.
+
+
+
+ Determines whether the specified string occurs within this string.
+
+ Extension method for the String class.
+ The string to seek.
+ One of the enumeration values that specifies the rules for the
+ search.
+ true if the value parameter occurs within this string, or if value is the empty
+ string (""); otherwise, false.
+ The value parameter is null.
+
+
+
+ Raises the event. Ensures the event is only raised, if it is not null.
+
+ Extends System.EventHandler class.
+ Extends System.EventHandler class.
+ The sender of the event.
+ The event arguments associated with this event.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ The name to use when throwing an exception, if necessary.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+ The name to use when throwing an exception, if necessary.
+
+
+
+ Reads an unsigned short value from the underlying stream, optionally using big-endian byte
+ ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the short value as big endian value.
+ The 16-byte unsigned short value read from the underlying stream.
+
+
+
+ Decodes a string composed of one or several MIME 'encoded-words'.
+
+ A string to composed of one or several MIME 'encoded-words'.
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A concatenation of all enconded-words in the passed string
+
+
+
+ Internal function reuse to add separation between multiple 'encoded-word's correctly.
+
+
+
+
+ The regular expression for matching encoded-words. This also accounts for the extension for
+ including language information (as defined in RFC2231).
+
+
+
+
+ Decodes a MIME 'encoded-word' string.
+
+ The encoded word to decode
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A decoded string
+ MIME encoded-word syntax is a way to encode strings that contain non-ASCII data.
+ Commonly used encodings for the encoded-word sytax are Q-Encoding and Base64. For an
+ in-depth description, refer to RFC 2047.
+
+
+
+ Takes a Q-encoded string and decodes it using the specified encoding.
+
+ The Q-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid Q-encoded string.
+ The Q-decoded string.
+
+
+
+ Takes a quoted-printable encoded string and decodes it using the specified encoding.
+
+ The quoted-printable-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid quoted-printable encoded
+ string.
+ A quoted-printable decoded string.
+
+
+
+ Decodes the specified MIME parameter value.
+
+ The MIME parameter value to decode.
+ The decoded MIME parameter value.
+ The specified value is not a valid Rfc2231-encoded
+ string.
+ Refer to RFC2231 for the details of the encoding mechanism.
+
+
+
+ Takes a Base64-encoded string and decodes it.
+
+ The Base64-encoded string to decode.
+ A byte array containing the Base64-decoded bytes of the input string.
+ The value parameter is null.
+ The length of value, ignoring white-space
+ characters, is not zero or a multiple of 4, or the format of value is invalid, or the value
+ contains a non-base-64 character, more than two padding characters, or a non-white
+ space-character among the padding characters.
+
+
+
+ Takes a UTF-16 encoded string and encodes it as modified UTF-7.
+
+ The string to encode.
+ A UTF-7 encoded string
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ Takes a modified UTF-7 encoded string and decodes it.
+
+ The UTF-7 encoded string to decode.
+ A UTF-16 encoded "standard" C# string
+ The input string is not a properly UTF-7 encoded
+ string.
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ This just wraps Encoding.GetEncoding in a try-catch block to ensure it never fails. If the
+ encoding can not be determined ASCII is returned as a default.
+
+ The code page name of the preferred encoding. Any value returned by
+ System.Text.Encoding.WebName is a valid input.
+ The System.Text.Encoding associated with the specified code page or Encoding.ASCII
+ if the specified code page could not be resolved.
+
+
+
+ Converts the specified enumerable collection of UIDs into an IMAP sequence-set.
+
+ An enumerable collection of UIDs.
+ An IMAP sequence-set suitable for use with IMAP commands.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ Refer to RFC3501, 9.Formal Syntax "sequence-set" for a description of IMAP
+ sequence-sets.
+
+
+
diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.dll b/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.dll
new file mode 100644
index 0000000..360f335
Binary files /dev/null and b/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.dll differ
diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.XML b/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.XML
new file mode 100644
index 0000000..9995b3c
--- /dev/null
+++ b/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.XML
@@ -0,0 +1,7178 @@
+
+
+
+ S22.Imap
+
+
+
+
+ Defines supported means of authenticating with an IMAP server.
+
+
+
+
+ Automatically selects the most-secure authentication mechanism supported by the server.
+
+
+
+
+ Login using plaintext password authentication; This is supported by most servers.
+
+
+
+
+ Login using the SASL PLAIN authentication mechanism.
+
+
+
+
+ Login using the CRAM-MD5 authentication mechanism.
+
+
+
+
+ Login using the DIGEST-MD5 authentication mechanism.
+
+
+
+
+ Login using OAuth via the SASL XOAuth mechanism.
+
+
+
+
+ Login using OAuth 2.0 via the SASL XOAUTH2 mechanism.
+
+
+
+
+ Login using the NTLM authentication mechanism.
+
+
+
+
+ Login using the NTLMv2 authentication mechanism.
+
+
+
+
+ Login using the NTLM/NTLMv2 authentication mechanism via Microsoft's Security Support
+ Provider Interface (SSPI).
+
+
+
+
+ Login using Kerberos authentication via the SASL GSSAPI mechanism.
+
+
+
+
+ Login using the SCRAM-SHA-1 authentication mechanism.
+
+
+
+
+ Login using the Secure Remote Password (SRP) authentication mechanism.
+
+ The SRP mechanism is only available when targeting .NET 4.0 or newer.
+
+
+
+ A utility class modeled after the BCL StringBuilder to simplify
+ building binary-data messages.
+
+
+
+
+ The actual byte buffer.
+
+
+
+
+ The current position in the buffer.
+
+
+
+
+ Resizes the internal byte buffer.
+
+ Amount in bytes by which to increase the
+ size of the buffer.
+
+
+
+ Appends one or several byte values to this instance.
+
+ Byte values to append.
+ A reference to the calling instance.
+
+
+
+ Appends the specified number of bytes from the specified buffer
+ starting at the specified offset to this instance.
+
+ The buffer to append bytes from.
+ The offset into the buffert at which to start
+ reading bytes from.
+ The number of bytes to read from the buffer.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit integer value to this instance.
+
+ A 32-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit short value to this instance.
+
+ A 16-bit short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 16-bit unsigend short value to this instance.
+
+ A 16-bit unsigend short value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 32-bit unsigned integer value to this instance.
+
+ A 32-bit unsigned integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified 64-bit integer value to this instance.
+
+ A 64-bit integer value to append.
+ Set this to true, to append the value as
+ big-endian.
+ A reference to the calling instance.
+
+
+
+ Appends the specified string using the specified encoding to this
+ instance.
+
+ The string vale to append.
+ The encoding to use for decoding the string value
+ into a sequence of bytes. If this is null, ASCII encoding is used as a
+ default.
+ A reference to the calling instance.
+
+
+
+ Returns the ByteBuilder's content as an array of bytes.
+
+ An array of bytes.
+
+
+
+ Removes all bytes from the current ByteBuilder instance.
+
+
+
+
+ The length of the underlying data buffer.
+
+
+
+
+ A filter stream sitting between Negotiate- and NetworkStream to
+ enable managed NTLM/GSSAPI authentication.
+
+
+ We use a filter for hooking into the NegotiateStream protocol rather
+ than p/invoking SSPI directly as that would require unmanaged
+ code privileges (internally NegotiateStream uses an SSPI wrapper).
+
+ NegotiateStream - FilterStream - NetworkStream.
+
+
+
+
+ A buffer for accumulating handshake data until an entire handshake
+ has been read.
+
+
+
+
+ A buffer for accumulating the payload data following the handshake
+ data.
+
+
+
+
+ The latest handshake header sent by the client.
+
+
+
+
+ The buffer from which client reads will be satisfied.
+
+
+
+
+ The number of bytes the client has already consumed/read
+ from the receivedData buffer.
+
+
+
+
+ The current state of the filter stream.
+
+
+
+
+ Determines whether this instance should close the inner stream
+ when disposed.
+
+
+
+
+ An error code as specified by the NegotiateStream protocol which is
+ handed to the NegotiateStream instance in case authentication
+ unexpectedly fails.
+
+
+
+
+ Gets the stream used by this FilterStream for sending and
+ receiving data.
+
+
+
+
+ Initializes a new instance of the FilterStream class using the
+ specified Stream.
+
+ A Stream object used by the FilterStream for sending
+ and receiving data.
+ Set to true to indicate that closing this
+ FilterStream has no effect on innerstream, or set to false to
+ indicate that closing this FilterStream also closes innerStream.
+
+
+
+ Reads data from this stream and stores it in the specified array.
+
+ A byte array that receives the bytes read from
+ the stream.
+ The zero-based index into the buffer at which to
+ begin storing the data read from this stream.
+ The the maximum number of bytes to read from the
+ stream.
+ The the number of bytes read from the underlying stream. When
+ there is no more data to be read, returns 0.
+ The read operation failed.
+
+
+
+ Reads the server response from the underlying inner stream.
+
+
+
+
+ Write the specified number of bytes to the underlying stream using the
+ specified buffer and offset.
+
+ A byte array that supplies the bytes written to
+ the stream.
+ The zero-based index in the buffer at which to
+ begin reading bytes to be written to the stream.
+ The number of bytes to read from buffer.
+ The write operation failed.
+
+
+
+ Reads the client's handshake from the specified buffer.
+
+ A byte array from which the handshake data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if the handshake has been read completely, otherwise
+ false.
+
+
+
+ Reads the payload from the specified buffer.
+
+ A byte array from which the payload data
+ will be read.
+ The zero-based index in the buffer at which to
+ begin reading bytes.
+ The number of bytes to read from buffer.
+ True if all of the payload data has been read, otherwise
+ false.
+
+
+
+ Sends the accumulated payload data to the server.
+
+ true if the client is done sending data, otherwise
+ false.
+
+
+
+ Reads a line of ASCII-encoded text terminated by a CRLF from the
+ specified stream.
+
+ The stream to read the line of text from.
+ Set this to true, to resolve automatically
+ resolve possible literals.
+ A line of ASII-encoded text read from the specified
+ stream.
+ "Literals" are a special feature of IMAP, employed by some
+ server implementations. Please refer to RFC 3501 Section 4.3 for
+ details.
+
+
+
+ Reads the specified number of bytes from the specified stream and
+ returns them as an ASCII-encoded string.
+
+ The stream to read from.
+ The number of bytes to read.
+ The read bytes encoded as an ASCII string.
+
+
+
+ Causes any buffered data to be written to the underlying device.
+
+
+
+
+ Throws NotSupportedException.
+
+ This value is ignored.
+ This value is ignored.
+ Always throws a NotSupportedException.
+
+
+
+ Sets the length of the underlying stream.
+
+ A value that specifies the length of the
+ stream.
+
+
+
+ Releases all resources used by the stream.
+
+ True to release both managed and unmanaged
+ resources, false to release only unmanaged resources.
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ readable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ seekable.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream
+ supports time-outs.
+
+
+
+
+ Gets a boolean value that indicates whether the underlying stream is
+ writable.
+
+
+
+
+ Gets the length of the underlying stream.
+
+
+
+
+ Gets or sets the current position in the underlying stream.
+
+ Setting this property
+ is not supported.
+
+
+
+ The different states the FilterStream can be in.
+
+
+
+
+ The stream is reading the client's handshake message.
+
+
+
+
+ The stream is reading the client's payload data.
+
+
+
+
+ The stream is waiting for the server's response.
+
+
+
+
+ The stream has buffered the server's response and is satisfying
+ client reads from its buffer.
+
+
+
+
+ Represents a NegotiateStream handshake message.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ This is the only permissible value according to specification.
+
+
+
+
+ Creates a new instance of the Handshake class using the specified type
+ and payload size.
+
+ The type of handshake.
+ The size, in bytes, of the payload following
+ the handshake header.
+
+
+
+ Private default constructor for deserializing.
+
+
+
+
+ Deserializes a handshake instance from the specified byte array.
+
+ An array of bytes containing handshake data.
+ An initialized instance of the Handshake class deserialized
+ from the specified byte array.
+ Thrown if the specified byte
+ array does not contain valid handshake data.
+
+
+
+ Serializes an instance of the Handshake class to a sequence of bytes.
+
+ A sequence of bytes representing this Handshake instance.
+
+
+
+ The type of the handshake message.
+
+
+
+
+ Specifies the major version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Specifies the minor version of the NegotiateStream protocol
+ being used.
+
+
+
+
+ Defines the size, in bytes, of the AuthPayload field, which immediately
+ follows the handshake.
+
+
+
+
+ Describes the different types of handshake messages.
+
+
+
+
+ The handshake has completed successfully.
+
+
+
+
+ An error occurred during the handshake. The AuthPayload field contains
+ an HRESULT.
+
+
+
+
+ The message is part of the handshake phase and is not the final message
+ from the host. The final Handshake message from a host is always
+ transferred in a HandshakeDone message.
+
+
+
+
+ Implements the Sasl SCRAM-SHA-1 authentication method as described in
+ RFC 5802.
+
+
+
+
+ The abstract base class from which all classes implementing a Sasl
+ authentication mechanism must derive.
+
+
+
+
+ Computes the client response to a challenge sent by the server.
+
+
+ The client response to the specified challenge.
+
+
+
+
+
+
+
+ Retrieves the base64-encoded client response for the specified
+ base64-encoded challenge sent by the server.
+
+ A base64-encoded string representing a challenge
+ sent by the server.
+ A base64-encoded string representing the client response to the
+ server challenge.
+ The IMAP, POP3 and SMTP authentication commands expect challenges
+ and responses to be base64-encoded. This method automatically decodes the
+ server challenge before passing it to the Sasl implementation and
+ encodes the client response to a base64-string before returning it to the
+ caller.
+ Thrown if the client response could
+ not be retrieved. Refer to the inner exception for error details.
+
+
+
+ Retrieves the client response for the specified server challenge.
+
+ A byte array containing the challenge sent by
+ the server.
+ An array of bytes representing the client response to the
+ server challenge.
+
+
+
+ IANA name of the authentication mechanism.
+
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ A map of mechanism-specific properties which are needed by the
+ authentication mechanism to compute it's challenge-responses.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Scram-Sha-1 involves several steps.
+
+
+
+
+ The salted password. This is needed for client authentication and later
+ on again for verifying the server signature.
+
+
+
+
+ The auth message is part of the authentication exchange and is needed for
+ authentication as well as for verifying the server signature.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslScramSha1
+ class using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified SCRAM-SHA-1 challenge.
+
+ The challenge sent by the server
+ The response to the SCRAM-SHA-1 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial response sent by the client to the server.
+
+ An array of bytes containing the initial client
+ response.
+
+
+
+ Computes the "client-final-message" which completes the authentication
+ process.
+
+ The "server-first-message" challenge received
+ from the server in response to the initial client response.
+ An array of bytes containing the client's challenge
+ response.
+
+
+
+ Verifies the nonce value sent by the server.
+
+ The nonce value sent by the server as part of the
+ server-first-message.
+ True if the nonce value is valid, otherwise false.
+
+
+
+ Verifies the server signature which is sent by the server as the final
+ step of the authentication process.
+
+ The server signature as a base64-encoded
+ string.
+ The client's response to the server. This will be an empty
+ byte array if verification was successful, or the '*' SASL cancellation
+ token.
+
+
+
+ Parses the "server-first-message" received from the server.
+
+ The challenge received from the server.
+ A collection of key/value pairs contained extracted from
+ the server message.
+ Thrown if the message parameter
+ is null.
+
+
+
+ Computes the "Hi()"-formula which is part of the client's response
+ to the server challenge.
+
+ The supplied password to use.
+ The salt received from the server.
+ The iteration count.
+ An array of bytes containing the result of the computation of the
+ "Hi()"-formula.
+
+ Hi is, essentially, PBKDF2 with HMAC as the pseudorandom function (PRF) and with
+ dkLen == output length of HMAC() == output length of H(). (Refer to RFC 5802, p.6)
+
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input data.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input to compute the hashcode for.
+ The hashcode of the specified data input.
+
+
+
+ Applies the HMAC keyed hash algorithm using the specified key to
+ the specified input string.
+
+ The key to use for initializing the HMAC
+ provider.
+ The input string to compute the hashcode for.
+ The hashcode of the specified string.
+
+
+
+ Applies the cryptographic hash function SHA-1 to the specified data
+ array.
+
+ The data array to apply the hash function to.
+ The hash value for the specified byte array.
+
+
+
+ Applies the exclusive-or operation to combine the specified byte array
+ a with the specified byte array b.
+
+ The first byte array.
+ The second byte array.
+ An array of bytes of the same length as the input arrays
+ containing the result of the exclusive-or operation.
+ Thrown if either argument is
+ null.
+ Thrown if the input arrays
+ are not of the same length.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ Prepares the specified string as is described in RFC 5802.
+
+ A string value.
+ A "Saslprepped" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Scram-Sha-1 authentication mechanism as described
+ in RFC 5802.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl Secure Remote Password (SRP) authentication
+ mechanism as is described in the IETF SRP 08 draft.
+
+
+ This requires .NET Framework 4 because it makes use of the System.Numeric namespace
+ which has only been part of .NET since version 4.
+
+ Some notes:
+ - Don't bother with the example given in the IETF 08 draft
+ document (7.5 Example); It is broken.
+ - Integrity and confidentiality protection is not implemented.
+ In fact, the "mandatory"-option is not supported at all.
+
+
+
+
+ SRP involves several steps.
+
+
+
+
+ The negotiated hash algorithm which will be used to perform any
+ message digest calculations.
+
+
+
+
+ The public key computed as part of the authentication exchange.
+
+
+
+
+ The client's private key used for calculating the client evidence.
+
+
+
+
+ The secret key shared between client and server.
+
+
+
+
+ The client evidence calculated as part of the authentication exchange.
+
+
+
+
+ The options chosen by the client, picked from the list of options
+ advertised by the server.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client private key to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslSrp class using
+ the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified SRP challenge.
+
+ The challenge sent by the server
+ The response to the SRP challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial response sent by the client to the server.
+
+ An array of bytes containing the initial client
+ response.
+
+
+
+ Computes the client response containing the client's public key and
+ evidence.
+
+ The challenge containing the protocol elements
+ received from the server in response to the initial client
+ response.
+ An array of bytes containing the client's challenge
+ response.
+ Thrown if the server specified any
+ mandatory options which are not supported.
+
+
+
+ Verifies the server signature which is sent by the server as the final
+ step of the authentication process.
+
+ The server signature as a base64-encoded
+ string.
+ The client's response to the server. This will be an empty
+ byte array if verification was successful, or the '*' SASL cancellation
+ token.
+
+
+
+ Selects a message digest algorithm from the specified list of
+ supported algorithms.
+
+ A tuple containing the name of the selected message digest
+ algorithm as well as the type.
+ Thrown if none of the algorithms
+ specified in the list parameter is supported.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the SRP authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ The authorization id (userid in draft jargon).
+
+
+
+
+ Represents the initial client-response sent to the server to initiate
+ the authentication exchange.
+
+
+
+
+ Creates a new instance of the ClientMessage1 class using the specified
+ username.
+
+ The username to authenticate with.
+ The authorization id to authenticate with.
+ Thrown if the username parameter
+ is null.
+
+
+
+ Serializes this instance of the ClientMessage1 class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ ClientMessage1 class.
+ Thrown if the cummultative length
+ of the serialized data fields exceeds the maximum number of bytes
+ allowed as per SRP specification.
+ SRP specification imposes a limit of 2,147,483,643 bytes on
+ the serialized data.
+
+
+
+ The username to authenticate with.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field.
+
+
+
+ The authorization identity to authenticate with.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field.
+
+
+
+ The session identifier of a previous session whose parameters the
+ client wishes to re-use.
+
+ SRP specification imposes a limit of 65535 bytes
+ on this field. If the client wishes to initialize a new session,
+ this parameter must be set to the empty string.
+
+
+
+ The client's nonce used in deriving a new shared context key from
+ the shared context key of the previous session.
+
+ SRP specification imposes a limit of 255 bytes on this
+ field. If not needed, it must be set to an empty byte array.
+
+
+
+ Represents the second client-response sent to the server as part of
+ the SRP authentication exchange.
+
+
+
+
+ Creates and initializes a new instance of the ClientMessage2 class.
+
+
+
+
+ Creates and initializes a new instance of the ClientMessage2 class using
+ the specified public key and client proof.
+
+ The client's public key.
+ The calculated client proof.
+ Thrown if either the public key
+ or the proof parameter is null.
+
+
+
+ Serializes this instance of the ClientMessage2 class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ ClientMessage2 class.
+ Thrown if the cummultative length
+ of the serialized data fields exceeds the maximum number of bytes
+ allowed as per SRP specification.
+ SRP specification imposes a limit of 2,147,483,643 bytes on
+ the serialized data.
+
+
+
+ Serializes the client's options collection into a comma-seperated
+ options string.
+
+ A comma-seperated string containing the client's chosen
+ options.
+
+
+
+ The client's ephemeral public key.
+
+
+
+
+ The evidence which proves to the server client-knowledge of the shared
+ context key.
+
+
+
+
+ The options list indicating the security services chosen by the client.
+
+
+
+
+ The initial vector the server will use to set up its encryption
+ context, if confidentiality protection will be employed.
+
+
+
+
+ Adds extension methods to the BinaryReader class to simplify the
+ deserialization of SRP messages.
+
+
+
+
+ Reads an unsigned integer value from the underlying stream,
+ optionally using big endian byte ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the integer value
+ as big endian value.
+ The 32-byte unsigned integer value read from the underlying
+ stream.
+
+
+
+ Reads an unsigned short value from the underlying stream, optionally
+ using big endian byte ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the short value
+ as big endian value.
+ The 16-byte unsigned short value read from the underlying
+ stream.
+
+
+
+ Reads a "multi-precision integer" from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the Mpi class decoded from the bytes read
+ from the underlying stream.
+
+
+
+ Reads an "octet-sequence" from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the OctetSequence class decoded from the bytes
+ read from the underlying stream.
+
+
+
+ Reads an UTF-8 string from this instance.
+
+ Extension method for the BinaryReader class.
+ An instance of the Utf8String class decoded from the bytes
+ read from the underlying stream.
+
+
+
+ Contains helper methods for calculating the various components of the
+ SRP authentication exchange.
+
+
+
+
+ The trace source used for informational and debug messages.
+
+
+
+
+ Determines whether the specified modulus is valid.
+
+ The modulus to validate.
+ True if the specified modulus is valid, otherwise
+ false.
+
+
+
+ Determines whether the specified generator is valid.
+
+ The generator to validate.
+ True if the specified generator is valid, otherwise
+ false.
+
+
+
+ Generates a random "multi-precision integer" which will act as the
+ client's private key.
+
+ The client's ephemeral private key as a "multi-precision
+ integer".
+
+
+
+ Calculates the client's ephemeral public key.
+
+ The generator sent by the server.
+ The safe prime modulus sent by
+ the server.
+ The client's private key.
+ The client's ephemeral public key as a
+ "multi-precision integer".
+
+ A = Client Public Key
+ g = Generator
+ a = Client Private Key
+ N = Safe Prime Modulus
+
+
+
+
+ Calculates the shared context key K from the given parameters.
+
+ The user's password salt.
+ The username to authenticate with.
+ The password to authenticate with.
+ The client's ephemeral public key.
+ The server's ephemeral public key.
+ The client's private key.
+ The generator sent by the server.
+ The safe prime modulus sent by the
+ server.
+ The negotiated hash algorithm to use
+ for the calculations.
+ The shared context key K as a "multi-precision
+ integer".
+
+ A = Client Public Key
+ B = Server Public Key
+ N = Safe Prime Modulus
+ U = Username
+ p = Password
+ s = User's Password Salt
+ a = Client Private Key
+ g = Generator
+ K = Shared Public Key
+
+
+
+
+ Computes the client evidence from the given parameters.
+
+ The safe prime modulus sent by the
+ server.
+ The generator sent by the server.
+ The username to authenticate with.
+ The client's password salt.
+ The client's ephemeral public key.
+ The server's ephemeral public key.
+ The shared context key.
+ The authorization identity.
+ The raw options string as received from the
+ server.
+ The message digest algorithm to use for
+ calculating the client proof.
+ The client proof as an array of bytes.
+
+
+
+ Computes the server evidence from the given parameters.
+
+ The client's ephemeral public key.
+
+ The shared context key.
+ The authorization identity.
+ The raw options string as sent by the
+ client.
+ The session id sent by the server.
+ The time-to-live value for the session id sent
+ by the server.
+ The message digest algorithm to use for
+ calculating the server proof.
+ The server proof as an array of bytes.
+
+
+
+ Applies the exclusive-or operation to combine the specified byte array
+ a with the specified byte array b.
+
+ The first byte array.
+ The second byte array.
+ An array of bytes of the same length as the input arrays
+ containing the result of the exclusive-or operation.
+ Thrown if either argument is
+ null.
+ Thrown if the input arrays
+ are not of the same length.
+
+
+
+ Recommended values for the safe prime modulus (Refer to Appendix A.
+ "Modulus and Generator Values" of the IETF SRP draft).
+
+
+
+
+ Represents a "multi-precision integer" (MPI) as is described in the
+ SRP specification (3.2 Multi-Precision Integers, p.5).
+
+ Multi-Precision Integers, or MPIs, are positive integers used
+ to hold large integers used in cryptographic computations.
+
+
+
+ Creates a new "multi-precision integer" from the specified array
+ of bytes.
+
+ A big-endian sequence of bytes forming the
+ integer value of the multi-precision integer.
+
+
+
+ Creates a new "multi-precision integer" from the specified BigInteger
+ instance.
+
+ The BigInteger instance to initialize the MPI
+ with.
+
+
+
+ Returns a sequence of bytes in big-endian order forming the integer
+ value of this "multi-precision integer" instance.
+
+ Returns a sequence of bytes in big-endian order representing
+ this "multi-precision integer" instance.
+
+
+
+ Serializes the "multi-precision integer" into a sequence of bytes
+ according to the requirements of the SRP specification.
+
+ A big-endian sequence of bytes representing the integer
+ value of the MPI.
+
+
+
+ The underlying BigInteger instance used to represent this
+ "multi-precision integer".
+
+
+
+
+ Represents an "octet-sequence" as is described in the SRP specification
+ (3.3 Octet sequences, p.6).
+
+
+
+
+ Creates a new instance of the OctetSequence class using the specified
+ byte array.
+
+ The sequence of bytes to initialize this instance
+ of the OctetSequence class with.
+
+
+
+ Serializes this instance of the OctetSequence class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ OctetSequence class.
+ Thrown if the length of the byte
+ sequence exceeds the maximum number of bytes allowed as per SRP
+ specification.
+ SRP specification imposes a limit of 255 bytes on the
+ length of the underlying byte array.
+
+
+
+ The underlying byte array forming this instance of the OctetSequence
+ class.
+
+
+
+
+ Represents the first message sent by the server in response to an
+ initial client-response.
+
+
+
+
+ Deserializes a new instance of the ServerMessage1 class from the
+ specified buffer of bytes.
+
+ The byte buffer to deserialize the ServerMessage1
+ instance from.
+ An instance of the ServerMessage1 class deserialized from the
+ specified byte array.
+ Thrown if the byte buffer does not
+ contain valid data.
+
+
+
+ Parses the options string sent by the server.
+
+ A comma-delimited options string.
+ An initialized instance of the NameValueCollection class
+ containing the parsed server options.
+
+
+
+ The safe prime modulus sent by the server.
+
+
+
+
+ The generator sent by the server.
+
+
+
+
+ The user's password salt.
+
+
+
+
+ The server's ephemeral public key.
+
+
+
+
+ The options list indicating available security services.
+
+
+
+
+ The raw options as received from the server.
+
+
+
+
+ Represents the second message sent by the server as part of the SRP
+ authentication exchange.
+
+
+
+
+ Deserializes a new instance of the ServerMessage2 class from the
+ specified buffer of bytes.
+
+ The byte buffer to deserialize the ServerMessage2
+ instance from.
+ An instance of the ServerMessage2 class deserialized from the
+ specified byte array.
+ Thrown if the byte buffer does not
+ contain valid data.
+
+
+
+ The evidence which proves to the client server-knowledge of the shared
+ context key.
+
+
+
+
+ The initial vector the client will use to set up its encryption
+ context, if confidentiality protection will be employed.
+
+
+
+
+ The session identifier the server has given to this session.
+
+
+
+
+ The time period for which this session's parameters may be re-usable.
+
+
+
+
+ Represents an UTF-8 string as is described in the SRP specification
+ (3.5 Text, p.6).
+
+
+
+
+ The value of the UTF-8 string.
+
+
+
+
+ Creates a new instance of the Utf8String class using the specified
+ string value.
+
+ The string to initialize the Utf8String instance
+ with.
+
+
+
+ Serializes this instance of the Utf8String class into a sequence of
+ bytes according to the requirements of the SRP specification.
+
+ A sequence of bytes representing this instance of the
+ Utf8String class.
+ Thrown if the string value exceeds
+ the maximum number of bytes allowed as per SRP specification.
+ SRP specification imposes a limit of 65535 bytes on the
+ string data after it has been encoded into a sequence of bytes
+ using an encoding of UTF-8.
+
+
+
+ Represents a MIME body part of a mail message that has multiple
+ parts.
+
+
+
+
+ Initializes a new instance of the Bodypart class with default
+ values.
+
+ The part number as is expected by the
+ IMAP FETCH command.
+
+
+
+ Returns a detailed description listing all properties of this
+ Bodypart instance.
+
+ A string describing this instance of the Bodypart class
+
+
+
+ The body part number which acts as part specifier for
+ the FETCH BODY command.
+
+
+
+
+ The MIME content-type of this body part. The content-type is
+ used to declare the general type of data.
+
+
+
+
+ The MIME content-subtype of this body part. The subtype
+ specifies a specific format for the type of data.
+
+
+
+
+ Parameter values present in the MIME content-type header
+ of this body part (for instance, 'charset').
+
+
+
+
+ The MIME content-id of this body part, if any. This value
+ may be used for uniquely identifying MIME entities in
+ several contexts.
+
+
+
+
+ The MIME content-description of this body part. This value
+ may contain some descriptive information on the body part.
+
+
+
+
+ The MIME content-transfer-encoding mechanism used for
+ encoding this body part's data.
+
+
+
+
+ The size of this body part in bytes. Note that this size
+ is the size in its transfer encoding and not the resulting
+ size after any decoding.
+
+
+
+
+ The size of the body in text lines. This field is only
+ present in body parts with a content-type of text.
+
+
+
+
+ The computed MD5-Hash of the body part. This field is not
+ mandatory and may be empty.
+
+
+
+
+ The MIME content-disposition for this body part. This field
+ is not mandatory and may be empty.
+
+
+
+
+ A string giving the body language. This field is not mandatory
+ and may be empty.
+
+
+
+
+ A string list giving the body content URI. This field is not
+ mandatory and may be empty.
+
+
+
+
+ Provides a means for parsing the textual description of the body structure of a mail
+ message as is returned by an IMAP server for a "FETCH BODYSTRUCTURE" command.
+
+
+ They couldn't have made the BODYSTRUCTURE any more complicated and unnecessarily
+ hard to parse. I wonder what they were thinking when they came up with this.
+
+
+
+
+ Parses the body structure of a mail message as is returned by the IMAP server
+ in response to a FETCH BODYSTRUCTURE command.
+
+ The body structure server response
+ An array of initialized Bodypart objects representing the body
+ structure of the mail message
+ Thrown if the passed string does not
+ contain a valid body structure and parsing failed.
+
+
+
+ A Reader object initialized with the string containing the bodystructure
+ response.
+
+
+
+
+ Initializes a new instance of the Bodystructure class.
+
+
+
+
+
+ Parses a bodypart entry from the body structure and advances the
+ read pointer.
+
+ The designated part specifier by which the body
+ part is refered to by the server.
+ Set to true if the bodypart is enclosed
+ in parenthesis.
+
+
+
+
+ Parses the mandatory extra fields that are present if the bodypart is
+ of type message/rfc822 (see RFC 3501, p. 75).
+
+ The bodypart instance the parsed fields will be
+ added to.
+
+
+
+ Parses the optional fields of a bodypart entry from the body structure
+ and advances the read pointer.
+
+ The bodypart instance the parsed fields will be
+ added to.
+ Set to true if the bodypart entry is enclosed
+ in parenthesis.
+
+
+
+ Parses a list of bodypart entries as is outlined in the description of the
+ BODYPART response in RFC 3501.
+
+ The nesting prefix that will be prefixed to the
+ bodyparts partNumber.
+ An array of initialized Bodypart objects parsed from the
+ list.
+
+
+
+ Advances the read pointer to skip over a multipart entry.
+
+
+
+
+ Advances the read pointer to skip over an arbitrary
+ expression enclosed in parentheses.
+
+
+
+
+ Represents the content disposition as is presented in the BODYSTRUCTURE
+ response by the IMAP server.
+
+
+
+
+ Initializes a new instance of the ContentDisposition class with
+ default values.
+
+
+
+
+ Maps MIME content disposition string values to their corresponding
+ counter-parts of the ContentDispositionType enumeration.
+
+
+
+
+ The content disposition specifies the presentation style.
+
+
+
+
+ Additional attribute fields for specifying the name of a file, the creation
+ date and modification date, which can be used by the reader's mail user agent
+ to store the attachment.
+
+
+
+
+ Contains the name of the transmitted file if the content-disposition is of type
+ "Attachment" and if the name value was provided as part of the header information.
+ This field may be empty.
+
+
+
+
+ Possible values for the content disposition type which determines the presentation
+ style
+
+
+
+
+ The content disposition could not be determined.
+
+
+
+
+ An inline content disposition means that the content should be automatically
+ displayed when the message is displayed.
+
+
+
+
+ An attachment content disposition means that the content should not be displayed
+ automatically and requires some form of action from the user to open it.
+
+
+
+
+ Possible values for the "Encoding" property of the Bodypart class. The content
+ transfer encoding indicates whether or not a binary-to-text encoding
+ scheme has been used on top of the original encoding as specified within the
+ Content-Type header.
+
+
+
+
+ The content tranfer encoding could not be determined or is unknown.
+
+
+
+
+ Up to 998 bytes per line of the code range 1 - 127 with CR and LF only
+ allowed to appear as part of a CRLF line ending.
+
+
+
+
+ Up to 998 bytes per line with CR and LF only allowed to appear as part
+ of a CRLF line ending.
+
+
+
+
+ Any sequence of bytes.
+
+
+
+
+ Byte sequence is encoded using the quoted-printable encoding.
+
+
+
+
+ Byte sequence is encoded using Base64 encoding.
+
+
+
+
+ Possible values for the "Type" property of the Bodypart class.
+ For a detailed description of MIME Media Types refer to
+ RFC 2046.
+
+
+
+
+ The "text" media type is intended for sending material which
+ is principally textual in form.
+
+
+
+
+ A media type of "image" indicates that the body contains an image.
+ The subtype names the specific image format.
+
+
+
+
+ A media type of "audio" indicates that the body contains audio
+ data.
+
+
+
+
+ A media type of "video" indicates that the body contains a
+ time-varying-picture image, possibly with color and coordinated sound.
+
+
+
+
+ The "application" media type is to be used for discrete data which do
+ not fit in any of the other categories, and particularly for data to
+ be processed by some type of application program.
+
+
+
+
+ The "message" content type allows messages to contain other messages
+ or pointers to other messages.
+
+
+
+
+ The media type value is unknown or could not be determined.
+
+
+
+
+ A helper class for parsing the BODYSTRUCTURE response of an
+ IMAP FETCH command more conveniently.
+
+
+
+
+ Initializes a new instance of the Reader class that reads from the
+ specified string.
+
+ The string to which the Reader instance should be
+ initialized.
+
+
+
+ Reads the next character from the input string and advances the
+ character position by one character.
+
+ The next character from the underlying string.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Returns the next available character but does not consume it.
+
+ Set to true to skip any preceding
+ whitespace characters.
+ An integer representing the next character to be read,
+ or -1 if no more characters are available.
+
+
+
+ Advances the character position until the specified character
+ is encountered.
+
+ The character to skip to.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Advances the character position over any whitespace characters
+ and subsequently ensures the next read will not return a
+ whitespace character.
+
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads characters until the specified character is encountered.
+
+ The character to read up to.
+ The read characters as a string value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a word from the underlying string. A word in this context
+ is a literal enclosed in double-quotes.
+
+ The read word.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads an integer from the underlying string.
+
+ The read integer value.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a list from the underlying string. A list in this context
+ is a list of attribute/value literals (enclosed in double-quotes)
+ enclosed in parenthesis.
+
+ The read list as a dictionary with the attribute names
+ as keys and attribute values as values.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ Reads a disposition from the underlying string. A disposition in
+ this context is a list of attribute/value literals (enclosed in
+ double-quotes) preceded by a word enclosed in parenthesis.
+
+ An initialized ContentDisposition instance representing
+ the parsed disposition.
+ Thrown when reading is
+ attempted past the end of the underlying string.
+
+
+
+ The exception that is thrown when reading is attempted past the end
+ of a string.
+
+
+
+
+ Initializes a new instance of the EndOfStringException class
+
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the EndOfStringException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the EndOfStringException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Defines the different means by which mail messages may be fetched from the server.
+
+
+
+
+ Fetches the entire mail message with all of its content.
+
+
+
+
+ Only the mail message headers will be retrieved, while the actual content will not be
+ downloaded. If this option is specified, only the header fields of the returned MailMessage
+ object will be initialized.
+
+
+
+
+ Retrieves the mail message, but will only download content that has a content-type of text.
+ This will retrieve text as well as HTML representation, while skipping inline content and
+ attachments.
+
+
+
+
+ Retrieves the mail message, but skips any content that is an attachment.
+
+
+
+
+ Provides data for IMAP idle error events.
+
+
+
+
+ Initializes a new instance of the IdleErrorEventArgs class.
+
+ The exception that causes the event.
+ The instance of the ImapClient class that raised the event.
+ The exception parameter or the client parameter
+ is null.
+
+
+
+ The exception that caused the error event.
+
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Provides data for IMAP idle notification events.
+
+
+
+
+ Initializes a new instance of the IdleMessageEventArgs class and sets the
+ MessageCount attribute to the value of the
+ parameter.
+
+ The number of messages in the selected mailbox.
+ The unique identifier (UID) of the newest message in the
+ mailbox.
+ The instance of the ImapClient class that raised the event.
+
+
+
+ The total number of messages in the selected mailbox.
+
+
+
+
+ The unique identifier (UID) of the newest message in the mailbox.
+
+ The UID can be passed to the GetMessage method in order to retrieve the mail
+ message from the server.
+
+
+
+ The instance of the ImapClient class that raised the event.
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ Enables applications to communicate with a mail server using the Internet Message Access
+ Protocol (IMAP).
+
+
+
+
+ This constructor is solely used for unit testing.
+
+ A stream to initialize the ImapClient instance with.
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port
+ on the specified host, optionally using the Secure Socket Layer (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets
+ Layer (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example shows how to establish a connection with an IMAP server
+ and print out the IMAP options, which the server supports.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ // Print out the server's capabilities.
+ foreach(string s in Client.Capabilities())
+ Console.WriteLine(s);
+
+ Client.Dispose();
+
+
+
+
+
+ Initializes a new instance of the ImapClient class and connects to the specified port on
+ the specified host, optionally using the Secure Socket Layer (SSL) security protocol and
+ attempts to authenticate with the server using the specified authentication method and
+ credentials.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer
+ (SSL) certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received from
+ the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ The provided credentials were rejected by the
+ server.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Connects to the specified port on the specified host, optionally using the Secure Socket Layer
+ (SSL) security protocol.
+
+ The DNS name of the server to which you intend to connect.
+ The port number of the server to which you intend to connect.
+ Set to true to use the Secure Socket Layer (SSL) security protocol.
+ Delegate used for verifying the remote Secure Sockets Layer (SSL)
+ certificate which is used for authentication. Can be null if not needed.
+ The port parameter is not between MinPort
+ and MaxPort.
+ The hostname parameter is null.
+ An unexpected response has been received
+ from the server upon connecting.
+ There was a failure writing to or reading from the
+ network.
+ An error occurred while accessing the socket used for
+ establishing the connection to the IMAP server. Use the ErrorCode property to obtain the
+ specific error code.
+ An authentication
+ error occured while trying to establish a secure connection.
+
+
+
+ Determines whether the specified response is a valid IMAP OK response.
+
+ A response string received from the server.
+ A tag if the response is associated with a command.
+ true if the response is a valid IMAP OK response; Otherwise false.
+
+
+
+ Attempts to establish an authenticated session with the server using the specified
+ credentials.
+
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The requested method of authentication. Can be one of the values
+ of the AuthMethod enumeration.
+ The username parameter or the password parameter
+ is null.
+ There was a failure writing to or reading from the
+ network.
+ The server rejected the supplied
+ credentials.
+ The specified authentication method is not
+ supported by the server.
+
+ This example demonstrates how to authenticate with an IMAP server once a connection
+ has been established. Notice that you can also connect and login in one step
+ using one of the overloaded constructors.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, true);
+
+ try {
+ Client.Login("My_Username", "My_Password", AuthMethod.Auto);
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials.");
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Performs authentication using the most secure authentication mechanism supported by the
+ server.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+ The order of preference of authentication types employed by this method is
+ Ntlm, Scram-Sha-1, Digest-Md5, followed by Cram-Md5 and finally plaintext Login as
+ a last resort.
+
+
+
+ Performs an actual IMAP "LOGIN" command using the specified username and plain-text
+ password.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The response sent by the server.
+
+
+
+ Performs NTLM and Kerberos authentication via the Security Support Provider Interface (SSPI).
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ True to authenticate using NTLM, otherwise GSSAPI (Kerberos) is
+ used.
+ The response sent by the server.
+ The specified authentication method is not
+ supported by the server.
+
+
+
+ Performs authentication using a SASL authentication mechanism via IMAP's authenticate
+ command.
+
+ The tag identifier to use for performing the authentication
+ commands.
+ The username with which to login in to the IMAP server.
+ The password with which to log in to the IMAP server.
+ The name of the SASL authentication mechanism to use.
+ The response sent by the server.
+ The authentication mechanism with the specified name could
+ not be found.
+ The specified authentication mechanism is not
+ supported by the server.
+ An unexpected response has been received from
+ the server.
+
+
+
+ Logs an authenticated client out of the server. After the logout sequence has been completed,
+ the server closes the connection with the client.
+
+ An unexpected response has been received from
+ the server during the logout sequence.
+ Calling this method in non-authenticated state has no effect.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+
+
+
+ Generates a unique identifier to prefix a command with, as is required by the IMAP protocol.
+
+ A unique identifier string.
+
+
+
+ Sends a command string to the server. This method blocks until the command has been
+ transmitted.
+
+ The command to send to the server. The string is suffixed by CRLF
+ prior to sending.
+
+
+
+ Sends a command string to the server and subsequently waits for a response, which is then
+ returned to the caller. This method blocks until the server response has been received.
+
+ The command to send to the server. This is suffixed by CRLF prior
+ to sending.
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ The response received by the server.
+
+
+
+ Waits for a response from the server. This method blocks until a response has been received.
+
+ Set to true to resolve possible literals returned by the
+ server (Refer to RFC 3501 Section 4.3 for details).
+ A response string from the server
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Reads the specified amount of bytes from the server. This method blocks until the specified
+ amount of bytes has been read from the network stream.
+
+ The number of bytes to read.
+ The read bytes as an ASCII-encoded string.
+ The underlying socket is closed or there was a failure
+ reading from the network.
+
+
+
+ Returns an enumerable collection of capabilities the IMAP server supports. All strings in
+ the returned collection are guaranteed to be upper-case.
+
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ An enumerable collection of capabilities supported by the server.
+ This method may be called in non-authenticated state.
+
+
+
+ Determines whether the specified capability is supported by the server.
+
+ The IMAP capability to probe for (for example "IDLE").
+ The capability parameter is null.
+ An unexpected response has been received from
+ the server; The message property of the exception contains the error message returned by
+ the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ true if the specified capability is supported by the server; Otherwise
+ false.
+ This method may be called in non-authenticated state.
+
+ This example demonstrates how to connect and login to an IMAP server.
+
+ // Connect to Gmail's IMAP server on port 993 using SSL.
+ ImapClient Client = null;
+ try {
+ Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Auto);
+
+ // Check if the server supports IMAP IDLE.
+ if(Client.Supports("IDLE"))
+ Console.WriteLine("This server supports the IMAP4 IDLE specification");
+ else
+ Console.WriteLine("This server does not support IMAP IDLE");
+ }
+ catch(InvalidCredentialsException) {
+ Console.WriteLine("The server rejected the supplied credentials");
+ }
+ finally {
+ // Release resources.
+ if(Client != null)
+ Client.Dispose();
+ }
+
+
+
+
+
+ Changes the name of the specified mailbox.
+
+ The mailbox to rename.
+ The new name the mailbox will be renamed to.
+ The mailbox parameter or the
+ newName parameter is null.
+ The mailbox could not be renamed; The message
+ property of the exception contains the error message returned by the server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Permanently removes the specified mailbox.
+
+ The name of the mailbox to remove.
+ The mailbox parameter is null.
+ The specified mailbox could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Creates a new mailbox with the specified name.
+
+ The name of the mailbox to create.
+ The mailbox parameter is null.
+ The mailbox with the specified name could
+ not be created. The message property of the exception contains the error message returned
+ by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Selects the specified mailbox so that the messages of the mailbox can be accessed.
+
+ The mailbox to select. If this parameter is null, the
+ default mailbox is selected.
+ The specified mailbox could not be selected.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ IMAP Idle must be paused or stopped before calling this method.
+
+
+
+ Retrieves a list of all available and selectable mailboxes on the server.
+
+ An enumerable collection of the names of all available and selectable
+ mailboxes.
+ The list of mailboxes could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox
+ for this user on this server".
+
+
+
+ Permanently removes all messages that have the \Deleted flag set from the specified mailbox.
+
+ The mailbox to remove all messages from that have the \Deleted flag
+ set. If this parameter is omitted, the value of the DefaultMailbox property is used to
+ determine the mailbox to operate on.
+ The expunge operation could not be completed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves status information (total number of messages, various attributes as well as quota
+ information) for the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxInfo object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve this information, the UsedStorage and FreeStorage properties of the
+ returned MailboxStatus instance are set to 0.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of all mailboxes.
+ foreach(string m in Client.ListMailboxes())
+ {
+ MailboxInfo info = Client.GetMailboxInfo(m);
+
+ Console.WriteLine(info.Name);
+ Console.WriteLine("Used storage: " + info.UsedStorage);
+ Console.WriteLine("Free storage: " + info.FreeStorage);
+ Console.WriteLine("Next UID: " + info.NextUID);
+ Console.WriteLine("Messages: " + info.Messages);
+ Console.WriteLine("Unread: " + info.Unread);
+ Console.WriteLine("Set Flags: ");
+ foreach (MailboxFlag f in info.Flags)
+ Console.Write(f.ToString() + ",");
+ Console.WriteLine();
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of special-use flags associated with the specified mailbox.
+
+ The mailbox to receive the special-use flags for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ An enumerable collection of special-use flags set on the specified
+ mailbox.
+ This feature is an optional extension to the IMAP protocol and as such some servers
+ may not report any flags at all.
+
+
+
+ Retrieves status information (total number of messages, number of unread messages, etc.) for
+ the specified mailbox.
+ The mailbox to retrieve status information for. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A MailboxStatus object containing status information for the mailbox.
+ The operation could not be completed because
+ the server returned an error. The message property of the exception contains the error
+ message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Searches the specified mailbox for messages that match the given search criteria.
+
+ A search criteria expression; Only messages that match this
+ expression will be included in the result set returned by this method.
+ The mailbox that will be searched. If this parameter is omitted, the
+ value of the DefaultMailbox property is used to determine the mailbox to operate on.
+ The criteria parameter is null.
+ The search could not be completed. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The search values contain characters beyond the
+ ASCII range and the server does not support handling non-ASCII strings.
+ An enumerable collection of unique identifiers (UIDs) which can be used with the
+ GetMessage family of methods to download the mail messages.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the search method to get a list of all
+ unread messages in the mailbox.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() );
+
+ // Fetch the messages and print out their subject lines.
+ foreach(uint uid in uids) {
+ MailMessage message = Client.GetMessage(uid);
+
+ Console.WriteLine(message.Subject);
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ This example demonstrates how to perform a search using multiple search criteria.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012
+ // and that are larger than 1 Kilobyte.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1))
+ .And( SearchCondition.Larger(1024) ));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+ The following example demonstrates how to perform a search using characters outside
+ the ASCII range.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
+ "My_Password", true, AuthMethod.Login);
+
+ // Get a list of unique identifiers (UIDs) of all messages that have
+ // the Japanese expression "フーリエ変換" in their subject lines.
+ try {
+ IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換"));
+
+ Console.WriteLine("Found " + uids.Count() + " messages");
+ } catch(NotSupportedException e) {
+ // If this exception is thrown, the server does not support searching for characters
+ // outside the ASCII range.
+ Console.WriteLine("The server does not support searching for non-ASCII values.");
+ }
+
+ // Free up any resources associated with this instance.
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID).
+
+ The unique identifier of the mail message to retrieve.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that were sent from "John.Doe@gmail.com".
+ IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") );
+
+ // Fetch the first message and print it's subject and body.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First());
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ Console.WriteLine("Body: " + msg.Body);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) using the specified
+ fetch-option.
+
+ The unique identifier of the mail message to retrieve.
+ A value from the FetchOptions enumeration which allows
+ for fetching selective parts of a mail message.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+ If you need more fine-grained control over which parts of a mail message to fetch,
+ consider using one of the overloaded GetMessage methods.
+
+
+
+ This example demonstrates how to fetch only the mail message headers of
+ a mail message, instead of the entire message.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the mailbox that have "Hello" in the subject.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") );
+
+ // Fetch the mail headers of the first message and print it's subject line.
+ if(uids.Count() > 0) {
+ MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly);
+
+ Console.WriteLine("Subject: " + msg.Subject);
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the mail message with the specified unique identifier (UID) while only fetching
+ those parts of the message that satisfy the condition of the specified delegate.
+
+ The unique identifier of the mail message to retrieve.
+ A delegate which will be invoked for every MIME body-part of the
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for this message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An initialized instance of the MailMessage class representing the fetched mail
+ message.
+ The callback parameter is null.
+ The mail message could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+ This example demonstrates how to use the ExaminePartDelegate with the GetMessage
+ method to only download message parts with a size of 1 Megabyte or less.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages in the inbox.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.All() );
+
+ // Download each message but skip message parts that are larger than 1 Megabyte.
+ foreach(uint uid in uids) {
+ MailMessage msg = Client.GetMessage(uid, (Bodypart part) => {
+ if(part.Size > (1024 * 1024))
+ return false;
+ else
+ return true;
+ }
+ );
+ }
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs).
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Fetch the messages and print out their subject lines.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only
+ fetching those parts of the messages that satisfy the condition of the specified delegate.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A delegate which will be invoked for every MIME body-part of each
+ mail message to determine whether the part should be fetched from the server or
+ skipped.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter or the callback parameter is
+ null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the
+ specified fetch-option.
+
+ An enumerable collection of unique identifiers of the mail messages to
+ retrieve.
+ A value from the FetchOptions enumeration which allows for fetching
+ selective parts of a mail message.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of initialized instances of the MailMessage class
+ representing the fetched mail messages.
+ The uids parameter is null.
+ The mail messages could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Find all messages that have been sent since June the 1st.
+ IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) );
+
+ // Retrieve the messages and print out their subject lines. If any of the messages are multipart
+ // messages, only those parts, that have a content-type of text will be fetched.
+ IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly );
+
+ foreach(MailMessage m in messages)
+ Console.WriteLine("Subject: " + m.Subject);
+
+ Client.Dispose();
+
+
+
+
+
+ Stores the specified mail message on the IMAP server.
+
+ The mail message to store on the server.
+ Set this to true to set the \Seen flag for the message on the
+ server.
+ The mailbox the message will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the message in.
+ The unique identifier (UID) of the stored message.
+ The message parameter is null.
+ The mail message could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+ This example demonstrates how to store a mail message on an IMAP server.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ MailMessage message = CreateSimpleMailMessage();
+ uint uid = Client.StoreMessage(message);
+
+ Console.WriteLine("The UID of the stored mail message is " + uid);
+
+ Client.Dispose();
+
+ // ...........
+
+ // This creates a simple mail message with a text/plain body and a PNG image
+ // as a file attachment.
+ // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class.
+ static MailMessage CreateSimpleMailMessage() {
+ MailMessage message = new MailMessage();
+
+ message.From = new MailAddress("someone@someplace.com");
+ message.To.Add("john.doe@someplace.com");
+
+ message.Subject = "This is just a test!";
+ message.Body = "This is the text/plain body. An additional HTML body " +
+ "can optionally be attached as an alternate view";
+
+ // Add the attachment.
+ Attachment attachment = new Attachment("some_image.png", "image/png");
+ attachment.Name = "my_attached_image.png";
+ message.Attachments.Add(attachment);
+
+ return message;
+ }
+
+
+
+
+
+ Stores the specified mail messages on the IMAP server.
+
+ An enumerable collection of mail messages to store on the
+ server.
+ Set this to true to set the \Seen flag for each message on the
+ server.
+ The mailbox the messages will be stored in. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to store
+ the messages in.
+ An enumerable collection of unique identifiers (UID) representing the stored
+ messages on the server.
+ The messages parameter is null.
+ The mail messages could not be stored. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A unique identifier (UID) is a 32-bit value assigned to each message which uniquely
+ identifies the message within the respective mailbox. No two messages in a mailbox share
+ the same UID.
+
+
+
+
+ Retrieves the mail header for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the mail header for.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw mail header of the mail message with the specified
+ UID.
+ The mail header could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the body structure for the mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve the body structure for.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw body structure of the mail message with the specified
+ UID.
+ The body structure could not be fetched. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ A body structure is a textual description of the layout of a mail message. It is
+ described in some detail in RFC 3501 under 7.4.2 FETCH response.
+
+
+
+ Retrieves the MIME body-part with the specified part number of the multipart message with
+ the specified unique identifier (UID).
+
+ The UID of the mail message to retrieve a MIME body part for.
+ The part number of the body part to fetch.
+ Set this to true to set the \Seen flag for the fetched messages on the
+ server.
+ The mailbox the messages will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the specified body part of the mail message with the specified
+ UID.
+ The body part could not be fetched. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the raw MIME/RFC822 mail message data for the mail message with the specified UID.
+
+ The UID of the mail message to retrieve as a MIME/RFC822 string.
+ Set this to true to set the \Seen flag for the fetched message on the
+ server.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ A string containing the raw MIME/RFC822 data of the mail message with the
+ specified UID.
+ The mail message data could not be fetched.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Retrieves the highest UID in the specified mailbox.
+
+ The mailbox to find the highest UID for. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ The highest unique identifier value (UID) in the mailbox.
+ The UID could not be determined. The message
+ property of the exception contains the error message returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ The highest UID usually corresponds to the newest message in a mailbox.
+
+
+
+ Copies the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to copy.
+ The name of the mailbox to copy the message to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Copies the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to copy.
+ The name of the mailbox to copy the messages to.
+ The mailbox the message will be copied from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When copying many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be copied to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Moves the mail message with the specified UID to the specified destination mailbox.
+
+ The UID of the mail message to move.
+ The name of the mailbox to move the message into.
+ The mailbox the message will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The destination parameter is null.
+ The mail message could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Moves the mail messages with the specified UIDs to the specified destination mailbox.
+
+ An enumerable collection of UIDs of the mail messages to move.
+ The name of the mailbox to move the messages into.
+ The mailbox the messages will be moved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When moving many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter or the destination parameter is
+ null.
+ The mail messages could not be moved to the
+ specified destination. The message property of the exception contains the error message
+ returned by the server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+ Deletes the mail message with the specified UID.
+
+ The UID of the mail message to delete.
+ The mailbox the message will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ The mail message could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Deletes the mail messages with the specified UIDs.
+
+ An enumerable collection of UIDs of the mail messages to delete.
+ The mailbox the messages will be deleted from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ When deleting many messages, this method is more efficient than calling
+ for each individual message.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ The mail messages could not be deleted. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ Retrieves the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to retrieve the flag attributes for.
+ The mailbox the message will be retrieved from. If this parameter is
+ omitted, the value of the DefaultMailbox property is used to determine the mailbox to
+ operate on.
+ An enumerable collection of message flags set for the message with the specified
+ UID.
+ The mail message flags could not be retrieved.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+
+
+ Sets the IMAP message flag attributes for the mail message with the specified unique
+ identifier (UID).
+
+ The UID of the mail message to set the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be set. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method replaces the current flag attributes of the message with the specified
+ new flags. If you wish to retain the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Adds the specified set of IMAP message flags to the existing flag attributes of the mail
+ message with the specified unique identifier (UID).
+
+ The UID of the mail message to add the flag attributes to.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be added. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method adds the specified set of flags to the existing set of flag attributes
+ of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Removes the specified set of IMAP message flags from the existing flag attributes of the
+ mail message with the specified unique identifier (UID).
+
+ The UID of the mail message to remove the flag attributes for.
+ The mailbox that contains the mail message. If this parameter is null,
+ the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ One or multiple message flags from the MessageFlag enumeration.
+ The mail message flags could not be removed.
+ The message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ This method removes the specified set of flags from the existing set of flag
+ attributes of the message. If you wish to replace the old attributes, use the
+ method instead.
+
+
+
+
+
+
+ Starts receiving of IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when already receiving idle notifications has no
+ effect.
+
+
+
+
+
+
+ Stops receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ Calling this method when not receiving idle notifications has no effect.
+
+
+
+
+
+ Temporarily pauses receiving IMAP IDLE notifications from the IMAP server.
+
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+ To resume receiving IDLE notifications ResumeIdling must be called.
+
+
+
+
+
+
+ Resumes receiving IMAP IDLE notifications from the IMAP server.
+
+ An unexpected program condition occured.
+ The IDLE operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The server does not support the IMAP4 IDLE
+ command.
+ There was a failure writing to or reading from the
+ network.
+ The ImapClient object has been disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+
+ The main idle loop. Waits for incoming IMAP IDLE notifications and dispatches
+ them as events. This runs in its own thread whenever IMAP IDLE
+ notifications are being received.
+
+
+
+
+ Blocks on a queue and wakes up whenever a new notification is put into the queue. The
+ notification is then examined and dispatched as an event.
+
+
+
+
+ Issues a NOOP command to the IMAP server. Called in the context of a System.Timer event
+ when IDLE notifications are being received.
+
+ This is needed by the IMAP IDLE mechanism to give the server an indication that the
+ connection is still active.
+
+
+
+
+ Retrieves IMAP QUOTA information for the specified mailbox.
+
+ The mailbox to retrieve QUOTA information for. If this parameter is
+ null, the value of the DefaultMailbox property is used to determine the mailbox to operate
+ on.
+ An enumerable collection of MailboxQuota objects describing usage and limits of the
+ quota roots for the mailbox.
+ The quota operation could not be completed. The
+ message property of the exception contains the error message returned by the
+ server.
+ The ImapClient object has been disposed.
+ There was a failure writing to or reading from the
+ network.
+ The IMAP4 QUOTA extension is not supported by
+ the server.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ Releases all resources used by the current instance of the ImapClient class.
+
+
+
+
+ Releases all resources used by the current instance of the ImapClient class, optionally
+ disposing of managed resource.
+
+ true to dispose of managed resources, otherwise false.
+
+
+
+ Asserts the instance has not been disposed of and is in a valid state.
+
+ The ImapClient object has been
+ disposed.
+ The method was called in non-authenticated
+ state, i.e. before logging in.
+
+
+
+ The default mailbox to operate on.
+
+ The property is being set and the value is
+ null.
+ The property is being set and the value is the empty
+ string.
+ The default value for this property is "INBOX" which is a special name reserved
+ to mean "the primary mailbox for this user on this server".
+
+
+
+ Determines whether the client is authenticated with the server.
+
+
+
+
+ The event that is raised when a new mail message has been received by the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a new message is received
+ // by the server.
+ Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
+
+ // .........
+
+ Client.Dispose();
+
+ // ........
+
+ void OnNewMessage(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("Received a new message!");
+ Console.WriteLine("Total number of messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when a message has been deleted on the server.
+
+ To probe a server for IMAP IDLE support, the
+ method can be used, specifying "IDLE" for the capability parameter.
+
+ Please note that the event handler will be executed on a threadpool thread.
+
+
+ This example demonstrates how to receive IMAP IDLE notifications.
+
+ ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe",
+ "My_Password", true, AuthMethod.Login);
+
+ // Make sure our server actually supports IMAP IDLE.
+ if(!Client.Supports("IDLE"))
+ throw new Exception("This server does not support IMAP IDLE");
+
+ // Our event handler will be called whenever a message is deleted on the server.
+ Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted);
+
+ // .........
+
+ // Don't forget to dispose the client once you're done with it.
+ Client.Dispose();
+
+ // ........
+
+ void OnMessageDeleted(object sender, IdleMessageEventArgs e) {
+ Console.WriteLine("A mail message was deleted on the server!");
+ Console.WriteLine("Total number of mail messages in the mailbox: " +
+ e.MessageCount);
+ }
+
+
+
+
+
+ The event that is raised when an I/O exception occurs in the idle-thread.
+
+
+ An I/O exception can occur if the underlying network connection has been reset or the
+ server unexpectedly closed the connection.
+
+
+
+
+ A delegate which is invoked during a call to GetMessage or GetMessages for every MIME part in
+ a multipart mail message. The delegate can examine the MIME body part and decide to either
+ include it in the returned mail message or dismiss it.
+
+ A MIME body part of a mail message which consists of multiple parts.
+ true to include the body part in the returned MailMessage object, or false to skip
+ it.
+
+
+
+ The exception that is thrown when an unexpected response is received from the server.
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class
+
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the BadServerResponseException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when the supplied credentials were rejected by the server.
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class
+
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the InvalidCredentialsException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ The exception that is thrown when a client has not authenticated with the server and
+ attempts to call a method which can only be called when authenticated.
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class
+
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the NotAuthenticatedException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ Provides access to status information such as the total number of messages and quota
+ information for a mailbox.
+
+
+ The terms "mailbox" and "folder" can be used interchangeably and refer to the IMAP concept of
+ multiple server-side directories into which messages can be stored (such as "Inbox",
+ "Sent Items", "Trash", etc.).
+
+
+
+
+ Initializes a new instance of the MailboxInfo class with the specified values.
+
+ The IMAP name of the mailbox.
+ The IMAP flags set on this mailbox.
+ The number of messages in the mailbox.
+ The number of unread messages in the mailbox.
+ The next unique identifier (UID) of the mailbox.
+ The amount of used storage of the mailbox, in bytes.
+ The amount of free storage of the mailbox, in bytes.
+
+
+
+ Returns the name of the mailbox.
+
+ The name of the mailbox
+
+
+
+ The name of the mailbox.
+
+
+
+
+ An enumerable collection of flags set on the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The amount of used storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of used storage, this property will be 0.
+
+
+
+
+ The amount of free storage in the mailbox, measured in bytes.
+
+ Not all IMAP servers support the retrieval of quota information. If it is not
+ possible to retrieve the amount of free storage, this property will be 0.
+
+
+
+
+ Defines possible attributes for mailboxes.
+
+
+
+ An IMAP mailbox can have a number of flags (read: attributes) set on it, indicating its
+ designated purpose (such as "Spam" or "Drafts").
+
+
+ This is especially convenient when dealing with international mailbox names, because, by
+ examining the associated flags, the mailbox purpose can be determined, even if the mailbox
+ name provides no useful indication.
+
+
+ Unfortunately, as with many things IMAP, reporting the flags described here is an optional
+ extension (XLIST) to the IMAP protocol and as such may or may not be supported by an IMAP
+ server.
+
+
+
+
+
+ The mailbox presents a view on all messages in the user's message store.
+
+
+
+
+ The mailbox is used to archive messages. The meaning of an "archival" mailbox is server
+ dependent.
+
+
+
+
+ The mailbox is used to hold draft messages, typically these are messages that are being
+ composed but have not yet been sent.
+
+
+
+
+ The mailbox is used to hold copies of messages that have been sent.
+
+
+
+
+ The mailbox is where messages deemed to be junk mail (spam) are held.
+
+
+
+
+ The mailbox is used to hold messages that have been deleted or marked for deletion.
+
+
+
+
+ Represents an IMAP QUOTA entry for a resource which typically consists of a resource name,
+ the current usage of the resource, and the resource limit.
+
+
+
+
+ Initializes a new instance of the MailboxQuota class with the specified values.
+
+ The name of the resource this MailboxQuota instance describes.
+ The current usage of the resource in units of 1024 bytes.
+ The limit of the resource in units of 1024 bytes.
+
+
+
+ The name of the resource this MailboxQuota instance describes.
+
+
+
+
+ The current usage of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ The limit of the resource this MailboxQuota instance describes, in bytes.
+
+
+
+
+ Represents the status information of a mailbox which can be constructed from the server
+ response to a STATUS command.
+
+
+
+
+ Initializes a new MailboxStatus instance with the specified number of total and unread
+ messages.
+
+ The total number of messages in the mailbox.
+ The number of unread (unseen) messages in the mailbox.
+ The next unique identifier value of the mailbox
+
+
+
+ The next unique identifier value of the mailbox.
+
+
+
+
+ The total number of messages in the mailbox.
+
+
+
+
+ The number of unread (unseen) messages in the mailbox.
+
+
+
+
+ Adds extension methods to the MailMessage class of the .NET Framework.
+
+
+ Most of the methods are only used internally and are not visible outside of the
+ S22.Imap assembly.
+
+
+
+
+ Returns the date and time the mail message was composed.
+
+ The MailMessage instance to return the date and time for.
+ The date and time the mail message was composed, or null if the mail message
+ does not contain any date information.
+
+
+
+ Constructs a textual representation of a mail message from the specified MailMessage
+ instance compliant with the RFC822 and MIME standards.
+
+ The MailMessage instance to construct the textual representation
+ from.
+ An RFC822/MIME-compliant string representing the specified mail message.
+ The From property is null or has not been
+ properly initialized.
+
+
+
+ Builds a RFC822/MIME-compliant mail header from the specified MailMessage instance and
+ returns it as a NameValueCollection.
+
+ The MailMessage instance to build the header from.
+ A NameValueCollection representing the RFC822/MIME mail header fields.
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ priority values as defined in RFC2156.
+
+
+
+
+ A map for mapping the values of the MailPriority enumeration to their corresponding MIME
+ importance values as defined in RFC2156.
+
+
+
+
+ Takes a unicode string and encodes it using Q-encoding.
+
+ The string to encode.
+ The input string encoded as Q-encoded string containing only ASCII
+ characters.
+
+
+
+ Takes a unicode string and encodes it using Base64-encoding.
+
+ The string to encode.
+ The input string encoded as Base64-encoded string containing only ASCII
+ characters.
+
+
+
+ Creates an address string from the specified MailAddress instance in compliance with the
+ address specification as outlined in RFC2822 under section 3.4
+
+ The MailAddress instance to create the address string from.
+ An address string as is used in RFC822 mail headers.
+
+
+
+ Generates a unique sequence of characters for indicating a boundary between parts in a
+ multipart message.
+
+ A unique content boundary string.
+
+
+
+ Builds an RFC822/MIME-compliant mail body from the specified MailMessage instance and
+ returns it as a formatted string.
+
+ The MailMessage instance to build the mail body from.
+ The RFC822/MIME mail header to use for constructing the mail
+ body.
+ An RFC822/MIME-compliant mail body as a string.
+ According to RFC2822 each line of a mail message should at max be 78 characters in
+ length excluding carriage return and newline characters. This method accounts for that and
+ ensures line breaks are inserted to meet this requirement.
+
+
+
+ Adds a body part to the specified Stringbuilder object composed from the Body and
+ BodyEncoding properties of the MailMessage class.
+
+ The Stringbuilder to append the body part to.
+ The MailMessage instance to build the body part from.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ Set to true to append body headers before adding the actual body
+ part content.
+
+
+
+ Creates a MIME body part from an entry of the AlternateView or Attachments collection of a
+ MailMessage instance and appends it to the specified Stringbuilder instance.
+
+ The Stringbuilder instance to append the body part to.
+ An entry from either the AlternateView or the Attachments collection of
+ a MailMessage instance.
+
+
+
+ Creates a nested multipart/alternative part which contains all entries from the
+ AlternateViews collection of the specified MailMessage instance as well as the body part
+ for the Body and BodyEncoding properties of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose AlternateView collection will be added to the
+ nested multipart/alternative part.
+ The RFC822/MIME mail header to use for constructing the mail body.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ Creates a nested multipart/mixed part which contains all entries from the Attachments
+ collection of the specified MailMessage instance.
+
+ The StringBuilder instance to append to.
+ The MailMessage instance whose Attachments collection will be added to the
+ nested multipart/mixed part.
+ This is used if the MailMessage instance contains both alternative views and
+ attachments. In this case the created RFC822/MIME mail message will contain nested body
+ parts.
+
+
+
+ A helper class for reading mail message data and building a MailMessage instance out of it.
+
+
+
+
+ Creates a new empty instance of the MailMessage class from a string containing a raw mail
+ message header.
+
+ The mail header to create the MailMessage instance from.
+ A MailMessage instance with initialized Header fields but without any
+ content.
+
+
+
+ Creates a new instance of the MailMessage class from a string containing raw RFC822/MIME
+ mail message data.
+
+ The mail message data to create the MailMessage instance from.
+ An initialized instance of the MailMessage class.
+ This is used when fetching entire messages instead of the partial-fetch mechanism
+ because it saves redundant round-trips to the server.
+
+
+
+ Parses the mail header of a mail message and returns it as a NameValueCollection.
+
+ The mail header to parse.
+ A NameValueCollection containing the header fields as keys with their respective
+ values as values.
+
+
+
+ Strips RFC822/MIME comments from the specified string.
+
+ The string to strip comments from.
+ A new string stripped of any comments.
+
+
+
+ Parses a MIME header field which can contain multiple 'parameter = value'
+ pairs (such as Content-Type: text/html; charset=iso-8859-1).
+
+ The header field to parse.
+ A NameValueCollection containing the parameter names as keys with the respective
+ parameter values as values.
+ The value of the actual field disregarding the 'parameter = value' pairs is stored
+ in the collection under the key "value" (in the above example of Content-Type, this would
+ be "text/html").
+
+
+
+ Parses a mail header address-list field such as To, Cc and Bcc which can contain multiple
+ email addresses.
+
+ The address-list field to parse
+ An array of MailAddress objects representing the parsed mail addresses.
+
+
+
+ Splits the specified address-list into individual parts consisting of a mail address and
+ optionally a display-name.
+
+ The address-list to split into parts.
+ An enumerable collection of parts.
+
+
+
+ Parses a mail message identifier from a string.
+
+ The field to parse the message id from
+ The field argument does not contain a valid message
+ identifier.
+ The parsed message id.
+ A message identifier (msg-id) is a globally unique identifier for a
+ message.
+
+
+
+ Parses the priority of a mail message which can be specified as part of the header
+ information.
+
+ The mail header priority value. The value can be null in which case
+ a "normal priority" is returned.
+ A value from the MailPriority enumeration corresponding to the specified mail
+ priority. If the passed priority value is null or invalid, a normal priority is assumed and
+ MailPriority.Normal is returned.
+
+
+
+ Sets the address fields (From, To, CC, etc.) of a MailMessage object using the specified
+ mail message header information.
+
+ The MailMessage instance to operate on.
+ A collection of mail and MIME headers.
+
+
+
+ Adds a body part to an existing MailMessage instance.
+
+ Extension method for the MailMessage class.
+ The body part to add to the MailMessage instance.
+ The content of the body part.
+
+
+
+ Creates an instance of the Attachment class used by the MailMessage class to store mail
+ message attachments.
+
+ The MIME body part to create the attachment from.
+ An array of bytes composing the content of the attachment.
+ An initialized instance of the Attachment class.
+
+
+
+ Creates an instance of the AlternateView class used by the MailMessage class to store
+ alternate views of the mail message's content.
+
+ The MIME body part to create the alternate view from.
+ An array of bytes composing the content of the alternate view.
+ An initialized instance of the AlternateView class.
+
+
+
+ Parses the body part of a MIME/RFC822 mail message.
+
+ The body of the mail message.
+ The header of the mail message whose body will be parsed.
+ An array of initialized MIMEPart instances representing the body parts of the mail
+ message.
+
+
+
+ Parses the body of a multipart MIME mail message.
+
+ An instance of the StringReader class initialized with a string
+ containing the body of the mail message.
+ The boundary value as is present as part of the Content-Type header
+ field in multipart mail messages.
+ An array of initialized MIMEPart instances representing the various parts of the
+ MIME mail message.
+
+
+
+ Glue method to create a bodypart from a MIMEPart instance.
+
+ The MIMEPart instance to create the bodypart instance from.
+ An initialized instance of the Bodypart class.
+
+
+
+ Defines possible attributes for mail messages on an IMAP server.
+
+
+
+
+ Indicates that the message has been read.
+
+
+
+
+ Indicates that the message has been answered.
+
+
+
+
+ Indicates that the message is "flagged" for urgent/special attention.
+
+
+
+
+ Indicates that the message has been marked as "deleted" and will be removed upon the next
+ call to the Expunge method.
+
+
+
+
+ Indicates that the message has not completed composition and is marked as a draft.
+
+
+
+
+ Indicates that the message has recently arrived in the mailbox.
+
+
+
+
+ Represents a part of a MIME multi-part message. Each part consists of its own content header
+ and a content body.
+
+
+
+
+ A collection containing the content header information as key-value pairs.
+
+
+
+
+ A string containing the content body of the part.
+
+
+
+
+ A thread-safe Queue.
+
+
+
+
+ Adds an object to the end of the queue.
+
+ The object to add to the queue.
+
+
+
+ Removes and returns the object at the beginning of the queue. If the queue is empty, the
+ method blocks the calling thread until an object is put into the queue by another thread.
+
+ The object that was removed from the beginning of the queue.
+
+
+
+ Adds extension methods to the BinaryReader class to simplify the
+ deserialization of NTLM messages.
+
+
+
+
+ Reads an ASCII-string of the specified length from this instance.
+
+ Extension method for the BinaryReader class.
+ The number of bytes to read from the underlying
+ stream.
+ A string decoded from the bytes read from the underlying
+ stream using the ASCII character set.
+
+
+
+ The NTLM flags which are contained in a bitfield within the header of
+ an NTLM message.
+
+
+
+
+ Indicates that Unicode strings are supported for use in security
+ buffer data.
+
+
+
+
+ Indicates that OEM strings are supported for use in security
+ buffer data.
+
+
+
+
+ Requests that the server's authentication realm be included in
+ the Type 2 message.
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should carry a digital signature (message integrity).
+
+
+
+
+ Specifies that authenticated communication between the client and
+ server should be encrypted (message confidentiality).
+
+
+
+
+ Indicates that datagram authentication is being used.
+
+
+
+
+ Indicates that the Lan Manager Session Key should be used for signing
+ and sealing authenticated communications.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Indicates that NTLM authentication is being used.
+
+
+
+
+ Sent by the client in the Type 3 message to indicate that an anonymous
+ context has been established. This also affects the response fields.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the name of
+ the domain in which the client workstation has membership is included
+ in the message. This is used by the server to determine whether the
+ client is eligible for local authentication.
+
+
+
+
+ Sent by the client in the Type 1 message to indicate that the client
+ workstation's name is included in the message. This is used by the
+ server to determine whether the client is eligible for local
+ authentication.
+
+
+
+
+ Sent by the server to indicate that the server and client are on the
+ same machine. Implies that the client may use the established local
+ credentials for authentication instead of calculating a response to
+ the challenge.
+
+
+
+
+ Indicates that authenticated communication between the client and
+ server should be signed with a "dummy" signature.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a domain.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a server.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that the target
+ authentication realm is a share. Presumably, this is for share-level
+ authentication. Usage is unclear.
+
+
+
+
+ Indicates that the NTLM2 signing and sealing scheme should be used for
+ protecting authenticated communications. Note that this refers to a
+ particular session security scheme, and is not related to the use of
+ NTLMv2 authentication. This flag can, however, have an effect on the
+ response calculations.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ This flag's usage has not been identified.
+
+
+
+
+ Sent by the server in the Type 2 message to indicate that it is including
+ a Target Information block in the message. The Target Information block
+ is used in the calculation of the NTLMv2 response.
+
+
+
+
+ Indicates that 128-bit encryption is supported.
+
+
+
+
+ Indicates that the client will provide an encrypted master key in the
+ "Session Key" field of the Type 3 message.
+
+
+
+
+ Indicates that 56-bit encryption is supported.
+
+
+
+
+ Represents the data contained in the target information block of an
+ NTLM type 2 message.
+
+
+
+
+ The server name.
+
+
+
+
+ The domain name.
+
+
+
+
+ The fully-qualified DNS host name.
+
+
+
+
+ The fully-qualified DNS domain name.
+
+
+
+
+ Describes the different versions of the Type 2 message that have
+ been observed.
+
+
+
+
+ The version is unknown.
+
+
+
+
+ This form is seen in older Win9x-based systems.
+
+
+
+
+ This form is seen in most out-of-box shipping versions of Windows.
+
+
+
+
+ This form was introduced in a relatively recent Service Pack, and
+ is seen on currently-patched versions of Windows 2000, Windows XP,
+ and Windows 2003.
+
+
+
+
+ Indicates the type of data in Type 2 target information blocks.
+
+
+
+
+ Signals the end of the target information block.
+
+
+
+
+ The data in the information block contains the server name.
+
+
+
+
+ The data in the information block contains the domain name.
+
+
+
+
+ The data in the information block contains the DNS hostname.
+
+
+
+
+ The data in the information block contans the DNS domain name.
+
+
+
+
+ Computes the MD4 hash value for the input data.
+ Courtesy of Keith Wood.
+
+
+
+
+ Describes the different types of NTLM messages.
+
+
+
+
+ An NTLM type 1 message is the initial client response to the
+ server.
+
+
+
+
+ An NTLM type 2 message is the challenge sent by the server in
+ response to an NTLM type 1 message.
+
+
+
+
+ An NTLM type 3 message is the challenge response sent by the client
+ in response to an NTLM type 2 message.
+
+
+
+
+ Indicates the version and build number of the operating system.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Creates a new instance of the OSVersion class using the specified
+ values.
+
+ The major version of the operating
+ system.
+ The minor version of the operating
+ system.
+ The build number of the operating systen.
+
+
+
+ Serializes this instance of the OSVersion class to an array of
+ bytes.
+
+ An array of bytes representing this instance of the OSVersion
+ class.
+
+
+
+ The major version number of the operating system.
+
+
+
+
+ The minor version number of the operating system.
+
+
+
+
+ The build number of the operating system.
+
+
+
+
+ Contains methods for calculating the various Type 3 challenge
+ responses.
+
+
+
+
+ Computes the LM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLM-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The challenge sent by the server.
+ The user account password.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the NTLMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account name to authenticate with.
+ The user account password.
+ The target information block from
+ the NTLM type 2 message.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Computes the LMv2-response to the challenge sent as part of an
+ NTLM type 2 message.
+
+ The name of the authentication target.
+ The user account to authenticate with.
+ The user account password.
+ The challenge sent by the server.
+ A random 8-byte client nonce.
+ An array of bytes representing the response to the
+ specified challenge.
+
+
+
+ Creates the LM Hash of the specified password.
+
+ The password to create the LM Hash of.
+ The LM Hash of the given password, used in the calculation
+ of the LM Response.
+ Thrown if the password argument
+ is null.
+
+
+
+ Creates a DES encryption key from the specified key material.
+
+ The key material to create the DES encryption
+ key from.
+ An offset into the byte array at which to
+ extract the key material from.
+ A 56-bit DES encryption key as an array of bytes.
+
+
+
+ Applies odd parity to the specified byte array.
+
+ The byte array to apply odd parity to.
+ A reference to the byte array.
+
+
+
+ Creates the LM Response from the specified hash and Type 2 challenge.
+
+ An LM or NTLM hash.
+ The server challenge from the Type 2
+ message.
+ The challenge response as an array of bytes.
+ Thrown if the hash or the
+ challenge parameter is null.
+
+
+
+ Creates the NTLM Hash of the specified password.
+
+ The password to create the NTLM hash of.
+ The NTLM hash for the specified password.
+ Thrown if the password
+ parameter is null.
+
+
+
+ Creates the NTLMv2 Hash of the specified target, username
+ and password values.
+
+ The name of the authentication target as is
+ specified in the target name field of the NTLM type 3 message.
+ The user account name.
+ The password for the user account.
+ The NTLMv2 hash for the specified input values.
+ Thrown if the username or
+ the password parameter is null.
+
+
+
+ Returns the current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+ The current time as the number of tenths of a microsecond
+ since January 1, 1601.
+
+
+
+ Creates the "blob" data block which is part of the NTLMv2 challenge
+ response.
+
+ The target information block from
+ the NTLM type 2 message.
+ A random 8-byte client nonce.
+ The blob, used in the calculation of the NTLMv2 Response.
+
+
+
+ Creates the LMv2 Response from the given NTLMv2 hash, client data, and
+ Type 2 challenge.
+
+ The NTLMv2 Hash.
+ The client data (blob or client nonce).
+ The server challenge from the Type 2 message.
+ The response which is either for NTLMv2 or LMv2, depending
+ on the client data.
+
+
+
+ Represents an NTLM security buffer, which is a structure used to point
+ to a buffer of binary data within an NTLM message.
+
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The length of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length value exceeds
+ the maximum value allowed. The security buffer structure stores the
+ length value as a 2-byte short value.
+
+
+
+ Creates a new instance of the SecurityBuffer class using the specified
+ values.
+
+ The data of the buffer described by this instance
+ of the SecurityBuffer class.
+ The offset at which the buffer starts, in bytes.
+ Thrown if the length of the data
+ buffer exceeds the maximum value allowed. The security buffer structure
+ stores the buffer length value as a 2-byte short value.
+
+
+
+ Serializes this instance of the SecurityBuffer into an array of bytes.
+
+ A byte array representing this instance of the SecurityBuffer
+ class.
+
+
+
+ The length of the buffer content in bytes (may be zero).
+
+
+
+
+ The allocated space for the buffer in bytes (typically the same as
+ the length).
+
+
+
+
+ The offset from the beginning of the NTLM message to the start of
+ the buffer, in bytes.
+
+
+
+
+ Represents an NTLM Type 1 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 1 for an NTLM Type 1 message.
+
+
+
+
+ Creates a new instance of the Type1Message class using the specified
+ domain and workstation names.
+
+ The domain in which the client's workstation has
+ membership.
+ The client's workstation name.
+ Thrown if the domain or the
+ workstation parameter is null.
+ Thrown if the domain
+ or the workstation name exceeds the maximum allowed string
+ length.
+ The domain as well as the workstation name is restricted
+ to ASCII characters and must not be longer than 65536 characters.
+
+
+
+
+ Serializes this instance of the Type1 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type1
+ class.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The supplied domain name as an array of bytes in the ASCII
+ range.
+
+
+
+
+ The offset within the message where the domain name data starts.
+
+
+
+
+ The supplied workstation name as an array of bytes in the
+ ASCII range.
+
+
+
+
+ The offset within the message where the workstation name data starts.
+
+
+
+
+ The length of the supplied workstation name as a 16-bit short value.
+
+
+
+
+ Contains information about the client's OS version.
+
+
+
+
+ Represents an NTLM Type 2 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 2 for an NTLM Type 2 message.
+
+
+
+
+ Private constructor.
+
+
+
+
+ Deserializes a Type 2 message instance from the specified buffer
+ of bytes.
+
+ The buffer containing a sequence of bytes
+ representing an NTLM Type 2 message.
+ An initialized instance of the Type2 class.
+ Thrown if an error occurs
+ during deserialization of the Type 2 message.
+
+
+
+ Determines the version of an NTLM type 2 message.
+
+ The target offset field of the NTLM
+ type 2 message.
+ A value from the Type2Version enumeration.
+
+
+
+ Reads the OS information data present in version 3 of an NTLM
+ type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the OSVersion class.
+
+
+
+ Reads the target information data present in version 2 and 3 of
+ an NTLM type 2 message from the specified BinaryReader.
+
+ The BinaryReader instance to read from.
+ An initialized instance of the Type2TargetInformation
+ class.
+
+
+
+ Retrieves the target name from the specified byte array.
+
+ A byte array containing the target name.
+ If true the target name will be decoded
+ using UTF-16 unicode encoding.
+
+
+
+
+ The challenge is an 8-byte block of random data.
+
+
+
+
+ The target name of the authentication target.
+
+
+
+
+ The NTLM flags set on this message.
+
+
+
+
+ The SSPI context handle when a local call is being made,
+ otherwise null.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The version of this Type 2 message instance.
+
+
+
+
+ Contains the data present in the target information block.
+
+
+
+
+ Contains the raw data present in the target information block.
+
+
+
+
+ Represents an NTLM Type 3 Message.
+
+
+
+
+ The NTLM message signature which is always "NTLMSSP".
+
+
+
+
+ The NTML message type which is always 3 for an NTLM Type 3 message.
+
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts. All security buffers will
+ be encoded as Unicode.
+
+
+
+ Creates a new instance of an NTLM type 3 message using the specified
+ values.
+
+ The Windows account name to use for
+ authentication.
+ The Windows account password to use for
+ authentication.
+ The challenge received from the server as part
+ of the NTLM type 2 message.
+ Set this to true, if Unicode encoding has been
+ negotiated between client and server.
+ The client's workstation name.
+ Set to true to send an NTLMv2 challenge
+ response.
+ The authentication realm in which the
+ authenticating account has membership.
+ The target information block from
+ the NTLM type 2 message.
+ The target name is a domain name for domain accounts, or
+ a server name for local machine accounts.
+ Thrown if the username, password
+ or challenge parameters are null.
+
+
+
+ Serializes this instance of the Type3 class to an array of bytes.
+
+ An array of bytes representing this instance of the Type3
+ class.
+
+
+
+ Returns a random 8-byte cnonce value.
+
+ A random 8-byte cnonce value.
+
+
+
+ The NTLM flags set on this instance.
+
+
+
+
+ The "Lan Manager" challenge response.
+
+
+
+
+ The offset at which the LM challenge response data starts.
+
+
+
+
+ The NTLM challenge response.
+
+
+
+
+ The offset at which the NTLM challenge response data starts.
+
+
+
+
+ The authentication realm in which the authenticating account
+ has membership.
+
+
+
+
+ The offset at which the target name data starts.
+
+
+
+
+ The authenticating account name.
+
+
+
+
+ The offset at which the username data starts.
+
+
+
+
+ The client workstation's name.
+
+
+
+
+ The offset at which the client workstation's name data starts.
+
+
+
+
+ The session key value which is used by the session security mechanism
+ during key exchange.
+
+
+
+
+ The offset at which the session key data starts.
+
+
+
+
+ Contains the data present in the OS version structure.
+
+
+
+
+ The encoding used for transmitting the contents of the various
+ security buffers.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2195.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslCramMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Cram-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Cram-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Cram-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl Cram-Md5 authentication method as described in
+ RFC 2831.
+
+
+
+
+ The client nonce value used during authentication.
+
+
+
+
+ Cram-Md5 involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Internal constructor used for unit testing.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ The client nonce value to use.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Creates and initializes a new instance of the SaslDigestMd5 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified Digest-Md5 challenge.
+
+ The challenge sent by the server
+ The response to the Digest-Md5 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Parses the challenge string sent by the server in response to a Digest-Md5
+ authentication request.
+
+ The challenge sent by the server as part of
+ "Step One" of the Digest-Md5 authentication mechanism.
+ An initialized NameValueCollection instance made up of the
+ attribute/value pairs contained in the challenge.
+ Thrown if the challenge parameter
+ is null.
+ Refer to RFC 2831 section 2.1.1 for a detailed description of the
+ format of the challenge sent by the server.
+
+
+
+ Computes the "response-value" hex-string which is part of the
+ Digest-MD5 challenge-response.
+
+ A collection containing the attributes
+ and values of the challenge sent by the server.
+ The cnonce value to use for computing
+ the response-value.
+ The "digest-uri" string to use for
+ computing the response-value.
+ The username to use for computing the
+ response-value.
+ The password to use for computing the
+ response-value.
+ A string containing a hash-value which is part of the
+ response sent by the client.
+ Refer to RFC 2831, section 2.1.2.1 for a detailed
+ description of the computation of the response-value.
+
+
+
+ Calculates the MD5 hash value for the specified string.
+
+ The string to calculate the MD5 hash value for.
+ The encoding to employ for encoding the
+ characters in the specified string into a sequence of bytes for
+ which the MD5 hash will be calculated.
+ An MD5 hash as a 32-character hex-string.
+ Thrown if the input string
+ is null.
+
+
+
+ Encloses the specified string in double-quotes.
+
+ The string to enclose in double-quote characters.
+ The enclosed string.
+
+
+
+ Generates a random cnonce-value which is a "client-specified data string
+ which must be different each time a digest-response is sent".
+
+ A random "cnonce-value" string.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Digest-Md5 authentication mechanism as described
+ in RFC 2195.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLM authentication method which is used in various
+ Microsoft network protocol implementations.
+
+ Implemented with the help of the excellent documentation on
+ NTLM composed by Eric Glass.
+
+
+
+ NTLM involves several steps.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlm class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an NTLM challenge.
+
+ The challenge sent by the server. Since
+ NTLM expects an initial client response, this will usually be
+ empty.
+ The initial response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the NTLM authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The password to authenticate with.
+
+
+
+
+ Implements the Sasl NTLMv2 authentication method which addresses
+ some of the security issues present in NTLM version 1.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslNtlmv2 class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response to the specified NTLM challenge.
+
+ The challenge sent by the server
+ The response to the NTLM challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the actual challenge response to an NTLM challenge
+ which is sent as part of an NTLM type 2 message.
+
+ The challenge sent by the server.
+ The response to the NTLM challenge.
+ Thrown if the challenge
+ response could not be computed.
+
+
+
+ Implements the Sasl OAuth authentication method.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ Thrown if the accessToken
+ parameter is null.
+ Thrown if the accessToken
+ parameter is empty.
+
+
+
+ Computes the client response for a OAuth challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth authentication mechanism.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl OAuth 2.0 authentication method.
+
+
+
+
+ The server sends an error response in case authentication fails
+ which must be acknowledged.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslOAuth class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The username to authenticate with.
+ Thrown if the username
+ or the accessToken parameter is null.
+ Thrown if the username or
+ the accessToken parameter is empty.
+
+
+
+ Computes the client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ Computes the initial client response to an XOAUTH2 challenge.
+
+ The challenge sent by the server.
+ The response to the OAuth2 challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the OAuth 2.0 authentication mechanism.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The access token to authenticate with.
+
+
+
+
+ Implements the Sasl Plain authentication method as described in
+ RFC 4616.
+
+
+
+
+ Private constructor for use with Sasl.SaslFactory.
+
+
+
+
+ Creates and initializes a new instance of the SaslPlain class
+ using the specified username and password.
+
+ The username to authenticate with.
+ The plaintext password to authenticate
+ with.
+ Thrown if the username
+ or the password parameter is null.
+ Thrown if the username
+ parameter is empty.
+
+
+
+ Computes the client response for a plain-challenge.
+
+ The challenge sent by the server. For the
+ "plain" mechanism this will usually be empty.
+ The response for the "plain"-challenge.
+ Thrown if the response could not
+ be computed.
+
+
+
+ True if the authentication exchange between client and server
+ has been completed.
+
+
+
+
+ The IANA name for the Plain authentication mechanism as described
+ in RFC 4616.
+
+
+
+
+ The username to authenticate with.
+
+
+
+
+ The plain-text password to authenticate with.
+
+
+
+
+ The exception is thrown when a Sasl-related error or unexpected condition occurs.
+
+
+
+
+ Initializes a new instance of the SaslException class
+
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to .
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+
+
+
+ Initializes a new instance of the SaslException class with its message
+ string set to and a reference to the inner exception that
+ is the cause of this exception.
+
+ A description of the error. The content of message is intended
+ to be understood by humans.
+ The exception that is the cause of the current exception.
+
+
+
+ Initializes a new instance of the SaslException class with the specified
+ serialization and context information.
+
+ An object that holds the serialized object data about the exception
+ being thrown.
+ An object that contains contextual information about the source
+ or destination.
+
+
+
+ A factory class for producing instances of Sasl mechanisms.
+
+
+
+
+ Creates an instance of the Sasl mechanism with the specified
+ name.
+
+ The name of the Sasl mechanism of which an
+ instance will be created.
+ An instance of the Sasl mechanism with the specified name.
+ Thrown if the name parameter
+ is null.
+ Thrown if the Sasl mechanism with the
+ specified name is not registered with Sasl.SaslFactory.
+
+
+
+ Registers a Sasl mechanism with the factory using the specified name.
+
+ The name with which to register the Sasl mechanism
+ with the factory class.
+ The type of the class implementing the Sasl mechanism.
+ The implementing class must be a subclass of Sasl.SaslMechanism.
+ Thrown if the name or the t
+ parameter is null.
+ Thrown if the class represented
+ by the specified type does not derive from Sasl.SaslMechanism.
+ Thrown if the Sasl mechanism could not
+ be registered with the factory. Refer to the inner exception for error
+ details.
+
+
+
+ Static class constructor. Initializes static properties.
+
+
+
+
+ A dictionary of Sasl mechanisms registered with the factory class.
+
+
+
+
+ Represents chainable search conditions that can be used with the Search method.
+
+
+
+
+ Finds all messages in the mailbox.
+
+ A SearchCondition object representing the "all" search criterion.
+
+
+
+ Finds messages that contain the specified string in the header or body of the message.
+
+ String to search messages for.
+ A SearchCondition object representing the "text" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's BCC field.
+
+ String to search the envelope structure's BCC field for.
+ A SearchCondition object representing the "BCC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages whose internal date (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the message's internal date with.
+ A SearchCondition object representing the "Before" search criterion.
+
+
+
+ Finds messages that contain the specified string in the body of the message.
+
+ String to search the message body for.
+ A SearchCondition object representing the "Body" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's CC field.
+
+ String to search the envelope structure's CC field for.
+ A SearchCondition object representing the "CC" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's FROM field.
+
+ String to search the envelope structure's FROM field for.
+ A SearchCondition object representing the "FROM" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have a header with the specified field-name and that contains the
+ specified string in the text of the header.
+
+ field-name of the header to search for.
+ String to search for in the text of the header.
+ A SearchCondition object representing the "HEADER" search criterion.
+
+ If the string to search is zero-length, this matches all messages that have a header line
+ with the specified field-name regardless of the contents.
+
+ The name parameter or the text parameter is
+ null.
+
+
+
+ Finds messages with the specified keyword flag set.
+
+ The keyword flag to search for.
+ A SearchCondition object representing the "KEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with a size larger than the specified number of bytes.
+
+ Minimum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "LARGER" search criterion.
+
+
+
+ Finds messages with a size smaller than the specified number of bytes.
+
+ Maximum size, in bytes a message must have to be included in the search
+ result.
+ A SearchCondition object representing the "SMALLER" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is earlier than the
+ specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTBEFORE" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within the specified
+ date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTON" search criterion.
+
+
+
+ Finds messages whose Date: header (disregarding time and timezone) is within or later than
+ the specified date.
+
+ The date to compare the Date: header field with.
+ A SearchCondition object representing the "SENTSINCE" search criterion.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's SUBJECT field.
+
+ String to search the envelope structure's SUBJECT field for.
+ A SearchCondition object representing the "SUBJECT" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that contain the specified string in the envelope structure's TO field.
+
+ String to search the envelope structure's TO field for.
+ A SearchCondition object representing the "TO" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages with unique identifiers corresponding to the specified unique identifier set.
+
+ One or several unique identifiers (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages with a unique identifier greater than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+ Because of the nature of the IMAP search mechanism, the result set will always contain the
+ UID of the last message in the mailbox, even if said UID is smaller than the UID specified.
+
+
+
+
+ Finds messages with a unique identifier less than the specified unique identifier.
+
+ A unique identifier (UID).
+ A SearchCondition object representing the "UID" search criterion.
+
+
+
+ Finds messages that do not have the specified keyword flag set.
+
+ The IMAP keyword flag to search for.
+ A SearchCondition object representing the "UNKEYWORD" search criterion.
+ The text parameter is null.
+
+
+
+ Finds messages that have the \Answered flag set.
+
+ A SearchCondition object representing the "ANSWERED" search criterion.
+
+
+
+ Finds messages that have the \Deleted flag set.
+
+ A SearchCondition object representing the "DELETED" search criterion.
+
+
+
+ Finds messages that have the \Draft flag set.
+
+ A SearchCondition object representing the "DRAFT" search criterion.
+
+
+
+ Finds messages that have the \Flagged flag set.
+
+ A SearchCondition object representing the "FLAGGED" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set but not the \Seen flag.
+
+ A SearchCondition object representing the "NEW" search criterion.
+
+
+
+ Finds messages that do not have the \Recent flag set.
+
+ A SearchCondition object representing the "OLD" search criterion.
+
+
+
+ Finds messages that have the \Recent flag set.
+
+ A SearchCondition object representing the "RECENT" search criterion.
+
+
+
+ Finds messages that have the \Seen flag set.
+
+ A SearchCondition object representing the "SEEN" search criterion.
+
+
+
+ Finds messages that do not have the \Answered flag set.
+
+ A SearchCondition object representing the "UNANSWERED" search criterion.
+
+
+
+ Finds messages that do not have the \Deleted flag set.
+
+ A SearchCondition object representing the "UNDELETED" search criterion.
+
+
+
+ Finds messages that do not have the \Draft flag set.
+
+ A SearchCondition object representing the "UNDRAFT" search criterion.
+
+
+
+ Finds messages that do not have the \Flagged flag set.
+
+ A SearchCondition object representing the "UNFLAGGED" search criterion.
+
+
+
+ Finds messages that do not have the \Seen flag set.
+
+ A SearchCondition object representing the "UNSEEN" search criterion.
+
+
+
+ Logically ANDs multiple search conditions, meaning a message will only be included in the
+ search result if both of the ANDed conditions are met.
+
+ A search condition to logically AND this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically negates search conditions, meaning a message will only be included in the search
+ result if the specified conditions are not met.
+
+ A search condition that must not be met by a message for it to be
+ included in the search result set.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Logically ORs multiple search conditions, meaning a message will be included in the search
+ result if it meets at least either of the conditions.
+
+ A search condition to logically OR this SearchCondition instance
+ with.
+ A new SearchCondition instance which can be further chained with other search
+ conditions.
+ The other parameter is null.
+
+
+
+ Joins two SearchCondition objects into a new one using the specified logical operator.
+
+ The logical operator to use for joining the search conditions.
+ Possible values are "OR", "NOT" and the empty string "" which denotes a logical AND.
+ The first SearchCondition object
+ The second SearchCondition object
+ A new SearchCondition object representing the two search conditions joined by the
+ specified logical operator.
+
+
+
+ Concatenates the members of a collection, using the specified separator between each
+ member.
+
+ The type of the members of values.
+ The string to use as a separator.
+ A collection that contains the objects to concatenate.
+ A string that consists of the members of values delimited by the separator
+ string. If values has no members, the method returns System.String.Empty.
+ The values parameter is null.
+ This is already part of the String class in .NET 4.0 and newer but is needed
+ for backwards compatibility with .NET 3.5.
+
+
+
+ Constructs a string from the SearchCondition object using the proper syntax as is required
+ for the IMAP SEARCH command.
+
+ A string representing this SearchCondition instance that can be used with the IMAP
+ SEARCH command.
+
+
+
+ The search keys which can be used with the IMAP SEARCH command, as are defined in section
+ 6.4.4 of RFC 3501.
+
+
+
+
+ A static utility class containing methods for decoding encoded non-ASCII data as well as
+ extension methods for some classes of the base class library.
+
+
+
+
+ Returns a copy of the string enclosed in double-quotes and with escaped CRLF, back-slash
+ and double-quote characters (as is expected by some commands of the IMAP protocol).
+
+ Extends the System.String class
+ A copy of the string enclosed in double-quotes and properly escaped as is required
+ by the IMAP protocol.
+
+
+
+ Returns true if the string contains only ASCII characters.
+
+ Extension method for the String class.
+ true if the string contains only ASCII characters; Otherwise false.
+
+
+
+ Splits a string into chunks of the specified number of characters.
+
+ Extension method for the String class.
+ The length of a chunk, measured in characters.
+ An array of string chunks.
+
+
+
+ Determines whether the specified string occurs within this string.
+
+ Extension method for the String class.
+ The string to seek.
+ One of the enumeration values that specifies the rules for the
+ search.
+ true if the value parameter occurs within this string, or if value is the empty
+ string (""); otherwise, false.
+ The value parameter is null.
+
+
+
+ Raises the event. Ensures the event is only raised, if it is not null.
+
+ Extends System.EventHandler class.
+ Extends System.EventHandler class.
+ The sender of the event.
+ The event arguments associated with this event.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ The name to use when throwing an exception, if necessary.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given data item is null.
+
+ The item to check for nullity.
+ Courtesy of Jon Skeet.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+
+
+
+ Throws an ArgumentNullException if the given string is null or throws an ArgumentException
+ if the given string is empty.
+
+ The string to check for nullity and emptiness.
+ The name to use when throwing an exception, if necessary.
+
+
+
+ Reads an unsigned short value from the underlying stream, optionally using big-endian byte
+ ordering.
+
+ Extension method for BinaryReader.
+ Set to true to interpret the short value as big endian value.
+ The 16-byte unsigned short value read from the underlying stream.
+
+
+
+ Decodes a string composed of one or several MIME 'encoded-words'.
+
+ A string to composed of one or several MIME 'encoded-words'.
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A concatenation of all enconded-words in the passed string
+
+
+
+ Internal function reuse to add separation between multiple 'encoded-word's correctly.
+
+
+
+
+ The regular expression for matching encoded-words. This also accounts for the extension for
+ including language information (as defined in RFC2231).
+
+
+
+
+ Decodes a MIME 'encoded-word' string.
+
+ The encoded word to decode
+ An unknown encoding (other than Q-Encoding or Base64) is
+ encountered.
+ A decoded string
+ MIME encoded-word syntax is a way to encode strings that contain non-ASCII data.
+ Commonly used encodings for the encoded-word sytax are Q-Encoding and Base64. For an
+ in-depth description, refer to RFC 2047.
+
+
+
+ Takes a Q-encoded string and decodes it using the specified encoding.
+
+ The Q-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid Q-encoded string.
+ The Q-decoded string.
+
+
+
+ Takes a quoted-printable encoded string and decodes it using the specified encoding.
+
+ The quoted-printable-encoded string to decode.
+ The encoding to use for encoding the returned string.
+ The string is not a valid quoted-printable encoded
+ string.
+ A quoted-printable decoded string.
+
+
+
+ Decodes the specified MIME parameter value.
+
+ The MIME parameter value to decode.
+ The decoded MIME parameter value.
+ The specified value is not a valid Rfc2231-encoded
+ string.
+ Refer to RFC2231 for the details of the encoding mechanism.
+
+
+
+ Takes a Base64-encoded string and decodes it.
+
+ The Base64-encoded string to decode.
+ A byte array containing the Base64-decoded bytes of the input string.
+ The value parameter is null.
+ The length of value, ignoring white-space
+ characters, is not zero or a multiple of 4, or the format of value is invalid, or the value
+ contains a non-base-64 character, more than two padding characters, or a non-white
+ space-character among the padding characters.
+
+
+
+ Takes a UTF-16 encoded string and encodes it as modified UTF-7.
+
+ The string to encode.
+ A UTF-7 encoded string
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ Takes a modified UTF-7 encoded string and decodes it.
+
+ The UTF-7 encoded string to decode.
+ A UTF-16 encoded "standard" C# string
+ The input string is not a properly UTF-7 encoded
+ string.
+ IMAP uses a modified version of UTF-7 for encoding international mailbox names. For
+ details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention).
+
+
+
+ This just wraps Encoding.GetEncoding in a try-catch block to ensure it never fails. If the
+ encoding can not be determined ASCII is returned as a default.
+
+ The code page name of the preferred encoding. Any value returned by
+ System.Text.Encoding.WebName is a valid input.
+ The System.Text.Encoding associated with the specified code page or Encoding.ASCII
+ if the specified code page could not be resolved.
+
+
+
+ Converts the specified enumerable collection of UIDs into an IMAP sequence-set.
+
+ An enumerable collection of UIDs.
+ An IMAP sequence-set suitable for use with IMAP commands.
+ The uids parameter is null.
+ The specified collection of UIDs is empty.
+ Refer to RFC3501, 9.Formal Syntax "sequence-set" for a description of IMAP
+ sequence-sets.
+
+
+
diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.dll b/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.dll
new file mode 100644
index 0000000..2786078
Binary files /dev/null and b/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.dll differ