Mail
This class allows you to sign-in using Gmail 2-legged OAuth. It's a wrapper over generic class.
Creates new Gmail2LeggedOAuth object.
Consumer key.
Consumer secret.
Gets XOAuthKey that can be used by methods.
Email of the mailbox you want access.
XOAuthKey.
Gets XOAuthKey that can be used by methods.
Email of the mailbox you want access.
XOAuthKey.
This class allows you to sign-in using Google 3-legged OAuth. It's a wrapper over generic class.
Gets consumer token.
Gets request token.
Gets or sets access token.
Creates new GmailOAuth object with consumer key and consumer secret set to "anonymous".
Creates new GmailOAuth object.
Consumer key.
Consumer secret.
Creates new GmailOAuth object.
Consumer token (consumer key and consumer secret).
Gets url you should redirect your user to, in order for him to authorize Google access.
Default scopes are and
Callback address. Google will redirect user to this address after authorization. Your application needs to read the oauth_verifier url parameter.
Url you should redirect the user to.
Gets url you should redirect your user to, in order for him to authorize IMAP access.
Callback address. Google will redirect user to this address after authorization. Your application needs to read the oauth_verifier url parameter.
Scopes you request access to.
Url you should redirect the user to.
Gets url you should redirect your user to, in order for him to authorize IMAP access.
This method uses oob instead of callback this means that your user will need to copy verification code to your application.
Url you should redirect the user to.
Gets url you should redirect your user to, in order for him to authorize IMAP access.
This method uses oob instead of callback this means that your user will need to copy verification code to your application.
Scopes you request access to.
Url you should redirect the user to.
Contacts Google to exchange an authorized request token for an access token.
oauth_verifier url parameter.
Sets access token. Typically you don't need to use this method, as methods retrieves access token for you.
Access token.
Gets XOAuthKey that can be used by and methods.
XOAuthKey.
Gets XOAuthKey that can be used by and methods.
Email address.
XOAuthKey.
Gets XOAuthKey that can be used by and methods.
XOAuthKey.
Gets XOAuthKey that can be used by and methods.
Email address.
XOAuthKey.
Revokes access for specified token (retrieved using or method)
Token to revoke access for.
Provides access to Google API.
Creates new instance of this class.
Access token.
Creates new instance of this class.
Consumer token.
Access token.
Gets email address of the user using https://www.googleapis.com/userinfo/v2/me endpoint.
You need to specify scope to be able to use this method.
User's email address.
Gets email address of the user using https://www.googleapis.com/plus/v1/people/me endpoint.
You need to specify to be able to use this method.
Remember to turn on "Google+ API" in Google Developer Console.
User's email address.
Gets all contacts of the default user.
You need to specify when calling or to be able to use this method.
User's contacts.
Gets all contacts of the specified user.
You need to specify when calling or to be able to use this method.
Email address for which contacts should be downloaded.
User's contacts.
Revokes specified token.
Token to revoke.
Represents Google scope (permission).
You can use static fields of this class like: , and .
IMAP, POP3 and SMTP access ("https://mail.google.com/").
IMAP and SMTP access ("https://mail.google.com/").
Email address access ("https://www.googleapis.com/auth/userinfo.email").
Email address access ("email").
Contacts access (https://www.google.com/m8/feeds/).
Creates new Google scope.
Scope url.
Represents OAuth token nad token secret.
Gets OAuth token.
Gets OAuth token secret.
Creates new OAuthToken object.
OAuth token.
OAuth token secret.
Provides easy access to url parameters required to finish OAuth authorization.
Gets oauth_token url parameter, that can be used to retrieve class from permanent storage.
Gets oauth_verifier url parameter, that can be used to retrieve access token by using method.
Creates new instance of this class.
Raw return url e.g. "https://www.yourwebsite.com?oauth_verifier=XXX&oauth_token=YYY".
HTTP protocol method used by authentication ().
GET method.
POST method.
Represents not signed OAuth request.
Sets the consumer.
Consumer key
Consumer secret
This OAuth object.
Sets the signature method.
Signature method
This OAuth object.
Sets HTTP method (GET or POST).
HTTP method (GET or POST).
This OAuth object.
Sets the timestamp. Timestamp is generated automatically if not set.
This method should be used in tests only.
Timestamp
This OAuth object.
Sets nonce. Nonce is generated automatically if not set.
This method should be used in tests only.
Nonce.
This OAuth object.
Sets OAuth token (oauth_token).
Token to set.
This OAuth object.
Sets OAuth token secret (oauth_token_secret).
Token secret to set.
This OAuth object.
Adds new parameter to this request.
Name of the parameter.
Value of the parameter.
This OAuth object.
Signs this request and creates signed OAuth object.
Signed OAuth object.
Represents signed OAuth request.
Gets entire url including parameters, OAuth parameters and signature.
Url including parameters, OAuth parameters and signature.
Gets base url of this request.
Base url of this request.
Gets XOAuth key that can be used by or login methods.
XOAuth key.
Gets signature of this request.
Request signature.
Gets normalized url (parameters are sorted by name) of this request.
Normalized url.
Gets normalized parameter (sorted by name) of this request.
Normalized parameter list.
Gets parameter collection of this request.
This collection includes all OAuth parameters and signature.
Request parameter collection. Includes all OAuth parameters and signature
Executes a web request using HTTP protocol, and method specified by .
Parameter list returned by the server.
This class allows you to create signed OAuth requests.
Creates new OAuth object for specific url.
Base url.
OAuth object.
oauth_token
oauth_token_secret
Authorizes an HTTP request using an OAuth 2.0 access token in an HTTP Authorization header.
The request to authorize.
The access token previously obtained from the Authorization Server.
Groups all OAuth parameter names.
'oauth_consumer_key' parameter name.
'oauth_callback' parameter name.
'oauth_version' parameter name.
'oauth_signature_method' parameter name.
'oauth_signature' parameter name.
'oauth_timestamp' parameter name.
'oauth_nonce' parameter name.
'oauth_token' parameter name.
'oauth_token_secret' parameter.
'oauth_verifier' parameter.
Provides access to Outlook API.
Creates new instance of this class.
Access token.
Gets email address of the user.
User's email address.
Represents Outlook scope (permission).
You can use static fields of this class like: , .
IMAP and SMTP access ("wl.imap").
Email address access ("wl.emails").
Offline access ("wl.offline_access").
Creates new Google scope.
Scope url.
Represents collection.
Gets the number of parameters in this collection.
Gets parameter by name.
Name of the parameter to search for.
Query parameter with specified name -or- if not found.
Gets value of the parameter by name.
Name of the parameter to search for.
Value of the query parameter with specified name -or- if not found.
Adds new query parameter with specified name and value to this collection.
Parameter name.
Parameter value.
Adds specified query parameter to this collection.
Parameter to add.
Sorts parameters by name.
Renders parameter list to string in url format ("name=value&name2=value2").
Values are always encoded and never quoted.
Parameters in url format.
Renders parameter list to string in http header format ("name=value,name2=value2").
Parameters in url format.
Removes all parameters with specified name.
Name of the parameters to remove.
Parses specified query string and creates parameter collection.
Query string to parse.
New parameter list.
Returns an enumerator that iterates through the collection.
Enumerator that iterates through the collection
Represents query parameter.
Gets parameter name.
Gets parameter value.
Creates new instance of query parameter.
Parameter name.
Parameter value.
Signature types used by authentication ().
HMACSHA1 method.
Plaint text method.
Not supported RSASHA1 method.
Represents SSPI exception.
Initializes new instance of TemplateException with serialized data.
Serialized object data.
Contextual information.
Represents SSPI mechanism.
SSPI authentication methods (NTLM, Kerberos, Negotiate) can work in two modes:
1. The user specifies their credentials explicitly (like other authentication methods work), and authentication token is created from them.
2. Integrated Windows Authentication (IWA).
The authentication token is created by Windows from the credentials of the currently logged Windows user.
The application never deals with the account password.
IWA mode provides increased security and spares the end user from entering their credentials.
IWA, however, cannot be used when the currently logged Windows user is not an interactive user.
In web applications, you often deal with system users (like NETWORK SERVICE, ASPNET, etc).
To be able to use IWA in an ASP.NET application, the application itself must run under the context of an interactive user
(<authentication mode="Windows"/> in web.config).
Also, the user from whose context the authentication token is constructed, must have a valid mailbox on the e-mail server.
This is important as even if the given user is registered in the Active Directory and can log in the domain,
it does not necessarily mean that the system has already provisioned their mailbox.
NTLM mechanism.
Kerberos mechanism. Kerberos is the technological successor to NTLM.
Negotiate mechanism. Selects Kerberos and if not available, NTLM protocol.
The pBuffer parameter contains a pointer to a SecPkgContext_Sizes structure.
Queries the sizes of the structures used in the per-message functions.
"The function completed successfully, but must be called again to complete the context"
The function completed successfully, but CompleteToken must be called
The function completed successfully, but both CompleteToken and this function must be called to complete the context
12 bytes
Creates the NTLMv2 Hash of the user's password.
@param target The authentication target (i.e., domain).
@param user The username.
@param password The password.
@return The NTLMv2 Hash, used in the calculation of the NTLMv2
and LMv2 Responses.
Calculates the NTLMv2 Response for the given challenge, using the
specified authentication target, username, password, target information
block, and client nonce.
@param target The authentication target (i.e., domain).
@param user The username.
@param password The user's password.
@param targetInformation The target information block from the Type 2
message.
@param challenge The Type 2 challenge from the server.
@param clientNonce The random 8-byte client nonce.
@return The NTLMv2 Response.
Creates the NTLMv2 blob from the given target information block and
client nonce.
@param targetInformation The target information block from the Type 2
message.
@param clientNonce The random 8-byte client nonce.
@return The blob, used in the calculation of the NTLMv2 Response.
Calculates the LMv2 Response for the given challenge, using the
specified authentication target, username, password, and client
challenge.
@param target The authentication target (i.e., domain).
@param user The username.
@param password The user's password.
@param challenge The Type 2 challenge from the server.
@param clientNonce The random 8-byte client nonce.
@return The LMv2 Response.
Calculates the NTLM2 Session Response for the given challenge, using the
specified password and client nonce.
@param password The user's password.
@param challenge The Type 2 challenge from the server.
@param clientNonce The random 8-byte client nonce.
@return The NTLM2 Session Response. This is placed in the NTLM
response field of the Type 3 message; the LM response field contains
the client nonce, null-padded to 24 bytes.
The client sets this flag to indicate that it supports Unicode strings.
This is set to indicate that the client supports OEM strings.
This requests that the server send the authentication target with the Type 2 reply.
This flag's usage has not been identified.
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 supported.
This flag's usage has not been identified.
Sent by the client in the Type 3 message to indicate that an anonymous context has been established. This also affects the response fields (as detailed in the "Anonymous Response" section).
When set, the client will send with the message the name of the domain in which the workstation has membership.
Indicates that the client is sending its workstation name with the message.
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 communication between the client and server after authentication should carry 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 this client supports the NTLM2 signing and sealing scheme; if negotiated, this can also affect 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.
This flag's usage has not been identified.
This flag's usage has not been identified.
This flag's usage has not been identified.
This flag's usage has not been identified.
This flag's usage has not been identified.
Indicates that this client supports strong (128-bit) encryption.
Indicates that the client will provide an encrypted master key in the "Session Key" field of the Type 3 message.
Indicates that this client supports medium (56-bit) encryption.
8 bytes
8 bytes
Gets the next message.
Null if it's the initial response.
Implements TCP/IP text client.
Gets SSL configuration (client certificates, enabled SSL protocols).
Event which is called for custom server certificate validation.
Gets or sets the amount of time the underlying will wait to receive data once a read operation is initiated.
Gets or sets the amount of time the underlying will wait for a send operation to complete successfully.
Gets a value indicating whether the underlying is connected to a remote host.
This property makes a nonblocking, zero-byte Send call to determine the current state of the connection.
Gets the underlying .
Gets a Boolean value that indicates whether communication to the remote server is encrypted.
Gets a Boolean value that indicates whether communication to the remote server is signed.
Gets a Boolean value that indicates whether communication to the remote server is mutually authenticated.
Gets a Boolean value that indicates whether communication to the remote server is compressed.
You can turn compression on by using method.
Gets underlying read stream for current connection.
Gets underlying write stream for current connection.
Initializes a new instance of the ClientBase object.
Sets and to 30 sec.
Initializes a new instance of the ClientBase object.
Sets and to 30 sec.
Address family.
Turns TCP protocol keep alive (SO_KEEPALIVE) option on.
Duration between two keepalive transmissions in idle condition (TCP protocol default is 2h).
Duration between two successive keepalive retransmissions, if acknowledgement to the previous keepalive transmission is not received (TCP protocol default is 1s).
Attaches client to specified connected socket.
Socket to attach to.
Target host used for SSL negotiation
Attaches client to specified connected socket.
Socket to attach to.
Attaches client to specified connected socket.
Socket to attach to.
If true starts SSL negotiation (Please use to specify ).
Creates SSL stream and authenticates client.
Establishes connection to a remote server.
The name or IP address of the remote server.
The port number of the remote server.
Creates SSL connection when set to true.
Establishes connection to a remote server. You can use when SSL connection is needed.
The name or IP address of the remote server.
The port number of the remote server.
Establishes connection to a remote server using SSL.
The name or IP address of the remote server.
The port number of the remote server.
Establishes connection to a remote server.
IP address.
The port number of the remote server.
Creates SSL connection when set to true.
Establishes connection to a remote server.
Network endpoint (IP address and port) of the connection.
Creates SSL connection when set to true.
Begins an asynchronous request for a remote server connection.
Network endpoint (IP address and port) of the remote server.
Creates SSL connection when set to true.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using SSL.
The name or IP address of the remote server.
The port number of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using SSL.
The name or IP address of the remote server.
The port number of the remote server.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server connection. You can use when SSL connection is needed.
The name or IP address of the remote server.
The port number of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server connection.
The name or IP address of the remote server.
The port number of the remote server.
Creates SSL connection when set to true.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server connection.
The name or IP address of the remote server.
The port number of the remote server.
Creates SSL connection when set to true.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Ends a pending asynchronous connection request.
Object that stores state information and any user defined data for this asynchronous operation.
Sends text command to server. Adds "\r\n" to the command.
Sends text command to server. Adds "\r\n" to the command.
Sends specified byte array to the server.
Byte array to send.
Releases all resources acquired by this object. Closes connection, without issuing any quit commands.
Indicates if invoked by Dipsose method.
Releases all resources acquired by this object. Closes connection, without issuing any quit commands.
Tests to see if this is running on a Linux or Unix Platform
if unix or linux is detected
FlagMasks are used as a bit mask to isolate bits 16 through 31
of the DNS header to convert them to their appropriate enum types.
Internet (inet), RFC 1035
MIT Chaos-net, RFC 1035
MIT Hesiod, RFC 1035
RFC 2136 - None
Any QCLASS only, Wildcard match, RFC 1035
|AA|TC|RD|RA| Z|AD|CD| - 8 bits (1 byte) flag fields
reference: http://www.networksorcery.com/enp/protocol/dns.htm
AA - Authorative Answer [RFC1035] ( 0 = Not authoritative, 1 = Is authoritative )
TC - Truncated Response [RFC1035] ( 0 = Not truncated, 1 = Message truncated )
RD - Recursion Desired [RFC1035] ( 0 = Recursion not desired, 1 = Recursion desired )
RA - Recursion Allowed [RFC1035] ( 0 = Recursive query support not available, 1 = Recursive query support available )
AD - Authentic Data [RFC4035] ( Authenticated data. 1 bit ) [NOT IMPLEMENTED]
CD - Checking Disabled [RFC4035] ( Checking Disabled. 1 bit ) [NOT IMPLEMENTED]
Invalid
Host address
Authoritative server
Mail destination
Mail forwarder
Canonical name
Start of authority zone
Mailbox domain name
Mail group member
Mail rename name
Null resource record
Well known service
Domain name pointer
Host information
Mailbox information
Mail routing information
Text strings, RFC 1464
Responsible person, RFC 1183
AFS cell database, RFC 1183
X_25 calling address, RFC 1183
ISDN calling address, RFC 1183
Router, RFC 1183, Implemented
NSAP address, RFC 1706
Reverse NSAP lookup - deprecated by PTR ?
Security signature, RFC 2535
Security key, RFC 2535
X.400 mail mapping, RFC ?
Geographical position - withdrawn, RFC 1712
Ip6 Address, RFC 1886
Location Information, RFC 1876
Next domain (security), RFC 2065
Endpoint identifier,RFC ?
Nimrod Locator, RFC ?
Server Record, RFC 2052
ATM Address
Naming Authority PoinTeR, RFC 2915
Key Exchange, RFC 2230
Certification record, RFC 2538
IPv6 address (deprecates AAAA), RFC 3226
Non-terminal DNAME (for IPv6), RFC 2874
Kitchen sink (experimental) (http://tools.ietf.org/html/draft-eastlake-kitchen-sink-02)
EDNS0 option (meta-RR), RFC 2671
Transaction key, RFC 2930
Transaction signature, RFC 2845
Incremental zone transfer, RFC 1995
Transfer zone of authority, RFC 1035
Transfer mailbox records, RFC 1035
Transfer mail agent records, RFC 1035
All of the above, RFC 1035
DNSSEC Trust Authorities
DNSSEC Lookaside Validation, RFC4431
| OpCode | - 4 bits of DNS header, Bit 17 - 20
RFC 1035:
A four bit field that specifies kind of query in this
message. This value is set by the originator of a query
and copied into the response.
The values are:
0 a standard query (QUERY)
1 an inverse query (IQUERY)
2 a server status request (STATUS)
3-15 reserved for future
Standard query
[RFC1035] (QUERY)
Inverse query
[RFC1035] (IQUERY)
Server status request
[RFC1035] (STATUS)
|QR| - Starts at bit 16 of DNS Header, size: 1 bit
RFC 1035:
A one bit field that specifies whether this message is a
query (0), or a response (1).
Query (0)
Response (1)
| RCODE | - 4 bits error codes
Response code - this 4 bit field is set as part of
responses. The values have the following interpretation:
Fields 6-15 Reserved for future use.
reference: http://www.networksorcery.com/enp/protocol/dns.htm
No error condition
Format error - The name server was unable to
interpret the query.
Server failure - The name server was unable to process
this query due to a problem with the name server.
Name Error - Meaningful only for responses from an
authoritative name server, this code signifies that
the domain name referenced in the query does not
exist.
Not Implemented - The name server does not support
the requested kind of query.
Refused - The name server refuses to perform the
specified operation for policy reasons. For example,
a name server may not wish to provide the information
to the particular requester, or a name server may not
wish to perform a particular operation (e.g., zone
transfer) for particular data.
RFC 2136
Name Exists when it should not.
RFC 2136
RR Set Exists when it should not.
RFC 2136
RR Set that should exist does not.
RFC 2136
Server Not Authoritative for zone.
RFC 2136
Name not contained in zone.
RFC 2671
RFC 2845
BADVERS Bad OPT Version.
BADSIG TSIG Signature Failure.
RFC 2845
Key not recognized.
RFC 2845
Signature out of time window.
RFC 2930
Bad TKEY Mode.
RFC 2930
Duplicate key name.
RFC 2930
Algorithm not supported.
Helper class for accessing DNS.
Creates new DnsHelper object instance using default DNS address address and default port.
Creates new DnsHelper object instance using specified DNS server address and default port.
DNS server address.
Creates new DnsHelper object instance using specified DNS server address and port.
DNS server address.
DNS server port.
Gets SMTP servers for specified domain or email address.
This method searches DNS MX records. Servers are sorted by priority, first being the highest.
Domain or email address to search SMTP servers for.
List of the SMTP servers.
Gets highest priority SMTP server for specified domain or email address.
This method searches DNS MX records.
Domain or email address to search SMTP servers for.
Highest priority SMTP server.
NAME - an owner name, i.e., the name of the node to which this
resource record pertains.
TYPE two octets containing one of the RR TYPE codes.
CLASS - two octets containing one of the RR CLASS codes.
TTL - a 32 bit signed integer that specifies the time interval
that the resource record may be cached before the source
of the information should again be consulted. Zero
values are interpreted to mean that the RR can only be
used for the transaction in progress, and should not be
cached. For example, SOA records are always distributed
with a zero TTL to prohibit caching. Zero values can
also be used for extremely volatile data.
RDLENGTH - an unsigned 16 bit integer that specifies the length in
octets of the RDATA field.
1 byte: length1
length1 bytes: text1
1 byte: length2
length2 bytes: text2
--------------------------
recordSize
DnsQueryBase maintains the common state of DNS Queries (both responses and requests)
ID - A 16 bit identifier. This identifier is copied
the corresponding reply and can be used by the requester
to match up replies to outstanding queries.
A one bit field that specifies whether this message is a
query (0), or a response (1).
OPCODE - A four bit field that specifies kind of query in this
message. This value is set by the originator of a query
and copied into the response.
NsFlags - A combination of flag fields in the DNS header (|AA|TC|RD|RA|)
Response code - this 4 bit field is set as part of
responses only.
QDCOUNT - an unsigned 16 bit integer specifying the number of
entries in the question section.
ANCOUNT - an unsigned 16 bit integer specifying the number of
resource records in the answer section.
NSCOUNT - an unsigned 16 bit integer specifying the number of name
server resource records in the authority records
section.
ARCOUNT - an unsigned 16 bit integer specifying the number of
resource records in the additional records section.
QNAME - a domain name represented as a sequence of labels, where
each label consists of a length octet followed by that number of octets.
The domain name terminates with the zero length octet for the null label of the root.
Note that this field may be an odd number of octets; no padding is used
QTYPE - a two octet code which specifies the type of the query.
The values for this field include all codes valid for a
TYPE field, together with some more general codes which
can match more than one type of RR.
QCLASS - a two octet code that specifies the class of the query.
For example, the QCLASS field is IN for the Internet.
RFC 1035:
3.4.1. A RDATA format
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
where:
ADDRESS A 32 bit Internet address.
Hosts that have multiple Internet addresses will have multiple A
records.
A records cause no additional section processing. The RDATA section of
an A line in a master file is an Internet address expressed as four
decimal numbers separated by dots without any embedded spaces (e.g.,
"10.2.0.52" or "192.0.5.6").
The answer host address for the DNS A Record.
Represents structure of the email stored on the IMAP server.
You can use or methods to get the structure of the specified emails.
Gets UID of this message assigned by an IMAP server.
Gets message number assigned by an IMAP server.
Gets the object representing 'text/plain' body of this email message. May be null if no text/plain data is present.
You can use or to get the part's content.
Gets the object representing 'text/html' body of this email message. May be null if no HTML data is present.
You can use or to get the part's content.
Gets the object representing 'text/rtf' or 'application/rtf' body of this email message. May be null if no RTF data is present.
You can use or to get the part's content.
Gets the list of all visual elements in this email message.
E.g. Images embedded inside HTML email.
You can use or to get the part's content.
Gets the list of all non visual elements in this email message.
E.g. Attached data files.
You can use or to get the part's content.
Gets the list of alternative elements in this email message.
You can use or to get the part's content.
Gets the list of all attachments in this email message.
Including , and .
You can use or to get the part's content.
Gets the list of all structures representing appointments in this email message.
Gets the list of all structures representing vCards in this email message.
Default value for when no INLINE not ATTACHMENT is specified and NAME is there.
Identifies common folders using names and flags returned by or extensions
of method.
Inbox folder ( or name "INBOX").
AllMail folder ( or ).
Drafts folder ().
Important folder ().
Sent folder ().
Spam folder (, ).
Flagged folder ( or ).
Trash folder ().
Important folder ().
Initializes a new instance of the CommonFolders object.
Folder list returned by .
Initializes a new instance of the CommonFolders object.
Folder list returned by .
Specifies if folders should be also recognized by using its names. Default is true.
Finds folder with specified flag.
Flag to search for.
Folder having the specified flag.
Finds folder with specified flag.
Flag to search for.
Folder having the specified flag.
Returns all folders.
List of all folders.
Represents how parentheses are used in genereted query.
You can find more details here: IMAP search requires parentheses.
Don't use parentheses at all. This setting may lead to incorrect query being generated.
Parentheses are always used (this affects , , )
Parentheses are used only when nested is used. This is the default setting.
Represents combined information about envelope (subject, from to, ...) and structure (attachments) of the email stored on the IMAP server.
You can use or
methods to get MessageInfos for specified emails.
Gets UID of this message assigned by an IMAP server.
Gets message number assigned by an IMAP server.
Gets object representing raw data received from the IMAP server.
Gets the subject of the message ('Subject' header).
Gets or sets parent message id of the message ('In-Reply-To' header).
Without surrounding brackets (< and >)
Gets or sets id of the message ('Message-ID' header).
Without surrounding brackets (< and >)
Gets the send date of the message ('Date' header).
Gets the author(s) of the message ('From' header).
Gets mailbox of the agent responsible for the actual transmission ('Sender' header).
If 'Sender' is empty you should use property.
'Sender' field is not required if 'From' property contains only one .
'Sender' property is filled when message is from more than one person ('From' contains more than one mailbox).
In such case it is needed to provide information which mailbox is responsible for the actual transmission.
Gets 'Reply-to' field, mailbox(es) to which the author of the message suggests that replies be sent.
Gets 'To' field, address(es) of the primary recipient(s) of the message.
Gets the addresses of others who are to receive the message,
even tough the content of the message may not be directed at them ('CC', Carbon Copy header).
Gets the addresses of others who are to receive the message ('BCC', Blind Carbon Copy header),
tough the content of the message may not be directed at them.
This collection can be modified.
May be empty.
Gets a string representing the internal date of the message (INTERNALDATE).
Gets the internal date of the message (INTERNALDATE).
May be null in case of parsing error.
Gmail provides a thread ID (X-GM-THRID) to associate groups of messages in the same manner as in the Gmail web interface.
The thread ID is a 64-bit unsigned integer.
This property is set only if server advertises extension support.
Gmail provides a unique message ID (X-GM-MSGID) for each email so that a unique message may be identified across multiple folders.
The message ID is a 64-bit unsigned integer.
This property is set only if server advertises extension support.
Size of the message.
Represents expressions that can be used by or methods.
To join several criteria use or .
Creates criterion to find all messages.
New expression.
Creates criterion to find messages that contain the specified string in the envelope structure's SUBJECT field.
Subject fragment to search for.
New expression.
Creates conjunction between expressions (AND).
Criteria to AND.
New expression.
Creates disjunction between two expressions (OR).
First expression.
Second expression.
New expression.
Creates criterion to find messages with UIDs within the specified range.
UID range.
New expression.
List<long> uids = imap.Search().Where(Expression.UID(Range.From(1024)));
Creates criterion to find messages that contain the specified string in the envelope structure's FROM field.
Address to match.
New expression.
Creates criterion to find messages that contain the specified string in the envelope structure's TO field.
Address to match.
New expression.
Creates criterion to find messages that contain the specified string in the envelope structure's CC field.
Address to match.
New expression.
Creates criterion to find messages that contain the specified string in the envelope structure's BCC field.
Address to match.
New expression.
Creates criterion to find messages that do not match the specified search key.
Criterion that must not be matched.
New expression.
Creates criterion to find messages that have specified flag set.
Flag that should be set.
New expression.
Exchange 2007 and 2010 do not support custom flags (keywords).
Creates criterion to find messages that contain the specified string in the body of the message.
Body fragment to search for.
New expression.
Creates criterion to find messages that contain the specified string in the header or body of the message.
Header or Body fragment to search for.
New expression.
Creates criterion to find messages with an [RFC-2822] size larger than the specified number of octets.
Size to match.
New expression.
Creates criterion to find messages with an [RFC-2822] size smaller than the specified number of octets.
Size to match.
New expression.
Creates criterion to find messages whose internal date (disregarding time and timezone) is within the specified date.
In other words, "ON 13-APR-2000" means messages with an INTERNALDATE text which starts with "13-APR-2000",
even if timezone differential from the local timezone is sufficient to move that INTERNALDATE into the previous or next day.
Date to match.
New expression.
Creates criterion to find messages whose [RFC-2822] Date: header (disregarding time and timezone) is within the specified date.
Date to match.
New expression.
Creates criterion to find messages whose internal date (disregarding time and timezone), assigned by an IMAP server, is earlier than the specified date.
Date to match.
New expression.
Creates criterion to find messages whose [RFC-2822] Date: header (disregarding time and timezone) is earlier than the specified date.
Date to match.
New expression.
Creates criterion to find messages whose internal date (disregarding time and timezone), assigned by an IMAP server, is within or later than the specified date.
Date to match.
New expression.
Creates criterion to find messages whose [RFC-2822] Date: header (disregarding time and timezone) is within or later than the specified date.
Date to match.
New expression.
Creates criterion to find messages that have a header with the specified field-name (as defined in [RFC-2822]) and that contains the specified string
in the text of the header (what comes after the colon). 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.
Header name.
Header value.
New expression.
Creates criterion to find messages that have specified header.
Does not work with Exchange server.
Header name.
New expression.
Creates criterion to find messages with the specified keyword flag set.
Keyword that should be set.
New expression.
Exchange 2007 and 2010 do not support custom flags (keywords).
Creates criterion to find messages with specified Gmail message id (X-GM-MSGID).
This method can be used only if server advertises extension support.
Gmail's message id.
New expression.
Creates criterion to find messages with specified Gmail message id (X-GM-MSGID).
This method can be used only if server advertises extension support.
Gmail's message id.
New expression.
Creates criterion to find messages with specified Gmail thread id (X-GM-THRID).
This method can be used only if server advertises extension support.
Gmail's thread id.
New expression.
Creates criterion to find messages with specified Gmail thread id (X-GM-THRID).
This method can be used only if server advertises extension support.
Gmail's thread id.
New expression.
Creates criterion to find messages with specified Gmail thread id (X-GM-THRID).
This method can be used only if server advertises extension support.
Gmail's raw search string (e.g. "has:attachment in:unread").
New expression.
Creates criterion to find messages with specified Gmail label (X-GM-LABELS).
This method can be used only if server advertises extension support.
Gmail's label (e.g. @"\Inbox", "Important", "my label").
New expression.
Creates criterion to find messages, that have a message-id header,
that contains specified value (contains the specified string in the text of the header).
If the string to search is zero-length, this matches all messages that have a Message-ID header name regardless of the contents.
Some servers (Yahoo) require the search argument to be in exactly the same format, as the email header value.
It's incorrect behavior, but there is a workaround for it: you can use collection:
IMail email = ...
Expression.MessageId(email.Headers["Message-ID"])
Message id.
New expression.
Represents flag used by IMAP protocol to mark email messages.
Static fields represent most common, system flags.
You can use and to set or remove a flag.
Exchange 2007 and 2010 do not support custom flags (keywords).
Gets \ALL flag. It repesents all messages in the mailbox.
Gets \SEEN flag. Message has been read.
Gets \NEW flag. It represents messages that have the flag set but not the flag. This is functionally equivalent to "(\RECENT \UNSEEN)".
Gets \RECENT flag (don't confuse it with ). Message is "recently" arrived in this mailbox.
This session is the first session to have been notified about this message;
if the session is read-write, subsequent sessions will not see \Recent set for this message.
This flag can not be altered by the client.
Gets \OLD flag. It represents messages that do not have the flag set.
This is functionally equivalent to "NOT \RECENT" (as opposed to "NOT \NEW").
Gets \DRAFT flag. Message has not completed composition (marked as a draft).
Gets \DELETED flag. Message is "deleted" for removal by later EXPUNGE.
Gets \FLAGGED flag. Message is "flagged" for urgent/special attention.
Gets \ANSWERED flag. Message has been answered.
Gets \UNSEEN flag. It represents messages that do not have the flag set.
Gets \UNANSWERED flag. It represents messages that do not have the flag set.
Gets \UNDELETED flag. It represents messages that do not have the flag set.
Gets \UNDRAFT flag. It represents messages that do not have the flag set.
Gets \UNFLAGGED flag. It represents messages that do not have the flag set.
Gets \* flag. It indicates, that it is possible to create new keywords by attempting to store those flags in the mailbox ().
You can use or to do so.
Gets $MDNSent flag. It indicates if Message Disposition Notification (MDN) was sent for particular message.
You can use to check if server supports $MDNSent.
Gets the keyword that specifies that the message was resent to another email address, embedded within or attached to a new message.
This keyword is set by the mail client when it successfully forwards the message to another email address.
Gets the keyword that designates the message as awaiting to be submitted.
This keyword allows storing messages waiting to be submitted in the same mailbox
where messages that were already submitted and/or are being edited are stored.
A message that has both $Submitted and $SubmitPending IMAP keywords set is a message being actively submitted.
Gets the keyword that designates the message as being sent out.
A message that has both $Submitted and $SubmitPending IMAP keywords set is a message being actively submitted.
Gets information if this is a system flag. All system flags begin with "\" character.
Gets the name of this flag. E.g. SEEN, UNFLAGGED.
Gets the full name of this flag. This property includes backslash for system flags E.g. \SEEN, \UNFLAGGED, MYFLAG.
Creates new instance of the Flag object with specified name.
Name of the flag.
Determines whether the specified object is equal to the current one.
Names are compared case insensitive.
The to compare with the current true if the specified object is equal to the current object; otherwise, false.
Determines whether the specified object is equal to the current object.
Names are compared case insensitive.
The object to compare with the current object.
true if the specified object is equal to the current object; otherwise, false.
Serves as a hash function for a particular type.
A hash code for the current .
Determines whether two objects are equal.
First object to compare.
Second object to compare.
if the specified objects are equal; otherwise, .
Determines whether two objects are not equal.
First object to compare.
Second object to compare.
if the specified objects are not equal; otherwise, .
Returns property.
property.
Represents IMAP search query. You can use method to create this object.
is default, use method to change the result type.
Sets the result type (message numbers or UIDs) of this search query.
Result type.
This search query object.
Sets the parentheses mode to use when rendering lists.
Parentheses mode.
This search query object.
Forces the use of specified encoding. Some servers do not support this feature.
This method has no effect when server supports UTF8=ACCEPT.
Search parameters encoding.
This search query object.
Forces the client not to use CHARSET command.
Some servers (e.g. Exchange 2007) fail to understand CHARSET command.
This search query object.
Adds where condition to this search.
Use and other methods to create a valid search query.
You can also pass to this method.
Search criteria.
This search query object.
Adds sort criteria to this search.
Use and other class properties to create a valid sort expression.
Not all servers support . You can check which extensions remote server supports using method.
Sort criteria.
This search query object.
Issues the search query and retrieves UIDs or message numbers of messages, that match the search criteria, using server-side searching.
List of UIDs or numbers.
Issues the search query and retrieves UIDs or message numbers of messages, that match the search criteria, using server-side searching.
Search query.
List of UIDs or numbers.
Represents IMAP threading query. You can use method to create this object.
is default, use method to change the result type.
Sets threading method. You can use method to get all methods supported by remote server.
Threading method remote server should use.
This threading query object.
Sets the result type (message numbers or UIDs) of this threading query.
Result type.
This threading query object.
Forces the use of specified encoding.
Search parameters encoding.
This threading query object.
Adds search criteria to this threading query.
Use and other methods to create a valid search query.
You can also pass to this method.
Search criteria. Use to join several criterions.
This threading query object.
Issues the threading query and retrieves results, that match the search criteria, using server-side threading.
List of message threads.
Issues the threading query and retrieves results, that match the search criteria, using server-side threading.
Threading query.
List of message threads.
Represents flag used by IMAP protocol to mark folders.
Static fields of this class represent most common flags (e.g. , , ...).
"\Inbox" flag used by XLIST command.
"\AllMail" flag used by XLIST command.
"\Important" flag used by XLIST command.
"\Spam" flag used by XLIST command.
"\Starred" flag used by XLIST command.
This folder presents all messages in the user's message store (\All).
Implementations MAY omit some messages, such as, perhaps, those in \Trash and \Junk.
When this special use is supported, it is almost certain to represent a virtual folder.
This folder is used to archive messages (\Archive).
The meaning of an "archival" folder is server-dependent; typically, it will be used to get messages out of the inbox,
or otherwise keep them out of the user's way, while still making them accessible.
This folder is used to hold draft messages - typically, messages that are being composed but have not yet been sent (\Drafts).
In some server implementations, this might be a virtual folder,
containing messages from other folders that are marked with the message flag.
Alternatively, this might just be advice that a client put drafts here.
This folder presents all messages marked in some way as "important" (\Flagged).
When this special use is supported, it is likely to represent a virtual folder collecting messages (from other folders)
that are marked with the "\Flagged" message flag.
This folder is where messages deemed to be junk mail are held (\Junk).
Some server implementations might put messages here automatically.
Alternatively, this might just be advice to a client-side spam filter.
This folder is used to hold copies of messages that have been sent (\Sent).
Some server implementations might put messages here automatically.
Alternatively, this might just be advice that a client save sent messages here.
This folder is used to hold messages that have been deleted or marked for deletion (\Trash).
In some server implementations, this might be a virtual folder, containing messages from other folders.
The presence of this attribute indicates that the folder has child folders that are accessible to the user (\HasChildren).
RFC 3348
The presence of this attribute indicates that the folder has NO child mailboxes that are accessible to the user.
If a folder has the attribute, the
attribute is redundant and SHOULD be omitted. (\HasNoChildren).
RFC 3348
It is not possible for any child levels of hierarchy to exist under this name;
no child levels exist now and none can be created in the future (\Noinferiors). This flag also implies .
It is not possible to use this name as a selectable folder (\Noselect).
Indicates that a folder name does not refer to an existing mailbox (\NonExistent). This flag also implies .
Indicates that a folder is remote folder. (\Remote).
Indicates that a folder is subscribed. (\Subscribed).
The folder has been marked as "interesting" by the server;
The folder probably contains messages that have been added since the last time the folder was selected -or-
has a non-zero RECENT message count. (\Marked).
The folder has been marked as "uninteresting" by the server;
The folder does not contain any additional messages since the last time the folder was selected -or-
has a zero RECENT message count. (\Unmarked).
Represents IMAP folder (mailbox) info.
INBOX name is case insensitive, all other names may be case sensitive.
Gets the full folder name.
Gets the name of the last (deepest) path level name.
Gets the folder path separator character.
Gets flags associated with this folder.
Gets the boolean value indicating, if this instance is INBOX folder.
Gets the parent of this folder.
Gets the direct sub folders of this folder.
Gets the value indicating if you can select this folder. (Searches for or flag)
Gets the value indicating if this folder has children.
or flag results in false, in true, null otherwise.
Returns folder name as sent by the server.
UTF7 encoded folder name.
Returns property.
property.
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes (<0),
follows (>0), or occurs in the same position (=0) in the sort order as the other object.
An object to compare with this instance.
A value that indicates the relative order of the objects being compared.
Indicates whether the current object is equal to another object of the same type.
true if the current object is equal to the parameter; otherwise, false.
An object to compare with this object.
Determines whether the specified object is equal to the current object.
The object to compare with the current object.
true if the specified object is equal to the current object; otherwise, false.
Serves as a hash function for a particular type.
A hash code for the current object.
Determines whether two objects are equal.
First object to compare.
Second object to compare.
if the specified objects are equal; otherwise, .
Determines whether two objects are not equal.
First object to compare.
Second object to compare.
if the specified objects are not equal; otherwise, .
Represents folder status: message counts, available flags.
Returned by , , , , , and updated be all other commands.
Represents event that is fired when object is updated.
Gets the name of the folder (mailbox).
Gets a boolean value indicating if the folder (mailbox) is read only.
Gets a boolean value indicating if custom flags (keywords) can be created in the folder (mailbox).
Internally it checks if collection contains .
Gets a boolean value indicating if ($MDNSent) is supported.
Internally it checks if collection contains or returns true.
Gets total message count in the folder (mailbox) (EXISTS).
Gets number of messages with flag set (RECENT).
Gets numbers of messages that have been permanently removed from the folder (mailbox).
Gets the unique identifier validity value.
Any change of unique identifiers between sessions MUST be detectable using the change of UIDVALIDITY.
If unique identifiers from an earlier session fail to persist in this session,
the UIDVALIDITY value MUST be greater than the one used in the earlier session.
Gets the next unique identifier value.
The next unique identifier value is the predicted value that will be assigned to a new message in the folder (mailbox).
Unless the unique identifier validity () also changes , the next unique identifier value
MUST NOT change unless new messages are added to the mailbox;
and the next unique identifier value
MUST change whenever new messages are added to the mailbox, even if those new messages are subsequently deleted.
The next unique identifier value is intended to provide a means for a client to determine whether
any messages have been delivered to the mailbox since the previous time it checked this value.
Gets the message sequence number of the first unseen message in the folder (OK [UNSEEN <n>])
If it's null client can not make any assumptions about the first unseen message, and needs to issue a with if it wants to find it.
Gets the list of flags available in the folder.
Gets the list of the known flags that can be change permanently.
Gets boolean value indicating if all flags are permanent (no PERMANENTFLAGS response received from the IMAP server).
Gets the list of server alerts (indicated by [ALERT] keyword).
Gets the value indicating that requests are being throttled.
In this case, your application should back off and perform fewer requests for that user.
The selected mailbox is supported by a mail store that does not support persistent UIDs; that is,
UIDVALIDITY will be different each time the mailbox is selected.
Consequently, APPEND or COPY to this mailbox will not return an APPENDUID or COPYUID response code.
Represents event arguments.
Represents Gmail labels associated with an email message.
Gets UID of this message assigned by an IMAP server.
Gets message number assigned by an IMAP server.
Gets Gmail labels associated with the specified message.
Represents IMAP search criteria.
Use one of the static methods to create classes implementing this interface (e.g. or ).
Renders current criteria object to specified command.
Command to render on.
Returns true if this criterion requires only ASCII characters to be rendered.
True if this criterion requires only ASCII characters to be rendered, false otherwise.
Represents client identification information used by ID command ()
Gets or sets name of the program.
Gets or sets version number of the program.
Gets or sets name of the operating system.
Gets or sets version of the operating system.
Gets or sets vendor of the program.
Gets or sets support URL for the program.
Gets or sets contact email for the program.
IMAP client implementation.
It allows listing, moving, copying, downloading, uploading and deleting emails from IMAP servers.
Default IMAP protocol port (143).
If you need to use different port please use port parameter in or method.
Default IMAP protocol over SSL port (993).
If you need to use different port please use port parameter in or method.
Gets or set the length of the generated unique command identifier.
Represents client information send to the server on connection using ID command ().
Gets the server greeting (initial response).
Gets the server ID information.
Gets the status of the currently selected folder.
Gets IMAP protocol configuration.
Initializes new instance of the Imap class.
Initializes new instance of the Imap class.
Address family.
Connects to IMAP server on port 143. Use when SSL connection is needed.
Target host name or IP address.
DNS resolving error, connection error.Initial error response.
Connects to IMAP server using SSL on port 993.
Target host name or IP address.
DNS resolving error, connection error.Initial error response.
Begins an asynchronous request for a remote server connection using .
The name or IP address of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server connection using .
The name or IP address of the remote server.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using and SSL.
The name or IP address of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using and SSL.
The name or IP address of the remote server.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Sends 'STARTTLS' command and initializes SSL connection (if required issues CAPABILITY command afterwards).
Not all servers support . You can check which extensions remote server supports using method.
Throws on error response.
Logs user in using best method available.
When no AUTH capability is found, this method switches to SSL () and tries again.
User's login.
User's password.
Throws on error response.
Logs user in using LOGIN command.
When LOGIN command is disabled by including the LOGINDISABLED capability this method tries to log-in using .
Unless SSL connection is used this method sends the password in clear text.
You can check which authentication methods remote server supports using method.
User's login.
User's password.
Throws on error response.
Sends PROXYAUTH command. Allows an authorised administrator to proxy into any user's mailbox.
PROXYAUTH is not a standard IMAP command and your server may reject it.
You can try in such case.
User mailbox to access.
This method does not switch to UseBestLogin when LOGINDISABLED is found.
Logs user in using AUTHENTICATE PLAIN command. This method sends the password in clear text (BASE64), unless SSL connection is used.
User's login.
User's password.
Throws on error response.
Logs user in using AUTHENTICATE PLAIN command. This method sends the password in clear text (BASE64), unless SSL connection is used.
User's login.
Administrator's user.
Administrator's password.
Throws on error response.
Logs user in using AUTHENTICATE CRAM-MD5 command. This method does NOT send the password in clear text.
You can check which authentication methods remote server supports using method.
User's login.
User's password.
This command is unnecessary if you are using SSL, use method instead.
Throws on error response.
Logs user in using AUTHENTICATE DIGEST-MD5 command. This method does NOT send the password in clear text.
You can check which authentication methods remote server supports using method.
User's login.
User's password.
Throws on error response.
Logs user in using AUTHENTICATE DIGEST-MD5 command. This method does NOT send the password in clear text.
You can check which authentication methods remote server supports using method.
User's login.
User's password.
Host and service name (host ["/" service-name]) part of digest-uri parameter, if null realm is used.
Throws on error response.
Logs user in using AUTHENTICATE XOAUTH command. This method does NOT send the password.
You can use class to create the key.
You can check which authentication methods remote server supports using method.
XOAuth key. The key will be encoded using BASE64. You can use method to create this key.
Throws on error response.
Logs user in using AUTHENTICATE XOAUTH2 command. This method does NOT send the password.
You can use DotNetOpenAuth to create the key.
You can check which authentication methods remote server supports using method.
User's login (email address).
OAuth 2.0 access token.
Throws on error response.
Sends LOGOUT command. Releases all resources acquired by this object.
Sends LOGOUT command. Releases all resources acquired by this object.
If true throws on error response to LOGOUT command.
Sends command and waits for the server response.
Most commands have their own specialized methods in this class, you should probably use them instead.
Command e.g. "NOOP".
Throws on error response.IMAP response object.
Sends command and waits for the server response.
Most commands have their own specialized methods in this class, you should probably use them instead.
Command e.g. "NOOP".
If true throws on error response.
IMAP response object.
Receives the response ending with specified request tag.
Request tag
IMAP response object.
Sends CAPABILITY command. Consider using , or methods as they are faster.
Throws on error response.Server's capability list.
Lists extensions supported by the remote server (e.g. , , )
Extensions supported by remote server.
Lists authentication methods supported by the remote server.
Authentication methods supported by remote server.
Lists threading methods supported by the remote server.
Authentication methods supported by remote server.
Gets quotas for specified folder.
Not all servers support , you can check which extensions remote server supports using method.
Folder name.
Quotas for specified folder.
Gets quotas for specified folder.
Not all servers support , you can check which extensions remote server supports using method.
Folder name.
Quotas for specified folder.
Gets quota with specified name.
Not all servers support , you can check which extensions remote server supports using method.
Name of the quota.
Quota with specified name.
Selects 'INBOX' as a current folder (mailbox) so that messages inside can be accessed.
Select command will remove the flag since the folder has now been viewed
(This is not the same as the IMAP flag).
Status of the folder (mailbox). It can be updated by subsequent commands or other commands.
Selects specified folder (mailbox) as the current folder so that messages inside can be accessed.
Select command will remove the flag since the folder has now been viewed
(This is not the same as the IMAP flag).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder name.
Status of the folder (mailbox). It can be updated by subsequent or other commands.
Selects specified folder (mailbox) as the current folder so that messages inside can be accessed.
Select command will remove the flag since the folder has now been viewed
(This is not the same as the IMAP flag).
If folder.Flags contain this method invokes method.
Folder to select.
Status of the folder (mailbox). It can be updated by subsequent or other commands.
Selects 'INBOX' as a current read-only folder (mailbox) so that messages inside can be accessed.
Examine command will not reset the flag
Status of the folder (mailbox).
Selects specified folder (mailbox) as the current read-only folder so that messages inside can be accessed.
Examine command will not reset the flag
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder name.
Status of the folder (mailbox).
Selects specified folder (mailbox) as the current read-only folder so that messages inside can be accessed.
Examine command will not reset the flag.
If folder.Flags contain this method invokes .
Folder name.
Status of the folder (mailbox).
The STATUS command requests the status of the indicated mailbox.
It does not change the currently selected mailbox, nor does it affect the state of any messages in the queried mailbox (messages don't lose the ) flag.
This command MUST NOT be used as a "check for new messages in the selected mailbox" operation
(You should rather use and or ) or ).
STATUS command is not guaranteed to be fast in its response.
Folder name.
Status information of the specified folder.
The STATUS command requests the status of the indicated mailbox.
It does not change the currently selected mailbox, nor does it affect the state of any messages in the queried mailbox (messages don't lose the ) flag.
This command MUST NOT be used as a "check for new messages in the selected mailbox" operation
(You should rather use and or ) or ).
STATUS command is not guaranteed to be fast in its response.
Folder name.
Status information of the specified folder.
Issues CLOSE command to the server.
Unless Examine was used to open folder, CLOSE command permanently removes all messages that have the flag set from the currently selected folder,
and returns to the authenticated state from the selected state (no folder is selected).
Creates new threading query.
List<> threads = imap.Thread(ThreadMethod.OrderedSubject).Where(Expression.Text("text"));
List<> threads = imap.Thread(ThreadMethod.OrderedSubject).Where(Expression.Text("text")).ResultAs();
Threading method that should be used.
New threading query.
Gets threaded messages, that match specified search criteria, using server-side threading.
Use , and other methods to create a valid search query.
Threading method that should be used.
Search criteria. Use to join several criterions.
List of message threads.
Gets threaded messages, that match specified search criteria, using server-side threading. Uses as method parameter.
Use , and other methods to create a valid search query.
Threading method that should be used.
Search criteria. Use to join several criterions.
List of message threads.
Gets UIDs of all messages in the current folder (mailbox) sorted from oldest to newest. Equivalent to Search(Expression.All()).
UID list sorted from oldest to newest.
Creates new search query.
List<long> uids = imap.Search().Where(Expression.Subject("report")).Sort(SortBy.Date());
List<long> numbers = imap.Search().Where(Expression.Header("Message-ID", "id")).ResultAs();
New search query.
Gets UIDS of all messages in the current folder (mailbox) with specified flag sorted from oldest to newest. Equivalent to Search(Expression.HasFlag(flag))
Flag to search for.
UID list sorted from oldest to newest.
Gets UIDS of all messages in the current folder (mailbox) with specified flag sorted from oldest to newest. Equivalent to Search(Expression.HasFlag(flag))
Flag to search for.
UID list sorted from oldest to newest.
Gets UIDS of all messages that match specified search criteria using server-side searching sorted from oldest to newest.
Use , and other methods to create a valid search query.
You can also pass to this method.
List<long> uids = imap.Search(Expression.And(Expression.Subject("report"), Expression.HasFlag(Flag.Unseen)));
Search criteria. Use to join several criterions.
UID list sorted from oldest to newest.
Gets numbers of all messages in the current folder (mailbox) with specified flag sorted from oldest to newest.
Equivalent to Search().Where(Expression.HasFlag(flag)).ResultsAs(ResultType.Numbers)
Flag to search for.
List of message numbers sorted from oldest to newest.
Gets numbers of all messages that match specified criteria sorted from oldest to newest.
Use , and other methods to create a valid search query.
You can also pass to this method.
List<long> uids = imap.SearchNumber(Expression.And(Expression.Subject("report"), Expression.HasFlag(Flag.Unseen)));
Search criteria. Use to join several criterions
List of message numbers sorted from oldest to newest.
Gets headers of the specified email message from server. Use class to create object. Does not set the .
Unique-id of the message to peek headers for.
Email message headers or null when is incorrect.
Gets headers of the specified email message from server. Use class to create object. Does not set the .
1 based message number.
Email message headers or null when is incorrect.
Gets all headers of the specified email messages from server. Use class to create object.
Does not set the .
Unique-ids of email messages to peek headers for.
List of message data objects containing message headers.
Gets all headers of the specified email messages from server. Use class to create object.
Does not set the .
1 based message numbers.
List of message data objects containing message headers.
Gets all headers of the specified email message from server. Use class to create object.
Unique-id of the message to get headers for.
Email message headers or null when is incorrect.
Gets all headers of the specified email message from server. Use class to create object.
1 based message number.
Email message headers or null when is incorrect.
Gets all headers of the specified email messages from server. Use class to create object.
Unique-ids of email messages to get headers for.
List of message data objects containing message headers.
Gets all headers of the specified email messages from server. Use class to create object.
1 based message numbers.
List of message data objects containing message headers.
Gets specific headers of the specified email message from server.
Unique-id of the message to get headers for.
Headers to get.
Message data object containing specific message headers or null when is incorrect.
Gets specific headers of the specified email message from server.
1 based message number.
Headers to get.
Message data object containing message headers or null when is incorrect.
Gets specific headers of the specified email messages from server.
Unique-ids of email messages to get headers for.
Headers to get.
List of message data objects containing specific messages headers.
Gets specific headers of the specified email messages from server.
1 based message numbers.
Headers to get.
List of message data objects containing specific messages headers.
Gets specific headers of the specified email message from server. Does not set the .
Unique-id of the message to peek headers for.
Headers to get.
Message data object containing specific message headers or null when is incorrect.
Gets specific headers of the specified email message from server. Does not set the .
1 based message number.
Headers to get.
Message data object containing message headers or null when is incorrect.
Gets specific headers of the specified email messages from server. Does not set the .
Unique-ids of email messages to peek headers for.
Headers to get.
List of message data objects containing specific messages headers.
Gets specific headers of the specified email messages from server. Does not set the .
1 based message numbers.
Headers to get.
List of message data objects containing specific messages headers.
Gets specified email message from server. This method in contrast to does not set the .
Use class to create object.
Unique-id of the message to peek.
Email message or null when is incorrect.
Gets specified email message from server. This method in contrast to does not set the .
Use class to create object.
1 based message number.
Email message or null when is incorrect.
Gets specified email message from server. Use class to create object.
This method sets the unless folder is selected with , or .
Unique-id of the message to get.
Email message or null when is incorrect.
Gets specified email message from server. Use class to create object.
This method sets the unless folder is selected with , or .
1 based message number.
Email message or null when is incorrect.
Gets message information for the specified message. Does not set the flag.
Unique-id of the message to get information for.
Message information (including and ) or null when is incorrect.
Gets message information for the specified message. Does not set the flag.
1 based message number.
Message information (including and ) or null when is incorrect.
Gets message information for specified email messages. Does not set the flag.
Unique-ids of email messages to get information for.
Message information (including and )
Gets message information for the specified email messages. Does not set the flag.
UID sequence of email messages to get information for.
Message information (including and )
Gets message information for the specified email messages. Does not set the flag.
1 based message numbers.
Message information (including and )
Gets message information for the specified email messages. Does not set the flag.
Number sequence of email messages to get information for.
Message information (including and )
Gets the envelope (, , ...)
of the specified email message. Does not set the flag.
Unique-id of the message to get envelope for.
Envelope information of the specified message or null when is incorrect.
Gets the envelope (, , ...)
of the specified email message. Does not set the flag.
1 based message number.
Envelope information of the specified message or null when is incorrect.
Gets the envelope (, , ...)
of the specified email messages. Does not set the flag.
Unique-ids of email messages to get envelope for.
Envelope information of the specified messages.
Gets the envelope (, , ...)
of the specified email messages. Does not set the flag.
UID sequence of email messages to get envelope for.
Envelope information of the specified messages.
Gets the envelope (, , ...)
of the specified email messages. Does not set the flag.
1 based message numbers.
Envelope information of the specified messages.
Gets the envelope (, , ...)
of the specified email messages. Does not set the flag.
Number sequence of email messages to get envelope for.
Envelope information for specified messages.
Gets the structure of the specified message.
Unique-id of the message to get structure for.
Structure of the specified message or null when is incorrect.
Gets the structure of the specified message. Does not set the flag.
1 based message number.
Structure of the specified message or null when is incorrect.
Gets the structure of the specified email messages. Does not set the flag.
Unique-ids of email messages to get structure for.
Structure of the specified messages.
Gets the structure of the specified email messages. Does not set the flag.
UID sequence of email messages to get structure for.
Structure of the specified messages.
Gets the structure of the specified email messages. Does not set the flag.
1 based message numbers.
Structure of the specified messages.
Gets the structure of the specified email messages. Does not set the flag.
Number sequence of email messages to get structure for.
Structure of the specified messages.
Gets MIME headers for specified MIME entity using .
MIME entity to get headers for.
Headers of the requested MIME entity. You can use to parse them.
Gets MIME headers for specified MIME entity using .
MIME entity to get headers for.
Headers of the requested MIME entity. You can use to parse them.
Peeks MIME headers for specified MIME entity using .
MIME entity to get headers for.
Headers of the requested MIME entity. You can use to parse them.
Peeks MIME headers for specified MIME entity using .
MIME entity to get headers for.
Headers of the requested MIME entity. You can use to parse them.
Gets data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Gets data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Gets data of the specified part using .
Fills and in case of .
List of MIME entity to get data for.
Gets data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Gets data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Gets data of the specified part using .
Fills and in case of .
List of MIME entity to get data for.
Gets text data of the specified part using . Fills .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Gets text data of the specified part using . Fills .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Gets text data of the specified part using . Fills .
List of MIME entity to get data for.
Gets text data of the specified part using . Fills .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Gets text data of the specified part using . Fills .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Gets text data of the specified part using . Fills .
List of MIME entity to get data for.
Peeks data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Peeks data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Peeks data of the specified part using .
Fills and in case of .
List of MIME entity to get data for.
Peeks data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Peeks data of the specified part using .
Fills and in case of .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Peeks data of the specified part using .
Fills and in case of .
List of MIME entity to get data for.
Peeks text data of the specified part using . Fills .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Peeks text data of the specified part using . Fills .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Peeks text data of the specified part using . Fills .
List of MIME entity to get data for.
Peeks text data of the specified part using . Fills .
MIME entity to get data for.
Part's data -or- null if server responds with NIL response.
Peeks text data of the specified part using . Fills .
MIME entity to get data for.
Number of bytes (decoded) to get.
Part's data -or- null if server responds with NIL response.
Peeks text data of the specified part using . Fills .
List of MIME entity to get data for.
Gets flags for the specified email message from server. Does not set the .
Unique-id of the message to get flags for.
List containing flags of the specified message or null when is incorrect.
Gets flags for the specified email message from server. Does not set the .
1 based message number.
List containing flags of the specified message or null when is incorrect.
Gets flags for the specified email messages from server. Does not set the .
Unique-ids of email messages to get flags for.
List containing flags of the specified messages.
Gets flags for the specified email messages from server. Does not set the .
UID sequence of email messages to get flags for.
List containing flags of the specified messages.
Gets flags for the specified email messages from server. Does not set the .
1 based message numbers.
List containing flags of the specified messages.
Gets flags for the specified email messages from server. Does not set the .
Number sequence of email messages to get flags for.
List containing flags of the specified messages.
Flags the message with specified flag.
Unique-id of the message to flag.
Flag to be added. For specifying system flags you can use static fields e.g. .
List containing flags of the specified message after the change or null when is incorrect.
You can use to check, if selected folder supports custom flags.
Exchange 2007 and 2010 do not support custom flags (keywords).
Flags the message with specified flag.
1 based message number.
Flag to be added. For specifying system flags you can use static fields e.g. .
List containing flags of the specified message after the change or null when is incorrect.
You can use to check, if selected folder supports custom flags.
Exchange 2007 and 2010 do not support custom flags (keywords).
Flags email messages with specified flag.
Unique-ids of email messages to flag.
Flag to be added. For specifying system flags you can use static fields e.g. .
List containing flags of the specified messages after the change.
You can use to check, if selected folder supports custom flags.
Exchange 2007 and 2010 do not support custom flags (keywords).
Flags email messages with specified flag.
1 based message numbers.
Flag to be added. For specifying system flags you can use static fields e.g. .
List containing flags of the specified messages after the change.
You can use to check, if selected folder supports custom flags.
Exchange 2007 and 2010 do not support custom flags (keywords).
Removes specified flag from the message.
Unique-id of the message to remove flag from.
Flag to be removed. For specifying system flags you can use static fields e.g. .
List containing flags of the specified message after the change or null when is incorrect.
Removes specified flag from the message.
1 based message number.
Flag to be removed. For specifying system flags you can use static fields e.g. .
List containing flags of the specified message after the change or null when is incorrect.
Removes specified flag from messages.
Unique-ids of email messages to remove flag from.
Flag to be removed. For specifying system flags you can use static fields e.g. .
List containing flags of the specified messages after the change.
Removes specified flag from messages.
1 based message number.
Flag to be removed. For specifying system flags you can use static fields e.g. .
List containing flags of the specified messages after the change.
Flags message with flag.
Unique-id of the message.
List containing flags of the specified message after the change or null when is incorrect.
Flags message with flag.
1 based message number.
List containing flags of the specified message after the change or null when is incorrect.
Flags message with flag.
Unique-ids of the messages.
List containing flags of the specified messages after the change.
Flags message with flag.
1 based message numbers.
List containing flags of the specified messages after the change.
Removes flag from the message.
Unique-id of the message.
List containing flags of the specified message after the change or null when is incorrect.
Removes flag from the message.
1 based message number.
List containing flags of the specified message after the change or null when is incorrect.
Removes flag from the message.
Unique-ids of the messages.
List containing flags of the specified messages after the change.
Removes flag from the message.
1 based message numbers.
List containing flags of the specified messages after the change.
Gets Gmail labels for the specified email message from server. Does not set the .
You can label message using method.
Unique-id of the message to get Gmail labels for.
List containing Gmail labels of the specified message or null when is incorrect.
Gets Gmail labels for the specified email message from server. Does not set the .
1 based message number.
List containing Gmail labels of the specified message or null when is incorrect.
Gets Gmail labels for the specified email messages from server. Does not set the .
Unique-ids of email messages to get Gmail labels for.
List containing Gmail labels of the specified messages.
Gets Gmail labels for the specified email messages from server. Does not set the .
1 based message numbers.
List containing Gmail labels of the specified messages.
Labels email messages with specified label.
Unique-ids of email messages to label.
Label to be added.
List containing Gmail labels of the specified messages.
Labels email messages with specified label.
1 based message numbers.
Label to be added.
List containing Gmail labels of the specified messages.
Labels email messages with specified labels.
Unique-ids of email messages to label.
Labels to be added.
List containing Gmail labels of the specified messages.
Labels email messages with specified labels.
1 based message numbers.
Labels to be added.
List containing Gmail labels of the specified messages.
Labels the message with specified label.
Unique-id of the message to label.
Label to be added.
List containing Gmail labels of the specified message or null when is incorrect.
Labels the message with specified label.
1 based message number.
Label to be added.
List containing Gmail labels of the specified message or null when is incorrect.
Labels the message with specified labels.
Unique-id of the message to label.
Labels to be added.
List containing Gmail labels of the specified message or null when is incorrect.
Labels the message with specified labels.
1 based message number.
Labels to be added.
List containing Gmail labels of the specified message or null when is incorrect.
Removes specified label from the message.
Unique-id of the message to remove specified label from.
Label to be removed.
List containing Gmail labels of the specified message or null when is incorrect.
Removes specified label from the message.
1 based message number.
Label to be removed.
List containing Gmail labels of the specified message or null when is incorrect.
Removes specified label from messages.
Unique-ids of email messages to remove specified label from.
Label to be removed.
List containing Gmail labels of the specified messages.
Removes specified label from messages.
1 based message number.
Label to be removed.
List containing Gmail labels of the specified messages.
Deletes message specified by the . Issues EXPUNGE command after.
Unique-id of the message to flag.
Deletes message specified by the . Issues EXPUNGE command after.
1 based message number.
Deletes message specified by the . Issues EXPUNGE command after.
Unique-ids of email messages to flag.
Deletes messages specified by the . Issues EXPUNGE command after.
1 based message numbers.
Copies the specified email message to the specified destination folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Unique-id of the message.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied message, if the server supports , null otherwise.
Copies the specified email message to the specified destination folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
1 based message number.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied message, if the server supports , null otherwise.
Copies the specified email message to the specified destination folder (mailbox).
Unique-id of the message.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied message, if the server supports , null otherwise.
Copies the specified email message to the specified destination folder (mailbox).
1 based message number.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied message, if the server supports , null otherwise.
Copies the specified email messages to the specified destination folder (mailbox).
Unique-ids of the messages.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied/moved messages, if the server supports , empty otherwise.
Copies the specified email messages to the specified destination folder (mailbox).
1 based message numbers.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied messages, if the server supports , empty otherwise.
Copies the specified email messages to the specified destination folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Unique-ids of the messages.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied messages, if the server supports , empty otherwise.
Copies the specified email messages to the specified destination folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
1 based message numbers.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied messages, if the server supports , empty otherwise.
Moves the specified email message to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
Unique-id of the message.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied/moved message, if the server supports , null otherwise.
Moves the specified email message to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
1 based message number.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied/moved message, if the server supports , null otherwise.
Moves the specified email message to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
IMAP servers may differ in the separator character used in mailbox folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Unique-id of the message.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied/moved message, if the server supports , null otherwise.
Moves the specified email message to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
IMAP servers may differ in the separator character used in mailbox folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
1 based message number.
Destination folder (mailbox).
Newly assigned unique-id (UID) of the copied/moved message, if the server supports , null otherwise.
Moves the specified email messages to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
IMAP servers may differ in the separator character used in mailbox folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Unique-ids of the messages.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied/moved messages, if the server supports , empty otherwise.
Moves the specified email messages to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
IMAP servers may differ in the separator character used in mailbox folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
1 based message numbers.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied/moved messages, if the server supports , empty otherwise.
Moves the specified email messages to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
Unique-ids of the messages.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied/moved messages, if the server supports , empty otherwise.
Moves the specified email messages to the specified destination folder (mailbox). Uses copy and delete, if is unavailable.
1 based message numbers.
Destination folder (mailbox).
Newly assigned unique-ids (UIDs) of the copied messages, if the server supports , empty otherwise.
Lists all namespaces available for this user.
Not all servers support . You can check which extensions remote server supports using method.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder list.
Subscribes user to specified folder.
Folder name to subscribe to.
Subscribes user to specified folder.
Folder name to subscribe to.
Unsubscribes user from specified folder.
Folder name to unsubscribe from.
Unsubscribes user from specified folder.
Folder name to unsubscribe from.
Lists all folders (mailboxes) user is subscribed to.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder list.
Lists folders (mailboxes) user is subscribed to, starting from specified folder.
Parent folder (mailbox) to start search from.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder list.
Lists folders (mailboxes) user is subscribed to, starting from specified folder.
Parent folder (mailbox) to start search from.
Folder list.
Lists all folders (mailboxes) starting from root.
Folders starting with '#' are usually shared between users. You can use to obtain information about shared folders.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder list.
Lists all folders (mailboxes) starting from root.
Folders starting with '#' are usually shared between users. You can use to obtain information about shared folders.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Sub folder level to download.
Folder list.
Lists all folders (mailboxes) under specified folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Parent folder (mailbox) to start search from.
Folder list.
Lists all folders (mailboxes) under specified folder (mailbox).
Parent folder (mailbox) to start search from.
Folder list.
Lists all folders (mailboxes) under specified folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Parent folder (mailbox) to start search from.
Indicates how many sub folder levels should be downloaded.
Folder list.
Lists all folders (mailboxes) under specified folder (mailbox).
Parent folder (mailbox) to start search from.
Indicates how many sub folder levels should be downloaded.
Folder list.
Creates a folder (mailbox) with the given name.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder name.
Permanently removes a folder (mailbox) with the given name.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
The DELETE command MUST NOT remove inferior hierarchical names. For example, if a mailbox "foo" has an inferior "foo.bar"
(assuming "." is the hierarchy delimiter character), removing "foo" MUST NOT remove "foo.bar".
It is an error to attempt to delete a name that has inferior hierarchical names and also has the \Noselect mailbox name attribute.
It is permitted to delete a name that has inferior hierarchical names and does not have the \Noselect mailbox name attribute.
In this case, all messages in that mailbox are removed, and the name will acquire the \Noselect mailbox name attribute.
Folder name.
Permanently removes a folder (mailbox) with the given name.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
The DELETE command MUST NOT remove inferior hierarchical names. For example, if a mailbox "foo" has an inferior "foo.bar"
(assuming "." is the hierarchy delimiter character), removing "foo" MUST NOT remove "foo.bar".
It is an error to attempt to delete a name that has inferior hierarchical names and also has the \Noselect mailbox name attribute.
It is permitted to delete a name that has inferior hierarchical names and does not have the \Noselect mailbox name attribute.
In this case, all messages in that mailbox are removed, and the name will acquire the \Noselect mailbox name attribute.
Folder name.
Changes the name of a folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Existing folder name.
New folder name.
Changes the name of a folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Existing folder name.
New folder name.
Lists folder tree roots starting from root.
In contrast to GetFolders method only roots are returned. You can use to access sub folders.
Indicates how many sub folder levels should be downloaded.
Folder tree roots (use to access sub folders).
Lists folder tree roots starting from specified folder (mailbox).
In contrast to GetFolders method only roots are returned. You can use to access sub folders.
Parent folder (mailbox) to start search from.
Indicates how many sub folder levels should be downloaded.
Folder tree roots (use to access sub folders).
Lists folder tree roots starting from specified folder (mailbox).
In contrast to GetFolders method only roots are returned. You can use to access sub folders.
Parent folder (mailbox) to start search from.
Indicates how many sub folder levels should be downloaded.
Folder tree roots (use to access sub folders).
Permanently removes all sub folders and folder (mailbox) with the given name.
Folder name to remove.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Permanently removes all sub folders and folder (mailbox) specified.
Folder to remove.
Uploads message to specified folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder to upload.
Message to upload.
Additional message information (e.g. flags, internal date, Gmail labels).
Unique-id of the uploaded message (Null if server does not support ).
Uploads message to specified folder (mailbox). Uploaded message has set.
Internal date of the resulting message is set to the current date and time.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder name to upload to.
Message to upload.
Unique-id of the uploaded message (Null if server does not support ).
Uploads message to specified folder (mailbox). Uploaded message has set.
Internal date of the resulting message is set to the current date and time.
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Unique-id of the uploaded message (Null if server does not support ).
Folder name to upload to.
Message to upload.
Uploads specified email message to the specified folder (mailbox).
IMAP servers may differ in the separator character used in folder hierarchy paths.
Common separator chars are '.' and '/'. For example: "Inbox/Folder" or "Inbox.Folder".
Folder to upload.
Message to upload.
Additional message information (e.g. flags, internal date, Gmail labels).
Unique-id of the uploaded message (Null if server does not support ).
Uploads specified email message to the specified folder (mailbox). Uploaded message has set.
Internal date of the resulting message is set to the current date and time.
Folder to upload to.
Message to upload.
Unique-id of the uploaded message (Null if server does not support ).
Uploads message to specified folder (mailbox). Uploaded message has set.
Internal date of the resulting message is set to the current date and time.
Unique-id of the uploaded message (Null if server does not support ).
Folder to upload to.
Message to upload.
Uploads message to specified folder (mailbox).
Folder to upload.
Message to upload.
Additional message information (e.g. flags, internal date).
Unique-id of the uploaded message (Null if server does not support ).
Uploads message to specified folder (mailbox).
Folder to upload.
Message to upload.
Additional message information (e.g. flags, internal date).
Unique-id of the uploaded message (Null if server does not support ).
Uploads specified email message to the current folder (mailbox). Uploaded message has set.
Internal date of the resulting message is set to the current date and time.
Message to upload.
Unique-id of the uploaded message (Null if server does not support ).
Uploads specified email message to the current (mailbox). Uploaded message has set.
Internal date of the resulting message is set to the current date and time.
Unique-id of the uploaded message (Null if server does not support ).
Message to upload.
Uploads specified email message to the current (mailbox).
Message to upload.
Additional message information (e.g. flags, internal date).
Unique-id of the uploaded message (Null if server does not support ).
Uploads specified email email message to the current (mailbox).
Message to upload.
Additional message information (e.g. flags, internal date).
Unique-id of the uploaded message (Null if server does not support ).
Sends IDLE command.
This method hangs until server announces new event in current folder or until command is issued.
Not all servers support . You can check which extensions remote server supports using method.
New folder status.
Sends IDLE command.
This method hangs until server announces new event in current folder or until command is issued.
Not all servers support . You can check which extensions remote server supports using method.
Specifies the timeout after which IDLE command is reissued (this prevents server from disconnecting).
New folder status.
Stops IDLE command started by or method.
This method is thread-safe.
Sends NOOP command to the server. It does nothing and always succeeds.
Can be used as a periodic poll for new messages - updates returned by last , command.
Can also be used to reset any inactivity auto-logout timer on the server.
Throws on error response.
Turns compression on. Uses deflate algorithm.
Represents authentication methods supported by the remote server.
You can use method to obtain the list of all methods supported by the remote server.
AUTH=LOGIN authentication method.
AUTH=PLAIN authentication method.
AUTH=CRAM-MD5 authentication method.
AUTH=DIGEST-MD5 authentication method.
AUTH=XOAUTH authentication method.
AUTH=XOAUTH2 authentication method.
AUTH=NTLM authentication method.
AUTH=GSSAPI authentication method.
Represents IMAP AUTH extension.
Authentication method.
Represents configuration.
Gets or sets a value indicating if mailbox (folder) names should be always quoted.
Default is false. Coremail servers default is true.
Gets or sets a value indicating if mailbox (folder) containing double quotes should use literals.
Default is false. Exchange servers default is true.
Gets or sets a value indicating \r\n isa always concatenated when sending data to server, so it is written in a single write operation.
Default is false. Yahoo servers default is true.
Gets or sets value indicating if AUTHENTICATE command should be retried without initial response on failure.
Default is true.
Gets or sets the boolean value indicating if AUTHENTICATE command should be used without initial response only.
Default is false.
Gets or sets text encoding used when providing credentials.
Represents extensions supported by the remote server.
You can use method to obtain the list of all extensions supported by the remote server.
Represents IMAP4rev1 extension.
Represents IDLE extension. You can use or to wait for mailbox changes.
(RFC 2177)
Represents UIDPLUS extension. You can use return value of , , copy and move methods.
(RFC 4315)
Represents XLIST extension. You can class to get common folder names (e.g. Spam, Sent items).
Represents SORT extension. You can use to sort search results.
(RFC 5256)
Represents AUTH extension. You can use to obtain all authentication methods supported by the remote server.
Represents STARTTLS extension. You can use to secure the connection.
(RFC 2595)
is disabled.
is going to invoke method.
(RFC 2595)
Represents NAMESPACE extension. You can use method.
(RFC 2342)
Represents QUOTA extension. You can use and methods.
(RFC 2087).
Represents Gmail X-GM-EXT-1 extensions: X-GM-RAW, X-GM-MSGID, X-GM-THRID, X-GM-LABELS.
,
(http://code.google.com/apis/gmail/imap/)
Represents ID extension.
(RFC 2971)
Represents SASL-IR (SASL initial client response) extension.
Servers that support this extension will accept an optional initial client response with the AUTHENTICATE command for any SASL mechanisms which support it.
(RFC 4959)
Represents SPECIAL-USE extension.
Servers that support this extension will return new folder flags identifying Special-Use folders.
(RFC 6154)
Represents MOVE extension. Allows using MOVE command for and methods.
(RFC 6851)
Represents ESEARCH extension. Extension to SEARCH command for controlling what kind of information is returned.
(RFC 4731)
Represents MULTISEARCH extension. Extension to SEARCH command for multi-folder (multi-mailbox) searching.
(RFC 6237)
Represents COMPRESS extension.
Servers that support this extension allow communication compression. You can turn compression on by using method.
(RFC 4959)
Represents UTF8 extension.
(RFC 6855)
Represents an IMAP server error response, that contains REFERRAL information.
Gets IMAP URL from REFFERAL response code.
Gets the server address extracted from IMAP URL from REFFERAL response code.
Initializes new instance of ImapResponseException with serialized data.
Serialized object data.
Contextual information.
Represents IMAP server response.
Gets the status line (including , and ) e.g.: "A0001 OK LOGOUT completed".
Gets tag expected for this response.
Gets the information if server uses UTF8 encoding.
True means that, for example, UTF7 decoding shouldn't performed on folder names.
Gets status of this response.
Gets response message (without and ) e.g.: "LOGOUT completed".
Gets all lines of the response except the status line as strings.
Gets all lines of the response except the status line.
Gets additional response enclosed in square brackets e.g. "BADCHARSET (US-ASCII)".
Returns a string that represents the current .
A string that represents the current .
Represents an IMAP server error response.
Gets IMAP server response that caused this exception to be thrown.
Initializes new instance of ImapResponseException with serialized data.
Serialized object data.
Contextual information.
Represents a status of a .
Negative status ("NO" response).
Positive status ("OK" response).
Error status ("BAD" response).
Requires more data status ("+" response).
BYE response received, server failure occured, connection was closed by the server ("* BYE" response).
PREAUTH response received, possible only at connection startup greeting.
It indicates that the connection has already been authenticated by external means
Represents IMAP SORT extension.
SORT version.
Represents IMAP THREAD extension.
Authentication method.
Represents IMAP UTF8 extension.
UTF8 support version.
Represents UTF8 support version supported by the remote server.
AUTH=ONLY authentication method.
AUTH=ACCEPT authentication method.
This class is for internal use only. Please do not use this class directly.
Represents IMAP sort criteria.
Renders current sorter object to specified command list.
Command list to render on.
Represents data for specific message downloaded from IMAP server.
You can use on to create object.
Gets the UID of the message on the IMAP server.
Gets the message number on the IMAP server.
Eml data requested. You can use on this property to create object.
Represents flags associated with an email message..
Gets UID of this message assigned by an IMAP server.
Gets message number assigned by an IMAP server.
Gets the boolean value indicating if message was seen or not. Searches for .
Gets flags associated with the specified message.
Represents information about envelope (subject, from to, ...) of the email stored on the IMAP server.
You can use and methods to get information about specified emails.
Gets UID of this message assigned by an IMAP server.
Gets message number assigned by an IMAP server.
Gets a structure of this email message. Here you'll find information about , plain text and message parts.
Gets an envelope of this email message Here you'll find basic information like , and addresses.
Gets flags assigned to this email message on an IMAP server.
Gets Gmail labels assigned to this email message on the IMAP server.
Represents message thread.
Either or property is set.
You can decide which by using method.
The situations in which both this properties are null are also valid - it means that the root message does not match the search criteria, but it's do.
Gets UID of the message that is the root of this thread.
This property is set by default.
It may be null if is specified using method.
Gets message number of the message that is the root of this thread.
This property is null unless is specified using method.
Gets child threads of this thread.
Returns text representation of this object.
Text representation of this object.
Base class for classes representing MIME tree parts stored on an IMAP server.
Gets the id of this part.
Gets the unique id (UID) of the message, that this part belongs to.
Gets the message number of the message, that this part belongs to.
Gets the content type of this part.
is assumed when is false.
Gets boolean value indicating, if content-type was specified explicitly for this entity.
Represents data part of a mime tree stored on an IMAP server.
You can obtain instance of this class using or .
You can download actual content of such part using following methods:
,
,
.
Gets a boolean value indicating if is set.
Gets the suggested file name of this part. May be null or empty.
Consider using as it is guaranteed to contain valid file name.
It is important that you should not blindly use the suggested filename.
The suggested filename SHOULD be checked (and possibly changed) to see that it conforms to local file system conventions,
does not overwrite an existing file, and does not present a security problem.
Gets the safe file name of this part. All special characters and path are removed.
If the file name is not specified ( is or empty) generates random file name in format "att_d1be267b623941159a159158138a636e.dat".
Gets the content transfer encoding of this part.
Content id of the part. Without enclosing '<' and '>'.
You can use to extract content id from cid url.
E.g. 01@mobile
Gets the size of this part in bytes.
Note that this size is the size in attachment's transfer encoding and not the resulting size after any decoding.
This means that, for example, base64 encoded files, are in fact 37% smaller than the value of this property.
Gets the size of this part in bytes.
Note that this size is the size in attachment's transfer encoding and not the resulting size after any decoding.
This means that, for example, base64 encoded files, are in fact 37% smaller than the value of this property.
Gets data represented by this part.
You can use or to fill this property.
May be null, if server responds with NIL response.
Estimates actual attachment size.
Bases on assumption that , and encoded files are 37% smaller.
Estimated size of the attachment.
Estimates actual attachment size.
Bases on assumption that , and encoded files are 37% smaller.
Estimated size of the attachment.
Represents data part of a mime tree stored on an IMAP server.
You can obtain instance of this class using or .
You can download actual content of such part using one of following methods:
,
,
.
Gets the charset of this part.
Gets the result of matching to .
Gets the encoding of this part.
Gets text represented by this part.
You can use or to fill this property.
May be null, if server responds with NIL response.
Represents part of a mime tree containing text/calendar data stored on an IMAP server. You can download actual content of such part using one .
Gets the appointment, remember to use before accessing this property.
Represents part of a mime tree containing text/vcard data stored on an IMAP server. You can download actual content of such part using one .
Gets the vcard, remember to use before accessing this property.
Represents IMAP namespace info.
Namespace name.
Path separator character.
Represents IMAP server namespaces available for currently logged in user.
Personal namespaces.
Other users' namespace.
Namespaces shared with other users.
Represents quota. Quota can have several limits and can be shared by several folders (RFC 2087).
Quota root name.
Gets all limits in this quota.
You can use and properties to easily access common limits.
Gets STORAGE limit (sum of messages' RFC822.SIZE, in units of 1024 octets) or null if not found.
Gets MESSAGE limit (number of messages) or null if not found.
Represents quota limit.
Limit name (e.g. STORAGE, MESSAGE).
STORAGE - Sum of messages' RFC822.SIZE, in units of 1024 octets,
MESSAGE - Number of messages
Current usage.
Maximum limit.
Represents a range. You can use , , static methods to create an instance of this class.
Gets range start.
Gets range end.
Gets the information if this object represents empty set. Always returns false.
Creates new range. Consider using or static methods to create an instance of this class.
Range start.
Range end.
Renders this object as a string (3956:3958, 3956:*, *, 3958).
Object rendered as a string.
Creates new range with start and end defined.
Range start.
Range end.
New range.
Creates new range with only start defined.
It always includes the UID of the last message in the mailbox,
even if is higher than any assigned UID value (RFC 3501 6.4.8).
Range start.
New range.
Creates new range with only one element defined.
One element.
New range.
Creates new range representing last element (*).
New range.
Returns a string that represents the current .
A string that represents the current .
Representing raw data received from the IMAP server.
Gets raw .
Gets raw .
Gets raw .
Gets raw .
Defines result type for IMAP searches.
Result should be returned in form of unique message ids.
Result should be returned in form of message numbers.
Represents IMAP sequence set (collection of elements).
Gets all ranges represented by this sequence.
Creates new sequence containing specified ids. IDs are sorted and combined using instances.
IDs.
Creates new sequence containing specified id.
ID.
Creates new sequence containing specified range.
Range.
Creates new sequence containing specified ranges.
Ranges.
Simple IMAP query that can be used instead joining several criteria defined in class.
Messages that contain the specified string in the envelope structure's SUBJECT field.
Messages that contain the specified string in the body of the message.
Messages that contain the specified string in the envelope structure's FROM field.
Messages that contain the specified string in the envelope structure's TO field.
Messages that contain the specified string in the envelope structure's CC field.
Messages that contain the specified string in the envelope structure's BCC field.
Messages with the \Answered flag set.
Messages with the \Flagged flag set.
Messages with the \Deleted flag set.
Messages with the \Draft flag set.
Messages that have the \Recent flag set but not the \Seen flag. This is functionally equivalent to "(RECENT UNSEEN)".
Messages that do not have the \Recent flag set. This is functionally equivalent to "NOT RECENT" (as opposed to "NOT NEW").
Messages that have the \Recent flag set.
Messages that have the \Seen flag set.
Messages that do not have the \Answered flag set.
Messages that do not have the \Deleted flag set.
Messages that do not have the \Draft flag set.
Messages that do not have the \Flagged flag set.
Messages that do not have the \Seen flag set.
Messages with an [RFC-2822] size larger than the specified number of octets.
Messages with an [RFC-2822] size smaller than the specified number of octets.
Renders current criteria object to specified command list.
Command to render on.
Returns true if this criterion requires only ASCII characters to be rendered.
True if this criterion requires only ASCII characters to be rendered, false otherwise.
Represents expressions that can be used by methods.
To join several sort criteria use .
Reverses specified sorter. Descending order is used.
Note: REVERSE only reverses a single criterion, and does not
affect the implicit "sequence number" sort criterion if all
other criteria are identical. Consequently, a sort of
REVERSE SUBJECT is not the same as a reverse ordering of a
SUBJECT sort. This can be avoided by use of additional
criteria, e.g., SUBJECT DATE vs. REVERSE SUBJECT REVERSE
DATE. In general, however, it's better (and faster, if the
client has a "reverse current ordering" command) to reverse
the results in the client instead of issuing a new SORT.
Sort criteria
New sorter.
Returns multiple sort criteria.
Sort criteria to join.
New sorter.
Internal date and time of the message. This differs from the
ON criteria in SEARCH, which uses just the internal date.
New sorter.
Sorts on local part of the first "cc" address.
New sorter.
Sent date and time, as described in section 2.2.
New sorter.
Sorts on local part of the first "From" address.
New sorter.
Size of the message in octets.
New sorter.
Base subject text.
New sorter.
Sorts on local part of the first "To" address.
New sorter.
Status of the specified folder, returned by and methods.
Total message count in the mailbox.
Number of messages with flag set.
Number of messages with flag set.
UIDNEXT: The next unique identifier value.
The next unique identifier value is the predicted value that will be assigned to a new message in the mailbox.
Unless the unique identifier validity () also changes , the next unique identifier value
MUST NOT change unless new messages are added to the mailbox;
and the next unique identifier value
MUST change whenever new messages are added to the mailbox, even if those new messages are subsequently deleted.
The next unique identifier value is intended to provide a means for a client to determine whether
any messages have been delivered to the mailbox since the previous time it checked this value.
UIDVALIDITY: The unique identifier validity value.
Any change of unique identifiers between sessions MUST be detectable using the change of UIDVALIDITY.
If unique identifiers from an earlier session fail to persist in this session,
the UIDVALIDITY value MUST be greater than the one used in the earlier session.
Represents a value indicating how many sub folder levels should be downloaded.
All sub folders should be downloaded.
Only direct subfolders should be downloaded
Represents threading method supported by the remote server.
You can use method to obtain the list of all methods supported by the remote server.
Represemtes THREAD=ORDEREDSUBJECT threading method.
The ORDEREDSUBJECT threading algorithm is also referred to as "poor man's threading".
The searched messages are sorted by base subject and then by the sent date.
The messages are then split into separate threads, with each thread containing messages with the same base subject text.
Finally, the threads are sorted by the sent date of the first message in the thread.
The top level or "root" in ORDEREDSUBJECT threading contains the first message of every thread.
All messages in the root are siblings of each other.
The second message of a thread is the child of the first message, and subsequent messages of the
thread are siblings of the second message and hence children of the message at the root.
Hence, there are no grandchildren in ORDEREDSUBJECT threading.
Children in ORDEREDSUBJECT threading do not have descendants.
Client implementations SHOULD treat descendants of a child in a server response as being siblings of that child.
Represemtes THREAD=REFERENCES threading method.
The REFERENCES threading algorithm threads the searched messages by grouping them together in parent/child
relationships based on which messages are replies to others. The parent/child relationships are built using two methods:
reconstructing a message's ancestry using the references contained within it; and checking the original (not base)
subject of a message to see if it is a reply to (or forward of) another message.
Chooses best threading method available. Returns null when no method is available.
All available methods.
Best threading method or null when no method is available.
Represents information about the email message that is being uploaded (e.g. flags, internal date).
Message flags.
Internal date of the message.
Creates new instance of UploadMessageInfo class.
Sets internal date of the message.
Internal date to set.
163.com, 126.com, 188.com, yeah.net
Represents account statistics.
You can use to get those information.
Number of messages on server.
Size of all mail messages on the server in octets.
POP3 client implementation.
It allows listing, downloading and deleting emails from POP3 servers.
Default POP3 protocol port (110).
If you need to use different port please use port parameter in or method.
Default POP3 protocol over SSL port (995).
If you need to use different port please use use port parameter in or method.
Gets the server greeting (initial response).
A POP3 server which implements the APOP command will include a timestamp in its banner greeting.
The syntax of the timestamp corresponds to the Message-ID ("<12214.123@ad12>")
Gets the value that indicates if there was a timestamp in server's greeting.
Usually it means that APOP command () is supported, but not always.
Gets POP3 protocol configuration.
Initializes new instance of the Pop3 class.
Initializes new instance of the Pop3 class.
Address family.
Connects to POP3 server on port 110. Use when SSL connection is needed.
Host name or IP address.
DNS resolving error, connection error.Initial error response.
Connects to POP3 server using SSL on port 995.
Host name or IP address.
DNS resolving error, connection error.Initial error response.
Begins an asynchronous request for a remote server connection using .
The name or IP address of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server connection using .
The name or IP address of the remote server.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using and SSL.
The name or IP address of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using and SSL.
The name or IP address of the remote server.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Receives server's greeting. Extracts the timestamp. Issues CAPA command.
Sends 'STLS' command and initializes SSL connection (issues CAPA command afterwards).
Not all servers support . You can check which extensions remote server supports using method.
Throws on error response.
Sends 'STLS' command and initializes SSL connection (issues CAPA command afterwards).
Not all servers support . You can check which extensions remote server supports using method.
Throws on error response.
Sends command, which expects to receive single-line response, to POP3 server (e.g. "STAT").
Most commands have their own specialized methods in this class, you should probably use them instead.
Command e.g. "STAT".
Throws on error response.Single-line response object.
Sends command, which expects to receive single-line response, to POP3 server (e.g. "STAT").
Some commands have their own specialized methods in this class, you should probably use them instead.
Command e.g. "STAT".
If true throws on error response
Single-line response object.
Sends command, which expects to receive multi-line response, to POP3 server (e.g. "RETR").
Some commands have their own specialized methods in this class, you should probably use them instead.
Command to send e.g. "RETR".
Throws on error response.Multi-line response object.
Sends command, which expects to receive multi-line response, to POP3 server (e.g. "RETR").
Most commands have their own specialized methods in this class, you should probably use them instead.
Command to send e.g. "RETR".
If true throws on error response
Multi-line response object.
Logs user in using best method available.
When no SASL capability is found, this method switches to SSL () and tries again.
User's login.
User's password.
Throws on error response.
Logs user in using USER and PASS commands. This method sends the password in clear text, unless SSL connection is used.
User's login.
User's password.
Throws on error response.
Logs user in using AUTHENTICATE PLAIN command. This method sends the password in clear text (BASE64), unless SSL connection is used.
User's login.
User's password.
Throws on error response.
Logs user in using AUTH PLAIN command. This method sends the password in clear text (BASE64), unless SSL connection is used.
User's login.
Administrator's user.
Administrator's password.
Throws on error response.
Logs user in using AUTH CRAM-MD5 command. This method does NOT send the password in clear text.
User's login.
User's password.
This command is unnecessary if you are using SSL, use method instead.
Throws on error response.
Logs user in using AUTH DIGEST-MD5 command. This method does NOT send the password in clear text.
User's login.
User's password.
Throws on error response.
Logs user in using AUTH DIGEST-MD5 command. This method does NOT send the password in clear text.
User's login.
User's password.
Host and service name (host ["/" service-name]) part of digest-uri parameter, if null realm is used.
"/>
Throws on error response.
Logs user in using APOP command. This method does NOT send the password in clear text.
User's login.
User's password.
APOP is optional command and a POP3 server does NOT need to support it.
A POP3 server which implements the APOP command will include a timestamp in its banner greeting.
Check property in order to know if server included the timestamp.
Some servers include timestamp, but do NOT support APOP command.
This command is unnecessary if you are using SSL, use method instead.
Throws on error response.When is false.
Logs user in using AUTHENTICATE XOAUTH2 command. This method does NOT send the password.
You can use DotNetOpenAuth to create the key.
You can check which authentication methods remote server supports using method.
User's login (email address).
OAuth 2.0 access token.
Throws on error response.
Gets stat information from server.
Throws on error response.Account statistics.
Deletes message specified by the .
POP3 server does not actually delete the message until successful QUIT command issued by or .
Unique-id of the message to flag.
Throws on error response.Invalid uid provided.
Marks specified message for deletion.
POP3 server does not actually delete the message until successful QUIT command issued by or .
Throws on error response.
Number of the message to delete (starts from 1)
Gets headers of the specified email message from server. Use class to create object.
Throws on error response.Invalid uid provided.
Unique-id of the message to get.
Email message headers.
Gets headers of the specified email message from server. Use class to create object.
Throws on error response.
Number of message to get (starts from 1)
Email message headers.
Gets specified email message from server. Use class to create object.
Throws on error response.Invalid uid provided.
Unique-id of the message to get.
Email message.
Gets specified email message from server. Use class to create object.
Throws on error response.
Number of the message to get (starts from 1).
Email message.
Gets UIDS of all messages.
Throws on error response.UID list.
Sends UIDL command to the pop3 server. Returns a key value collection.
Keys are message numbers (starting from 1), value is a unique-id of the message.
Throws on error response.Key value collection, with message number as key and unique-id as a value
Sends UIDL command to the pop3 server. Returns unique-id for that message.
Message number
Throws on error response.Unique-id for specified email message
Returns the size (in bytes) of all messages. Keys are message numbers (starting from 1), value is the size of the message.
Throws on error response.Key value collection, with message number as key and size as a value
Returns the size (in bytes) of all messages. Keys are message uids, value is the size of the message.
Throws on error response.Key value collection, with message UID as key and size as a value
Returns the size (in bytes) of specified message in bytes.
Unique-id of the message to get.
Throws on error response.Invalid uid provided.Size of the message.
Returns the size (in bytes) of specified message in bytes.
Number of message to get (starts from 1)
Throws on error response.Size of the message.
Sends CAPA command. Retrieves POP3 server capablity list.
Throws on error response.Server's capability list.
Sends NOOP command to the server. It does nothing and always succeeds.
Can be used to reset any inactivity auto-logout timer on the server.
Throws on error response.
Lists extensions supported by the remote POP3 server (e.g. STLS, TOP)
Extensions supported by remote server.
Lists authentication methods supported by the remote POP3 server.
Authentication methods supported by remote server.
Sends QUIT command. Disconnects and releases all resources acquired by this object.
Sends QUIT command. Disconnects and releases all resources acquired by this object.
If true throws on error response to QUIT command.
Represents authentication methods supported by the remote server.
You can use method to obtain the list of all methods supported by the remote server.
USER authentication method.
SASL PLAIN authentication method.
SASL CRAM-MD5 authentication method.
SASL DIGEST-MD5 authentication method.
SASL NTLM authentication method.
SASL GSSAPI authentication method.
APOP authentication method.
Represents configuration.
Gets or sets value indicating if AUTH command should be retried without initial response on failure.
Default is true.
Gets or sets the boolean value indicating if AUTH command should be used without initial response only.
Default is false.
Gets or sets the boolean value indicating if APOP login mechanism can be used by method.
Default is true.
Gets or sets text encoding used when providing credentials.
Represents extensions supported by the remote server.
You can use method to obtain the list of all extensions supported by the remote server.
STLS extension is supported. You can use to secure the connection.
UIDL extension is supported. You can use method.
TOP extension is supported. You can use and method.
LOGIN-DELAY extension.
SASL extension. You can use to obtain all authentication methods supported by the remote server.
USER extension is supported. You can use method.
UTF8 extension. Allows usage of UTF-8 communication between client and server.
(RFC 6856)
Represents POP3 LOGIN-DELAY extension.
Gets the time interval after an "+OK" response to authentication (PASS, APOP, or AUTH command) before another authentication will be accepted.
Represents POP3 server response.
Gets the status line (including and ) e.g.: "+OK Done".
Gets the status of this response.
Gets the response message (without ) e.g.: "Done".
Returns as a line collection.
as a line collection.
Gets the multiline response message (without "-ERR", "+OK" status and ).
Returns a string that represents the current .
A string that represents the current .
Represents an POP3 server error response.
Gets POP3 server response that caused this exception to be thrown.
Initializes new instance of Pop3ResponseException with serialized data.
Serialized object data.
Contextual information.
Represents a status of a .
Negative status ("-ERR" response).
Positive status ("+OK" response).
Send more data status ("+ ..." response).
Error status (unknown reasponse).
Represents POP3 SASL extension.
Gets supported authentication methods.
Represents POP3 UTF8 extension.
Gets boolan value indicating UTF8 USER extension is supported.
Arguments for and event.
The certificate used to authenticate the remote party.
The chain of certificate authorities associated with the remote certificate.
One or more errors associated with the remote certificate.
Set this field to indicate validness of server's certificate.
Handler for ServerCertificateValidateEventHandler.
An object that contains state information for this validation.
Event arguments. Use to validate the certificate.
Represents an error that occurred on the server.
Initializes new instance of ServerException with serialized data.
Serialized object data.
Contextual information.
Represents SMTP command parameter and value (e.g. NOTIFY=SUCCESS,FAILURE).
Name of the parameter (e.g. NOTIFY).
Value of the parameter (e.g. SUCCESS,FAILURE).
Creates new instance of CommandParameter class.
Name of the parameter.
Creates new instance of CommandParameter class.
Name of the parameter.
Value of the parameter.
Describes the delivery notification options (Delivery Status Notifications, DSN) for email.
You can use to set delivery options.
No notification information will be sent. The mail server will utilize its configured behavior to determine whether it should generate a delivery notification.
Notify if the delivery is successful.
Notify if the delivery is unsuccessful.
Notify if the delivery is delayed.
A notification should not be generated under any circumstances.
HELO command.
EHLO command (Extended HELO).
First try EHLO then fallback to HELO.
Represents result of the message sending process, returned by , .
Gets the status of the sending process.
Gets the list of the recipients () rejected by the SMTP server.
Gets the list of the recipients () approved by the SMTP server.
Gets a boolean value indicating if (, ) was rejected.
Gets all error responses received from the server while sending message.
Gets all responses received from the server while sending message.
Gets error responses received from the server in response to 'add recipient' (RCPT TO command) requests.
You can iterate over this dictionary using list.
Event which is called for custom server certificate validation.
Returns a string that represents the current .
A string that represents the current .
Represents a status of .
Success status: message was succesfully sent to all recipients.
Partial success status: message was succesfully sent to some, but not to all recipients.
You can use to get rejected recipients.
Failure status: message sending failed.
SMTP client implementation. It allows sending emails using SMTP server.
Gets or sets SMTP protocol configuration.
Gets or sets the value, which, if set, is used when sending HELO or EHLO commands.
Gets or sets the value indicating if should be used when sending messages.
Default is true.
Gets or sets the value indicating if should be used when sending messages.
Default is true.
Gets or sets the value indicating if and should send message
even if some recipients were rejected.
Setting this value to true when is used improves performance.
Default is false.
Gets or sets the value indicating if instance validation is performed before sending.
It ensures that the message has a sender, at least one recipient and a body.
Default is false.
Gets or sets the delivery notification options (Delivery Status Notifications, DSN) for email.
Available when is reported by .
Gets the server greeting (initial response).
Default SMTP protocol port (587).
If you need to use different port please use port parameter in or method.
Default SMTP protocol over SSL port (465).
If you need to use different port please use port parameter in or method.
Initializes new instance of the Smtp class.
Initializes new instance of the Smtp class.
Address family.
Connects to SMTP server on port 587. Use when SSL connection is needed.
Host name or IP address.
DNS resolving error, connection error.Initial error response.
Connects to SMTP server using SSL on port 465.
Host name or IP address.
DNS resolving error, connection error.Initial error response.
Begins an asynchronous request for a remote server connection using .
The name or IP address of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server connection using .
The name or IP address of the remote server.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using and SSL.
The name or IP address of the remote server.
An IAsyncResult that references the asynchronous connection.
Begins an asynchronous request for a remote server secure connection using and SSL.
The name or IP address of the remote server.
The AsyncCallback delegate.
An IAsyncResult that references the asynchronous connection.
Receives server's greeting. Issues EHLO/HELO command.
Lists extensions supported by the remote server (e.g. )
Extensions supported by remote server.
Lists authentication methods supported by the remote server.
Authentication methods supported by remote server.
Sends command to the SMTP server (e.g. "EHLO").
Most commands have their own specialized methods in this class, you should probably use them instead.
Command to be send e.g. "EHLO".
Throws on error response.Server's response.
Sends command to the SMTP server (e.g. "EHLO").
Most commands have their own specialized methods in this class, you should probably use them instead.
Command to be send e.g. "EHLO".
If true throws on error response.
Server's response.
Logs user in using best method available.
When no AUTH capability is found, this method switches to SSL () and tries again.
User's login.
User's password.
Throws on error response.
Sends 'STARTTLS' command and initializes SSL connection (issues EHLO command afterwards).
Not all servers support . You can check which extensions remote server supports using method.
Throws on error response.
Logs user in using AUTH LOGIN command. This method sends the password in clear text (BASE64), unless SSL connection is used.
User's login.
User's password.
Throws on error response.
Logs user in using AUTH PLAIN command. This method sends the password in clear text (BASE64), unless SSL connection is used.
User's login.
User's password.
Throws on error response.
Logs user in using AUTH PLAIN command. This method sends the password in clear text (BASE64), unless SSL connection is used.
User's login.
Administrator's user.
Administrator's password.
Throws on error response.
Logs user in using AUTH CRAM-MD5 command. This method does NOT send the password in clear text.
User's login.
User's password.
This command is unnecessary if you are using SSL, use method instead.
Throws on error response.
Logs user in using AUTH DIGEST-MD5 command. This method does NOT send the password in clear text.
User's login.
User's password.
Throws on error response.
Logs user in using AUTH DIGEST-MD5 command. This method does NOT send the password in clear text.
User's login.
User's password.
Host and service name (host ["/" service-name]) part of digest-uri parameter, if null realm is used.
Throws on error response.
Logs user in using AUTH XOAUTH command. This method does NOT send the password.
You can use class to create the key.
XOAuth key. You can use method to create this key.
Throws on error response.
Logs user in using AUTH XOAUTH2 command. This method does NOT send the password.
You can use DotNetOpenAuth to create the key.
You can check which authentication methods remote server supports using method.
User's login (email address).
OAuth 2.0 access token.
Throws on error response.
Sends "MAIL FROM:" command.
From address.
If true throws on error response
Server's response.
Sends "RCPT TO:" command.
To address.
If true throws on error response.
Server's response.
Sends "DATA" command.
If true throws on error response.
Server's response.
Sends a single message.
message to send.
Result of the sending operation. You can examine property to check if the operation succeed.
Sends a single message.
SmtpMail message to send.
Result of the sending operation. You can examine property to check if the operation succeed.
Sends RSET command to the server.
It specifies that the current mail transaction will be aborted.
Any stored sender, recipients, and mail data MUST be discarded, and all buffers and state tables cleared.
The receiver MUST send a "250 OK" reply to a RSET command with no arguments.
Throws on error response.
Sends NOOP command to the server. It does nothing and always succeeds.
Can be used to reset any inactivity auto-logout timer on the server.
Throws on error response.
Sends QUIT command. Disconnects and releases all resources acquired by this object.
Sends QUIT command. Disconnects and releases all resources acquired by this object.
If true throws on error response.
Represents authentication methods supported by the remote server.
You can use method to obtain the list of all methods supported by the remote server.
AUTH LOGIN authentication method.
AUTH PLAIN authentication method.
AUTH CRAM-MD5 authentication method.
AUTH DIGEST-MD5 authentication method.
AUTH XOAUTH authentication method.
AUTH XOAUTH2 authentication method.
AUTH NTLM authentication method.
AUTH GSSAPI authentication method.
Represents SMTP AUTH extension.
Gets supported authentication methods.
Checks if specified method is supported.
Authentication method to check.
True if method is supported, false otherwise.
Represents configuration.
Gets or sets the value, which, if set, is used when sending HELO or EHLO commands.
Gets or sets the value indicating if should be used when sending messages.
Default is true.
Gets or sets the value indicating if should be used when sending messages.
Default is true.
Gets or sets the value indicating if and
should send a message even if some recipients were rejected.
Setting this value to true when is used improves performance.
Default is false.
Gets or sets the value indicating if instance validation is performed before sending.
It ensures that the message has a sender, at least one recipient and a body.
Default is true.
Gets or sets the delivery notification options (Delivery Status Notifications, DSN) for email.
Available when is reported by .
Gets or sets value indicating if AUTH command should be retried without initial response on failure.
Gets or sets the boolean value indicating if AUTH command should be used without initial response only.
Default is false.
Gets or sets text encoding used when providing credentials.
Initializes new instance of the SmtpConfiguration class.
Represents extensions supported by the remote server.
You can use method to obtain the list of all extensions supported by the remote server.
STARTTLS is supported. You can use to secure the connection.
SIZE extension.
AUTH extension. You can use to obtain all authentication methods supported by the remote server.
PIPELINING extension.
It allows client to transmit groups of SMTP commands in batches without waiting for a response to each individual command.
method uses this feature to speed up sending messages.
(RFC 2920)
ENHANCEDSTATUSCODES extension. It allows server to augment its responses with the enhanced mail system status codes.
Server that support this extension is going to provide in its responses.
(RFC 2034, RFC 1893)
DSN extension. It allows client to specify the conditions under which a Delivery Status Notification should be generated (, )
(RFC 3461)
8BITMIME extension.
(RFC 6152)
BINARYMIME extension.
(RFC 3030)
CHUNKING extension. Allows sending message in chunks, without SMTP's \r\n.->\r\n.. conversion, which improves memory usage.
(RFC 3030)
UTF8SMTP extension. Allows usage of UTF-8 email addresses (both local and domain part) without any encoding.
must be announced by the server when this extension is announced.
BODY=8BITMIME or BODY=BINARYMIME must be used by the client if SMTPUTF8 extension is used.
(RFC 6531)
Represents sender, recipients and raw message data in eml format that can be sent via SMTP protocol.
Gets or sets from mail address. Value of this property is used for SMTP's MAIL FROM command.
Gets the collection of mail addresses this message will be sent to. Value of this property is used for SMTP's RCPT TO command.
Gets or sets the raw message data that can be sent using SMTP protocol.
Value of this property ("\r\n." sequence escaping is performed automatically, when needed), is used for SMTP's DATA or BDAT command.
Gets or sets the additinal information if enclosed message is MDN.
Setting this property changes how validation works,
as the envelope sender address (SMTP MAIL FROM) of the MDN MUST be null (RFC 3798).
Creates new empty SmtpMail object.
Creates new SmtpMail object.
From mail address.
Message data in eml format to be send.
Collection of mail addresses this message will be sent to.
Forces punycode be used instead of full UTF8 envelope addresses.
Creates new using specified email.
, and are initialized using specified .
Email to initialize this object from.
New object.
Creates new using specified email.
and are initialized using specified .
property is initialized using VERP address containig and or .
VERP address used to initialize property is created using class.
Email to initialize this object from.
New object.
Creates VERP version of the address.
VERP address used to initialize property is created using class.
Creates new using specified eml raw data string.
, and are initialized using parsed content.
Raw eml data string.
New object.
Loads raw eml data from file and creates new object.
, and are initialized using parsed content of a file specified by .
The file to read raw eml data from.
New object.
Represents SMTP server response.
Gets enhanced status code. e.g. 2.1.0.
2.X.X is success;
4.X.X is persistent transient failure;
5.X.X is permanent failure.
Gets the status code.
2yz is positive completion reply;
3yz is positive intermediate reply;
Other is negative.
Gets the lines returned from server as strings.
Every line is striped off of the and '-' char at the beginning and new line characters at the end.
Gets the status of this response.
First line of the response or null if collection is empty.
Returns a string that represents the current .
A string that represents the current .
Represents an SMTP server error response.
Gets SMTP server response that caused this exception to be thrown.
Initializes new instance of SmtpResponseException with serialized data.
Serialized object data.
Contextual information.
Represents a status of a .
Positive status (200-299 response codes).
Requires more data status (300-399 response codes).
Error status (400- response codes).
Represents SMTP SIZE extension.
Gets the maximum size of the message. Messages above this size will not be accepted.
Represents SSL configuration (client certificates, enabled SSL protocols)
Gets or sets the target host name used for authenticating as client.
Specifies whether the certificate revocation list is checked during authentication. Default is false.
The that contains client certificates.
Represents the protocol used for authentication.
.NET 2.0 default is .
.NET Standard 2.0 default is | | .
.NET 4.5+ default is | | .
Event which is called for custom server certificate validation.
Callback which is called for custom client certificate selection.
Size in bytes.
Represents storage entity, container for streams or sub-storages in a compound file.
Represents a virtual file which occupies a number of sectors.
This method allows user to create stream with more than 2GB of data.
Large streams (>2GB) are only supported by version 4.
Compound file version 3 (default and most common). Sector size 512 bytes, 2GB max file size.
Compound file version 4. Sector size is 4096 bytes. Using this version could bring some compatibility problem with existing applications.
Returns the size of standard sectors switching on version (3 or 4)
Number of FAT entries in a DIFAT Sector.
Number of sector ID entries in a FAT Sector.
Sector recycling reduces data writing performances but avoids space wasting in scenarios with frequently data manipulation of the same streams.
Default is false.
If true, overwrites unallocated sectors with zeros.
Default is false.
Save data changes since the previously commit operation to the underlying supporting stream or file on the disk.
Commit directory entries change on the Current Source stream
Saves the in-memory image of Compound File to a file.
Saves the in-memory image of Compound File to a stream.
Removes unallocated sectors. Only version 3 is supported.
Removes unallocated sectors. Only version 3 is supported.
Recursively clones valid structures, avoiding to copy free sectors.
0 8 Identification signature for the compound file structure.
8 16 Reserved and unused class ID that MUST be set to all zeroes (CLSID_NULL).
24 2 Revision number of the file format.
Version number for non-breaking changes. This field SHOULD be set to 0x003E if the major version field is either 0x0003 or 0x0004.
26 2 Version number of the file format.
This field MUST be set to either 0x0003 (version 3) or 0x0004 (version 4).
28 2 Byte Order.
This field MUST be set to 0xFFFE. This field is a byte order mark for all integer fields, specifying little-endian byte order.
30 2 Size of a sector. This field MUST be set to 0x0009, or 0x000c, depending on the Major Version field.
This field specifies the sector size of the compound file as a power of 2.
32 2 Size of a mini sector. This field MUST be set to 0x0006.
This field specifies the sector size of the Mini Stream as a power of 2. The sector size of the Mini Stream MUST be 64 bytes.
34 10 MUST be set to all zeroes.
44 4 Count of the number of directory sectors in the compound file.
44 4 Count of the number of FAT sectors in the compound file.
48 4 starting sector number for the directory stream. (SecID)
52 4 MAY contain a sequence number that is incremented every time the compound file is saved by an implementation that supports file transactions.
This is field that MUST be set to all zeroes if file transactions are not implemented.
56 4 MUST be set to 0x00001000 (4096).
This field specifies the maximum size of a user-defined data stream allocated from the mini FAT and mini stream,
and that cutoff is 4096 bytes. Any user-defined data stream larger than or equal to this cutoff size must be allocated as normal sectors from the FAT.
60 4 Starting sector number for the mini FAT. (SecID)
64 4 Count of the number of mini FAT sectors in the compound file.
68 4 Starting sector number for the DIFAT (SecID) or if no additional sectors used.
72 4 Count of the number of DIFAT sectors in the compound file.
76 436 Contains the first 109 FAT sector locations of the compound file. (SecID)
Represents the unit of allocation within the CFBF.
The range lock sector is the sector that covers file offsets 0x7FFFFF00-0x7FFFFFFF
Indicates DIFAT sector in a FAT. The DIFAT array is used to represent storage of the FAT sectors.
Indicates FAT sector.
Indicates chain terminator.
Indicates unallocated sector.
Unknown storage type.
Indicates that the storage element is a storage object.
Indicates that the storage element is a stream object.
Indicates that the storage element is a byte-array object.
Indicates that the storage element is a property storage object.
Root storage.
Stream decorator for a Sector or miniSector chain
Represents common Oids, that represent encryption and signing algorithms.
Gets DES-EDE3-CBC oid.
Gets aes128-CBC oid.
Gets aes256-CBC oid.
Gets md5 oid.
Gets SHA-1 oid.
Gets SHA-224 oid.
Gets SHA-256 oid.
Gets SHA-384 oid.
Gets SHA-512 oid.
Rotates x left n bits.
Microsoft Outlook/Exchange......................1.3.6.1.4.1.311.16
Outlook Express.................................1.3.6.1.4.1.311.16.4
Used by OL/OLEXP to identify which certificate signed the PKCS # 7 message
Identifies the encryption certificate (this attribute is required by MSOE to recognize the encryption certificate).
PEM format reader.
Reads certificate from PEM file (BEGIN CERTIFICATE).
File name to read from
Certificate that was read.
Reads certificate from PEM file (BEGIN CERTIFICATE).
String to read from
Certificate that was read.
Reads public key from PEM file (BEGIN PUBLIC KEY).
File to read from
Certificate that was read.
Reads public key from PEM file (BEGIN PUBLIC KEY).
String to read from
Certificate that was read.
Reads private key from PEM file (BEGIN RSA PRIVATE KEY / BEGIN PRIVATE KEY).
File to read from
Certificate that was read.
Reads private key from PEM file (BEGIN RSA PRIVATE KEY / BEGIN PRIVATE KEY).
String to read from
Certificate that was read.
Reads encrypted private key from PEM file (BEGIN ENCRYPTED PRIVATE KEY / BEGIN RSA PRIVATE KEY).
File to read from
Password.
Certificate that was read.
Reads encrypted private key from PEM file (BEGIN ENCRYPTED PRIVATE KEY / BEGIN RSA PRIVATE KEY).
String to read from
Password.
Certificate that was read.
Reads encrypted private key from PEM file (RSA PRIVATE KEY).
Parses binary asn.1 X509
Stream to read data from.
Decodes base64 data.
Base64 encoded data.
Custom base64 chars (64 chars).
Encodes specified data with bas64 encoding.
Data to encode.
Custom base64 chars (64 chars).
Pad missing block chars. Normal base64 must be 4 bytes blocks, if not 4 bytes in block,
missing bytes must be padded with '='. Modified base64 just skips missing bytes.
Specifies if \r\n should be inserted every 76 characters.
Implements quoted-printable string decoding/encoding for MIME headers (RFC2047).
Decodes IMAP modified UTF7 encoded data. Defined in RFC 3501 5.1.3. Mailbox International Naming Convention.
Text to encode.
Encodes specified data with IMAP modified UTF7 encoding. Defined in RFC 3501 5.1.3. Mailbox International Naming Convention.
Text to encode.
Changes Quoted-printable to byte array.
Changes 3 chars '=A9' into one byte with value A9 HEX.
Quoted-printable data e.g. "Pawe=B3=20Le=B6nikowski"
Byte array.
Implements 'UUE' string encoding.
Throws ArgumentNullException when argument is null.
Argument that must be != null.
Argument's name.
Throws ArgumentNullException when argument is null.
Argument that must be != null.
Argument's name.
A message that describes an error.
Throws ArgumentException when condition is not met.
Condition that is required.
Message.
Throws ArgumentException when condition is met.
Condition that is excluded.
Message.
Throws ArgumentException when string is null or is empty.
Argument that must be != null and != string.Empty.
Argument's name.
Throws ArgumentException when string is blank.
Argument that must not be blank.
Message.
Returns DateTime in local time.
DateTime in local time.
Attribute applied to enums, for different serialization logic applied using .
Uses to apply different serialization logic to enums.
Only \r\n line ending is recognized.
All (\r\n, \n\r, \n, \r) line endings are recognized.
Allows writing _and_ reading from/to stream using deflate compression.
Does not close _baseStream when closed.
Only \r\n line ending is recognized.
All (\r\n, \n\r, \n, \r) line endings are recognized.
All (\r\n, \n\r, \n, \r) line endings are recognized.
Implements Knuth–Morris–Pratt string searching algorithm:
http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm
The number of byte positions to analize.
Computes the "partial match" table ("failure function").
using a boot-strapping process,where the pattern is matched against itself.
Encapsulates an IP Address.
ip6 Stored in network order (as ip4)
Constructor from a 32-bit constant with the address bytes in
little-endian order (the lower order bytes contain the netid)
Used to tell whether an address is a loopback.
All IP addresses of the form 127.X.Y.Z, where X, Y, and Z are in
the range 0-255, are loopback addresses.
Address to compare
Overrides System.Object.ToString to return
this object rendered in a quad-dotted notation
Returns this object rendered in a quad-dotted notation
Whether both objects are equal.
Encapsulates an IPv6 Address. See RFC 2373 for more info on IPv6 addresses.
Overrides System.Object.ToString to return
this object rendered in a canonicalized notation
Whether both objects are equal.
Needed for deserialization.
Removes spaces and new lines from string.
Replaces multiple instances of ' ' and '\t' with single space.
Represents result of charset to encoding match.
Charset wasn't specified.
Charset was specified, but it doesn't exist or is unknown.
Charset was specified.
The number of byte positions to analize.
Checks if license exists. May throw exception on error.
True if license is present, false otherwise
Loads the license document. May throw exception on error.
Loaded XML license document
Represnts AppleSingle data.
Gets magic number (, )
Gets version.
Gets all entries stored in this instance.
Gets data stored in .
Gets data stored in entry.
Gets data stored in entry.
Represents single entry in file.
Gets this entry ID.
Gets data stored in this entry.
Represents Apple entry ID.
Data fork.
Resource fork.
File's name as created on home file system.
Standard Macintosh comment.
Standard Macintosh black and white icon.
Macintosh color icon.
File creation date, modification date, and so on.
Standard Macintosh Finder information.
Macintosh file information, attributes, and so on.
ProDOS file information, attributes, and so on.
MSDOS file information, attributes, and so on.
AFP short name.
AFP short name
AFP short name
AppleSingle magic numbers.
Represents AppleSingle magic number.
Represents AppleDoubleHeader magic number.
Represents alarm calendar entity.
You can use or to add alarm to event.
You can check collection to get alarms defined for a event.
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
Gets exact alarm time (Always converted to the UTC value).
Gets relative to information of .
Gets alarm offset. Offset is relative to property.
Gets or sets alarm action (display, audio).
Gets or sets alarm description.
Creates new event entity
Sets the alarm time to precise date and time.
Date and time at which alarm should be raised .
Sets the alarm time offset relative to start of the event.
Time span before event start when alarm should be raised.
Sets the alarm time offset relative to end of the event.
Time span before event end when alarm should be raised.
Represents action that should be taken when alarm is raised.
You can use static fields of this class: and .
Alarm should be displayed.
Audio notification should be played.
Represents appointment calendar entity.
To get all appointments, that an email contains, you can use collection.
You can add appointment to an email using or methods.
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2007
VERSION:2.0
BEGIN:VEVENT
ORGANIZER;CN="Alice":MAILTO:alice@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN='Bob':MAILTO:bob@mail.com
SUMMARY;LANGUAGE=en-US:First Meeting
DTSTART:20100315T080000
DTEND:20100315T083000
UID:040000008200E00074
CLASS:PUBLIC
DTSTAMP:20100317T141328Z
STATUS:CONFIRMED
LOCATION;LANGUAGE=en-US:Room 42
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR
Gets or sets iCalendar object method associated with the calendar object (e.g. , ).
Gets or sets the identifier for the product that created the iCalendar object.
Gets or sets version that is required in order to interpret the iCalendar object.
List of events in this appointment.
List of timezones defined in this appointment.
Gets first event from the list or if there are no events.
Gets first time zone from the list or if there are no time zones defined.
Creates new Appointment entity.
Adds new event to the collection.
Event that was added.
Adds event to the collection.
Event to add.
Adds timezone to the collection.
Event that was added.
Adds timezone to the collection.
Time zone to add.
Creates canceled version of this appointment.
New appointment with all events canceled.
Creates new version of this appointment that can be updated.
New appointment.
Creates new version of this appointment that can be updated.
New appointment.
Creates new appointment with set to for users with specified email.
Email of user that declined the event.
New appointment.
Creates new appointment with set to for users with specified email.
Email of user that accepted the event.
New appointment.
iCalendar appointment parser.
Creates new AppointmentParser with specified encoding.
Encoding to be used when extracting encoded data.
Creates new AppointmentParser with default encoding.
Parses specifed text and creates new iCalendar appointment card object.
Text to parse.
VCard business card.
Base class for standard and daylight savings time of a time zone.
This property specifies when the time zone offset begins (Always converted to local time without the "TZID" property parameter).
Recurring rule of this time zone offset.
This property specifies the offset which is in use prior to this time zone observance.
This property specifies the offset which is in use in this time zone observance.
Customary name for the time zone.
Creates new event entity.
Time zone name.
Represents daylight savings time of a time zone.
BEGIN:DAYLIGHT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0900
TZOFFSETTO:-0800
TZNAME:AKDT
END:DAYLIGHT
Creates new daylight offset entity.
Represents event calendar entity.
BEGIN:VEVENT
ORGANIZER;CN="Alice":MAILTO:alice@mail.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN='Bob':MAILTO:bob@mail.com
SUMMARY;LANGUAGE=en-US:First Meeting
DTSTART:20100315T080000
DTEND:20100315T083000
UID:040000008200E00074
CLASS:PUBLIC
DTSTAMP:20100317T141328Z
STATUS:CONFIRMED
LOCATION;LANGUAGE=en-US:Room 42
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
Gets or sets the unique id of this event.
For sending an UPDATE for an event the UID should match the original UID.
Also should be set.
Gets or sets class of this event (public, private, confidential).
Gets or sets status of this event (tentative, confirmed, canceled).
Gets or sets time stamp of this event (Always converted to UTC format).
Gets or sets start time of this event ("DTSTART").
Gets or sets end time of this event ("DTEND").
Gets or sets time zone id of time of this event. Consider using method instead setting this property.
Gets or sets time zone id of time of this event. Consider using method instead setting this property.
Gets or sets time zone id of of this event. Consider using method instead setting this property.
Gets or sets priority of this event.
Gets or sets sequence of this event.
You should increment this number for each event update. First update should have sequence set to 1.
Gets or sets summery of this event.
In Microsoft Outlook, the SUMMARY corresponds to the "Subject" entry in the "Appointment" form.
Gets or sets description of this event.
In Microsoft Outlook, the DESCRIPTION corresponds to the descriptive text below "Appointment" form.
Gets or sets the value of X-ALT-DESC. It is used by Outlook to specify HTML version of header.
Gets or set ALTREP parameter of header.
It specifies a URI that points to analternate representation for a textual property value (e.g "CID:part3.msg.970415T083000@example.com").
Gets or sets location of this event.
Gets or sets the organizer of this event. Use method to set organizer.
List of alarms for this event.
Gets all participants of this event. Use method to add new participant to this collection.
Gets all recurring rules for this event. Use method to add new participant to this collection.
Gets a list of date/time exceptions for this event. (EXDATE).
Gets first alarm from the list or if there are no alarms for this event.
Gets recurence id this instants represents. (RECURRENCE-ID).
Creates new event entity.
Creates new alarm and adds it to the collection of this event.
Newly create alarm that was added to this event.
Adds alarm to the collection of this event.
Alarm to add.
Creates new recurring rule and adds it to the collection of this event.
Newly recurring rule that was added to this event.
Adds recurring rule to the collection of this event.
Recurring rule to add.
Sets organizer for this event.
Person to be set as the organizer to this event.
Adds new participant to this event.
Participant to be added to this event.
Marks the event as an all day event.
Time in and properties will be ignored if this method is used.
Specifies time zone for this event. Sets and .
Remember to add the specified timezone to .
Time zone.
Creates canceled version of this event.
New canceled event.
Creates new version of this event that can be updated.
New event.
Sets to for participants with specified email.
Removes all others from the event.
Email of user that accepted the event.
Sets to for participants with specified email.
Removes all others from the event.
Email of user that declined the event.
Represents class of the event.
Event is public.
Event is private.
Event is confidential.
Represents event status.
Indicates event is tentative.
Indicates event is definite.
Indicates event is canceled.
Represents frequency of the recurring event.
You can use to specify interval greater than one.
Event occurs every second.
Event occurs every minute.
Event occurs every hour.
Event occurs every day.
Event occurs every week.
Event occurs every month.
Event occurs every year.
Represents method of the appointment.
Publish.
Request.
Reply.
Cancel.
Counter (used by an "Attendee" of an existing event to submit to the "Organizer" a counter proposal to the event description.)
Counter (used by the "Organizer" of an event to reject a counter proposal submitted
by an "Attendee". The "Organizer" must send the "DECLINECOUNTER" message
to the "Attendee" that sent the "COUNTER" method to the "Organizer".)
Represents event participant.
Gets or sets participation role.
Gets or sets information whether participant is required.
Gets or sets participation status.
Gets or sets X-RESPONSE-COMMENT value.
Creates new participant with specified common name and email.
Common name of the person.
Email of the person.
Creates new participant with specified common name and email.
Common name of the person.
Email of the person.
Participation role.
Specifies whether participant is required.
Renders this participant on specified calendar header.
Header to render on.
Extracts participant information from specified header.
Header to extract information from.
Represents user participation role.
Chair
Participant is required.
Participant is optional.
Not participant.
Represents user participation status.
Needs action.
Accepted.
Declined.
Tentatively accepted.
Delegated.
Completed.
In progress.
Represents a person.
Gets or sets the common name of the person.
Gets or sets email of the person.
Creates new Person object with specified common name and email.
Common name of the person.
Email of the person.
Renders this person on specified calendar header.
Header to render on.
Extracts person information from specified header.
Header to extract information from.
Represents "RECURRENCE-ID" property ().
The full range of calendar components specified by a recurrence set is referenced by referring to just the property value corresponding to the calendar component.
The "RECURRENCE-ID" property allows the reference to an individual instance within the recurrence set.
The "RECURRENCE-ID" property is used in conjunction with the and property to identify a particular instance of a recurring event.
For a given pair of and property values, the "RECURRENCE-ID" value for a recurrence instance is fixed.
The "RANGE" parameter is used to specify the effective range of recurrence instances from the instance specified by the "RECURRENCE-ID" property value.
The default value for the range parameter (when it's null) is the single recurrence instance only.
The value can also be and .
Gets the time zone. (TZID).
Indicates
If the value of the property is a DATE type value,
then the value MUST be the calendar date for the recurrence instance.
Gets the time when recurrence instance would occur.
The date/time value is set to the time when the original recurrence instance would occur;
meaning that if the intent is to change a Friday meeting to Thursday, the date/time is still set to the original Friday meeting.
Creates new RecurrenceId instance.
Creates new RecurrenceId instance.
Time when recurrence instance would occur.
Time zone. (TZID).
Creates new RecurrenceId instance.
Range, use or constant.
Time when recurrence instance would occur.
Creates new RecurrenceId instance.
Range, use or constant.
Time when recurrence instance would occur.
Time zone. (TZID).
Marks the this recurrence id as an all day event.
Time in property will be ignored if this method is used.
This recurrence id.
Represents value of property.
You can use static fields of this class such as: and .
Indicates a range defined by the given recurrence instance and all subsequent instances.
Indicates a range defined by the given recurrence instance and all prior instances.
Represents recurring rule for a event.
You can use or to make event recurring.
You can check collection to get all recurring rules defined for a event.
Creates new recurring rule.
Gets or sets frequency for this rule. You can use static fields of Frequency class e.g.
Gets or sets recurring interval of this rule.
Gets or sets how many times event will be repeated.
Gets or sets the date the until which event will be repeated (Always converted to the UTC value).
Gets or sets BYSECOND parameter ranging from 0 to 59.
Gets or sets BYMINUTE parameter ranging from 0 to 59.
Gets or sets BYHOUR parameter ranging from 0 to 23.
Gets or sets BYDAY parameter.
List of days when event should occur. You can use static fields of class e.g. .
Gets or sets BYMONTH parameter.
List of months when event should occur ranging from 1 to 12.
Gets or sets BYWEEKNO parameter.
List of values ranging from 1 to 53 or -53 to -1.
A week is defined as a seven day period, starting on the day of the week defined to be the week start ().
Week number one of the calendar year is the first week which contains at least four (4) days in that calendar year.
This rule part is only valid for YEARLY rules. For example, 3 represents the third week of the year.
Gets or sets BYYEARDAY parameter.
List of values ranging from -365 to 365.
Gets or sets BYMONTHDAY parameter.
List of values ranging from -31 to 31.
Gets or sets BYSETPOS parameter.
Specifies list of values which corresponds to the nth occurrence within the set of events specified by the rule.
Valid values are 1 to 366 or -366 to -1. It MUST only be used in conjunction with another BYxxx rule part.
For example "the last work day of the month" could be represented as:
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
Gets or sets WKST parameter.
The WKST rule part specifies the day on which the workweek starts.
This is significant when a WEEKLY RRULE has an interval greater than 1, and a BYDAY rule part is specified.
This is also significant when in a YEARLY RRULE when a BYWEEKNO rule part is specified. The default value is MO.
Represents information about relation.
Alarm is related to the 's time.
Alarm is related to the 's time.
Represents standard time of a time zone.
BEGIN:STANDARD
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=SU;BYMONTH=11
TZOFFSETFROM:-0800
TZOFFSETTO:-0900
TZNAME:AKST
END:STANDARD
Creates new standard offset entity.
Represents time zone entity.
BEGIN:VTIMEZONE
TZID:US-Eastern
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19971026T020000
RDATE:19971026T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19971026T020000
RDATE:19970406T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
Text value that uniquely identifies the VTIMZONE calendar component within the scope of an iCalendar object (TZID).
Standard time offsets.
Daylight time offsets.
Creates new time zone entity.
Represents the day of the week.
new Weekday(2, Weekday.Monday) // represents second Monday
new Weekday(-1, Weekday.Friday) // represents last Friday
Sunday.
Monday.
Tuesday.
Wednesday.
Thursday.
Friday.
Saturday.
First Sunday.
First Monday.
First Tuesday.
First Wednesday.
First Thursday.
First Friday.
Last Saturday.
Last Sunday.
Last Monday.
Last Tuesday.
Last Wednesday.
Last Thursday.
Last Friday.
Last Saturday.
Day of the week offset.
1 is first, 2 is second, -1 means last, -2 means second from the last and so on.
Two letter name of the day (MO, TU, WE, TH, FR, SA, SU)
Creates new instance of the weekday
Offset (1 is first, 2 is second, -1 is last)
Day of the week. You can use static fields of this class to fill this parameter(e.g. )
Returns this object rendered as string.
This object rendered as string.
Determines whether the specified object is equal to the current one.
Names are compared case insensitive.
The to compare with the current true if the specified object is equal to the current object; otherwise, false.
Determines whether the specified object is equal to the current object.
Names are compared case insensitive.
The object to compare with the current object.
true if the specified object is equal to the current object; otherwise, false.
Serves as a hash function for a particular type.
A hash code for the current object.
Determines whether two objects are equal.
First object to compare.
Second object to compare.
if the specified objects are equal; otherwise, .
Determines whether two objects are not equal.
First object to compare.
Second object to compare.
if the specified objects are not equal; otherwise, .
Represents configuration for attachments' removal method.
Should remove delegate.
MIME entity.
True if content should be removed, false otherwise.
Gets or sets the value indicating, if elements should be removed. Default is true.
Gets or sets the value indicating, if elements should be removed. Default is true.
Gets or sets the value indicating, if elements should be removed. Default is true.
Gets or sets the callback that is invoked for all candidates to be removed. Default callback returns true.
Please note that even if this callback returns true, , , may prevent MIME entity to be removed.
Creates new AttachmentRemoverConfiguration object with default settings.
Represents configuration for attachments' replacing method.
Tag generation delegate.
Attachment object for which the tag should be generated.
Generated tag value.
Should replace delegate.
MIME entity.
True if content should be replaced, false otherwise.
Gets or sets the template for attachments that have name specified.
You can use [FileName], [Size] and [Tag] placeholders.
Template sample:
This file ('[FileName]') containing [Size] bytes of data was removed.
Gets or sets the template for attachments that have no name specified.
You can use [FileName], [Size] and [Tag] placeholders.
Template sample:
This file containing [Size] bytes of data was removed.
Gets or sets tag generating function.
You can use this property to generate unique id for replaced attachment,
that can be used in or templates using [Tag] placeholder.
config.Tag = att => "http://example.com/1234/" + att.FileName;
Gets or sets the value indicating, if elements should also be replaced. Default is true.
Gets or sets the value indicating, if elements should also be replaced. Default is true.
Gets or sets the value indicating, if elements should be replaced. Default is true.
Gets or sets the callback that is invoked for all canditates to be replaced. Default callback return true.
Please note that even if this callback returns true, , , may prevent MIME entity to be replaced.
Creates new AttachmentReplacerConfiguration object with default settings.
Base class for all constant values.
Gets the name of the constant.
Determines whether the specified object is equal to the current one.
Names are compared case insensitive.
The to compare with the current true if the specified object is equal to the current object; otherwise, false.
Determines whether the specified object is equal to the current object.
The object to compare with the current object.
true if the specified object is equal to the current object; otherwise, false.
Serves as a hash function for a particular type.
A hash code for the current .
Determines whether two objects are equal.
First object to compare.
Second object to compare.
if the specified objects are equal; otherwise, .
Determines whether two objects are not equal.
First object to compare.
Second object to compare.
if the specified objects are not equal; otherwise, .
Returns the of this object.
of this object.
Represents data decoded from BinHex encoded data.
Gets the name stored in BinHex data.
Gets the type stored in BinHex data.
Gets auth data stored in BinHex data.
Gets flags stored in BinHex data.
Gets data.
Gets resource data.
Represents business card (vcard) entity.
To get all vcards, that an email contains, you can use collection.
You can add vcards to an email using or methods.
Gets or sets the formatted text corresponding to the full name of the object this vCard represents (FN).
Gets or sets the name of the object this vCard represents (N).
Gets or sets the organization of the object this vCard represents (ORG).
Gets or sets the position or job of the object this vCard represents (TITLE).
Gets or sets the a uniform resource locator associated with the object to which this vCard refers (URL).
Gets preferred work phone of the object this vCard represents (TEL).
Gets preferred work fax of the object this vCard represents (TEL).
Gets preferred home phone of the object this vCard represents (TEL).
Gets preferred home fax of the object this vCard represents (TEL).
Gets work address of the object this vCard represents (ADR).
Gets home address of the object this vCard represents (ADR).
Gets preferred email of the object this vCard represents (EMAIL).
Gets all addresses associated with this vCard (ADR).
Gets all phones associated with this vCard (TEL).
Gets all emails associated with this vCard (EMAIL).
Creates new VCard entity.
Represents VCard address.
Gets types of this entity.
Gets or sets the post office box.
Gets or sets the extended address (e.g. apartment or suite number).
Gets or sets the street address.
Gets or sets the locality (e.g. city).
Gets or sets the region (e.g. state or province).
Gets or sets the postal code.
Gets or sets the country name.
Creates new VCardAddress entity.
Creates new VCardAddress entity.
Post office box.
Extended address (e.g. apartment or suite number).
Street address.
Locality (e.g. city)
Region (e.g state or province).
Postal code.
Country name.
Marks this address as work address.
Marks this address as home address.
Represents VCard email.
Gets or sets preference (lower value is more preferred, zero is least preferred)
Gets types of this entity.
Gets or sets the actual email address.
Creates new VCardEmail entity.
Creates new VCardEmail entity.
Email value.
Marks this email address as work email address.
Marks this email address as home email address.
Marks this email address as preferred email address.
Represents VCard name.
Gets or sets first name.
Gets or sets last name.
Creates new VCardName entity.
Creates new VCardName entity.
First name.
Last name.
Represents VCard organization.
Gets or sets the organization name.
Gets organization units.
Creates new VCardOrganization object.
Creates new VCardOrganization object.
Organization's name.
VCard business card parser.
Creates new VCardParser with specified encoding.
Encoding to be used when extracting encoded data.
Creates new VCardParser with UTF-8 encoding.
Parses specifed text and creates new VCard business card object.
Text to parse.
VCard business card.
Represents VCard phones.
Gets or sets preference (lower value is more preferred, zero is least preferred)
Gets types of this entity.
Gets or sets the value (uri or text).
Gets or sets phone value.
Creates new VCardPhone entity.
Creates new VCardPhone entity.
Phone value.
Sets phone as free form text.
Phone as free form text.
Sets phone as free uri text.
Phone as ur (tel:+1-111-555-1212).
Marks this phone as work phone.
Marks this phone as home phone.
Marks this phone as fax phone.
Marks this phone as voice phone.
Represents VCard types.
Static fields of this class represent most common types (e.g. , , , ...).
Represents Home.
Represents Work.
Represents Voice.
Represents Fax.
Represents preferred type.
Represents Internet type.
Represents DKIM signature configuration: RSA private key and signature info.
RSA class containing private key used for signing.
DKIM signature information (selector, domain).
Creates new instance of DKIMSignatureInfoAndRsa.
RSA class containing private key used for signing.
DKIM signature information (selector, domain).
Represents DKIM (DomainKeys Identified Mail) signature validation configuration.
You can use , , and helper methods to create this type.
Get or sets a Boolean value that indicates whether unsigned from header error should be ignored. Default is false.
Get or sets a Boolean value that indicates whether incorect parameter value should be ignored,
for example when value is greater that the length of the data that needs to be hashed.
Default is true.
Get or sets the selector for header validation.
Consider using static method instead of setting this field.
Get or sets the domain for header validation.
Consider using static method instead of setting this field.
Gets or sets the cvalue indincating how DKIM-Signature headers are validated.
Creates new DKIMValidationConfiguration object.
Creates new DKIMValidationConfiguration object with set to .
New DKIMValidationConfiguration object.
Creates new DKIMValidationConfiguration object with set to .
Public key DNS selector (s=).
Public key DNS domain (d=).
New DKIMValidationConfiguration object.
Creates new DKIMValidationConfiguration object with set to .
New DKIMValidationConfiguration object.
Creates new DKIMValidationConfiguration object with set to .
New DKIMValidationConfiguration object.
Specifies how DKIM-Signature headers are validated.
Validates first DKIM-Signature header found (default).
Validates specific DKIM-Signature header found.
Validates DKIM-Signature headers until it finds valid one.
Validates all DKIM-Signature headers.
Represents DKIM canonicalization.
You can use it to specify or .
Simple canonicalization (almost no changes to the headers or body are allowed).
Relaxed canonicalization (minor changes, like additional spaces, are allowed).
Nowsp canonicalization. It should not be used and is considered insecure. (It is not defined in RFC4871)
Represents DKIM hash algorithm.
RSA-SHA1 hash algorithm.
RSA-SHA256 hash algorithm.
RSA-SHA512 hash algorithm.
Represents DKIM signature information. (E.g. Canonicalization used, hash algorithm, selector, domain)
Gets or sets public key DNS selector (s=).
Gets or sets DKIM version (v=).
Gets or sets public key DNS domain (d=).
Gets or sets list of headers that are included in the signature (h=).
Gets or sets hash algorithm (a=).
Gets or sets header canonicalization (c=).
Gets or sets body canonicalization (c=).
Gets or sets the number of body characters that are included in the signature (l=).
Null means that hash is computed for entire body.
Negative value means error during parsing, or negative value specified.
Gets or sets the signature timestamp - the time that this signature was created (t=).
Default (null) is an unknown creation time.
Gets or sets the signature expiration - the time that this signature was created (x=).
Default (null) is an unknown expiration time.
The value of this property must be greater than the value of if both are present.
Signatures MAY be considered invalid if the verification time at the verifier is past the expiration date.
bh=
b=
b=
Creates new instance of DKIMSignatureInfo.
Creates new instance of DKIMSignatureInfo.
DNS public key domain selector.
DNS public key domain.
Sets bh=, clears b=
Body hash.
Sets b=
Checks if this object is correctly filled.
True if object is correctly filled, false otherwise.
Gets list of the errors in this object.
List of errors.
n=
p=
v=
g=
h=
s=
t=
k=
Represents S/MIME (Secure/Multipurpose Internet Mail Extensions) encryption configuration.
Gets or sets the type of the identifier of the recipient. Default is
Gets the list of certificates that will be used to encrypt the message.
Gets or sets the encryption algorithm. You can use one of the static values.
Default is 3DES ().
Creates new EncryptionConfiguration instance.
Certificate that will be used to encrypt the message.
Creates new EncryptionConfiguration instance.
Represents attachment configuration.
Sets the attachment's file name.
FileName of the attachment.
Attachment configuration
Sets the and value if requested.
Suggested file name.
True if should be set based on the file name extension.
Newly added attachment.
Sets the attachment's Content-Id.
Content-Id of the attachment.
Attachment configuration
Sets the attachment's Content-type.
Content-Type of the attachment.
Attachment configuration
Email configuration.
Sets plain text version of the email. Please remember that using method will override plain text.
Plain text version of email body.
Email configuration.
Sets HTML version of the email.
If is not empty extracts plain text from HTML and overrides .
HTML version of email body.
Email configuration.
Sets the author of this email ('From' header).
This method can be used multiple times to set many addresses.
Email address of the email's author.
Email configuration.
Sets the author of this email ('From' header).
Email's author.
Email configuration.
Sets mailbox of the agent responsible for the actual transmission of this email message ('Sender' header).
Email address of the email's sender.
Email configuration.
Sets mailbox of the agent responsible for the actual transmission of this email message ('Sender' header).
Email's sender.
Email configuration.
Sets email address(es) to which the author of this email message suggests that replies be sent ('Reply-to' header).
This method can be used multiple times to set many addresses.
Reply-To email address.
Email configuration.
Sets email address(es) to which the author of this email message suggests that replies be sent ('Reply-to' header).
You can use to represent single mailbox, or to represent group of email addresses.
This method can be used multiple times to set many addresses.
Reply-To mailbox.
Email configuration.
Sets address(es) of the primary recipient(s) of this email message ('To' header).
This method can be used multiple times to set many addresses.
Email address of the email recipient.
Email configuration.
Sets address(es) of the primary recipient(s) of this email message ('To' header).
You can use to represent single mailbox, or to represent group of email addresses.
This method can be used multiple times to set many addresses.
Email recipient.
Email configuration.
Sets the address(es) of others who are to receive this email message ('CC', Carbon Copy header), even tough the content of the message may not be directed at them.
This method can be used multiple times to set many addresses.
CC recipient.
Email configuration.
Sets the address(es) of others who are to receive this email message ('CC', Carbon Copy header), even tough the content of the message may not be directed at them.
You can use to represent single mailbox, or to represent group of email addresses.
This method can be used multiple times to set many addresses.
Email address of the CC recipient.
Email configuration.
Sets the address(es) of others who are to receive this email message ('BCC', Blind Carbon Copy header), even tough the content of the message may not be directed at them.
This method can be used multiple times to set many addresses.
Email address of the BCC recipient.
Email configuration.
Sets the address(es) of others who are to receive this email message ('BCC', Blind Carbon Copy header), even tough the content of the message may not be directed at them.
You can use to represent single mailbox, or to represent group of email addresses.
This method can be used multiple times to set many addresses.
BCC recipient.
Email configuration.
Sets the disposition notifications address(es) ('Disposition-Notification-To' header).
Consider using method instead of using this method.
This method can be used multiple times to set many addresses.
Disposition-Notification-To mailbox.
Email configuration.
Sets the disposition notifications address(es) ('Disposition-Notification-To' header).
Consider using method instead of using this method.
This method can be used multiple times to set many addresses.
Disposition-Notification-To email address.
Email configuration.
Sets return receipt address(es) ('Return-Receipt-To' header).
Consider using method instead of using this method.
This method can be used multiple times to set many addresses.
Return-Receipt-To mailbox.
Email configuration.
Sets return receipt address(es) ('Return-Receipt-To' header).
Consider using method instead of using this method.
This method can be used multiple times to set many addresses.
Return-Receipt-To email address.
Email configuration.
Sets confirm reading address(es) ('X-Confirm-Reading-To' header).
Consider using method instead of using this method.
This method can be used multiple times to set many addresses.
X-Confirm-Reading-To mailbox.
Email configuration.
Sets confirm reading address(es) ('X-Confirm-Reading-To' header).
Consider using method instead of using this method.
This method can be used multiple times to set many addresses.
X-Confirm-Reading-To email address.
Email configuration.
This method copies From or ReplyTo addresses to all read receipts lists.
Read receipts are stored using , and headers.
Read receipt requests may not always be honored because:
Email client may not recognize the special Disposition-Notification-To header; Email client may not implement that functionality; End user may have that functionality turned off; End user may optionally not choose to send one for your particular email; Email configuration.
Sets the priority of a email message ('Priority' header).
Consider using or methods instead of using this method.
Message's priority.
Email configuration.
Sets the X-Priority of this email message ('X-Priority' header) (Outlook specific).
Value ranges from "1" to "5" where "1" is the highest priority, "3" is normal, and "5" is the lowest priority.
Consider using or methods instead of using this method.
Message's priority value ranges from "1" to "5" where "1" is the highest priority, "3" is normal, and "5" is the lowest priority.
Email configuration.
Sets the importance of the message.
Consider using or methods instead of using this method.
Message's importance.
Email configuration.
Sets the sensitivity of a email message ('Sensitivity' header).
Message's sensitivity.
Email configuration.
Sets to 1, to and
to Email configuration.
Sets to 5, to and
to Email configuration.
Sets id of a email message ('Message-ID' header). If not set or set to null generated automatically.
Message id without surrounding brackets.
Email configuration.
Adds unique id () of the referenced email message ('References' header).
Referenced message id without surrounding brackets.
Email configuration.
Sets the id of the parent email message ('In-Reply-To' header).
Referenced message id without surrounding brackets.
Email configuration.
Sets subject of a message ('Subject' header).
Subject of the message.
Email configuration.
Sets the send date of a email message ('Date' header).
If null, is set automatically to current date and time when method is used.
Date of the message.
Email configuration.
Adds custom header.
Header name.
Header value.
Email configuration.
Adds a attachment to the message.
The file to read data from.
Email configuration for this attachment.
Adds a attachment to the message.
Data of the attachment.
Email configuration for this attachment.
Adds a visual attachment to the message.
The file to read data from.
Email configuration for this attachment.
Adds a visual attachment to the message.
Data of the visual attachment.
Email configuration for this attachment.
Adds alternative view for this message.
Alternative view to add.
Email configuration.
Adds specified appointment as alternative view for this message.
Appointment to add.
Email configuration.
Adds specified VCARD as attachment to this message.
VCard business card to add.
Email configuration.
Signs the message.
Certificate used for signing.
Email configuration.
Signs the message.
Signature configuration: such as certificate, algorithm etc.
Email configuration.
Encrypts the message using specified certificate.
You can call this method multiple times to use several certificates for encryption.
General rule is that both sender and receiver should be able to decrypt the message.
Certificate to use for encryption.
Email configuration.
Encrypts the message using specified encryption configuration.
General rule is that both sender and receiver should be able to decrypt the message.
Encryption configuration: such as certificates, algorithm etc.
Email configuration.
Signs the message using DKIM (DomainKeys Identified Mail) signature.
You can call this method multiple times to have several DKIM signatures present in the resulting message.
RSA class containing private key used for signing.
DNS public key domain selector.
DNS public key domain.
Email configuration.
Signs the message using DKIM (DomainKeys Identified Mail) signature.
You can call this method multiple times to have several DKIM signatures present in the resulting message.
RSA class containing private key used for signing.
DKIM signature information.
Email configuration.
Signs the message with multiple DKIM (DomainKeys Identified Mail) signatures.
List of RSA keys and signature infos.
/// Email configuration.
Creates new object.
Email object.
Allows creation and sending emails using fluent interface syntax.
Creates new plain text email.
Email content.
Email configuration.
Creates new HTML email.
Email content in HTML format.
Email configuration.
You can use this class to forward an email.
Gets or sets plain text version of the reply template.
Template sample:
[Text]
On [Original.Date] [Original.Sender.Name] wrote:
[QuoteText]
Gets or sets HTML version of the reply template.
Template sample:
Gets or sets reply template for the subject.
Template sample:
RE: [Original.Subject]
Gets a dictionary of additional template keys, that are used when rendering subject and text templates.
Gets or sets the value that specifies if collection is copied to resulting email.
Gets or sets plain text version of the reply. Please remember that setting will override plain text.
Gets or sets HTML version of the reply. Extracts plain text from HTML and also sets property.
Gets or sets a value indicating if plain text version of a body is extracted from HTML when property is set.
Default is true.
Creates new ForwardBuilder object.
Original email to reply to.
Creates MailBuilder class that can be used to create an actual email.
This method copies attachments, sets , , , and properties.
From mailbox used for forwarding (the address from which the forward will be sent).
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create an actual email.
This method copies attachments, sets , , , and properties.
From address used for forwarding (the address from which the forward will be sent).
MailBuilder class that can be used to create an actual email.
Generic priority of the message.
Message priority can be stored used three different headers: , and .
This enum is used by method, which checks all those headers.
Message has low priority.
Message has normal priority.
Message has high priority.
Represents global configuration settings.
Gets or sets DNS server address.
This address is used for DKIM queries.
Represents address comparision mode.
s are compared using case sensitive comparison and s are compared using case insensitive comparison.
s are compared using case sensitive comparison and s are compared using case insensitive comparison.
Both s and s are compated using case insensitive comparison.
Represent address header rendering mode.
This constant is primarly used to define how BCC headers is rendered.
No header is rendered at all.
Header's key is rendered only. E.g. "Bcc: ".
Header is rendered in full, including the value. E.g. "Bcc: secret@example.com".
Contains helper methods for content-id operations.
Decodes Content-ID in URL format ('a%25b@c').
Converts %hh hex-escaped characters to their ASCII equivalents.
Content-ID for decoding.
Decoded Content-ID value ('a%b@c').
If url is "cid" URL ('cid:a%25b@c') method returns true.
Address to check.
True if href is cid url, false otherwise.
If url is "cid" URL ('cid:a%25b@c') method returns decoded Content-ID message header ('a%b@c').
Converts %hh hex- escaped characters to their ASCII equivalents.
Address to extract content id from.
Content-ID message header -or- null if url is NOT "cid" URL.
Represents content type of the message (E.g. "text/plain").
You can use static fields of this class such as: , or .
Represents text/plain content type.
Represents text/html content type.
Represents text/rtf content type.
Represents application/rtf content type.
Represents text/xml content type.
Represents text/csv content type.
Represents application/octet-stream content type.
Represents application/msword content type.
Represents application/vnd.ms-excel content type.
Represents application/vnd.ms-powerpoint content type.
Represents multipart/Mixed content type.
Represents multipart/related content type.
Represents multipart/alternative content type.
Represents multipart/signed content type.
Represents multipart/report content type.
Represents application/mac-binhex40 content type.
Represents application/mac-binhex content type.
Represents application/binhex content type.
Represents application/applefile content type (aka AppleSingle).
Starts with or .
Represents application/applesingle content type.
Starts with or .
Represents application/appledoubleheader content type.
Starts with or .
Represents multipart/appledouble content type.
Contains AppleDoubleHeader part and data part.
Represents TNEF content type: application/Ms-Tnef.
Represents official TNEF content type: application/vnd.ms-tnef.
Represents application/pdf content type.
Represents application/zip content type.
Represents application/gzip content type.
Represents text/calendar content type.
Represents application/ics content type.
Represents text/vcard content type.
Represents message/partial content type. You can use to joined split emails.
Represents message/rfc822 content type.
Represents text/rfc822-headers content type.
Represents message/global content type.
Represents message/global-headers content type.
Represents message/delivery-status content type.
Represents message/xdelivery-status content type.
Represents message/global-delivery-status content type.
Represents message/disposition-notification content type.
Represents image/jpeg content type.
Represents image/png content type.
Represents image/gif content type.
Represents image/bmp content type.
Represents image/tiff content type.
Represents application/x-pkcs7-signature content type (detached signature).
Represents application/pkcs7-signature content type (detached signature).
Represents application/pkcs7-mime content type (encrypted message, attached signature).
Represents application/x-pkcs7-mime content type (encrypted message, attached signature).
Creates new content type instance.
Mime type.
Mime subtype
Type name of content.
Subtype name of content.
Returns 'mime type name'/'mime subtype name' string.
MimeTypeName/MimeSubtypeName
Determines whether the specified object is equal to the current one.
The to compare with the current true if the specified object is equal to the current object; otherwise, false.
Determines whether the specified object is equal to the current object.
The object to compare with the current object.
true if the specified object is equal to the current object; otherwise, false.
Determines whether two objects are equal.
First object to compare.
Second object to compare.
if the specified objects are equal; otherwise, .
Determines whether two objects are not equal.
First object to compare.
Second object to compare.
if the specified objects are not equal; otherwise, .
Returns hash code for this instance.
Hash code.
Parses specified string and creates new object.
String in format: type/subtype
New object.
Specifies if the disposition described by the disposition type was a result of an manual or automatic action.
You can use static fields of this class: , .
The disposition described by the disposition type was a result of an explicit instruction
by the user rather than some sort of automatically performed action.
The disposition described by the disposition type was a result of an automatic action,
rather than an explicit instruction by the user for this message.
Specifies if the Message Delivery Notification (MDN) was sent manually or automatically.
You can use static fields of this class: , .
The user explicitly gave permission for this particular Message Delivery Notification (MDN) to be sent.
The Message Delivery Notification (MDN) was sent because the Mail User Agent (MUA) had previously been configured to do so automatically.
Describes disposition type of the message (RFC 2298, RFC 3798)
You can use static fields of this class: , .
The message has been displayed by the Mail User Agent (MUA) to someone reading the recipient's mailbox.
There is no guarantee that the content has been read or understood.
The message has been deleted. The recipient may or may not have seen the message.
The recipient might "undelete" the message at a later time and read the message.
The message has been sent somewhere in some manner (e.g., printed, faxed, forwarded)
without necessarily having been previously displayed to the user.
The user may or may not see the message later.
The message has been processed in some manner (i.e., by some sort of rules or server) without being displayed to the user.
The user mayor may not see the message later, or there may not even be a human user associated with the mailbox.
The recipient does not wish the sender to be informed of the message's disposition.
A UA may also siliently ignore message disposition requests in this situation.
A failure occurred that prevented the proper generation of an MDN.
More information about the cause of the failure may be contained in a Failure field.
The "failed" disposition type is not to be used for the situation in which there is is some problem in processing the message
other than interpreting the request for an MDN.
The "processed" or other disposition type with appropriate disposition modifiers is to be used in such situations.
Indicates the action performed by the Reporting-MTA as a result of its attempt to deliver the message.
You can use static fields of this class: , , , , .
Indicates that the message could not be delivered to the recipient.
The Reporting MTA has abandoned any attempts to deliver the message to this recipient.
No further notifications should be expected.
Indicates that the Reporting MTA has so far been unable to deliver or relay the message, but it will continue to attempt to do so.
Additional notification messages may be issued as the message is further delayed or successfully delivered,
or if delivery attempts are later abandoned.
Indicates that the message was successfully delivered to the recipient address specified by the sender,
which includes "delivery" to a mailing list exploder.
It does not indicate that the message has been read.
This is a terminal state and no further DSN for this recipient should be expected.
Indicates that the message has been relayed or gatewayed into an environment that does not accept responsibility
for generating DSNs upon successful delivery.
This action-value SHOULD NOT be used unless the sender has requested notification of successful delivery for this recipient.
Indicates that the message has been successfully delivered to the recipient address as specified by the sender,
and forwarded by the Reporting-MTA beyond that destination to multiple additional recipient addresses.
An action-value of "expanded" differs from in that "expanded" is not a terminal state.
Further "failed" and/or "delayed" notifications may be provided.
Represents extended domain information.
Used to describe and parts of headers.
Gets or sets domain.
Gets or sets domain from TCP-info (Information derived by server from TCP connection; not client EHLO).
Gets or sets address from TCP-info (Information derived by server from TCP connection; not client EHLO).
Represents collection of all MIME headers.
Gets or set the header value for specified header key.
Header key.
Value for specified header key.
Gets all MIME header keys stored in this collection.
Returns the total number of elements stored in this collection.
Gets the values associated with the specified key.
The string key of the entry that contains the values to get.
A string array that contains the values associated with the specified key.
Gets the unfolded (new lines removed) value associated with the specified key.
The string key of the entry that contains the value to get.
A string that contains the value associated with the specified key.
Gets the unfolded (new lines removed) values associated with the specified key.
The string key of the entry that contains the values to get.
A string array that contains the values associated with the specified key.
Adds value for specified header key.
Header key.
Value for specified header key.
Removes all headers for specified header key. Updates listener for that key.
Header key.
Adds listener which will be informed when specified key changes.
If the headers contains such key, listener should parse it (headers -> listener)
otherwise we will get the value form listener (listener -> headers).
Header which will be informed about the change.
Implements 'Base64' and 'Quoted-Printable' header decoding (RFC 2047), removes comments and replaces escape sequences.
Decodes Base64 and Quoted-Printable strings (RFC 2047).
"Tom and =?iso-8859-2?Q?Pawe=B3_Le=B6nikowski?= are..."
"Tom and Paweł Leśnikowski are..."
The charset is not supported by the current regional options of the computer executing this method.
Implements 'Base64' and 'Quoted-Printable' header encoding (RFC 2047).
Gets encoder configuration.
Creates new HeaderEncoder object.
Encoding used.
Encodes header values. Uses 'Quoted-Printable' or 'Base64', whichever is best.
Header value to encode.
Encoded header.
Represents configuration.
Gets or sets the maximum length of the first encoded-word.
Gets or sets the maximum length of the encoded-words.
Header encoding format.
Base64 encoding.
7 bit encoding.
Quoted Printable encoding.
Represents MIME entity header render mode.
Quoted-Printable and Base64 encoded-words (RFC 2047) are used when rendering UTF-8 data.
Addresses are rendered using combination of encoded-words and punycode.
UTF-8 rending mode.
Content-Disposition header interface.
Gets or sets options value for specified key.
Options key.
Options value.
Gets of sets disposition of content.
Suggested filename ('filename' parameter). May be null.
Consider using as it is guaranteed to contain valid file name.
It is important that you should not blindly use the suggested filename.
The suggested filename SHOULD be checked (and possibly changed)
to see that it conforms to local file system conventions,
does not overwrite an existing file, and does not present a security problem.
Represents 'Content-type' header.
You can use this class to add additional options to content-type header
Content type value. May be null.
Gets or sets additional options in this header.
Options key.
Options value.
Suggested filename ('name' parameter). May be null.
Consider using as it is guaranteed to contain valid file name.
It is important that you should not blindly use the suggested
filename. The suggested filename SHOULD be checked (and possibly
changed) to see that it conforms to local file system conventions,
does not overwrite an existing file, and does not present a security
problem.
Lower case and trimmed.
Index of the first removed header
Parser used for parsing name and address
Parses text, and creates new object.
Replaces escape sequences in mailbox's display-name,
and decodes Quoted-Printable and Base64 fragments.
String to parse.
Supported formats:"name" <address>name <address><address>addressNew object or null if s isnull.
Base class for headers contained in class.
Implements ID header surrounded by brackets (e.g. 'content-id' field (RFC 2392)).
Implements 'content-disposition' header field (RFC 2183).
Implements 'content-transfer-encoding' header.
Messages without a MIME Content-Type header are taken
to be plain text in the US-ASCII character set, which can be explicitly specified as:
Content-type: text/plain; charset=us-ascii
Each part in "multipart/digest" has a default type of "message/rfc822".
Parses specified header value, extracts all key/value options.
value of the header.
Implementing 'priority' header.
Represents list id.
Gets the display name of this list.
Gets the id of this list.
Creates new ListID object instance.
List id.
Creates new ListID object instance.
List id.
List name.
Encodes and escapes all necessary data and renders this id as a string.
Header render mode ( (which uses encoded words) or ).
This object rendered as string.
Creates new object using specified id and display name.
This method in contrast to constructor doesn't perform any kind of validation.
List id.
List name.
New ListID object.
Represents base class for email addresses.
You can use to represent single mailbox, or to represent a group of email addresses.
Consider using method to extract (es) represented by this email address.
You can use class to parse raw string into its object representation.
Gets display name of this emmail address e.g. "John Smith". Can by null.
Please note that two classes inherit from this class - you can use or properties to get email address(es).
Consider using method to extract (es) represented by this email address.
Encodes and escapes all necessary data and renders this email address as a string.
This object rendered as string.
Encodes and escapes all necessary data and renders this email group as a string.
Header render mode ( (which uses encoded words and puny code) or ).
This object rendered as string.
Gets all mailboxes represented by this email address.
List of mailboxes represented by this email address.
Email address parser.
It can be used to parse raw strings and create its or representation.
Parses text, and creates new object.
String to parse.
New object.
Parses text, and creates a list of new objects.
String to parse.
New list of objects.
Represents mailbox that consists of email address and display name.
Gets email address e.g. "john.smith@example.com".
Gets the domain part of the e.g. "example.com".
Gets the local part of the e.g. "john.smith".
Creates new MailBox object using specified email address and display name.
Email address.
Display name.
Creates new MailBox object using specified email address.
Email address.
Creates new object using specified email address and display name.
This method in contrast to constructor doesn't perform any kind of address validation.
Email address.
Display name.
Newly created MailBox object.
Creates new object using specified email address and no display name.
This method in contrast to constructor doesn't perform any kind of address validation.
Email address.
Newly created MailBox object.
Encodes and escapes all necessary data and renders this mailbox as a string.
This object rendered as string.
Encodes and escapes all necessary data and renders this email as a string.
Header render mode ( (which uses encoded words and puny code) or ).
This object rendered as string.
Returns string containing the Name and the Address.
String containing the Name and the Address
Checks if addresses of two instances are equal.
s are compared using case sensitive comparison and s are compared using case insensitive comparison.
First object to compare.
Second object to compare.
True if addresses are equal, false otherwise.
Checks if addresses of two instances are equal.
First object to compare.
Second object to compare.
Address comparision mode.
True if addresses are equal, false otherwise.
Gets all mailboxes represented by this mail address.
List of mailboxes containing only this mailbox.
Represents mail address group that consists of a and list.
Gets all mail addresses in this group.
Creates new MailGroup object.
Group name.
Addresses in this group.
Creates new empty group.
Group name.
Encodes and escapes all necessary data and renders this email group as a string.
This object rendered as string.
Encodes and escapes all necessary data and renders this email group as a string.
Header render mode ( (which uses encoded words and puny code) or ).
This object rendered as string.
Returns string containing the Name and all .
String containing the Name and all .
Gets all mailboxes represented by this mail group.
List of mailboxes represented by this group and all child groups.
Represents type of action which mail user agent should take to present the specified data to the user.
(RFC 2183)
You can use static fields of this class: , .
Data should be displayed to the user.
This is attachment.
Mime encoding format.
You can use static fields of this class: , , , .
No encoding transformation has been performed.
7-bit encoding refers to data that is all represented as relatively short lines with 998 octets or less between CRLF line separation.
No octets with decimal values greater than 127 are allowed and neither are NULs (0).
CR (13) and LF (10) octets only occur as part of CRLF line separation sequences.
(RFC 2045 2.7)
No encoding transformation has been performed.
8-bit encoding refers to data that is all represented as relatively short lines with 998 octets or less between CRLF line separation.
No octets with decimal values greater than 127 are allowed and neither are NULs (0).
CR (13) and LF (10) octets only occur as part of CRLF line separation sequences.
(RFC 2045 2.7)
No encoding transformation has been performed.
Binary encoding refers to data where any sequence of octets whatsoever is allowed.
(RFC 2045 2.7)
Represents quoted-printable encoding.
Represents base64 encoding.
Represents UUE encoding (Unix to Unix encoding).
Represents UUE encoding (Unix to Unix encoding).
Importance of email message.
You can use static fields of this class: , , .
High importance.
Normal importance.
Low importance.
Priority of email message.
You can use static fields of this class: , , .
Urgent priority.
Normal priority.
Non urgent priority.
Represents report type.
You can use static fields of this class: , .
"delivery-status" type.
Delivery Status Notification.
"disposition-notification" type.
Notification of the "disposition" of a message - indicating, for example, whether it is read by a recipient, discarded before being read.
Sensitivity of email message.
You can use static fields of this class e.g. , , .
Message is personal.
Message is private.
Message is company confidential.
Represents content's subtype (RFC 2045).
Consider using static fields of class, such as: , , .
'?/plain' subtype.
'?/html' subtype.
'?/related' subtype.
'?/mixed' subtype.
'?/alternative' subtype.
'?/digest' subtype.
'?/report' subtype.
'?/appledouble' subtype.
'?/applefile' subtype.
'?/partial' subtype.
'?/rfc822' subtype.
'?/rfc822-headers' subtype.
'?/signed' subtype.
'?/delivery-status' subtype.
'?/xdelivery-status' subtype.
'?/disposition-notification' subtype.
'?/octet-stream' subtype.
'?/jpeg' subtype.
'?/richtext' subtype.
'?/rtf' subtype.
'?/xml' subtype.
'?/csv' subtype.
'?/gif' subtype.
'?/tiff' subtype.
'?/bmp' subtype.
'?/png' subtype.
?/pdf subtype.
'?/mpeg' subtype.
'?/mp4' subtype.
'?/zip' subtype.
'?/x-zip-compressed' subtype.
'?/gzip' subtype.
'?/x-gzip' subtype.
'?/ms-tnef' subtype.
'?/vnd.ms-tnef' subtype.
'?/calendar' subtype.
'?/vcard' subtype.
'?/x-vcard' subtype.
'?/directory' subtype.
'?/msword' subtype.
'?/vnd.ms-excel' subtype.
'?/vnd.ms-powerpoint' subtype.
'?/pkcs7-signature' subtype.
'?/x-pkcs7-signature' subtype.
'?/pkcs7-mime' subtype.
'?/x-pkcs7-mime' subtype.
Creates new MimeSubtype instance.
Subtype string.
Represents content's type (RFC 2045).
Consider using static fields of class, such as: , or .
'application/?' type.
'text/?' type.
'multipart/?' type.
'message/?' type.
'image/?' type.
'audio/?' type.
'model/?' type.
'video/?' type.
Creates new MimeType instance.
Type string.
Some header fields can contain comments - text between 2 parentheses '(' , ')'. This method removes comments from specified string.
Represents single 'received' header of the email.
Gets or sets From part.
Gets or sets By part.
Gets or sets Via part.
Gets or sets With part.
Gets or sets Id part.
Gets or sets For part.
Gets or sets Date part.
Initializes a new instance of the class.
Returns the string representation of this object.
String representation of this object.
Represents an error that occurred during html parsing.
Initializes new instance of HtmlException with serialized data.
Serialized object data.
Contextual information.
This class provides simple access to email message.
Use class to create this object.
It is possible to access entire MIME tree using property.
Gets the entire object associated with this email message.
Gets or sets the subject of this email message ('Subject' header). May be null.
Gets or sets MIME version of this email message ('MIME-version' header).
Gets or sets id of this email message ('Message-ID' header). Does not include surrounding brackets (< and >).
Gets or sets the message-id of the parent email message ('In-Reply-To' header). Does not contain surrounding brackets (< and >).
Gets the ids of the referenced email messages. Does not include surrounding brackets (< and >).
This collection can be modified. May be empty.
Gets the boolean value indicating if this message is a reply.
Gets the boolean value indicating if this message was forwarded.
Gets the boolean value indicating if this message was split (MIME document root is of type ).
Gets the unique identifier to be used to match the parts together.
Gets the author(s) of this email message ('From' header).
This collection can be modified. If it's empty, email message is NOT RFC 2822 compliant.
Gets or sets mailbox of the agent responsible for the actual transmission of this email message ('Sender' header).
If 'Sender' is null, it returns first item from collection.
'Sender' is not required if property contains only one .
'Sender' property is needed when message is from more than one person ( contains more than one mailbox).
In such case Sender provides information which mailbox is responsible for the actual transmission.
Gets or sets mailbox of the agent responsible for the actual transmission of this email message ('Sender' header).
'Sender' is not required if property contains only one .
'Sender' property is needed when message is from more than one person ( contains more than one mailbox).
In such case Sender provides information which mailbox is responsible for the actual transmission.
Gets the address(es) to which the author of this email message suggests that replies be sent ('Reply-to' header).
In this collection you can find which represents single mailbox, or which represents group of email addresses.
This collection can be modified. May be empty.
The Reply-To value should not be used by any server. It is meant for client side use.
Gets the address(es) of the primary recipient(s) of this email message ('To' header).
In this collection you can find which represents single mailbox, or which represents group of email addresses.
This collection can be modified. May be empty.
You can use Linq's To.SelectMany(address => address.GetMailboxes()) to retrieve list.
Gets the address(es) of others who are to receive this email message ('CC', Carbon Copy header), even tough the content of the message may not be directed at them.
In this collection you can find which represent single mailbox, or which represents group of email addresses.
This collection can be modified. May be empty.
You can use Linq's Cc.SelectMany(address => address.GetMailboxes()) to retrieve list.
Gets the address(es) of others who are to receive this email message ('BCC', Blind Carbon Copy header), even tough the content of the message may not be directed at them.
In this collection you can find which represents single mailbox, or which represents group of email addresses.
This collection can be modified. May be empty.
BCC header is not rendered when method is used, however it is rendered when message is saved using method.
Gets or sets the address of the recipient taken from the SMTP envelope (SMTP "RCTP FROM").
If the recipient in the SMTP envelope ("RCTP TO") is not included in the CC list,
some mail servers add this header as an aid to clients which would otherwise not be able to display the envelope recipients.
Gets or sets the address of the recipient taken from the SMTP envelope (SMTP "RCTP FROM").
If the recipient in the SMTP envelope ("RCTP TO") is not included in the CC list,
some mail servers add this header as an aid to clients which would otherwise not be able to display the envelope recipients.
Gets or sets the address of the recipient taken from the SMTP envelope (SMTP "RCTP FROM").
If the recipient in the SMTP envelope ("RCTP TO") is not included in the CC list,
some mail servers add this header as an aid to clients which would otherwise not be able to display the envelope recipients.
Gets or sets the address of the sender taken from the SMTP envelope (SMTP "MAIL FROM").
If the sender in the SMTP envelope ("MAIL FROM") is not the same as the senders in the "From" or "Sender" RFC 2822 header fields,
some mail servers add this header as an aid to clients which would otherwise not be able to display the envelope sender.
Gets or sets the address of the sender taken from the SMTP envelope (SMTP "MAIL FROM").
If the sender in the SMTP envelope ("MAIL FROM") is not the same as the senders in the "From" or "Sender" RFC 2822 header fields,
some mail servers add this header as an aid to clients which would otherwise not be able to display the envelope sender.
Gets the disposition notifications addresses ('Disposition-Notification-To' header). This collection can be modified. May be empty.
Gets return receipt addresses ('Return-Receipt-To' header). This collection can be modified. May be empty.
Gets confirm reading addresses ('X-Confirm-Reading-To' header). This collection can be modified. May be empty.
Gets or sets return path address ('Return-Path' header). Does not include brackets (< and >).
All bounces that occur during the SMTP session should go back to the Return-Path value.
The recipient's mail server is supposed to add a Return-Path header to the top of the email.
If Return-Path header already exists in the email, then that header should be replaced by the recipient's mail server.
Gets or sets the send date of this email message ('Date' header).
May be null in case of parsing error or when 'Date' header is missing.
Gets URL list of mailing list archive ('List-Archive' header). This collection can be modified. May be empty.
Gets URL list for mailing list information ('List-Help' header). This collection can be modified. May be empty.
Gets or sets mailing list identifier ('List-Id' header).May be null.
Gets URL list for mailing list owner's mailbox ('List-Owner' header). This collection can be modified. May be empty.
Gets URL list for mailing list posting ('List-Post' header). This collection can be modified. May be empty.
Gets URL list for mailing list subscription ('List-Subscribe' header). This collection can be modified. May be empty.
Gets list of URLs ("http://www.example.com/unsubscribe") or emails ("mailto:unsubscribe@lexample.com") for mailing list unsubscription ('List-Unsubscribe' header).
This collection can be modified. May be empty.
Gets or sets the importance of this email message ('Importance' header).
Consider using as it also checks and properties.
Gets or sets the priority of this email message ('Priority' header).
Consider using as it also checks and properties.
Gets or sets the X-Priority of this email message ('X-Priority' header) (Outlook specific).
Value ranges from "1" to "5" where "1" is the highest priority, "3" is normal, and "5" is the lowest priority.
Consider using as it also checks and properties.
Gets or sets the sensitivity of this email message ('Sensitivity' header)
Gets the list of all 'received' headers added to this email message.
Gets or sets the 'X-Tnef2Mime-MessageClass' value. May be null.
Gets or sets the 'X-Msg2Mime' value. It represents information if this email was created from MSG data.
Gets or sets the 'X-Msg2Mime-Creation-Time' value. It represents PR_CREATION_TIME. May be null.
Gets or sets the 'X-Msg2Mime-Message-Delivery-Time' value. It represents PR_MESSAGE_DELIVERY_TIME. May be null.
Gets or sets the 'X-Msg2Mime-Client-Submit-Time' value. It represents PR_CLIENT_SUBMIT_TIME. May be null.
MIME headers collection for root MIME entity.
Same as using Document.Root.Headers
Gets HTML version of this email message.
You can use method to extract plain text from HTML content.
You can also use or to obtain body in a specific format.
Gets RTF version of this email message.
RTF may be extracted from a TNEF attachment (winmail.dat) a proprietary e-mail attachment format used by Microsoft Outlook and Microsoft Exchange Server.
Gets plain text version of this email message.
For some HTML emails plain text may be not defined, you can use method to extract plain text from HTML content.
You can also use or to obtain body in a specific format.
Gets the object representing 'text/plain' body of this email message. May be null if no text/plain data is present.
You may use as a shortcut to retrieve plain text.
Gets the object representing 'text/html' body of this email message. May be null if no HTML data is present.
You may use as a shortcut to retrieve HTML text.
Gets the object representing 'text/rtf' or 'application/rtf' body of this email message. May be null if no RTF data is present.
You may use as a shortcut to retrieve RTF text.
This object may be created by TNEF to MIME parser from a TNEF attachment (winmail.dat) a proprietary e-mail attachment format used by Microsoft Outlook and Microsoft Exchange Server.
Gets HTML data of this email message. You can use method to extract plain text from HTML content.
Gets plain text data from this email message.
For some HTML emails plain text may be not defined, you can use method to extract plain text from HTML content.
You can also use or to obtain body in a specific format.
Returns true if body of this email message is specified in RTF format. You can use property to access RTF version of the body.
Returns true if body of this email message is specified in HTML format. You can use property to access HTML version of the body.
This property is not always negation of property. Both and may be true or false simultaneously.
Returns true if body of this email message is specified in plain text format. You can use property to access plain text version of the body.
This property is not always negation of property. Both and may be true or false simultaneously.
Gets the list of all visual elements (.Value equal to ) in this email message.
E.g. Images embedded inside HTML email.
You can use Visuals[string cid] to find the picture embedded in the HTML body using its content id ('Content-ID' header).
Gets the list of all non visual elements (.Value equal to ) in this email message.
E.g. Attached data files.
Gets the list of alternative elements in this email message.
E.g. if message is an appointment invitation.
Gets the list of all attachments in this email message.
Including , () and ().
Gets the list of all appointments in this email message.
Gets the list of all vCards in this email message.
Gets the list of all Message Disposition Notifications (MDNs) in this email message.
Gets the list of all Delivery Status Notifications (DSNs) in this email message.
Indicates if this email message has been DKIM (DomainKeys Identified Mail) signed.
Gets DKIM signature information from the first 'DKIM-Signature' header.
Gets DKIM signature information.
Indicates if this email message has been encrypted.
Indicates if this email message needs to be decrypted.
You can use , , to decrypt a message.
Decrypts the message.
Searches through certificate store to find appropriate certificate.
You can use to specify certificates and automatic email decryption.
Decrypted email message.
Decrypts the message.
Searches through specified certificates and certificate store to find appropriate certificate.
Certificates used for decryption.
Decrypted email message.
Decrypts the message using specified certificate for decryption.
Uses the specified certificate and certificate store to find appropriate certificate.
Certificate used for decryption.
Decrypted email message.
Decrypts the message using specified S/MIME configuration.
S/MIME configuration.
Decrypted email message.
Decrypts the message using specified MIME and S/MIME configuration.
Mime configuration.
Decrypted email message.
Indicates if this email message has been signed.
Indicates if this email message needs signed message extraction.
Verifies the digital signatures on the signed CMS/PKCS #7 email message and, optionally, validates the signers' certificates.
Checks also if the content was signed by the person that sent it.
A System.Boolean value that specifies whether only the digital signatures are verified
without the signers' certificates being validated.
If is true, only the digital signatures are verified.
If it is false, the digital signatures are verified, the signers' certificates are validated,
and the purposes of the certificates are validated.
The purposes of a certificate are considered valid if the certificate has no key usage or
if the key usage supports digital signatures or non repudiation.
Verifies the digital signatures on the signed CMS/PKCS #7 email message and, optionally, validates the signers' certificates.
Checks also if the content was signed by the person that sent it.
Signature validation configuration.
Gets the object for signed emails.
object.
Gets the object for encrypted emails.
object.
Computes the signature again.
Certificate used for signing.
Computes the signature again.
Signature configuration: such as certificate, algorithm etc.
Extracts signed message.
Extracted email message.
Extracts signed message using specified S/MIME configuration.
S/MIME configuration.
Extracted email message.
Extracts signed message using specified MIME and S/MIME configuration.
Mime configuration.
Decrypted email message.
Verifies the DKIM (DomainKeys Identified Mail) digital signature on this message. Queries DNS server to get the public key.
True if signature was valid, otherwise.
Verifies the DKIM (DomainKeys Identified Mail) digital signature on this message. Queries DNS server to get the public key.
DKIM validation configuration.
True if signature was valid, otherwise.
Verifies the DKIM (DomainKeys Identified Mail) digital signature on this message.
RSA class containing public key used for signature validation.
True if signature was valid, otherwise.
Verifies the DKIM (DomainKeys Identified Mail) digital signature on this message.
RSA class containing public key used for signature validation.
DKIM validation configuration.
True if signature was valid, otherwise.
Signs this message using DKIM (DomainKeys Identified Mail) signature.
RSA class containing private key used for signing.
DKIM signature information (selector, domain).
Signs this message with multiple DKIM (DomainKeys Identified Mail) signatures.
List of RSA keys and signature infos.
Signs this message using DKIM (DomainKeys Identified Mail) signature.
RSA class containing private key used for signing.
Public key DNS selector (s=).
Public key DNS domain (d=).
Renders mail message using eml format.
BCC header is not rendered.
Message in eml format.
Renders mail message using eml format.
Specifies if BCC header should be rendered.
Message in eml format.
Renders mail message using eml format.
BCC header is not rendered.
Message in eml format.
Renders mail message using eml format.
Specifies how BCC header should be rendered.
Message in eml format.
Render mail message using eml format to specified stream.
BCC header is rendered.
Stream to render on.
Render mail message using eml format to specified stream.
Stream to render on.
Specifies how BCC header should be rendered.
Gets the estimated transport size of this message.
Estimated transport size of this message.
Saves email using eml format to specified file.
BCC header is rendered.
File to write to.
Returns body in HTML format. If is false this method uses property to create valid HTML.
Body of the message in HTML format.
Returns body in HTML format. If is false this method uses property to create valid HTML.
When inlineVisuals is set to true, all visual elements are inlined using 'data:' URI scheme.
Specifies if visuals should be inlined using 'data:' URI scheme.
Body of the message in HTML format.
Returns body in plain text format. Uses , or .
Body of the message as plain text.
Returns body in plain text format. Uses , or .
Specifies if text/plain or text/html inline parts should be added.
Body of the message as plain text.
This method is helpful for processing Apple Mail messages, which often have email text split across several text/plain parts.
Extracts plain text from . This text may be different from what is actually stored in the email's property.
HTML body converted to plain text.
Extracts plain text from . This text may be different from what is actually stored in the email's property.
RTF body converted to plain text.
Saves HTML version of the message as regular HTML file.
Saves all visual elements as files to the same folder.
If the message is plain text only, this method uses to create HTML from plain text.
Name of the resulting HTML file (e.g. "c:\\example\\email.html").
Saves HTML version of the message as regular HTML file.
When inlineVisuals is set to true: all visual elements are inlined using data: URI scheme, instead of being saved to disk.
If the message is plain text only, this method uses to create HTML from plain text.
Name of the resulting HTML file (e.g. "c:\\example\\email.html").
Specifies if visuals should be inlined using data: URI scheme, or saved to disk.
Sets to 1, to and
to
Sets to 5, to and
to
This method copies or addresses to all read receipts lists.
Read receipts are stored using , and headers.
Read receipt requests may not always be honored because:
Email client may not recognize the special Disposition-Notification-To header; Email client may not implement that functionality; End user may have that functionality turned off; End user may optionally not choose to send one for your particular email;
Gets addresses to which read receipt should be send.
It uses , and header.
Duplicates are removed. It returs an empty list, if read receipt was not requested.
Addresses to which read receipt should be send or an empty list, if read receipt was not requested.
Gets message priority.
It checks following headers in the specified order: , , .
Priority of the message.
Creates configured to reply to this email.
ReplyBuilder that can be used to create a reply.
Creates configured to forward this email.
ForwardBuilder that can be used to create a forwarded email.
Extracts attachments from this message and all attached messages ( objects with content type).
List of all attachments in this email message and all attached messages.
It contains both and attachments ( collection).
Creates new, fully initialized instance, with all data imported from this email object.
New, fully initialized MailBuilder instance.
Removes all attachments (NonVisuals) and visual elements from this email.
Same as invoking RemoveAttachments(new AttachmentRemoverConfiguration()).
Removes attachments and visual elements from this email, according to configuration settings.
Specifies configuration options, such as if visual elements should be removed.
Replaces all attachments (NonVisuals) and visual elements with text indicating that attachment/visual was removed.
Replaces attachments and visual elements with text indicating that attachment/visual was removed, according to configuration settings.
Specifies configuration options, such as text templates.
Interface for read-only access to MimeData collection.
Gets or set object with specified content-id.
Gets or set object at specified index.
Gets the number of elements stored in the collection.
Performs specified action on each element of the collection.
Action that will be performed on each element of the collection.
Finds first element that matches specified predicate.
Predicate used to find an element.
Found element.
Finds all elements that matches specified predicate.
Predicate used to find elements.
Found elements.
Determines whether element is in this collection.
Element to check.
Boolean value indicating whether element is in this collection.
Creates a new list that contains all elements from this collection.
New list that contains elements from this collection.
Creates MailMessage using properly formed .
This method is not used.
We relay on message having and not being a forwadrd ().
Utility class for license related functions.
Sets a value indicating whether the key should be persisted in the computer's key store instead of the user profile store.
true if the key should be persisted in the computer key store; otherwise, false.
Returns the file path used to load the license file.
License file path.
Gets the status of the license file.
License file status.
Represents the status of license validation.
There was no attempt to load and check the license file yet.
There is no license file in appropriate folder.
Please check the value of method and place your license there.
License was loaded, but is invalid.
License was loaded, but the XML is invalid.
License was loaded, but it has invalid signature.
License was loaded, but the XML is not a license.
License was loaded, but an exception occurred.
License was loaded and is valid.
Valid license was loaded, but was it revoked.
Your license doesn't cover this version - it was released after your support expired.
Represents HTML loading configuration.
Gets or set the value indicating if local images should be converted to .
Default is true.
Gets or set the base folder to search images in. Default is ".".
Gets or set the value indicating if data uris should be converted to .
Default is false.
Initializes new HTML loading configuration class.
Represents Mail.dll log. Use property to turn on logging.
You can use following xml in your configuration file to log to file:
Gets or sets the maximum amount of bytes to be logged when logging single data command for IMAP and SMTP.
is default.
You can subscribe your logging library to this event.
Gets or sets a value indicating whether logging is enabled or disabled.
You can observe the log on standard VS output -or- subscribe to event -or- use application's config file to turn on logging and add your own listeners.
Provides methods for object creation.
You should use if you already have an eml data downloaded via or client.
You should use other properties and method to create message that you'll send using client.
Gets the list of all non visual elements. You can use method to add attachment to this collection.
Gets the list of all visual elements. You can use method to add attachment to this collection.
Gets the list of all alternative elements. You can use or methods to add attachment to this collection.
Gets or sets plain text version of the email. Please remember that setting will override plain text.
Gets or sets HTML version of the email.
If value is not empty extracts plain text from HTML and overrides property.
Gets or sets RTF version of the email.
If value is not empty extracts plain text from RTF and overrides property.
Gets or sets subject of a message ('Subject' header).
Gets or sets id of a email message ('Message-ID' header). Does not include surrounding brackets (< and >).
If not set or set to null generated automatically.
Gets unique ids () of the referenced email messages ('References' header). Does not include brackets (< and >).
Gets or sets the id of the parent email message ('In-Reply-To' header). Does not include surrounding brackets (< and >).
Gets the author(s) of this email message ('From' header).
If it's empty, email message is NOT RFC 2822 compliant.
Gets or sets mailbox of the agent responsible for the actual transmission of this email message ('Sender' header).
'Sender' is not required if property contains only one .
'Sender' property is needed when message is from more than one person ( contains more than one mailbox).
In such case Sender provides information which mailbox is responsible for the actual transmission.
Gets email address(es) to which the author of this email message suggests that replies be sent ('Reply-to' header).
You can use to represent single mailbox, or to represent group of email addresses.
Gets address(es) of the primary recipient(s) of this email message ('To' header).
You can use to represent single mailbox, or to represent group of email addresses.
Gets the address(es) of others who are to receive this email message ('CC', Carbon Copy header), even tough the content of the message may not be directed at them.
You can use to represent single mailbox, or to represent group of email addresses.
Gets the address(es) of others who are to receive this email message ('BCC', Blind Carbon Copy header), even tough the content of the message may not be directed at them.
You can use to represent single mailbox, or to represent group of email addresses.
BCC header is not rendered when method is used, however it is rendered when message is saved using method.
Gets or sets the address of the recipient taken from the SMTP envelope (SMTP "RCTP FROM").
Gets or sets the address of the recipient taken from the SMTP envelope (SMTP "RCTP FROM").
Gets or sets the address of the recipient taken from the SMTP envelope (SMTP "RCTP FROM").
Gets or sets the address of the sender taken from the SMTP envelope (SMTP "MAIL FROM").
Gets or sets the address of the sender taken from the SMTP envelope (SMTP "MAIL FROM").
Gets the disposition notifications address(es) ('Disposition-Notification-To' header).
Consider using method instead of adding addresses to this property.
Gets return receipt address(es) ('Return-Receipt-To' header).
Consider using method instead of adding addresses to this property.
Gets confirm reading address(es) ('X-Confirm-Reading-To' header).
Consider using method instead of adding addresses to this property.
Gets or sets return path address ('Return-Path' header). Does not include brackets (< and >).
Gets or sets the send date of a email message ('Date' header).
If null, is set automatically to current date and time when method is used.
Gets or sets the importance of a email message ('Importance' header).
Consider using or methods instead of setting this field.
Gets or sets the priority of a email message ('Priority' header).
Consider using or methods instead of setting this field.
Gets or sets the X-Priority of this email message ('X-Priority' header) (Outlook specific).
Value ranges from "1" to "5" where "1" is the highest priority, "3" is normal, and "5" is the lowest priority.
Consider using or methods instead of setting this field.
Gets or sets the sensitivity of a email message ('Sensitivity' header).
Gets or set the value indicating whether default values (, , ) should be set.
Default is true.
Gets or sets S/MIME configuration (automatic decryption, signed message extraction, certificates used for decryption and signature validation).
Gets MIME configuration (automatic binhex, apple, uue, tnef, rfc822 processing).
Gets or sets a value indicating if TNEF attachments (winmail.dat) should be processed.
TNEF processing extracts attachments and RTF data from TNEF file and removes TNEF from attachments collections afterwards.
Default is true.
Gets or sets a value indicating if inline UUE attachments should be extracted.
Default is true.
Gets or sets a value indicating if text representation of inline UUE attachments should be removed from .
Default is false. This property has no affect if is set to false.
Gets or sets a value indicating if file stored in BinHex attachments () should be extracted.
Default is true.
Gets or sets a value indicating if files stored in AppleSingle () and AppleDouble () entities should be extracted.
Default is true.
Gets or sets a value indicating if message (, ) being a single root should be extracted.
Default is true.
Gets or sets a value indicating if plain text version of a body is extracted from HTML when ot property is set.
Default is true.
Creates new MailBuilder object.
Adds custom header that will be added to object after creation.
Header name.
Header value.
Signs the message.
Certificate used for signing.
Signs the message.
Signature configuration: such as certificate, algorithm etc.
Encrypts the message using specified certificate.
You can call this method multiple times to use several certificates for encryption.
General rule is that both sender and receiver should be able to decrypt the message.
Certificate to use for encryption.
Encrypts the message using specified encryption configuration.
Encryption configuration: such as certificates, algorithm etc.
Signs the message using DKIM (DomainKeys Identified Mail) signature.
You can call this method multiple times to have several DKIM signatures present in the resulting message.
RSA class containing private key used for signing.
DNS public key domain selector.
DNS public key domain.
Signs the message using DKIM (DomainKeys Identified Mail) signature.
You can call this method multiple times to have several DKIM signatures present in the resulting message.
RSA class containing private key used for signing.
DKIM signature information.
Signs the message with multiple DKIM (DomainKeys Identified Mail) signatures.
List of RSA keys and signature infos.
Sets to 1, to and to
Sets to 5, to and to
This method copies or addresses to all read receipts lists, just before email is created (using method).
Read receipts are stored using , and headers.
Read receipt requests may not always be honored because:
Email client may not recognize the special Disposition-Notification-To header; Email client may not implement that functionality; End user may have that functionality turned off; End user may optionally not choose to send one for your particular email;
Adds attachment. Data are read from the specified file.
The file to read data from.
Newly added attachment.
Adds attachment with specified data.
Data that will be contained in newly added attachment.
Newly added attachment.
Adds attachment.
Attachment to add.
Adds visual object. Data are read from the specified file.
The file to read data from.
Newly added visual object.
Adds visual object with specified data.
Data that will be contained in newly added visual object.
Newly added visual object.
Adds visual object.
Visual attachment to add.
Adds alternative view for this message.
Data that will be contained in newly added alternative view.
Newly added alternative view.
Adds alternative view for this message.
Alternative view to add.
Adds specified appointment as alternative view for this message.
Appointment to add.
Newly created MimeCalendar object.
Adds specified VCARD as attachment to this message.
VCard business card to add.
Newly created MimeVCard object.
Creates new using builder configuration.
New object.
Creates new using specified MIME document.
MIME document.
New object.
Creates new using specified eml raw data string.
Raw eml data string.
New object.
Creates new using specified eml raw data.
Raw eml data.
New object.
Loads raw eml data from file and creates new object.
Usually email files have *.eml extension.
The file to read raw eml data from.
New object.
Sets HTML version of the message.
Modifies passed HTML, so that img tags reference inline images.
Adds all images that can be found on disk to collection.
Extracts plain text from HTML and overrides property.
HTML to be set.
Sets HTML version of the message.
Modifies passed HTML, so that img tags reference inline images.
Adds all images that can be found on disk to collection.
Extracts plain text from HTML and overrides property.
HTML to be set.
Base folder to search images in.
Sets HTML version of the message.
Modifies passed HTML, so that img tags reference inline images.
Adds all images that can be found on disk to collection.
Extracts plain text from HTML and overrides property.
HTML to be set.
Configuration.
Represents an error that occurred during e-mail parsing.
Initializes new instance of MailException with serialized data.
Serialized object data.
Contextual information.
Factory class used to create instance.
Gets or set the value indicating whether default values (message-id, date) should be set.
Default is true.
Gets MIME configuration (automatic binhex, apple, uue, tnef, rfc822 processing).
Creates new from specified data.
No defaults are set regardless of value.
Byte array containing an email message.
New mail object.
Creates with specified MIME entity as root.
Sets default values for and when not defined and is set to true.
Root of the .
New mime document.
Creates new using specified MIME document.
Sets default values for and when not defined and is set to true.
MIME document.
New object.
'Disposition-Notification-To' header.
'Return-Receipt-To' header.
'X-Confirm-Reading-To' header.
'Return-Path' header.
'Importance' header.
'Priority' header.
'X-Priority' field, "1" is the highest priority, "3" is normal, and "5" is the lowest priority.
'Sensitivity' field
List of all 'received' headers in this message.
Gets or sets the value ('X-Tnef2Mime-MessageClass' header). May be null.
'Disposition-Notification-To'
'Return-Receipt-To'
'X-Confirm-Reading-To'
Returns the string representation of this object.
String representation of this object.
Represents MIME tree processing configuration.
Gets or sets a value indicating if TNEF attachments (winmail.dat) should be processed.
TNEF processing extracts attachments and RTF data from TNEF file and removes TNEF from attachments collections afterwards.
Default is true.
Gets or sets a value indicating if inline UUE attachments should be extracted.
Default is true.
Gets or sets a value indicating if text representation of inline UUE attachments should be removed.
Default is false. This property has no affect if is set to false.
Gets or sets a value indicating if file stored in BinHex attachments () should be extracted.
Default is true.
Gets or sets a value indicating if files stored in AppleSingle () and AppleDouble () entities should be extracted.
Default is true.
Gets or sets a value indicating if message (, ) being a single root should be extracted.
Default is true.
Specifies if email headers from the outer message are copied to a extracted, inner email message.
Default is true.
Gets or sets S/MIME configuration (automatic decryption, signed message extraction, certificates used for decryption and signature validation).
Creates new MimeConfiguration object.
Represents MIME document tree.
Reference to the top most MIME object in this document.
Gets or sets MIME version ('MIME-version' header).
Gets DKIM signature information from the first 'DKIM-Signature' header.
Gets DKIM signature information.
MIME headers collection for root MIME entity.
Same as using Root.Headers
Adds new header listener.
Header listener. This object will be notified when header changes.
Renders the document.
Stream to render on.
Gets the estimated transport size of this MIME document.
Estimated transport size of this MIME document.
Factory class used to create instance.
Gets or set the value indicating whether default values (MIME-Version) should be set.
Default is true.
Gets MIME configuration (automatic binhex, apple, uue, tnef, rfc822 processing).
Creates new MimeDocumentFactory object.
Creates new from specified data.
No defaults are set regardless of value.
Byte array containing a MIME document.
New mime document.
Creates with specified MIME entity as root.
Sets default value for when not defined and is set to true.
Root of the .
New mime document.Extension without the dot
Represents MIME entity that contains email message.
Gets parsed email message from this MIME object.
Represents SMIME entities that can store signed data and a signature.
Sets plain MIME entity and signs it using specified parameters.
Plain MIME entity.
Signature configuration: such as certificate, algorithm etc.
Gets the SignedCms instance stored in this container
SignedCms instance.
Computes the signature again.
Signature configuration: such as certificate, algorithm etc.
Implements 'multipart/alternative' MIME entity, e.g. email message containing both: 'text/html' and 'text/plain' representations of the same information.
Gets the simplest data representation (first).
'parts[0]' or null if 'parts.Count==0'.
Gets the most complicated data representation (last).
'Parts[Parts.Count-1]' or null if 'parts.Count==0'.
Represents MIME entity containing and data.
Gets apple single data stored in this MIME entity.
Implements basic mime entity logic. All MIME classes, created by inherit from this class.
Content type of the body.
is assumed when is false.
Gets boolean value indicating, if content-type is explicitly set on this entity.
Represents 'Content-type' header.
You can use this class to add additional options to content-type header.
Use to get or set content-type only.
Content location of this mime entity.
Content-ID of this entity. Without enclosing '<' and '>'.
You can use to extract content id from cid url.
E.g. 01@mobile
'Content-Disposition' of the data.
This object provides information on what you should do with the data.
MIME headers collection.
Renders this MIME object.
Stream to render on.
Gets the estimated transport size of this MIME entity.
Estimated transport size of this MIME entity.
Returns content-type of this MIME object.
Content-type of this MIME object (e.g. "text/plain").
Represents MIME entity containing data.
Gets BinHex data stored in this MIME entity.
Represents MIME entity containing text/calendar data.
Please use or methods to create objects of this type.
Gets or sets the appointment contained in this MIME entity.
Gets suggested file name. All special characters and path are removed.
If the is not specified ( is false),
tries to use to create a file name or generates a random file name in format "appointment.ics".
Gets or sets content type method.
Uploads data from specified file into this entity.
This method always resets and properties.
The file to read data from.
Represents MIME entity which contains raw byte data.
You can use or to create objects of this type.
You should use when attaching text files.
Gets or sets byte array contained in this MIME object.
Gets size of data contained in this MIME object.
Gets or sets suggested file name ( or ["name"]).
May be null or empty. Consider using as it is guaranteed to contain valid file name.
It is important that you should not blindly use the suggested filename.
The suggested filename SHOULD be checked (and possibly changed) to see that it conforms to local file system conventions,
does not overwrite an existing file, and does not present a security problem.
Gets a boolean value indicating if is set.
Gets suggested file name. All special characters and path are removed.
If the is not specified ( is false)
generates random file name in format "att_d1be267b623941159a159158138a636e" and uses to establish correct extension.
Gets or sets 'Content-Transfer-Encoding' of the data.
This object provides information on how the data was encoded for transport purposes.
Gets X-Tnef2Mime-RenderingPosition header value.
This header is filled by TNEF to MIME parser with PR_RENDERING_POSITION MAPI value.
It indicates where in the message text the attachment should be rendered (in characters).
This property should not be used with Rich Text Format (RTF) text.
The rendering position is indicated in RTF by an escape sequence called the object attachment placeholder.
This sequence consists of the string \objattph followed by a single character, normally a space, that will be replaced by the attachment rendering.
Gets X-Rtf-RenderingPosition header value.
This header is filled by TNEF to MIME with PR_RENDERING_POSITION MAPI value or by MSG to MIME parser.
It indicates where in the message text the attachment should be rendered (in characters).
This property should not be used with Rich Text Format (RTF) text.
The rendering position is indicated in RTF by an escape sequence called the object attachment placeholder.
This sequence consists of the string \objattph followed by a single character, normally a space, that will be replaced by the attachment rendering.
Gets X-Tnef2Mime header value. This header is added by TNEF to MIME parser.
True means that this entity was extracted from .
Gets X-Uue2Mime header value. This header is added by UUE to MIME extractor.
True means that this entity was extracted from .
Gets X-BinHex2Mime header value. This header is added by BinHex to MIME extractor.
True means that this entity was extracted from .
Gets X-Apple2Mime header value. This header is added by Apple to MIME extractor.
True means that this entity was extracted from or entity.
Estimated transport size of this MIEM entity
Gets the estimated transport size of this MIME entity.
Bases on assumption that , and encoded files are 37% bigger in transport.
Estimated transport size of this MIME entity.
Parses the body.
Body to be parsed.
Uploads data from specified file into this entity.
This method always resets property.
The file to read data from.
Creates a new file with the specified name and saves into it.
The path and the name of the file to create.
Writes to specified stream. Stream must be open.
Stream to which will be written.
Creates new for accessing property.
New Object
Sets the and value if requested.
Suggested file name.
True if should be set based on the file name extension.
Newly added attachment.
Represents Delivery Status Notification (DSN) (message/delivery-status).
Provides indications of successful delivery or delivery failure.
Indicates the name of the Message Transfer Agent (MTA) which is reporting the results of delivery attempts described in this Delivery Status Notification (DSN).
Indicates the name of the Message Transfer Agent (MTA) from which the message was received.
Indicates the date and time at which the message arrived at the Reporting MTA.
Indicates the date field.
Gets all Delivery Status Notification for first recipient, or null if no recipient is found.
Gets all Delivery Status Notification for all recipient.
Gets or sets 'X-Tnef2Mime-Action' value.
Gets any field defined in this Delivery Status Notification (DSN) header.
Field name.
Field value
Implements 'multipart/digest' MIME entity, e.g. multiple email messages (RFC 2046).
Sets default Content-Type for each part to "message/rfc822".
Creates new object from specified part in collection.
If for specified part is different than returns null.
Part index in collection.
New object or null if specified part is not is different than , , or .
Factory class used to create MIME entities.
Splits raw eml data in to MIME headers and MIME body.
Raw eml data.
MIME headers.
MIME body.
Creates new empty object (or derived object such as based on the file extension).
Uploads data from specified file into newly created object.
The file to read data from.
New object loaded from file.
Creates new empty object using UTF8 encoding ().
New empty object.
Creates new object using UTF8 encoding and specified text ().
Text to fill new object with.
New object containing specified text.
Creates new empty object ().
New empty object.
Creates new object containing specified appointment ().
Appointment card to fill the new object with.
New object containing specified appointment.
Creates new empty object ().
New empty object.
Creates new object containing specified business card ().
Business card to fill the new object with.
New object containing specified business card.
Creates new object representing message/partial message ().
New empty object.
Creates new object representing RFC822 message ().
New empty object.
Creates new object representing RFC822 message ().
Message to fill the new object with.
New object containing specified message.
Creates new object representing RFC822 message headers ().
New empty object.
Creates new object representing RFC822 message headers ().
Message to fill the new object with.
New object containing specified message.
Creates new object representing RFC822 message ().
New empty object.
Creates new object representing RFC822 message ().
Message to fill the new object with.
New object containing specified message.
Creates new object representing RFC822 message headers ().
New empty object.
Creates new object representing RFC822 message headers ().
Message to fill the new object with.
New object containing specified message.
Creates new empty object ().
New object.
Creates new object ().
Data to be placed in newly created object.
New object.
Creates geenric empty object.
Content-Type of the created entity.
New object.
Creates new empty object ().
Root object.
New object.
Creates new empty object ().
Root object.
New object.
Creates new empty object ().
New object.
Creates new object () with specified parts.
Alternative objects.
New object.
Creates new empty object with ().
New object.
Creates new manual object ().
Disposition type.
New object.
Creates new automatic object ().
Disposition type.
New object.
Creates new object ().
Root of the mime tree to sign.
Certificate used for signing.
New object.
Creates new object ().
Root of the mime tree to sign.
Signature configuration: such as certificate, algorithm etc.
New object.
Creates new object representing pkcs7 detached signature ().
Signature data.
New object.
Represents Message Disposition Notifications (MDN) (message/disposition-notification)
Provides notification of the "disposition" of a message -
indicating, for example, whether it is read by a recipient or discarded before being read.
Indicates the recipient.
Gets original message id ('Original-Message-ID' field). Without surrounding brackets (< and >)
Specifies if the disposition described by the was a result of an manual or automatic action.
Specifies if the Message Delivery Notification (MDN) was sent manually or automatically.
Describes disposition type of the message. Such as or .
Gets or sets any field defined in this Message Delivery Notification (MDN).
Field name.
Field value
Represents MIME entity containing data.
Please use or methods to create objects of this type.
Gets or sets email message enclosed in this MIME object.
Gets suggested file name. All special characters and path are removed.
If the is not specified ( is false),
tries to use to create a file name or generates a file name in format "message.eml".
Represents MIME entity containing data.
Please use or methods to create objects of this type.
Gets or sets email message enclosed in this MIME object.
Gets suggested file name. All special characters and path are removed.
If the is not specified ( is false),
tries to use to create a file name or generates a file name in format "message.eml".
Represents MIME entity containing data. (RFC 1521)
Gets or set the value indicating parts' total count.
Gets or set the value indicating a sequence number of this part (1 based).
Gets or set the unique identifier to be used to match the parts together.
Implements 'multipart/mixed' MIME entity, e.g. email message containing attachments.
Base class for all multipart MIME entities ('multipart/*').
There are specialized classes for different multipart subtypes which derive from this class such as: , or .
Gets or sets MIME multipart preamble. By default this value is null.
Gets or sets MIME multipart preamble. By default this value is an empty string.
Parts of the entity.
MIME parts inside multipart entity are separated by delimiter.
Boundary delimiter. String which is separating parts of the multipart entity.
Without additional '--' at the beginning.
E.g. '=_NextPart_000_0020_01C36F64.F2562350'.
RFC 2046: The "multipart" boundary delimiters and header fields are always represented as 7bit US-ASCII in any case.
Gets the estimated transport size of this MIME entity.
Estimated transport size of this MIME entity.
Represents Pkcs7-signature.
Represents 'multipart/related' MIME entity, e.g. HTML e-mail with embedded pictures. (RFC 2387).
Root mime object. This element should be processed first.
collection contains this element.
E.g. if E-mail is HTML e-mail with embedded pictures, root will contain html body. All images will be placed in the 'parts' collection.
Represents MIME render configuration.
Gets or sets the value indicating how MIME headers are rendered.
Creates new instance of MimeRenderConfiguration class.
Represents 'Multipart/Report' MIME, entity e.g. multiple mail messages.
Gets or sets the type of the report.
Gets the human readable description of error. It may be in any MIME standards-track content-type, charset, or language.
Where a description of the error is desired in several languages or several media,
a Multipart/Alternative construct may be used. (RFC 3462)
Gets DSNs return indications of message delivery to the sender of that message.
This property is filled when is
Gets MDNs provide a notification of the "disposition" of a message - indicating, for example, whether it is read by a recipient, discarded before being read, etc.
This property is filled when is
Creates new object from or type in collection.
New object or null if there was no attached email message.
Represents MIME entity containing data.
Please use or methods to create objects of this type.
Gets or sets email message enclosed in this MIME object.
Gets suggested file name. All special characters and path are removed.
If the is not specified ( is false),
tries to use to create a file name or generates a file name in format "message.eml".
Represents MIME entity containing data.
Please use or methods to create objects of this type.
Gets or sets email message enclosed in this MIME object.
Gets suggested file name. All special characters and path are removed.
If the is not specified ( is false),
tries to use to create a file name or generates a file name in format "message.eml".
Represents 'Multipart/Signed' MIME entity.
Gets the SignedCms instance stored in this container
SignedCms instance.
Verifies the digital signatures on the signed CMS/PKCS #7 message and, optionally, validates the signers' certificates.
: A System.Boolean value that specifies whether only the digital signatures are verified
without the signers' certificates being validated.
If is true, only the digital signatures are verified.
If it is false, the digital signatures are verified, the signers' certificates are validated,
and the purposes of the certificates are validated.
The purposes of a certificate are considered valid if the certificate has no key usage or
if the key usage supports digital signatures or non-repudiation.
Sets plain MIME entity and signs it using specified parameters.
Plain MIME entity.
Signature configuration: such as certificate, algorithm etc.
Computes the signature again.
Signature configuration: such as certificate, algorithm etc.
Represents MIME entity containing text data.
You can use or to create objects of this type.
You should use when attaching binary files.
Gets or sets text data contained in this Mime object.
Encoding is changed to UTF8 when setting.
Gets the result of matching content-type charset to .
Gets or sets encoding used to encode text contained in this MIME entity.
When setting this property, property is re-set with value representing in new encoding.
Encoding is stored as a charset field in content-type header. Default is system's default.
Represents MIME entity containing text/vcard data.
Please use or methods to create objects of this type.
Gets or sets the VCard contained in this MIME entity.
Gets suggested file name. All special characters and path are removed.
If the is not specified ( is false),
tries to use to create a file name or generates a random file name in format "vcard.vcf".
Defines Delivery Status Notification (DSN) for a single recipient.
Indicates the action performed by the as a result of its attempt to deliver the message.
For a "failed" or "delayed" recipient, contains the actual diagnostic code issued by the mail transport.
Contains a transport-independent status code which indicates the delivery status of the message to that recipient.
Indicates the original recipient address as specified by the sender of the message for which the DSN is being issued.
Indicates the recipient for which this set of per-recipient fields applies.
Gets any field defined in Delivery Status Notification (DSN) for this recipient.
Field name.
Field value
Checks if the content was signed by all persons that sent it.
Checks if the content was signed by the person that sent it.
is not in the signers list.
The PR_TRANSPORT_MESSAGE_HEADERS property of a real MIME message contains the complete MIME structure of the message with none of the actual content.
(Eg, all of the RFC822 and MIME headers, plus multipart boundary delimeters.)
-or-
Only headers
The PR_TRANSPORT_MESSAGE_HEADERS property of a real MIME message contains the complete MIME structure of the message with none of the actual content.
(Eg, all of the RFC822 and MIME headers, plus multipart boundary delimeters.)
-or-
Only headers
Represents settings for msg to conversion.
Gets or sets the value indicating if MSG headers should be copied to resulting email. Default is false.
Gets or sets the value indicating if plain text should be created from HTML and/or RTF content. Default is true.
Gets or sets S/MIME decrypt configuration (automatic decryption, certificates used for decryption).
Creates new instance of Msg2MimeConverterConfiguration.
Outlook .msg file format converter.
Gets the type of the contents of the MSG file (e.g. , ).
Gets the value indicating if the MSG file type represents a message, and if can be used.
Creates new instance of this class.
File name to load data from.
Creates new instance of this class.
Stream to load data from.
Creates new object from MSG data.
property doesn't equal .Newly created email message in MIME format.
Creates new object from MSG data.
property doesn't equal .
Msg to MIME configuration settings.
Newly created email message in MIME format.
Creates new object from MSG data.
Newly created email message in iCal format.
Creates new object from MSG data.
Newly created appointment iCal format.
Releases all resources acquired by this object.
Represents MSG file content type, such as , , , .
Gets IPM.Note message type (email message).
Gets IPM.Note.SMIME.MultipartSigned message type (signed email message).
Gets IPM.Note.SMIME message type (signed email message).
Gets IPM.Schedule.Meeting.Request message type (meeting request).
Gets IPM.Schedule.Meeting.Resp.Neg message type (negative meeting response).
Gets IPM.Schedule.Meeting.Resp.Pos message type (positive meeting response).
Gets IPM.Schedule.Meeting.Resp.Tent message type (tentative meeting response).
Gets IPM.Schedule.Meeting.Canceled message type (canceled meeting response).
Gets IPM.Schedule.Meeting.Notification message type (meeting notification).
Gets IPM.Schedule.Meeting.Notification.Forward message type.
Gets REPORT.IPM.Note.DR message type (tentative meeting response).
Gets REPORT.IPM.Note.NDR message type (tentative meeting response).
Gets REPORT.IPM.Note.Delayed.DR message type (tentative meeting response).
Gets IPM.Sharing message type.
Gets IPM.Contact message type.
Gets IPM.Post message type.
Gets IPM.StickyNote message type.
Represents base PDI (Personal Data Interchange) entity.
Renders this entity as a string.
Rendered string.
Gets header with specified key from this calendar entity.
Header's key.
object for this key, or if specified key was not found.
Gets header with specified key from this calendar entity.
Header's key.
object for this key, or if specified key was not found.
Adds custom header to this entity.
Custom header to add.
Represents key and values.
Gets or sets the key.
Gets values.
Creates new KeyValues object.
Key.
Creates new KeyValues object.
Key.
Value.
Creates new KeyValues object.
Key.
Values.
Represents single calendar header.
Gets or sets header's group.
Gets or sets header's key.
Gets header's value.
Gets or sets header's raw value.
Gets header's binary value.
Header key parameters. You can use and methods for easier access.
You can use and methods for easier access.
Gets information if the header is empty.
Raw line that this object was parsed from.
Creates new PdiHeader object with specified and .
Header's key.
Header's raw value.
Creates new PdiHeader object with specified .
Header's key.
Renders this header.
Header rendered to string.
Returns true if the specified header key parameter exists.
Name of the parameter to search for.
True if parameter exists false otherwise.
Returns the value of the first key parameter or if parameter does not exist.
Name of the parameter.
Value of the parameter or when parameter does not exist.
Returns the values of the specified header parameter or when parameter does not exist.
Name of the parameter.
Values of the parameter or when parameter does not exist.
Returns true if the specified header value parameter exists.
Name of the parameter to search for.
True if parameter exists false otherwise.
Returns the value of the of the first value parameter or if parameter does not exist.
Name of the parameter.
Value of the parameter or when parameter does not exist.
Returns the values of the specified header parameter or when parameter does not exist.
Name of the parameter.
Values of the parameter or when parameter does not exist.
Returns contents of this header.
Contents of this header.
You can use this class to create a read receipt (MDN) email.
Gets or sets plain text version of the read reply template.
Template sample:
This is a confirmation that your message sent to [OriginalRecipient.Address] was displayed.
Gets or sets plain text version of the read reply template.
Template sample:
This is a confirmation that your message sent to [OriginalRecipient.Address] was deleted.
Gets or sets plain text version of the processed reply template.
Template sample:
This is a confirmation that your message sent to [OriginalRecipient.Address] was processed.
Gets or sets plain text version of the dispatched reply template.
Template sample:
This is a confirmation that your message sent to [OriginalRecipient.Address] was dispatched.
Gets or sets plain text version of the denied reply template.
Template sample:
This is a confirmation that your message sent to [OriginalRecipient.Address] was denied.
Gets or sets read reply template for the subject.
Template sample:
Read: [Original.Subject]
Gets or sets deleted reply template for the subject.
Template sample:
Deleted: [Original.Subject]
Gets or sets processed reply template for the subject.
Template sample:
Processed: [Original.Subject]
Gets or sets dispatched reply template for the subject.
Template sample:
Dispatched: [Original.Subject]
Gets or sets denied reply template for the subject.
Template sample:
Denied: [Original.Subject]
Gets a dictionary of additional template keys, that are used when rendering subject and text templates.
Creates new ReadReceiptBuilder object.
Message-id () of the original email message.
Recipients of the notification (Authors of the original email message).
Creates new ReadReceiptBuilder object.
Message-id () of the original email message.
Recipients of the notification (Authors of the original email message).
Creates new ReadReceiptBuilder object.
Original email message.
Creates new ReadReceiptBuilder object.
Original email message.
Recipients of the notification (Authors of the original email message).
Creates MailBuilder class that can be used to create read receipt for manually deleted email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for automatically deleted email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for manually displayed email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for automatically displayed email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for manually processed email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for automatically processed email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for manually dispatched email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for automatically dispatched email.
From mailbox.
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create read receipt for email.
From mailbox.
Receipt disposition (e.g. ).
Specifies automatic or manual receipt.
MailBuilder class that can be used to create an actual email.
You can use this class to create a reply from specified email.
Gets or sets plain text version of the reply template.
Template sample:
[Text]
On [Original.Date] [Original.Sender.Name] wrote:
[QuoteText]
Gets or sets HTML version of the reply template.
Template sample:
Gets or sets reply template for the subject.
Template sample:
RE: [Original.Subject]
Gets a dictionary of additional template keys, that are used when rendering subject and text templates.
Gets or sets the value that specifies if collection is copied to resulting email.
Gets or sets a value indicating if plain text version of a body is extracted from HTML when property is set.
Default is true.
Gets or sets plain text version of the reply. Please remember that setting will override plain text.
Gets or sets HTML version of the reply. Extracts plain text from HTML and also sets property.
Creates new ReplyBuilder object.
Original email to reply to.
Creates MailBuilder class that can be used to create an actual email.
This method copies attachments, sets , , , and properties.
From mailbox used for replying (the address from which the reply will be sent).
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create an actual email.
This method copies attachments, sets , , , and properties.
From mailbox used for replying (the address from which the reply will be sent).
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create an actual email.
This method copies attachments, sets , , , and properties.
From address used for replying (the address from which the reply will be sent).
MailBuilder class that can be used to create an actual email.
Creates MailBuilder class that can be used to create an actual email.
This method copies attachments, sets , , , and properties.
From address used for replying (the address from which the reply will be sent).
MailBuilder class that can be used to create an actual email.
Combines the setting for sub/super script: negative values are considered equivalent to subscript,
positive values correspond to superscript. Same unit as font size.
Thrown upon RTF specific error conditions.Creates a new instance.Creates a new instance with the given message.
the message to display
Creates a new instance with the given message, based on the given cause.
the message to display
the original cause for this exception
Called before any other of the methods upon starting parsing of new input.
Called when a new group began.
Called when a new tag was found.
the newly found tag
Called when a new text was found.
the newly found text
Called after a group ended.
Called if parsing finished sucessfully.
Called if parsing failed.
the reason for the failure
Called after parsing finished. Always called, also in case of a failure.
Thrown upon RTF specific error conditions.Creates a new instance.Creates a new instance with the given message.
the message to display
Creates a new instance with the given message, based on the given cause.
the message to display
the original cause for this exception
Determines whether to ignore all content after the root group ends.
Set this to true when parsing content from streams which contain other data after the RTF
or if the writer of the RTF is known to terminate the actual RTF content with a null byte
(as some popular sources such as WordPad are known to behave).
Thrown upon RTF specific error conditions.Creates a new instance.Creates a new instance with the given message.
the message to display
Creates a new instance with the given message, based on the given cause.
the message to display
the original cause for this exception
Represents S/MIME (Secure/Multipurpose Internet Mail Extensions) signature configuration.
Gets or sets the certificate that will be used to sign the message.
Gets or sets the signing algorithm. You can use one of the static values.
Default is SHA1 ().
Gets or sets the option that controls whether the root and entire chain associated with the signing certificate are included with the created CMS/PKCS #7 message.
Default is .
Gets or sets the value indicating if detached signature will be used.
Detached signature has better backward compability as S/MIME unaware clients are able to access the signed data. Default is true.
Creates new SignatureConfiguration instance.
Certificate that will be used to sign the message.
Creates new EncryptionConfiguration instance.
Represents an error that occurred during signature validation or signing.
Initializes new instance of ImapResponseException with serialized data.
Serialized object data.
Contextual information.
Represents S/MIME (Secure/Multipurpose Internet Mail Extensions) signature validation configuration.
Gets or sets a Boolean value that specifies whether only the digital signatures are verified without the signers' certificates being validated.
If set to true, only the digital signatures are verified.
If set to false, the digital signatures are verified, the signers' certificates are validated, and the purposes of the certificates are validated.
The purposes of a certificate are considered valid if the certificate has no key usage or if the key usage supports digital signatures or non repudiation.
Default is false.
Gets or sets a Boolean value that specifies whether to check if an email was signed by the person that sent it.
Default is false.
Gets or sets a Boolean value that specifies a way in which and signature addresses are compared.
Default is .
Represents S/MIME decrypt configuration (automatic decryption, certificates used for decryption).
Specifies if S/MIME encrypted messages should be decrypted automatically.
Decryption searches through collection and store to find appropriate certificate.
Default is true.
Specifies if S/MIME encrypted messages should be decrypted automatically.
Decryption searches through collection and store to find appropriate certificate.
Default is true.
Specifies if S/MIME signed messages should be extracted automatically.
This settings affects signed emails that use pkcs7-mime signed-data (not detached signatures).
Default is true.
Gets or sets the list of certificates used for decryption.
Gets or sets certificate used for decryption.
Specifies if email headers from the outer message are copied to a decrypted, inner email message.
Default is false.
Specifies if email headers from the outer message are copied to a signed, inner email message.
Default is false.
Initializes new S/MIME configuration class.
Initializes new S/MIME configuration class.
Certificates used for decryption.
Initializes new S/MIME configuration class.
Certificate used for decryption.
Inherit this interface if you need to implemeting a custom template data provider.
Gets the value for specified key.
Name of the key to get value for.
Value for specified key.
Returns a boolean value indicating if this provider can return a value for specified key.
Name of the key.
True if this provider can return a value for specified key.
Represents the template that can be used to create email messages.
string text = Template
.LoadFromFile("template.txt")
.DataFrom(reportData)
.Render();
Template sample:
Hi [FirstName] [LastName],
On [PurchaseDate:yyyy/MM/dd HH:mm] you purchased following items:
[foreach OrderItems]
- [Id] [Name] [Price]
[end]
\[ escaped square brackets \]
Creates new template using specified template text.
Template's text.
New template.
Loads a template from file.
The file to read data from.
Loaded template.
Clears all data sources for this template.
Current template.
Specifies object that will be used as a data source for this template.
If the method is called more than once, only last object is used.
Data source for this template.
Current template.
Specifies IDictionary that will be used as a data source for this template.
If the method is called more than once, only last object is used as the template data source.
IDictionary sata source for this template.
Current template.
Specifies ITemplateDataProvider that will be used as a data source for this template.
If the method is called more than once, only last object is used as the template data source.
ITemplateDataProvider sata source for this template.
Current template.
Specifies object that will be used as a data source for this template.
If the method is called more than once, all objects are used.
Data source for this template.
Current template.
Specifies that will be used as a data source for this template.
If the method is called more than once, all objects are checked and used as the template data source.
IDictionary data source for this template.
Current template.
Specifies ITemplateDataProvider that will be used as a data source for this template.
If the method is called more than once, all objects are checked and used as the template data source.
ITemplateDataProvider sata source for this template.
Current template.
Renders the template.
Rendered template.
Gets or sets custom keys used by this template.
Key name.
Value to be used when template is rendered.
Adds a custom key used by this template.
Key name.
Value to be used when template is rendered.
Current template.
Represents an error that occurred during template parsing.
Initializes new instance of TemplateException with serialized data.
Serialized object data.
Contextual information.
Moves index one step forward, this method is aware of the escaped chars.
False if end is reached, true if we can move forward again.
Reads header and validates checksum.
IPM.Note
Report.IPM.Note.IPNRN
Report.IPM.Note.NDR
IPM.Schedule.Meeting.Resp.Pos Responses to accept meeting requests
IPM.Schedule.Meeting.Resp.Neg Responses to decline meeting requests
IPM.Schedule.Meeting.Resp.Tent Responses to tentatively accept meeting requests
IPM.Schedule.Meeting.Request Meeting requests
IPM.Schedule.Meeting.Canceled Meeting cancellations
Represents result of the email address validation.
Email is valid.
Email has incorrect format.
No MX record was found for the domain.
SMTP server rejected email address.
SMTP server returned an error.
Validates email address.
Uses Format, MX and SMTP validation.
Gets or sets SMTP configuration.
Gets or sets the value of MAIL FROM address. By default, checked address is used.
Initializes new instance of the AddressValidator class.
Validates email address format only.
Email address to validate (e.g. mail@example.com).
Result of the validation.
Validates email address (email format, existence of MX record, SMTP connection).
Email address to validate (e.g. mail@example.com).
Result of the validation.
Validates email address format and the existence of MX record.
Email address to validate (e.g. mail@example.com).
Result of the validation.
Smtp email address validator.
Gets or sets SMTP configuration.
Gets or sets the value of MAIL FROM address. By default, checked address is used.
Initializes new instance of the AddressValidator class.
Validates email address (email format, existence of MX record, SMTP connection).
Email address to validate (e.g. mail@example.com).
Result of the validation.
SmtpValidation result.
Gets all SMTP server responses.
Gets SmtpValidation status.
Creates new SmtpValidationResult instance.
SmtpValidation status.
Failure
Success
No MX record found.
Smtp error
Recognizes common patterns of delivery failure emails.
Examines specified email for delivery failure patterns.
Email to examine.
Examination result. Please use to check if the email is a delivery failure notification.
Examines specified email for delivery failure patterns.
Email message to examine.
The list of found delivery failures.
Represents result of the email examination performed by class.
True if email is a delivery failure or deliver delay report
Indicates the original recipient address as specified by the sender of the message for which the delivery failure report was issued.
For a "failed" or "delayed" recipient, contains the actual diagnostic code issued by the mail transport.
Indicates the action performed as a result of attempt to deliver the message.
Contains a transport-independent status code which indicates the delivery status of the message to that recipient.
Creates new BounceResult object.
Both \r\n and \n line endings are recognized.
Represents Variable Envelope Return Path (VERP) address (e.g. "list-owner+bob=recipient.com@sender.com").
You can use method to create VERP email address or method to parse existing one.
Gets original email To address (e.g. "bob@recipient.com").
Gets original email From address (e.g. "list-owner@sender.com").
Creates new VERPAddress class instance.
Original email to address (e.g. "bob@recipient.com").
Original email from address (e.g. "list-owner@sender.com").
Parses existing VERP address (e.g. "list-owner+bob=recipient.com@sender.com").
VERP address to parse (e.g. "list-owner+bob=recipient.com@sender.com").
New VERPAddress class instance with and properties set ("bob@recipient.com" and "list-owner@sender.com" accordingly).
Joins and to create VERP address (e.g. "list-owner+bob=recipient.com@sender.com").
Sender address, containing encoded recipient address (e.g. "list-owner+bob=recipient.com@sender.com").
This class provides a simple way of extracting plain text from HTML data.
Extracts plain text from HTML data.
HTML to process.
Plain text extracted from HTML.
Represents single message stored inside MBox file.
Gets envelope sender stored in MBox file.
Gets delivery date stored in MBox file.
Gets email data.
Represents MBox file reader.
Creates new MBoxReader.
Stream to read from.
Reads next message.
Next message or null when no more messages are available.
Converts System.Net.Mail.MailMessage instance to Mail.dll's or instance.
Creates new instance from System.Net.Mail.MailMessage.
System.Net.Mail.MailMessage to process.
instance.
Creates new instance from System.Net.Mail.MailMessage.
System.Net.Mail.MailMessage to process.
instance.
Represents partial email () joiner.
Gets or sets the value indicating if the Content-Type's header field property should be ignored. Default is false.
Gets or sets the value indicating if the Content-Type's header id field should be ignored. Default is false.
Gets or sets the value indicating if first message headers should be copied to the resulting message. Default is false.
(1) All of the header fields from the initial enclosing entity (part one), except those that start with "Content-" and the
specific header fields "Message-ID", "Encrypted", and "MIME-Version", must be copied, in order, to the new message.
(2) Only those header fields in the enclosed message which start with "Content-" and "Message-ID", "Encrypted", and "MIME-Version"
must be appended, in order, to the header fields of the new message.
Any header fields in the enclosed message which do not start with "Content-"
(except for "Message-ID", "Encrypted", and "MIME-Version") will be ignored.
(3) All of the header fields from the second and any subsequent messages will be ignored.
Adds email part () to be joined.
Email representing partial message.
True if all parts where added and messages can be joined using method, false otherwise.
Joins split email.
Joined message.
Joins split email.
Raw data of the joined message.
Joins split email.
Email messages containing MIME parts () to be joined.
Joined message.
Gets or sets the overall probability that any given message is spam (Pr(S))
Not biased filter assumes 0.5.
Recent statistics show that the current probability of any message being spam is 80%, at the very least: SpamBias = 0.8; HamBias = 0.2
Gets or sets the overall probability that any given message is not spam (is "ham") (Pr(H))
Not biased filter assumes 0.5.
Recent statistics show that the current probability of any message being spam is 80%, at the very least: SpamBias = 0.8; HamBias = 0.2
Gets or sets the spam threshold: IsSpam = SpamProbability > SpamThreshold
Represents Bayesian spam filter.
You can use to teach and assess the accuracy of the filter.
Gets or sets the overall probability that any given message is spam (Pr(S))
Not biased filter assumes 0.5. Recent statistics show that the current probability of any message being spam is 80%, at the very least: SpamBias = 0.8; HamBias = 0.2
Gets or sets the overall probability that any given message is not spam (is "ham") (Pr(H))
Not biased filter assumes 0.5. Recent statistics show that the current probability of any message being spam is 80%, at the very least: SpamBias = 0.8; HamBias = 0.2
Gets or sets the spam threshold: IsSpam = SpamProbability > SpamThreshold
Use this method to teach the filter that specified message is spam.
Spam message
Use this method to teach the filter that specified message is not spam (is ham).
Not spam (ham) message
Examines specified message checking the probability of the message being spam.
Message to check.
Result including probability of the specified message being spam (between 0.0 and 1.0).
Saves all words used be the filter to specified file.
The file to save to.
Loads all words used by the filter from specified file.
The file to read from.
Represents a spam filter.
Use this method to teach the filter that specified message is spam.
Spam message
Use this method to teach the filter that specified message is not spam (is ham).
Not spam (ham) message
Examines specified message checking the probability of the message being spam.
Message to check.
Result including probability of the specified message being spam (between 0.0 and 1.0).
id@domain.com
You can use this class to teach spam filter (e.g. ) to recognize which messages are spam and which are not (are ham).
During learning phase, both spam and not spam (ham) messages' count should be similar (100 or more).
Creates new instance of the teacher class to teach specific filter.
Spam filter to teach.
Use this method to teach the filter which messages are spam.
Path to the folder that contains spam messages.
Use this method to teach the filter which messages are not spam (are ham).
Path to the folder that contains not spam (ham) messages.
Use this method to test the filter.
Path to the folder that contains spam messages to test the filter on.
Path to the folder that contains not spam (ham) messages to test to test the filter on.
Test results.
Represents result of the email examination performed by class.
Gets the probability (from 0.0 to 1.0) that the message is spam.
Gets the value indicating if message is spam.
Gets the value indicating if message is ham.
This property return negation of the property (!IsSpam).
Represents the result of spam filter test.
You can use to teach and assess the accuracy of the filter.
Gets the number of correct recognitions.
Gets the count of all tests.
Gets file names of false positives (ham messages marked as spam).
Gets file names of the failures (spam messages not marked as spam).
Gets the filter accuracy (/)
Creates new SpamTestResults object.
Returns string representing this object
String representation of this object.False if end is reached, true if we can move forward again.
Moves index one step forward, this method is aware of the escaped strings.
False if end is reached, true if we can move forward again.False if end is reached, true if we can move forward again.
Computes a CRC-32. The CRC-32 algorithm is parameterized - you
can set the polynomial and enable or disable bit
reversal. This can be used for GZIP, BZip2, or ZIP.
This type is used internally by DotNetZip; it is generally not used
directly by applications wishing to create, read, or manipulate zip
archive files.
Indicates the total number of bytes applied to the CRC.
Indicates the current CRC for all blocks slurped in.
Returns the CRC32 for the specified stream.
The stream over which to calculate the CRC32
the CRC32 calculation
Returns the CRC32 for the specified stream, and writes the input into the
output stream.
The stream over which to calculate the CRC32
The stream into which to deflate the input
the CRC32 calculation
Get the CRC32 for the given (word,byte) combo. This is a
computation defined by PKzip for PKZIP 2.0 (weak) encryption.
The word to start with.
The byte to combine it with.
The CRC-ized result.
Update the value for the running CRC32 using the given block of bytes.
This is useful when using the CRC32() class in a Stream.
block of bytes to slurp
starting point in the block
how many bytes within the block to slurp
Process one byte in the CRC.
the byte to include into the CRC .
Process a run of N identical bytes into the CRC.
This method serves as an optimization for updating the CRC when a
run of identical bytes is found. Rather than passing in a buffer of
length n, containing all identical bytes b, this method accepts the
byte value and the length of the (virtual) buffer - the length of
the run.
the byte to include into the CRC.
the number of times that byte should be repeated.
Combines the given CRC32 value with the current running total.
This is useful when using a divide-and-conquer approach to
calculating a CRC. Multiple threads can each calculate a
CRC32 on a segment of the data, and then combine the
individual CRC32 values at the end.
the crc value to be combined with this one
the length of data the CRC value was calculated on
Create an instance of the CRC32 class using the default settings: no
bit reversal, and a polynomial of 0xEDB88320.
Create an instance of the CRC32 class, specifying whether to reverse
data bits or not.
specify true if the instance should reverse data bits.
In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
want a CRC32 with compatibility with BZip2, you should pass true
here. In the CRC-32 used by GZIP and PKZIP, the bits are not
reversed; Therefore if you want a CRC32 with compatibility with
those, you should pass false.
Create an instance of the CRC32 class, specifying the polynomial and
whether to reverse data bits or not.
The polynomial to use for the CRC, expressed in the reversed (LSB)
format: the highest ordered bit in the polynomial value is the
coefficient of the 0th power; the second-highest order bit is the
coefficient of the 1 power, and so on. Expressed this way, the
polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320.
specify true if the instance should reverse data bits.
In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
want a CRC32 with compatibility with BZip2, you should pass true
here for the reverseBits parameter. In the CRC-32 used by
GZIP and PKZIP, the bits are not reversed; Therefore if you want a
CRC32 with compatibility with those, you should pass false for the
reverseBits parameter.
Reset the CRC-32 class - clear the CRC "remainder register."
Use this when employing a single instance of this class to compute
multiple, distinct CRCs on multiple, distinct data blocks.
A Stream that calculates a CRC32 (a checksum) on all bytes read,
or on all bytes written.
This class can be used to verify the CRC of a ZipEntry when
reading from a stream, or to calculate a CRC when writing to a
stream. The stream should be used to either read, or write, but
not both. If you intermix reads and writes, the results are not
defined.
This class is intended primarily for use internally by the
DotNetZip library.
The default constructor.
Instances returned from this constructor will leave the underlying
stream open upon Close(). The stream uses the default CRC32
algorithm, which implies a polynomial of 0xEDB88320.
The underlying stream
The constructor allows the caller to specify how to handle the
underlying stream at close.
The stream uses the default CRC32 algorithm, which implies a
polynomial of 0xEDB88320.
The underlying stream
true to leave the underlying stream
open upon close of the CrcCalculatorStream; false otherwise.
A constructor allowing the specification of the length of the stream
to read.
The stream uses the default CRC32 algorithm, which implies a
polynomial of 0xEDB88320.
Instances returned from this constructor will leave the underlying
stream open upon Close().
The underlying stream
The length of the stream to slurp
A constructor allowing the specification of the length of the stream
to read, as well as whether to keep the underlying stream open upon
Close().
The stream uses the default CRC32 algorithm, which implies a
polynomial of 0xEDB88320.
The underlying stream
The length of the stream to slurp
true to leave the underlying stream
open upon close of the CrcCalculatorStream; false otherwise.
A constructor allowing the specification of the length of the stream
to read, as well as whether to keep the underlying stream open upon
Close(), and the CRC32 instance to use.
The stream uses the specified CRC32 instance, which allows the
application to specify how the CRC gets calculated.
The underlying stream
The length of the stream to slurp
true to leave the underlying stream
open upon close of the CrcCalculatorStream; false otherwise.
the CRC32 instance to use to calculate the CRC32
Gets the total number of bytes run through the CRC32 calculator.
This is either the total number of bytes read, or the total number of
bytes written, depending on the direction of this stream.
Provides the current CRC for all blocks slurped in.
The running total of the CRC is kept as data is written or read
through the stream. read this property after all reads or writes to
get an accurate CRC for the entire stream.
Indicates whether the underlying stream will be left open when the
CrcCalculatorStream is Closed.
Set this at any point before calling .
Read from the stream
the buffer to read
the offset at which to start
the number of bytes to read
the number of bytes actually read
Write to the stream.
the buffer from which to write
the offset at which to start writing
the number of bytes to write
Indicates whether the stream supports reading.
Indicates whether the stream supports seeking.
Always returns false.
Indicates whether the stream supports writing.
Flush the stream.
Returns the length of the underlying stream.
The getter for this property returns the total bytes read.
If you use the setter, it will throw
.
Seeking is not supported on this stream. This method always throws
N/A
N/A
N/A
This method always throws
N/A
Closes the stream.
A class for compressing and decompressing streams using the Deflate algorithm.
The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any
stream.
Using this stream, applications can compress or decompress data via stream
Read and Write operations. Either compresssion or decompression
can occur through either reading or writing. The compression format used is
DEFLATE, which is documented in IETF RFC 1951, "DEFLATE
Compressed Data Format Specification version 1.3.".
This class is similar to , except that
ZlibStream adds the RFC
1950 - ZLIB framing bytes to a compressed stream when compressing, or
expects the RFC1950 framing bytes when decompressing. The DeflateStream
does not.
Create a DeflateStream using the specified CompressionMode.
When mode is CompressionMode.Compress, the DeflateStream will use
the default compression level. The "captive" stream will be closed when
the DeflateStream is closed.
This example uses a DeflateStream to compress data from a file, and writes
the compressed data to another file.
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(fileToCompress + ".deflated"))
{
using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
}
Using input As Stream = File.OpenRead(fileToCompress)
Using raw As FileStream = File.Create(fileToCompress & ".deflated")
Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
End Using
The stream which will be read or written.
Indicates whether the DeflateStream will compress or decompress.
Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel.
When mode is CompressionMode.Decompress, the level parameter is
ignored. The "captive" stream will be closed when the DeflateStream is
closed.
This example uses a DeflateStream to compress data from a file, and writes
the compressed data to another file.
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(fileToCompress + ".deflated"))
{
using (Stream compressor = new DeflateStream(raw,
CompressionMode.Compress,
CompressionLevel.BestCompression))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n= -1;
while (n != 0)
{
if (n > 0)
compressor.Write(buffer, 0, n);
n= input.Read(buffer, 0, buffer.Length);
}
}
}
}
Using input As Stream = File.OpenRead(fileToCompress)
Using raw As FileStream = File.Create(fileToCompress & ".deflated")
Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
End Using
The stream to be read or written while deflating or inflating.
Indicates whether the DeflateStream will compress or decompress.
A tuning knob to trade speed for effectiveness.
Create a DeflateStream using the specified
CompressionMode, and explicitly specify whether the
stream should be left open after Deflation or Inflation.
This constructor allows the application to request that the captive stream
remain open after the deflation or inflation occurs. By default, after
Close() is called on the stream, the captive stream is also
closed. In some cases this is not desired, for example if the stream is a
memory stream that will be re-read after compression. Specify true for
the parameter to leave the stream open.
The DeflateStream will use the default compression level.
See the other overloads of this constructor for example code.
The stream which will be read or written. This is called the
"captive" stream in other places in this documentation.
Indicates whether the DeflateStream will compress or decompress.
true if the application would like the stream to
remain open after inflation/deflation.
Create a DeflateStream using the specified CompressionMode
and the specified CompressionLevel, and explicitly specify whether
the stream should be left open after Deflation or Inflation.
When mode is CompressionMode.Decompress, the level parameter is ignored.
This constructor allows the application to request that the captive stream
remain open after the deflation or inflation occurs. By default, after
Close() is called on the stream, the captive stream is also
closed. In some cases this is not desired, for example if the stream is a
that will be re-read after
compression. Specify true for the parameter
to leave the stream open.
This example shows how to use a DeflateStream to compress data from
a file, and store the compressed data into another file.
using (var output = System.IO.File.Create(fileToCompress + ".deflated"))
{
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n= -1;
while (n != 0)
{
if (n > 0)
compressor.Write(buffer, 0, n);
n= input.Read(buffer, 0, buffer.Length);
}
}
}
// can write additional data to the output stream here
}
Using output As FileStream = File.Create(fileToCompress & ".deflated")
Using input As Stream = File.OpenRead(fileToCompress)
Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
' can write additional data to the output stream here.
End Using
The stream which will be read or written.
Indicates whether the DeflateStream will compress or decompress.
true if the application would like the stream to remain open after inflation/deflation.
A tuning knob to trade speed for effectiveness.
This property sets the flush behavior on the stream.
See the ZLIB documentation for the meaning of the flush behavior.
The size of the working buffer for the compression codec.
The working buffer is used for all stream operations. The default size is
1024 bytes. The minimum size is 128 bytes. You may get better performance
with a larger buffer. Then again, you might not. You would have to test
it.
Set this before the first call to Read() or Write() on the
stream. If you try to set it afterwards, it will throw.
The ZLIB strategy to be used during compression.
By tweaking this parameter, you may be able to optimize the compression for
data with particular characteristics.
Returns the total number of bytes input so far. Returns the total number of bytes output so far.
Dispose the stream.
This may or may not result in a Close() call on the captive
stream. See the constructors that have a leaveOpen parameter
for more information.
Application code won't call this code directly. This method may be
invoked in two distinct scenarios. If disposing == true, the method
has been called directly or indirectly by a user's code, for example
via the public Dispose() method. In this case, both managed and
unmanaged resources can be referenced and disposed. If disposing ==
false, the method has been called by the runtime from inside the
object finalizer and this method should not reference other objects;
in that case only unmanaged resources must be referenced or
disposed.
true if the Dispose method was invoked by user code.
Indicates whether the stream can be read.
The return value depends on whether the captive stream supports reading.
Indicates whether the stream supports Seek operations.
Always returns false.
Indicates whether the stream can be written.
The return value depends on whether the captive stream supports writing.
Flush the stream.
Reading this property always throws a .
The position of the stream pointer.
Setting this property always throws a . Reading will return the total bytes
written out, if used in writing, or the total bytes read in, if used in
reading. The count may refer to compressed bytes or uncompressed bytes,
depending on how you've used the stream.
Read data from the stream.
If you wish to use the DeflateStream to compress data while
reading, you can create a DeflateStream with
CompressionMode.Compress, providing an uncompressed data stream.
Then call Read() on that DeflateStream, and the data read will be
compressed as you read. If you wish to use the DeflateStream to
decompress data while reading, you can create a DeflateStream with
CompressionMode.Decompress, providing a readable compressed data
stream. Then call Read() on that DeflateStream, and the data read
will be decompressed as you read.
A DeflateStream can be used for Read() or Write(), but not both.
The buffer into which the read data should be placed.
the offset within that data array to put the first byte read.
the number of bytes to read.
the number of bytes actually read
Calling this method always throws a .
this is irrelevant, since it will always throw!
this is irrelevant, since it will always throw!
irrelevant!
Calling this method always throws a .
this is irrelevant, since it will always throw!
Write data to the stream.
If you wish to use the DeflateStream to compress data while
writing, you can create a DeflateStream with
CompressionMode.Compress, and a writable output stream. Then call
Write() on that DeflateStream, providing uncompressed data
as input. The data sent to the output stream will be the compressed form
of the data written. If you wish to use the DeflateStream to
decompress data while writing, you can create a DeflateStream with
CompressionMode.Decompress, and a writable output stream. Then
call Write() on that stream, providing previously compressed
data. The data sent to the output stream will be the decompressed form of
the data written.
A DeflateStream can be used for Read() or Write(),
but not both.
The buffer holding data to write to the stream.
the offset within that data array to find the first byte to write.
the number of bytes to write.
Compress a string into a byte array using DEFLATE (RFC 1951).
Uncompress it with .
DeflateStream.UncompressString(byte[])DeflateStream.CompressBuffer(byte[])GZipStream.CompressString(string)ZlibStream.CompressString(string)
A string to compress. The string will first be encoded
using UTF8, then compressed.
The string in compressed form
Compress a byte array into a new byte array using DEFLATE.
Uncompress it with .
DeflateStream.CompressString(string)DeflateStream.UncompressBuffer(byte[])GZipStream.CompressBuffer(byte[])ZlibStream.CompressBuffer(byte[])
A buffer to compress.
The data in compressed form
Uncompress a DEFLATE'd byte array into a single string.
DeflateStream.CompressString(String)DeflateStream.UncompressBuffer(byte[])GZipStream.UncompressString(byte[])ZlibStream.UncompressString(byte[])
A buffer containing DEFLATE-compressed data.
The uncompressed string
Uncompress a DEFLATE'd byte array into a byte array.
DeflateStream.CompressBuffer(byte[])DeflateStream.UncompressString(byte[])GZipStream.UncompressBuffer(byte[])ZlibStream.UncompressBuffer(byte[])
A buffer containing data that has been compressed with DEFLATE.
The data in uncompressed form
A class for compressing and decompressing GZIP streams.
The GZipStream is a Decorator on a
. It adds GZIP compression or decompression to any
stream.
Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the
Ionic.Zlib.GZipStream can compress while writing, or decompress while
reading, but not vice versa. The compression method used is GZIP, which is
documented in IETF RFC
1952, "GZIP file format specification version 4.3".
A GZipStream can be used to decompress data (through Read()) or
to compress data (through Write()), but not both.
If you wish to use the GZipStream to compress data, you must wrap it
around a write-able stream. As you call Write() on the GZipStream, the
data will be compressed into the GZIP format. If you want to decompress data,
you must wrap the GZipStream around a readable stream that contains an
IETF RFC 1952-compliant stream. The data will be decompressed as you call
Read() on the GZipStream.
Though the GZIP format allows data from multiple files to be concatenated
together, this stream handles only a single segment of GZIP format, typically
representing a single file.
This class is similar to and .
ZlibStream handles RFC1950-compliant streams.
handles RFC1951-compliant streams. This class handles RFC1952-compliant streams.
The comment on the GZIP stream.
The GZIP format allows for each file to optionally have an associated
comment stored with the file. The comment is encoded with the ISO-8859-1
code page. To include a comment in a GZIP stream you create, set this
property before calling Write() for the first time on the
GZipStream.
When using GZipStream to decompress, you can retrieve this property
after the first call to Read(). If no comment has been set in the
GZIP bytestream, the Comment property will return null
(Nothing in VB).
The FileName for the GZIP stream.
The GZIP format optionally allows each file to have an associated
filename. When compressing data (through Write()), set this
FileName before calling Write() the first time on the GZipStream.
The actual filename is encoded into the GZIP bytestream with the
ISO-8859-1 code page, according to RFC 1952. It is the application's
responsibility to insure that the FileName can be encoded and decoded
correctly with this code page.
When decompressing (through Read()), you can retrieve this value
any time after the first Read(). In the case where there was no filename
encoded into the GZIP bytestream, the property will return null (Nothing
in VB).
The last modified time for the GZIP stream.
GZIP allows the storage of a last modified time with each GZIP entry.
When compressing data, you can set this before the first call to
Write(). When decompressing, you can retrieve this value any time
after the first call to Read().
The CRC on the GZIP stream.
This is used for internal error checking. You probably don't need to look at this property.
Create a GZipStream using the specified CompressionMode.
When mode is CompressionMode.Compress, the GZipStream will use the
default compression level.
As noted in the class documentation, the CompressionMode (Compress
or Decompress) also establishes the "direction" of the stream. A
GZipStream with CompressionMode.Compress works only through
Write(). A GZipStream with
CompressionMode.Decompress works only through Read().
This example shows how to use a GZipStream to compress data.
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(outputFile))
{
using (Stream compressor = new GZipStream(raw, CompressionMode.Compress))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
}
Dim outputFile As String = (fileToCompress & ".compressed")
Using input As Stream = File.OpenRead(fileToCompress)
Using raw As FileStream = File.Create(outputFile)
Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
End Using
This example shows how to use a GZipStream to uncompress a file.
private void GunZipFile(string filename)
{
if (!filename.EndsWith(".gz))
throw new ArgumentException("filename");
var DecompressedFile = filename.Substring(0,filename.Length-3);
byte[] working = new byte[WORKING_BUFFER_SIZE];
int n= 1;
using (System.IO.Stream input = System.IO.File.OpenRead(filename))
{
using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
{
using (var output = System.IO.File.Create(DecompressedFile))
{
while (n !=0)
{
n= decompressor.Read(working, 0, working.Length);
if (n > 0)
{
output.Write(working, 0, n);
}
}
}
}
}
}
Private Sub GunZipFile(ByVal filename as String)
If Not (filename.EndsWith(".gz)) Then
Throw New ArgumentException("filename")
End If
Dim DecompressedFile as String = filename.Substring(0,filename.Length-3)
Dim working(WORKING_BUFFER_SIZE) as Byte
Dim n As Integer = 1
Using input As Stream = File.OpenRead(filename)
Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True)
Using output As Stream = File.Create(UncompressedFile)
Do
n= decompressor.Read(working, 0, working.Length)
If n > 0 Then
output.Write(working, 0, n)
End IF
Loop While (n > 0)
End Using
End Using
End Using
End Sub
The stream which will be read or written.
Indicates whether the GZipStream will compress or decompress.
Create a GZipStream using the specified CompressionMode and
the specified CompressionLevel.
The CompressionMode (Compress or Decompress) also establishes the
"direction" of the stream. A GZipStream with
CompressionMode.Compress works only through Write(). A
GZipStream with CompressionMode.Decompress works only
through Read().
This example shows how to use a GZipStream to compress a file into a .gz file.
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(fileToCompress + ".gz"))
{
using (Stream compressor = new GZipStream(raw,
CompressionMode.Compress,
CompressionLevel.BestCompression))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
}
Using input As Stream = File.OpenRead(fileToCompress)
Using raw As FileStream = File.Create(fileToCompress & ".gz")
Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
End Using
The stream to be read or written while deflating or inflating.
Indicates whether the GZipStream will compress or decompress.
A tuning knob to trade speed for effectiveness.
Create a GZipStream using the specified CompressionMode, and
explicitly specify whether the stream should be left open after Deflation
or Inflation.
This constructor allows the application to request that the captive stream
remain open after the deflation or inflation occurs. By default, after
Close() is called on the stream, the captive stream is also
closed. In some cases this is not desired, for example if the stream is a
memory stream that will be re-read after compressed data has been written
to it. Specify true for the parameter to leave
the stream open.
The (Compress or Decompress) also
establishes the "direction" of the stream. A GZipStream with
CompressionMode.Compress works only through Write(). A GZipStream
with CompressionMode.Decompress works only through Read().
The GZipStream will use the default compression level. If you want
to specify the compression level, see .
See the other overloads of this constructor for example code.
The stream which will be read or written. This is called the "captive"
stream in other places in this documentation.
Indicates whether the GZipStream will compress or decompress.
true if the application would like the base stream to remain open after
inflation/deflation.
Create a GZipStream using the specified CompressionMode and the
specified CompressionLevel, and explicitly specify whether the
stream should be left open after Deflation or Inflation.
This constructor allows the application to request that the captive stream
remain open after the deflation or inflation occurs. By default, after
Close() is called on the stream, the captive stream is also
closed. In some cases this is not desired, for example if the stream is a
memory stream that will be re-read after compressed data has been written
to it. Specify true for the parameter to
leave the stream open.
As noted in the class documentation, the CompressionMode (Compress
or Decompress) also establishes the "direction" of the stream. A
GZipStream with CompressionMode.Compress works only through
Write(). A GZipStream with CompressionMode.Decompress works only
through Read().
This example shows how to use a GZipStream to compress data.
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(outputFile))
{
using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
}
Dim outputFile As String = (fileToCompress & ".compressed")
Using input As Stream = File.OpenRead(fileToCompress)
Using raw As FileStream = File.Create(outputFile)
Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
End Using
The stream which will be read or written.
Indicates whether the GZipStream will compress or decompress.
true if the application would like the stream to remain open after inflation/deflation.
A tuning knob to trade speed for effectiveness.
This property sets the flush behavior on the stream.
The size of the working buffer for the compression codec.
The working buffer is used for all stream operations. The default size is
1024 bytes. The minimum size is 128 bytes. You may get better performance
with a larger buffer. Then again, you might not. You would have to test
it.
Set this before the first call to Read() or Write() on the
stream. If you try to set it afterwards, it will throw.
Returns the total number of bytes input so far. Returns the total number of bytes output so far.
Dispose the stream.
This may or may not result in a Close() call on the captive
stream. See the constructors that have a leaveOpen parameter
for more information.
This method may be invoked in two distinct scenarios. If disposing
== true, the method has been called directly or indirectly by a
user's code, for example via the public Dispose() method. In this
case, both managed and unmanaged resources can be referenced and
disposed. If disposing == false, the method has been called by the
runtime from inside the object finalizer and this method should not
reference other objects; in that case only unmanaged resources must
be referenced or disposed.
indicates whether the Dispose method was invoked by user code.
Indicates whether the stream can be read.
The return value depends on whether the captive stream supports reading.
Indicates whether the stream supports Seek operations.
Always returns false.
Indicates whether the stream can be written.
The return value depends on whether the captive stream supports writing.
Flush the stream.
Reading this property always throws a .
The position of the stream pointer.
Setting this property always throws a . Reading will return the total bytes
written out, if used in writing, or the total bytes read in, if used in
reading. The count may refer to compressed bytes or uncompressed bytes,
depending on how you've used the stream.
Read and decompress data from the source stream.
With a GZipStream, decompression is done through reading.
byte[] working = new byte[WORKING_BUFFER_SIZE];
using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile))
{
using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
{
using (var output = System.IO.File.Create(_DecompressedFile))
{
int n;
while ((n= decompressor.Read(working, 0, working.Length)) !=0)
{
output.Write(working, 0, n);
}
}
}
}
The buffer into which the decompressed data should be placed.
the offset within that data array to put the first byte read.
the number of bytes to read.
the number of bytes actually read
Calling this method always throws a .
irrelevant; it will always throw!
irrelevant; it will always throw!
irrelevant!
Calling this method always throws a .
irrelevant; this method will always throw!
Write data to the stream.
If you wish to use the GZipStream to compress data while writing,
you can create a GZipStream with CompressionMode.Compress, and a
writable output stream. Then call Write() on that GZipStream,
providing uncompressed data as input. The data sent to the output stream
will be the compressed form of the data written.
A GZipStream can be used for Read() or Write(), but not
both. Writing implies compression. Reading implies decompression.
The buffer holding data to write to the stream.
the offset within that data array to find the first byte to write.
the number of bytes to write.
Compress a string into a byte array using GZip.
Uncompress it with .
A string to compress. The string will first be encoded
using UTF8, then compressed.
The string in compressed form
Compress a byte array into a new byte array using GZip.
Uncompress it with .
A buffer to compress.
The data in compressed form
Uncompress a GZip'ed byte array into a single string.
A buffer containing GZIP-compressed data.
The uncompressed string
Uncompress a GZip'ed byte array into a byte array.
A buffer containing data that has been compressed with GZip.
The data in uncompressed form
Map from a distance to a distance code.
No side effects. _dist_code[256] and _dist_code[257] are never used.
Describes how to flush the current deflate operation.
The different FlushType values are useful when using a Deflate in a streaming application.
No flush at all.Closes the current block, but doesn't flush it to
the output. Used internally only in hypothetical
scenarios. This was supposed to be removed by Zlib, but it is
still in use in some edge cases.
Use this during compression to specify that all pending output should be
flushed to the output buffer and the output should be aligned on a byte
boundary. You might use this in a streaming communication scenario, so that
the decompressor can get all input data available so far. When using this
with a ZlibCodec, AvailableBytesIn will be zero after the call if
enough output space has been provided before the call. Flushing will
degrade compression and so it should be used only when necessary.
Use this during compression to specify that all output should be flushed, as
with FlushType.Sync, but also, the compression state should be reset
so that decompression can restart from this point if previous compressed
data has been damaged or if random access is desired. Using
FlushType.Full too often can significantly degrade the compression.
Signals the end of the compression/decompression stream.
The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress.
None means that the data will be simply stored, with no change at all.
If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None
cannot be opened with the default zip reader. Use a different CompressionLevel.
Same as None.
The fastest but least effective compression.
A synonym for BestSpeed.
A little slower, but better, than level 1.
A little slower, but better, than level 2.
A little slower, but better, than level 3.
A little slower than level 4, but with better compression.
The default compression level, with a good balance of speed and compression efficiency.
A synonym for Default.
Pretty good compression!
Better compression than Level7!
The "best" compression, where best means greatest reduction in size of the input data stream.
This is also the slowest compression.
A synonym for BestCompression.
Describes options for how the compression algorithm is executed. Different strategies
work better on different sorts of data. The strategy parameter can affect the compression
ratio and the speed of compression but not the correctness of the compresssion.
The default strategy is probably the best for normal data.
The Filtered strategy is intended to be used most effectively with data produced by a
filter or predictor. By this definition, filtered data consists mostly of small
values with a somewhat random distribution. In this case, the compression algorithm
is tuned to compress them better. The effect of Filtered is to force more Huffman
coding and less string matching; it is a half-step between Default and HuffmanOnly.
Using HuffmanOnly will force the compressor to do Huffman encoding only, with no
string matching.
An enum to specify the direction of transcoding - whether to compress or decompress.
Used to specify that the stream should compress the data.
Used to specify that the stream should decompress the data.
A general purpose exception class for exceptions in the Zlib library.
The ZlibException class captures exception information generated
by the Zlib library.
This ctor collects a message attached to the exception.
the message for the exception.
Performs an unsigned bitwise right shift with the specified number
Number to operate on
Ammount of bits to shift
The resulting number from the shift operation
Reads a number of characters from the current source TextReader and writes
the data to the target array at the specified index.
The source TextReader to read from
Contains the array of characteres read from the source TextReader.
The starting index of the target array.
The maximum number of characters to read from the source TextReader.
The number of characters read. The number will be less than or equal to
count depending on the data available in the source TextReader. Returns -1
if the end of the stream is reached.
Computes an Adler-32 checksum.
The Adler checksum is similar to a CRC checksum, but faster to compute, though less
reliable. It is used in producing RFC1950 compressed streams. The Adler checksum
is a required part of the "ZLIB" standard. Applications will almost never need to
use this class directly.
Calculates the Adler32 checksum.
This is used within ZLIB. You probably don't need to use this directly.
To compute an Adler32 checksum on a byte array:
var adler = Adler.Adler32(0, null, 0, 0);
adler = Adler.Adler32(adler, buffer, index, length);
Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951).
This class compresses and decompresses data according to the Deflate algorithm
and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE.
The buffer from which data is taken.
An index into the InputBuffer array, indicating where to start reading.
The number of bytes available in the InputBuffer, starting at NextIn.
Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call.
The class will update this number as calls to Inflate/Deflate are made.
Total number of bytes read so far, through all calls to Inflate()/Deflate().
Buffer to store output data.
An index into the OutputBuffer array, indicating where to start writing.
The number of bytes available in the OutputBuffer, starting at NextOut.
Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call.
The class will update this number as calls to Inflate/Deflate are made.
Total number of bytes written to the output so far, through all calls to Inflate()/Deflate().
used for diagnostics, when something goes wrong!
The compression level to use in this codec. Useful only in compression mode.
The number of Window Bits to use.
This gauges the size of the sliding window, and hence the
compression effectiveness as well as memory consumption. It's best to just leave this
setting alone if you don't know what it is. The maximum value is 15 bits, which implies
a 32k window.
The compression strategy to use.
This is only effective in compression. The theory offered by ZLIB is that different
strategies could potentially produce significant differences in compression behavior
for different data sets. Unfortunately I don't have any good recommendations for how
to set it differently. When I tested changing the strategy I got minimally different
compression performance. It's best to leave this property alone if you don't have a
good feel for it. Or, you may want to produce a test harness that runs through the
different strategy options and evaluates them on different file types. If you do that,
let me know your results.
The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this.
Create a ZlibCodec.
If you use this default constructor, you will later have to explicitly call
InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress
or decompress.
Create a ZlibCodec that either compresses or decompresses.
Indicates whether the codec should compress (deflate) or decompress (inflate).
Initialize the inflation state.
It is not necessary to call this before using the ZlibCodec to inflate data;
It is implicitly called when you call the constructor.
Z_OK if everything goes well.
Initialize the inflation state with an explicit flag to
govern the handling of RFC1950 header bytes.
By default, the ZLIB header defined in RFC 1950 is expected. If
you want to read a zlib stream you should specify true for
expectRfc1950Header. If you have a deflate stream, you will want to specify
false. It is only necessary to invoke this initializer explicitly if you
want to specify false.
whether to expect an RFC1950 header byte
pair when reading the stream of data to be inflated.
Z_OK if everything goes well.
Initialize the ZlibCodec for inflation, with the specified number of window bits.
The number of window bits to use. If you need to ask what that is,
then you shouldn't be calling this initializer.
Z_OK if all goes well.
Initialize the inflation state with an explicit flag to govern the handling of
RFC1950 header bytes.
If you want to read a zlib stream you should specify true for
expectRfc1950Header. In this case, the library will expect to find a ZLIB
header, as defined in RFC
1950, in the compressed stream. If you will be reading a DEFLATE or
GZIP stream, which does not have such a header, you will want to specify
false.
whether to expect an RFC1950 header byte pair when reading
the stream of data to be inflated.
The number of window bits to use. If you need to ask what that is,
then you shouldn't be calling this initializer.
Z_OK if everything goes well.
Inflate the data in the InputBuffer, placing the result in the OutputBuffer.
You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and
AvailableBytesOut before calling this method.
private void InflateBuffer()
{
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
ZlibCodec decompressor = new ZlibCodec();
Console.Info("\n============================================");
Console.Info("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length);
MemoryStream ms = new MemoryStream(DecompressedBytes);
int rc = decompressor.InitializeInflate();
decompressor.InputBuffer = CompressedBytes;
decompressor.NextIn = 0;
decompressor.AvailableBytesIn = CompressedBytes.Length;
decompressor.OutputBuffer = buffer;
// pass 1: inflate
do
{
decompressor.NextOut = 0;
decompressor.AvailableBytesOut = buffer.Length;
rc = decompressor.Inflate(FlushType.None);
if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END)
throw new Exception("inflating: " + decompressor.Message);
ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut);
}
while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0);
// pass 2: finish and flush
do
{
decompressor.NextOut = 0;
decompressor.AvailableBytesOut = buffer.Length;
rc = decompressor.Inflate(FlushType.Finish);
if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK)
throw new Exception("inflating: " + decompressor.Message);
if (buffer.Length - decompressor.AvailableBytesOut > 0)
ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut);
}
while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0);
decompressor.EndInflate();
}
The flush to use when inflating.
Z_OK if everything goes well.
Ends an inflation session.
Call this after successively calling Inflate(). This will cause all buffers to be flushed.
After calling this you cannot call Inflate() without a intervening call to one of the
InitializeInflate() overloads.
Z_OK if everything goes well.
I don't know what this does!
Z_OK if everything goes well.
Initialize the ZlibCodec for deflation operation.
The codec will use the MAX window bits and the default level of compression.
int bufferSize = 40000;
byte[] CompressedBytes = new byte[bufferSize];
byte[] DecompressedBytes = new byte[bufferSize];
ZlibCodec compressor = new ZlibCodec();
compressor.InitializeDeflate(CompressionLevel.Default);
compressor.InputBuffer = System.Text.ASCIICommonEncodings.ASCII.GetBytes(TextToCompress);
compressor.NextIn = 0;
compressor.AvailableBytesIn = compressor.InputBuffer.Length;
compressor.OutputBuffer = CompressedBytes;
compressor.NextOut = 0;
compressor.AvailableBytesOut = CompressedBytes.Length;
while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize)
{
compressor.Deflate(FlushType.None);
}
while (true)
{
int rc= compressor.Deflate(FlushType.Finish);
if (rc == ZlibConstants.Z_STREAM_END) break;
}
compressor.EndDeflate();
Z_OK if all goes well. You generally don't need to check the return code.
Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel.
The codec will use the maximum window bits (15) and the specified
CompressionLevel. It will emit a ZLIB stream as it compresses.
The compression level for the codec.
Z_OK if all goes well.
Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel,
and the explicit flag governing whether to emit an RFC1950 header byte pair.
The codec will use the maximum window bits (15) and the specified CompressionLevel.
If you want to generate a zlib stream, you should specify true for
wantRfc1950Header. In this case, the library will emit a ZLIB
header, as defined in RFC
1950, in the compressed stream.
The compression level for the codec.
whether to emit an initial RFC1950 byte pair in the compressed stream.
Z_OK if all goes well.
Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel,
and the specified number of window bits.
The codec will use the specified number of window bits and the specified CompressionLevel.
The compression level for the codec.
the number of window bits to use. If you don't know what this means, don't use this method.
Z_OK if all goes well.
Initialize the ZlibCodec for deflation operation, using the specified
CompressionLevel, the specified number of window bits, and the explicit flag
governing whether to emit an RFC1950 header byte pair.
The compression level for the codec.
whether to emit an initial RFC1950 byte pair in the compressed stream.
the number of window bits to use. If you don't know what this means, don't use this method.
Z_OK if all goes well.
Deflate one batch of data.
You must have set InputBuffer and OutputBuffer before calling this method.
private void DeflateBuffer(CompressionLevel level)
{
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
ZlibCodec compressor = new ZlibCodec();
Console.Info("\n============================================");
Console.Info("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length);
MemoryStream ms = new MemoryStream();
int rc = compressor.InitializeDeflate(level);
compressor.InputBuffer = UncompressedBytes;
compressor.NextIn = 0;
compressor.AvailableBytesIn = UncompressedBytes.Length;
compressor.OutputBuffer = buffer;
// pass 1: deflate
do
{
compressor.NextOut = 0;
compressor.AvailableBytesOut = buffer.Length;
rc = compressor.Deflate(FlushType.None);
if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END)
throw new Exception("deflating: " + compressor.Message);
ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut);
}
while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0);
// pass 2: finish and flush
do
{
compressor.NextOut = 0;
compressor.AvailableBytesOut = buffer.Length;
rc = compressor.Deflate(FlushType.Finish);
if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK)
throw new Exception("deflating: " + compressor.Message);
if (buffer.Length - compressor.AvailableBytesOut > 0)
ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut);
}
while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0);
compressor.EndDeflate();
ms.Seek(0, SeekOrigin.Begin);
CompressedBytes = new byte[compressor.TotalBytesOut];
ms.Read(CompressedBytes, 0, CompressedBytes.Length);
}
whether to flush all data as you deflate. Generally you will want to
use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to
flush everything.
Z_OK if all goes well.
End a deflation session.
Call this after making a series of one or more calls to Deflate(). All buffers are flushed.
Z_OK if all goes well.
Reset a codec for another deflation session.
Call this to reset the deflation state. For example if a thread is deflating
non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first
block and before the next Deflate(None) of the second block.
Z_OK if all goes well.
Set the CompressionStrategy and CompressionLevel for a deflation session.
the level of compression to use.
the strategy to use for compression.
Z_OK if all goes well.
Set the dictionary to be used for either Inflation or Deflation.
The dictionary bytes to use.
Z_OK if all goes well.
A bunch of constants used in the Zlib interface.
The maximum number of window bits for the Deflate algorithm.
The default number of window bits for the Deflate algorithm.
indicates everything is A-OK
Indicates that the last operation reached the end of the stream.
The operation ended in need of a dictionary.
There was an error with the stream - not enough data, not open and readable, etc.
There was an error with the data - not enough data, bad data, etc.
There was an error with the working buffer.
The size of the working buffer used in the ZlibCodec class. Defaults to 8192 bytes.
The minimum size of the working buffer used in the ZlibCodec class. Currently it is 128 bytes.
Represents a Zlib stream for compression or decompression.
The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any
stream.
Using this stream, applications can compress or decompress data via
stream Read() and Write() operations. Either compresssion or
decompression can occur through either reading or writing. The compression
format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed
Data Format Specification version 3.3". This implementation of ZLIB always uses
DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE
Compressed Data Format Specification version 1.3.")
The ZLIB format allows for varying compression methods, window sizes, and dictionaries.
This implementation always uses the DEFLATE compression method, a preset dictionary,
and 15 window bits by default.
This class is similar to , except that it adds the
RFC1950 header and trailer bytes to a compressed stream when compressing, or expects
the RFC1950 header and trailer bytes when decompressing. It is also similar to the
.
Create a ZlibStream using the specified CompressionMode.
When mode is CompressionMode.Compress, the ZlibStream
will use the default compression level. The "captive" stream will be
closed when the ZlibStream is closed.
This example uses a ZlibStream to compress a file, and writes the
compressed data to another file.
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
{
using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
}
Using input As Stream = File.OpenRead(fileToCompress)
Using raw As FileStream = File.Create(fileToCompress & ".zlib")
Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
End Using
The stream which will be read or written.
Indicates whether the ZlibStream will compress or decompress.
Create a ZlibStream using the specified CompressionMode and
the specified CompressionLevel.
When mode is CompressionMode.Decompress, the level parameter is ignored.
The "captive" stream will be closed when the ZlibStream is closed.
This example uses a ZlibStream to compress data from a file, and writes the
compressed data to another file.
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
{
using (Stream compressor = new ZlibStream(raw,
CompressionMode.Compress,
CompressionLevel.BestCompression))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
}
Using input As Stream = File.OpenRead(fileToCompress)
Using raw As FileStream = File.Create(fileToCompress & ".zlib")
Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
End Using
The stream to be read or written while deflating or inflating.
Indicates whether the ZlibStream will compress or decompress.
A tuning knob to trade speed for effectiveness.
Create a ZlibStream using the specified CompressionMode, and
explicitly specify whether the captive stream should be left open after
Deflation or Inflation.
When mode is CompressionMode.Compress, the ZlibStream will use
the default compression level.
This constructor allows the application to request that the captive stream
remain open after the deflation or inflation occurs. By default, after
Close() is called on the stream, the captive stream is also
closed. In some cases this is not desired, for example if the stream is a
that will be re-read after
compression. Specify true for the parameter to leave the stream
open.
See the other overloads of this constructor for example code.
The stream which will be read or written. This is called the
"captive" stream in other places in this documentation.
Indicates whether the ZlibStream will compress or decompress.
true if the application would like the stream to remain
open after inflation/deflation.
Create a ZlibStream using the specified CompressionMode
and the specified CompressionLevel, and explicitly specify
whether the stream should be left open after Deflation or Inflation.
This constructor allows the application to request that the captive
stream remain open after the deflation or inflation occurs. By
default, after Close() is called on the stream, the captive
stream is also closed. In some cases this is not desired, for example
if the stream is a that will be
re-read after compression. Specify true for the parameter to leave the stream open.
When mode is CompressionMode.Decompress, the level parameter is
ignored.
This example shows how to use a ZlibStream to compress the data from a file,
and store the result into another file. The filestream remains open to allow
additional data to be written to it.
using (var output = System.IO.File.Create(fileToCompress + ".zlib"))
{
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
// can write additional data to the output stream here
}
Using output As FileStream = File.Create(fileToCompress & ".zlib")
Using input As Stream = File.OpenRead(fileToCompress)
Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True)
Dim buffer As Byte() = New Byte(4096) {}
Dim n As Integer = -1
Do While (n <> 0)
If (n > 0) Then
compressor.Write(buffer, 0, n)
End If
n = input.Read(buffer, 0, buffer.Length)
Loop
End Using
End Using
' can write additional data to the output stream here.
End Using
The stream which will be read or written.
Indicates whether the ZlibStream will compress or decompress.
true if the application would like the stream to remain open after
inflation/deflation.
A tuning knob to trade speed for effectiveness. This parameter is
effective only when mode is CompressionMode.Compress.
This property sets the flush behavior on the stream.
Sorry, though, not sure exactly how to describe all the various settings.
The size of the working buffer for the compression codec.
The working buffer is used for all stream operations. The default size is
1024 bytes. The minimum size is 128 bytes. You may get better performance
with a larger buffer. Then again, you might not. You would have to test
it.
Set this before the first call to Read() or Write() on the
stream. If you try to set it afterwards, it will throw.
Returns the total number of bytes input so far. Returns the total number of bytes output so far.
Dispose the stream.
This may or may not result in a Close() call on the captive
stream. See the constructors that have a leaveOpen parameter
for more information.
This method may be invoked in two distinct scenarios. If disposing
== true, the method has been called directly or indirectly by a
user's code, for example via the public Dispose() method. In this
case, both managed and unmanaged resources can be referenced and
disposed. If disposing == false, the method has been called by the
runtime from inside the object finalizer and this method should not
reference other objects; in that case only unmanaged resources must
be referenced or disposed.
indicates whether the Dispose method was invoked by user code.
Indicates whether the stream can be read.
The return value depends on whether the captive stream supports reading.
Indicates whether the stream supports Seek operations.
Always returns false.
Indicates whether the stream can be written.
The return value depends on whether the captive stream supports writing.
Flush the stream.
Reading this property always throws a .
The position of the stream pointer.
Setting this property always throws a . Reading will return the total bytes
written out, if used in writing, or the total bytes read in, if used in
reading. The count may refer to compressed bytes or uncompressed bytes,
depending on how you've used the stream.
Read data from the stream.
If you wish to use the ZlibStream to compress data while reading,
you can create a ZlibStream with CompressionMode.Compress,
providing an uncompressed data stream. Then call Read() on that
ZlibStream, and the data read will be compressed. If you wish to
use the ZlibStream to decompress data while reading, you can create
a ZlibStream with CompressionMode.Decompress, providing a
readable compressed data stream. Then call Read() on that
ZlibStream, and the data will be decompressed as it is read.
A ZlibStream can be used for Read() or Write(), but
not both.
The buffer into which the read data should be placed.
the offset within that data array to put the first byte read.
the number of bytes to read.
the number of bytes read
Calling this method always throws a .
The offset to seek to....
IF THIS METHOD ACTUALLY DID ANYTHING.
The reference specifying how to apply the offset.... IF
THIS METHOD ACTUALLY DID ANYTHING.
nothing. This method always throws.
Calling this method always throws a .
The new value for the stream length.... IF
THIS METHOD ACTUALLY DID ANYTHING.
Write data to the stream.
If you wish to use the ZlibStream to compress data while writing,
you can create a ZlibStream with CompressionMode.Compress,
and a writable output stream. Then call Write() on that
ZlibStream, providing uncompressed data as input. The data sent to
the output stream will be the compressed form of the data written. If you
wish to use the ZlibStream to decompress data while writing, you
can create a ZlibStream with CompressionMode.Decompress, and a
writable output stream. Then call Write() on that stream,
providing previously compressed data. The data sent to the output stream
will be the decompressed form of the data written.
A ZlibStream can be used for Read() or Write(), but not both.
The buffer holding data to write to the stream.
the offset within that data array to find the first byte to write.
the number of bytes to write.
Compress a string into a byte array using ZLIB.
Uncompress it with .
A string to compress. The string will first be encoded
using UTF8, then compressed.
The string in compressed form
Compress a byte array into a new byte array using ZLIB.
Uncompress it with .
A buffer to compress.
The data in compressed form
Uncompress a ZLIB-compressed byte array into a single string.
A buffer containing ZLIB-compressed data.
The uncompressed string
Uncompress a ZLIB-compressed byte array into a byte array.
A buffer containing ZLIB-compressed data.
The data in uncompressed form