Chilkat C# Mime Class Reference

Mime

Chilkat MIME allows you to easily create and manipulate MIME and S/MIME messages from within your applications.

Properties

public string Boundary {get; set; }

The boundary string to be used if this is a multipart message. By default, the boundary is automatically generated to be a unique and random string, so explicitly setting the boundary is not necessary.

public string Charset {get; set; }

The charset, such as "ISO-8859-1" or "utf-8"

public string ContentType {get; set; }

The MIME content type, such as "text/plain", "text/html", "multipart/alternative", "multipart/mixed", etc.

public string Disposition {get; set; }

The content disposition, which can be "attachment", "inline", etc.

public string Encoding {get; set; }

A content encoding such as "base64", "quoted-printable", "7bit", "8bit", etc.

public string Filename {get; set; }

The filename when the content disposition is "attachment".

public string LastErrorHtml {get; }

Error information in HTML format for the last method called.

public string LastErrorText {get; }

Error information in plain-text format for the last method called.

public string LastErrorXml {get; }

Error information in XML format for the last method called.

public string Micalg {get; set; }

The MIC algorithm, such as "SHA1" when the content type is multipart/signed. Properties such as this are rarely set manually, as Chilkat MIME automatically sets it to the correct value when creating a signed message.

public string Name {get; set; }

The name attribute of the content-type header field.

public int NumEncryptCerts {get; }

The number of certificates use for encryption. This property is set after UnwrapSecurity is called.

public int NumHeaderFields {get; }

The number of header fields. Header field names and values can be retrieved by index (starting at 0) by calling GetHeaderFieldName and GetHeaderFieldValue.

public int NumParts {get; }

The number of sub-parts contained within this message. Each sub-part is a complete Chilkat MIME message itself.

public int NumSignerCerts {get; }

The number of certificates use for signing. This property is set after UnwrapSecurity is called.

public string Protocol {get; set; }

A protocol such as "application/x-pkcs7-signature". Properties such as this are rarely set manually, as Chilkat MIME automatically sets it to the correct value when creating a signed message.

public bool UnwrapExtras {get; set; }

Controls whether extra (informative) header fields are added to the MIME message when unwrapping security.

public bool UseMmDescription {get; set; }

Controls whether the boilerplate text "This is a multi-part message in MIME format." is used as the body content of a multipart MIME part.

public string Version {get; }

The version, such as "1.0.0".

Methods

public bool AddDetachedSignature(Cert cert);

Signs the message using the certificate provided. If successful, the message is converted to "multipart/signed" and the original message will be contained in the first sub-part.

public bool AddDetachedSignature2(Cert cert, bool transferHeaderFields);

Same as AddDetachedSignature, except an extra argument is provided to control whether header fields from the calling MIME object are transferred to the content part of the multipart/signed object. This method transforms the calling object into a multipart/signed MIME with two sub-parts. The first contains the original content of the calling object, and the second contains the digital signature.

Returns true for success, false for failure.

public bool AddDetachedSignaturePk(Cert cert, PrivateKey privateKey);

To be documented soon.

public bool AddDetachedSignaturePk2(Cert cert, PrivateKey privateKey, bool transferHeaderFields);

To be documented soon...

public bool AddHeaderField(string name, string value);

Adds a header field to the MIME.

public bool AppendPart(Mime mime);

Appends a MIME message to the sub-parts of this message. Arbitrarily complex messages with unlimited nesting levels can be created. If the calling Mime object is not already multipart, it is automatically converted to multipart/mixed first.

public bool AppendPartFromFile(string filename);

Loads a file and creates a Mime message object using the file extension to determine the content type, and adds it as a sub-part to the calling object.

public bool ContainsEncryptedParts();

Returns true if the MIME message contains encrypted parts.

public bool ContainsSignedParts();

Returns true if the MIME message contains signed parts.

public void Convert8Bit();

(PreRelease) Changes the content-transfer-encoding to "base64" for all 8bit or binary MIME subparts. This allows for the MIME to be exported as a string via the GetMime method.

public bool ConvertToMultipartAlt();

To be documented soon.

public bool ConvertToMultipartMixed();

To be documented soon.

public bool ConvertToSigned(Cert cert);

Digitally signs the calling Mime object, but rather than the signature becoming a sub-part of the message (as in AddDetachedSignature) it becomes part of the message. In S/MIME terms, the message becomes application/x-pkcs7-mime rather than multipart/signed.

public bool ConvertToSignedPk(Cert cert, PrivateKey privateKey);

To be documented soon...

public bool Decrypt();

To be documented soon.

public bool Decrypt2(Cert cert, PrivateKey privateKey);

To be documented soon.

public bool Encrypt(Cert cert);

Encrypt a MIME message object using a digital certificate.

public byte[] GetBodyBinary();

Returns the body of the MIME message as a block of binary data. The body is automatically converted from its encoding type, such as base64 or quoted-printable, before being returned.

Returns null on failure

public string GetBodyDecoded();

Returns the body of the MIME message as a string. The body is automatically converted from its encoding type, such as base64 or quoted-printable, before being returned.

Returns a null on failure

public string GetBodyEncoded();

Returns the body of the MIME message as a String. The body is explicitly not decoded from it's encoding type, so if it was represented in Base64, you will get the Base64 encoded body, as an example.

Returns a null on failure

public Cert GetEncryptCert(int index);

Returns the Nth certificate used for encryption. Most likely the message was only encrypted once, and if so, the index should be set to 0.

public string GetEntireBody();

Returns the entire MIME body, including all sub-parts.

Returns a null on failure

public string GetEntireHead();

Returns the MIME header.

Returns a null on failure

public string GetHeaderField(string name);

Returns the content of a MIME header field. The "fieldName" is case-insensitive, and if the MIME header field does not exist, an empty string is returned.

Returns a null on failure

public string GetHeaderFieldName(int index);

Returns the Nth MIME header field name.

Returns a null on failure

public string GetHeaderFieldValue(int index);

Returns the Nth MIME header field value.

Returns a null on failure

public string GetMime();

Returns a string containing the complete MIME message, including all sub-parts.

Returns a null on failure

public byte[] GetMimeBytes();

(PreRelease) Returns a byte array containing the complete MIME message, including all sub-parts.

Returns null on failure

public Mime GetPart(int index);

Returns the Nth sub-part of the MIME message. Indexing begins at 0.

public Cert GetSignerCert(int index);

Returns the Nth digital certificate used to sign the MIME message. Indexing begins at 0.

public string GetXml();

Converts the MIME (or S/MIME) message to XML and returns the XML as a string.

Returns a null on failure

public bool IsApplicationData();

Return true if the MIME message contains application data, otherwise returns false.

public bool IsAttachment();

Return true if this MIME message is an attachment, otherwise returns false

public bool IsAudio();

Return true if the MIME message contains audio data, otherwise returns false.

public bool IsEncrypted();

Returns true if the MIME message is encrypted.

public bool IsHtml();

Return true if the MIME body is HTML

public bool IsImage();

Return true if the MIME message contains image data, otherwise returns false.

public bool IsMultipart();

Return true if the MIME message is multipart (multipart/mixed, multipart/related, multipart/alternative, etc.), otherwise returns false.

public bool IsMultipartAlternative();

Return true if the MIME message is multipart/alternative, otherwise returns false.

public bool IsMultipartMixed();

Return true if the MIME message is multipart/mixed, otherwise returns false.

public bool IsMultipartRelated();

Return true if the MIME message is multipart/related, otherwise returns false.

public bool IsPlainText();

Return true if the MIME message body is plain text, otherwise returns false.

public bool IsSigned();

Return true if the MIME message is digitally signed, otherwise returns false.

public bool IsText();

Return true if the MIME message body is any text content type, such as text/plain, text/html, text/xml, etc., otherwise returns false.

public bool IsUnlocked();

Returns true if the component is already unlocked, false if not.

public bool IsVideo();

Return true if the MIME message contains video data, otherwise returns false.

public bool IsXml();

Return true if the MIME message body is XML, otherwise returns false.

public bool LoadMime(string mimeMsg);

Discards the current contents of the MIME object and loads a new MIME message from a string.

public bool LoadMimeBinary(byte[] binData);

Loads a MIME document from an in-memory byte array.

Returns true for success, false for failure.

public bool LoadMimeFile(string fileName);

Discards the current contents of the MIME object and loads a new MIME message from a file.

public bool LoadXml(string xml);

Converts XML to MIME and replaces the MIME object's contents with the converted XML.

public bool LoadXmlFile(string fileName);

Converts XML to MIME and replaces the MIME object's contents with the converted XML.

public bool NewMessageRfc822(Mime mimeObject);

Clears the Mime object and initializes it such that the header contains a "content-type: message/rfc822" line and the body is the MIME text of the Mime object passed to the method.

public bool NewMultipartAlternative();

Discards the current MIME message header fields and contents, if any, an initializes the MIME object to be an empty mulipart/alternative message.

public bool NewMultipartMixed();

Discards the current MIME message header fields and contents, if any, an initializes the MIME object to be an empty mulipart/mixed message.

public bool NewMultipartRelated();

Discards the current MIME message header fields and contents, if any, an initializes the MIME object to be an empty mulipart/related message.

public bool RemovePart(int index);

Removes the Nth subpart from the MIME message.

public bool SaveBody(string filename);

Saves the MIME message body to a file. If the body is base64 or quoted-printable encoded, it is automatically decoded.

public bool SaveLastError(string filename);

Saves the last error information to an XML formatted file.

public bool SaveMime(string filename);

Saves the MIME message to a file, in MIME format. (This is the same as the .EML format used by Microsoft Outlook Express.)

public bool SaveXml(string filename);

Converts the MIME message to XML and saves to an XML file.

public bool SetBodyFromBinary(byte[] binData);

Sets the MIME message body from a byte array.

public bool SetBodyFromEncoded(string encoding, string str);

Sets the MIME message body from a Base64 or Quoted-Printable encoded string.

public bool SetBodyFromFile(string fileName);

Sets the MIME message body from the contents of a file.

public bool SetBodyFromHtml(string str);

Sets the MIME message body from a string containing HTML, and also updates the content-type to be text/html

public bool SetBodyFromPlainText(string str);

Sets the MIME message body from a string containing plain text, and also updates the content-type to be text/plain

public bool SetBodyFromXml(string str);

Sets the MIME message body from a string containing XML, and also updates the content-type to be text/xml

public bool SetCSP(Csp csp);

Sets the encryption and digital signature preferences for this message. The CSP object will control the Cryptographic Service Provider used, the key container within the CSP to be used, and the encryption/hash algorithms.

public bool SetHeaderField(string name, string value);

Adds or replaces a MIME message header field. If the field already exists, it is automatically replaced. Otherwise it is added.

public void SetVerifyCert(Cert cert);

Allows a certificate to be explicitly specified for verifying a signature.

public bool UnlockComponent(string unlockCode);

Unlocks the component allowing for the full functionality to be used. Returns true if the unlock code is valid.

public bool UnwrapSecurity();

Decrypts and verifies all digital signatures contained within the MIME message, and returns true if all decryptions and verifications succeeded. Otherwise returns false. After unwrapping, the information regarding security and certificates can be obtained by the methods GetSignerCert and GetEncryptCert, and the properties NumEncryptCerts and NumSignerCerts.

public bool Verify();

To be documented soon...