MailMan JavaScript Reference Documentation

MailMan

Current Version: 11.4.0

The Chilkat MailMan class is reponsible for sending email though SMTP and receiving/managing email on POP3 servers.

Object Creation

Note: This is intended for running within a Chilkat.Js embedded JavaScript engine.

var obj = new CkMailMan();

Properties

AbortCurrent
AbortCurrent
· boolean
Introduced in version 9.5.0.58

When set to true, causes the currently running method to abort. Methods that always finish quickly (i.e.have no length file operations or network communications) are not affected. If no method is running, then this property is automatically reset to false when the next method is called. When the abort occurs, this property is reset to false. Both synchronous and asynchronous method calls can be aborted. (A synchronous method call could be aborted by setting this property from a separate thread.)

top
AllOrNone
AllOrNone
· boolean

Prevents sending any email if any of the addresses in the recipient list are rejected by the SMTP server. The default value is false, which indicates that the mail sending should continue even if some email addresses are invalid. (Note: Not all SMTP servers check the validity of email addresses, and even for those that do, it is not 100% accurate.)

Note: An SMTP server only knows the validity of email addresses within the domain it controls.

Important: The AllOrNone property only works if SMTP pipelining is turned off. By default, the SmtpPipelining property is turned on and has the value of true. If all-or-none behavior is desired, make sure to set SmtpPipelining equal to false.

More Information and Examples
top
AutoFix
AutoFix
· boolean

If true, then the following will occur when a connection is made to an SMTP or POP3 server:

1) If the SmtpPort property = 465, then sets StartTLS = false and SmtpSsl = true
2) If the SmtpPort property = 25, sets SmtpSsl = false
3) If the MailPort property = 995, sets PopSsl = true
4) If the MailPort property = 110, sets PopSsl = false

The default value of this property is true.

More Information and Examples
top
AutoGenMessageId
AutoGenMessageId
· boolean

Controls whether a unique Message-ID header is auto-generated for each email sent.

The Message-ID header field should contain a unique message ID for each email that is sent. The default behavior is to auto-generate this header field at the time the message is sent. This makes it easier for the same email object to be re-used. If the message ID is not unique, the SMTP server may consider the message to be a duplicate of one that has already been sent, and may discard it without sending. This property controls whether message IDs are automatically generated. If auto-generation is turned on (true), the value returned by GetHeaderField(Message-ID) will not reflect the actual message ID that gets sent with the email.

To turn off automatic Message-ID generation, set this property to false.

top
AutoSmtpRset
AutoSmtpRset
· boolean

If true, then the SMTP RSET command is automatically sent to ensure that the SMTP connection is in a valid state when a new email is about to be sent on an already established connection. The default value is false.

Important: This property only applies when an email is sent on an already-open SMTP connection.

top
AutoUnwrapSecurity
AutoUnwrapSecurity
· boolean
Introduced in version 9.5.0.49

If true, then digitally signed and/or encrypted email when downloaded from a mail server is automatically unwrapped and the results of the signature validation and decryption are available in various email object properties and methods. The default value of this property is true. Set this property to false to prevent unwrapping.

Note: A digitally signed or encrypted email can ONLY be verified and/or decrypted when initially loading the original MIME into the email object (i.e. when downloading from the server, or when loading from MIME). Once the MIME is parsed and stored in the internal email object format, the exactnes of the MIME has been lost and the signature can no longer be verified. This is why the signature is verified upon the intial loading of the MIME, and the results are made available through the various properties and methods. This property provides a means for downloading email where the .p7m (or .p7s) attachments are are to be treated as simple attachments and the desire is to access or save the original .p7m/.p7s files.

top
ClientIpAddress
ClientIpAddress
· string

The IP address to use for computers with multiple network interfaces or IP addresses. For computers with a single network interface (i.e. most computers), this property should not be set. For multihoming computers, the default IP address is automatically used if this property is not set.

The IP address is a string such as in dotted notation using numbers, not domain names, such as 165.164.55.124.

More Information and Examples
top
ConnectFailReason
ConnectFailReason
· int, read-only
Introduced in version 9.5.0.56

This property will be set to the status of the last connection made (or failed to be made) by any method.

Possible values are:

0 = success

Normal (non-TLS) sockets:
1 = empty hostname
2 = DNS lookup failed
3 = DNS timeout
4 = Aborted by application.
5 = Internal failure.
6 = Connect Timed Out
7 = Connect Rejected (or failed for some other reason)

SSL/TLS:
100 = TLS internal error.
101 = Failed to send client hello.
102 = Unexpected handshake message.
103 = Failed to read server hello.
104 = No server certificate.
105 = Unexpected TLS protocol version.
106 = Server certificate verify failed (the server certificate is expired or the cert's signature verification failed).
107 = Unacceptable TLS protocol version.
109 = Failed to read handshake messages.
110 = Failed to send client certificate handshake message.
111 = Failed to send client key exchange handshake message.
112 = Client certificate's private key not accessible.
113 = Failed to send client cert verify handshake message.
114 = Failed to send change cipher spec handshake message.
115 = Failed to send finished handshake message.
116 = Server's Finished message is invalid.

top
ConnectTimeout
ConnectTimeout
· int

The time (in seconds) to wait before while trying to connect to a mail server (POP3 or SMTP). The default value is 30.

top
DebugLogFilePath
DebugLogFilePath
· string

If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. This logging helps identify the context and history of Chilkat calls leading up to any crash or hang, aiding in debugging.

Enabling the VerboseLogging property provides more detailed information. This property is mainly used for debugging rare instances where a Chilkat method call causes a hang or crash, which should generally not happen.

Possible causes of hangs include:

  • A timeout property set to 0, indicating an infinite timeout.
  • A hang occurring within an event callback in the application code.
  • An internal bug in the Chilkat code causing the hang.

More Information and Examples
top
DsnEnvid
DsnEnvid
· string

(An SMTP DSN service extension feature) An arbitrary string that will be used as the ENVID property when sending email. See RFC 3461 for more details.

top
DsnNotify
DsnNotify
· string

(An SMTP DSN service extension feature) A string that will be used as the NOTIFY parameter when sending email. (See RFC 3461 for more details. ) This string can be left blank, or can be set to NEVER, or any combination of a comma-separated list of SUCCESS, FAILURE, or NOTIFY.

top
DsnRet
DsnRet
· string

(An SMTP DSN service extension feature) A string that will be used as the RET parameter when sending email. (See RFC 3461 for more details. ) This string can be left blank, or can be set to FULL to receive entire-message DSN notifications, or HDRS to receive header-only DSN notifications.

top
EmbedCertChain
EmbedCertChain
· boolean

If true, causes the digital certificate chain to be embedded in signed emails. The certificates in the chain of authentication are embedded up to but not including the root certificate. If the IncludeRootCert property is also true, then the root CA certificate is also included in the S/MIME signature.

top
Filter
Filter
· string

An expression that is applied to any of the following method calls when present: LoadXmlFile, LoadXmlString, LoadMbx, CopyMail, and TransferMail. For these methods, only the emails that match the filter's expression are returned in the email bundle. In the case of TransferMail, only the matching emails are removed from the mail server. The filter allows any header field, or the body, to be checked.

Here are some examples of expressions:

Body like "mortgage rates*". 
Subject contains "update" and From contains "chilkat" 
To = "info@chilkatsoft.com" 

Here are the general rules for forming filter expressions:

Any MIME header field name can be used, case is insensitive. 
Literal strings are double-quoted, and case is insensitive. 
The "*" wildcard matches 0 or more occurrences of any character. 
Parentheses can be used to control precedence. 
The logical operators are: AND, OR, NOT (case insensitive) 
Comparison operators are: =, <, >, <=, >=, <> 
String comparison operators are: CONTAINS, LIKE (case insensitive)

Note: This property only works on text strings, not dates or numbers.

top
HeloHostname
HeloHostname
· string

Specifies the hostname to be used for the EHLO/HELO command sent to an SMTP server. By default, this property is an empty string which causes the local hostname to be used.

top
HttpProxyAuthMethod
HttpProxyAuthMethod
· string

If an HTTP proxy requiring authentication is to be used, set this property to the HTTP proxy authentication method name. Valid choices are Basic or NTLM.

top
HttpProxyDomain
HttpProxyDomain
· string

The NTLM authentication domain (optional) if NTLM authentication is used.

top
HttpProxyHostname
HttpProxyHostname
· string

If an HTTP proxy is to be used, set this property to the HTTP proxy hostname or IPv4 address (in dotted decimal notation).

top
HttpProxyPassword
HttpProxyPassword
· string

If an HTTP proxy requiring authentication is to be used, set this property to the HTTP proxy password.

top
HttpProxyPort
HttpProxyPort
· int

If an HTTP proxy is to be used, set this property to the HTTP proxy port number. (Two commonly used HTTP proxy ports are 8080 and 3128.)

top
HttpProxyUsername
HttpProxyUsername
· string

If an HTTP proxy requiring authentication is to be used, set this property to the HTTP proxy login name.

top
ImmediateDelete
ImmediateDelete
· boolean

If true (the default) then any method that deletes an email from the POP3 server will also issue a QUIT command to close the session to ensure the message is deleted immediately.

The POP3 protocol is such that the DELE command marks a message for deletion. It is not actually deleted until the QUIT command is sent and the session is closed. If ImmediateDelete is true, then any Chilkat MailMan method that marks a message (or messages) for deletion will also followup with a QUIT command and close the session. If your program sets ImmediateDelete to false, it must make sure to call Pop3EndSession to ensure that messages marked for deletion are actually deleted.

More Information and Examples
top
IncludeRootCert
IncludeRootCert
· boolean

Controls whether the root certificate in the chain of authentication (i.e. the CA root certificate) is included within the S/MIME signature of a signed email. Note: This property only applies if the EmbedCertChain property is also true.

top
IsPop3Connected
IsPop3Connected
· boolean, read-only
Introduced in version 9.5.0.48

Returns true if still connected to the POP3 server. Otherwise returns false.

Note: Accessing this property does not trigger any communication with the POP3 server. A connection to the POP3 server is established by explicitly calling Pop3BeginSession, or it is implicitly established as needed by any method that requires communication. A lost connection might only be detected when attempting to communicate with the server. To truly determine if a connection to the POP3 server is open and valid, it may be necessary to call the Pop3Noop method instead. This property might return true if the server has disconnected, but the client has not attempted to communicate with the server since the disconnect.

top
IsSmtpConnected
IsSmtpConnected
· boolean, read-only

Returns true if still connected to the SMTP server. Otherwise returns false (if there was never a connection in the first place, or if the connection was lost).

Note: Accessing this property does not trigger any communication with the SMTP server. A connection to the SMTP server is established by explicitly calling OpenSmtpConnection, or it is implicitly established as needed by any method that requires communication. A lost connection might only be detected when attempting to communicate with the server. To truly determine if a connection to the SMTP server is open and valid, it may be necessary to call the SmtpNoop method instead. This property might return true if the server has disconnected, but the client has not attempted to communicate with the server since the disconnect.

top
LastErrorHtml
LastErrorHtml
· string, read-only

Provides HTML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastErrorText
LastErrorText
· string, read-only

Provides plain text information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastErrorXml
LastErrorXml
· string, read-only

Provides XML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastMethodSuccess
LastMethodSuccess
· boolean

Indicates the success or failure of the most recent method call: true means success, false means failure. This property remains unchanged by property setters or getters. This method is present to address challenges in checking for null or Nothing returns in certain programming languages. Note: This property does not apply to methods that return integer values or to boolean-returning methods where the boolean does not indicate success or failure.

top
LastSmtpStatus
LastSmtpStatus
· int, read-only

Returns the last SMTP diagnostic status code. This can be checked after sending an email. SMTP reply codes are defined by RFC 821 - Simple Mail Transfer Protocol.

top
LastSmtpStatusMsg
LastSmtpStatusMsg
· string, read-only
Introduced in version 9.5.0.85

Returns the last SMTP status message associated with the last SMTP status code received. This can be checked after sending an email.

top
LogMailReceivedFilename
LogMailReceivedFilename
· string

A log filename where the MailMan will log each message in the exact form it was received from a POP3 server. This property is provided for help in debugging.

top
LogMailSentFilename
LogMailSentFilename
· string

A log filename where the MailMan will log the exact message sent to the SMTP server. This property is helpful in debugging.

top
MailHost
MailHost
· string

The domain name of the POP3 server. Do not include http:// in the domain name. This property may also be set to an IP address string, such as 168.144.70.227. Both IPv4 and IPv6 address formats are supported.

top
MailPort
MailPort
· int

The port number of the POP3 server. Only needs to be set if the POP3 server is running on a non-standard port. The default value is 110. (If SSL/TLS is used by setting the PopSsl property = true, then this property should probably be set to 995, which is the standard SSL/TLS port for POP3.)

top
MaxCount
MaxCount
· int

Limits the number of messages the MailMan will try to retrieve from the POP3 server in a single method call. If you are trying to read a large mailbox, you might set this to a value such as 100 to download 100 emails at a time.

top
OAuth2AccessToken
OAuth2AccessToken
· string
Introduced in version 9.5.0.44

The OAUTH2 access token if OAUTH2 authentication is to be used for the authentication. For GMail, the Chilkat HTTP class/object's G_SvcOauthAccessToken method can be called to obtain an OAUTH2 access token for a GMail service account.

Starting in v9.5.0.83, this property can be set to also do XOAUTH2 authentication for POP3 sessions (pop.gmail.com).

top
OpaqueSigning
OpaqueSigning
· boolean

When false, a signed email is generated as multipart/signed. For example:

Content-Type: multipart/signed; charset=utf-8; boundary="------------010909020906040709090605";
 protocol="application/pkcs7-signature";
 micalg=sha256

When true, a signed email is generated as signed-data. For example:

Content-Type: application/pkcs7-mime; name="smime.p7m"; micalg=sha256;
 smime-type="signed-data"

A multipart/signed email is such that the signature is contained in a separate MIME body part and the original content of the email is not encapsulated within the signature. A signed-data email is such that it's non-multipart MIME (content type is application/pkcs7-signature) and the original email is encapsulated within the signature. This is historically known as an opaque signature.

The default value is true.

top
P7mEncryptAttachFilename
P7mEncryptAttachFilename
· string
Introduced in version 9.5.0.30

The filename attribute to be used in the Content-Disposition header field when sending a PCKS7 encrypted email. The default value is smime.p7m.

top
P7mSigAttachFilename
P7mSigAttachFilename
· string
Introduced in version 9.5.0.30

The filename attribute to be used in the Content-Disposition header field when sending a PCKS7 opaque signed email. The default value is smime.p7m.

top
P7sSigAttachFilename
P7sSigAttachFilename
· string
Introduced in version 9.5.0.30

The filename attribute to be used in the Content-Disposition header field when sending a signed email with a detached PKCS7 signature. The default value is smime.p7s.

top
Pop3SessionId
Pop3SessionId
· int, read-only

0 if no POP3 session is active. Otherwise a positive integer that is incremented with each new POP3 session. It may be used to determine if a new POP3 session has been established.

top
Pop3SessionLog
Pop3SessionLog
· string, read-only

This string property accumulates the raw commands sent to the POP3 server, and the raw responses received from the POP3 server. This property is read-only, but it may be cleared by calling ClearPop3SessionLog.

More Information and Examples
top
Pop3SPA
Pop3SPA
· boolean

Controls whether SPA authentication for POP3 is used or not. To use SPA authentication, set this property = true. No other programming changes are required. The default value is false.

Note: If SPA (i.e. NTLM) authentication does not succeed, set the Global.DefaultNtlmVersion property equal to 1 and then retry.

top
Pop3SslServerCertVerified
Pop3SslServerCertVerified
· boolean, read-only

When connecting via SSL, this property is true if the POP3 server's SSL certificate was verified. Otherwise it is set to false.

top
Pop3Stls
Pop3Stls
· boolean

If true, then an unencrypted connection (typically on port 110) is automatically converted to a secure TLS connection via the STLS command (see RFC 2595) when connecting. This should only be used with POP3 servers that are known to support the STLS capability. If this property is set to true, then the PopSsl property should be set to false. (The PopSsl property controls whether the connection is SSL/TLS from the beginning. Setting the Pop3Stls property = true indicates that the POP3 client will initially connect unencrypted and then convert to TLS.)

The default value of this property is false.

More Information and Examples
top
Pop3StlsIfPossible
Pop3StlsIfPossible
· boolean
Introduced in version 9.5.0.92

If true, then an unencrypted connection (typically on port 110) is automatically converted to a secure TLS connection via the STLS command if the mail server supports the STLS command. If the mail server does not support STLS, then the connection will remain unencrypted.

The default value of this property is false.

top
PopPassword
PopPassword
· string

The POP3 password.

If the Pop3SPA property is set, the PopUsername and PopPassword properties may be set to the string default to cause the component to use the current logged-on credentials (of the calling process) for authentication.

top
PopPasswordBase64
PopPasswordBase64
· string

Provides a way to specify the POP3 password from a Base64-encoded string.

top
PopSsl
PopSsl
· boolean

Controls whether TLS/SSL is used when reading email from a POP3 server. Note: Check first to determine if your POP3 server can accept TLS/SSL connections. Also, be sure to set the MailPort property to the TLS/SSL POP3 port number, which is typically 995.

The default value of this property is false.

top
PopUsername
PopUsername
· string

The POP3 login name.

If the Pop3SPA property is set, the PopUsername and PopPassword properties may be set to the string default to cause the component to use the current logged-on credentials (of the calling process) for authentication.

top
PreferIpv6
PreferIpv6
· boolean

If true, then use IPv6 over IPv4 when both are supported for a particular domain. The default value of this property is false, which will choose IPv4 over IPv6.

top
ReadTimeout
ReadTimeout
· int

The maximum time to wait, in seconds, if the POP3 or SMTP server stops responding. The default value is 30 seconds.

More Information and Examples
top
RequireSslCertVerify
RequireSslCertVerify
· boolean

If true, then the mailman will verify the SMTP or POP3 server's SSL certificate when connecting. The certificate is expired, or if the cert's signature is invalid, the connection is not allowed. The default value of this property is false. (Obviously, this only applies to SSL/TLS connections.)

top
ResetDateOnLoad
ResetDateOnLoad
· boolean

Controls whether the Date header field is reset to the current date/time when an email is loaded from LoadMbx, LoadEml, LoadMime, LoadXml, or LoadXmlString. The default is false (to not reset the date). To automatically reset the date, set this property equal to true.

top
SendBufferSize
SendBufferSize
· int

The buffer size to be used with the underlying TCP/IP socket for sending. The default value is 32767.

top
SendIndividual
SendIndividual
· boolean

Determines how emails are sent to distribution lists. If true, emails are sent to each recipient in the list one at a time, with the Toheader field containing the email address of the recipient. If false, emails will contain in the Toheader field, and are sent to 100 BCC recipients at a time. As an example, if your distribution list contained 350 email addresses, 4 emails would be sent, the first 3 having 100 BCC recipients, and the last email with 50 BCC recipients.The default value of this property is true.

top
SizeLimit
SizeLimit
· int

The MailMan will not try to retrieve mail messages from a POP3 server that are greater than this size limit. The default value is 0 indicating no size limit. The SizeLimit is specified in number of bytes.

top
SmtpAuthMethod
SmtpAuthMethod
· string

This property should usually be left empty. The MailMan will by default choose the most secure login method available to prevent unencrypted username and passwords from being transmitted if possible. However, some SMTP servers may not advertise the acceptable authorization methods, and therefore it is not possible to automatically determine the best authorization method. To force a particular auth method, or to prevent any authorization from being used, set this property to one of the following values: NONE, LOGIN, PLAIN, CRAM-MD5, or NTLM.

Note: If NTLM authentication does not succeed, set the Global.DefaultNtlmVersion property equal to 1 and then retry.

top
SmtpFailReason
SmtpFailReason
· string, read-only
Introduced in version 9.5.0.48

A keyword that indicates the cause of failure (or success) for the last SMTP related method called. Possible values are:

  1. Success The method call was successful.
  2. Failed A general failure not covered by any of the other possible keywords.
  3. NoValidRecipients The SMTP server rejected all receipients.
  4. NoRecipients The app failed to provide any recipients (TO, CC, or BCC).
  5. SomeBadRecipients The AllOrNone property is true, and some recipients were rejected by the SMTP server.
  6. Aborted The application aborted the method.
  7. NoFrom The failed to provide a FROM address.
  8. FromFailure The SMTP replied with an error in response to the MAIL FROM command.
  9. NoCredentials The application did not provide the required credentials, such as username or password.
  10. AuthFailure The login (authentication) failed.
  11. DataFailure The SMTP replied with an error in response to the DATA command.
  12. NoSmtpHostname The application failed to provide an SMTP hostname or IP address.
  13. StartTlsFailed Failed to convert the TCP connection to TLS via STARTTLS.
  14. ConnectFailed Unable to establish a TCP or TLS connection to the SMTP server.
  15. GreetingError The SMTP server immediately responded with an error status in the intial greeting.
  16. ConnectionLost The connection to the SMTP server was lost at some point during the method call.
  17. Timeout A timeout occurred when reading or writing the socket connection.
  18. RenderFailed A failure occurred when rendering the email. (Rendering the email for sending includes tasks such as signing or encrypting.)
  19. NotUnlocked The UnlockBundle method was not previously called on at least one instance of the mailman object.
  20. InternalFailure An internal failure that should be reported to Chilkat support.

top
SmtpHost
SmtpHost
· string

The domain name of the SMTP server. Do not include http:// in the domain name. This property may also be set to an IP address string, such as 168.144.70.227. Both IPv4 and IPv6 address formats are supported.

More Information and Examples
top
SmtpLoginDomain
SmtpLoginDomain
· string

The Windows domain for logging into the SMTP server. Use this only if your SMTP server requires NTLM authentication, which means your SMTP server uses Integrated Windows Authentication. If there is no domain, this can be left empty.

top
SmtpMailFrom
SmtpMailFrom
· string
Introduced in version 11.0.0

This is the email address passed in the MAIL FROM command in the SMTP protocol. It specifies the envelope sender address — the address that will receive bounces (delivery failure messages), and is the originator of the SMTP transaction.

  • SMTP servers may reject MAIL FROM addresses based on DNS or policy (SPF records)
  • Bounce messages (delivery failure notifications) are sent to the address in MAIL FROM

This property is empty by default. If this property is left empty, which is typical, the email address in the From MIME header of the email is used as the MAIL FROM address.

top
SmtpPassword
SmtpPassword
· string

The password for logging into the SMTP server. Use this only if your SMTP server requires authentication. Chilkat Email.NET supports the LOGIN, PLAIN, CRAM-MD5, and NTLM login methods, and it will automatically choose the most secure method available. Additional login methods will be available in the future.

If NTLM (Windows-Integrated) authentication is used, the SmtpUsername and SmtpPassword properties may be set to the string default to cause the component to use the current logged-on credentials (of the calling process) for authentication.

top
SmtpPipelining
SmtpPipelining
· boolean
Introduced in version 9.5.0.49

Controls whether SMTP pipelining is automatically used when the SMTP server indicates support for it. The default is true. Setting this property equal to false will prevent the SMTP pipelining feature from being used.

top
SmtpPort
SmtpPort
· int

The port number of the SMTP server used to send email. Only needs to be set if the SMTP server is running on a non-standard port. The default value is 25. If SmtpSsl is set to true, this property should be set to 465. (TCP port 465 is reserved by common industry practice for secure SMTP communication using the SSL protocol.)

top
SmtpSessionLog
SmtpSessionLog
· string, read-only

This string property accumulates the raw commands sent to the SMTP server, and the raw responses received from the SMTP server. This property is read-only, but it may be cleared by calling ClearSmtpSessionLog.

More Information and Examples
top
SmtpSsl
SmtpSsl
· boolean

When set to true, causes the mailman to connect to the SMTP server with implicit SSL/TLS.

top
SmtpSslServerCertVerified
SmtpSslServerCertVerified
· boolean, read-only

If using SSL, this property will be set to true if the SMTP server's SSL certificate was verified when establishing the connection. Otherwise it is set to false.

top
SmtpUsername
SmtpUsername
· string

The login for logging into the SMTP server. Use this only if your SMTP server requires authentication.

Note: In many cases, an SMTP server will not require authentication when sending to an email address local to it's domain. However, when sending email to an external domain, authentication is required (i.e. the SMTP server is being used as a relay).

If the SmtpAuthMethod property is set to NTLM, the SmtpUsername and SmtpPassword properties may be set to the string default to use the current Windows logged-on user credentials.

smtp.office365.com: If SMTP authentication fails for your smtp.office365.com account, it may be that your account is configured to require MFA (multi-factor authentication). You may need to change settings to allow for legacy authentication (single-factor auth). See https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/block-legacy-authentication Also, an app password may be required. See https://docs.microsoft.com/en-us/azure/active-directory/user-help/multi-factor-authentication-end-user-app-passwords

More Information and Examples
top
SocksHostname
SocksHostname
· string

The SOCKS4/SOCKS5 hostname or IPv4 address (in dotted decimal notation). This property is only used if the SocksVersion property is set to 4 or 5).

top
SocksPassword
SocksPassword
· string

The SOCKS5 password (if required). The SOCKS4 protocol does not include the use of a password, so this does not apply to SOCKS4.

top
SocksPort
SocksPort
· int

The SOCKS4/SOCKS5 proxy port. The default value is 1080. This property only applies if a SOCKS proxy is used (if the SocksVersion property is set to 4 or 5).

top
SocksUsername
SocksUsername
· string

The SOCKS4/SOCKS5 proxy username. This property is only used if the SocksVersion property is set to 4 or 5).

top
SocksVersion
SocksVersion
· int

May be set to one of the following integer values:

0 - No SOCKS proxy is used. This is the default.
4 - Connect via a SOCKS4 proxy.
5 - Connect via a SOCKS5 proxy.

top
SoRcvBuf
SoRcvBuf
· int

Sets the receive buffer size socket option. Normally, this property should be left unchanged. The default value is 4194304.

This property can be increased if download performance seems slow. It is recommended to be a multiple of 4096.

top
SoSndBuf
SoSndBuf
· int

Sets the send buffer size socket option. Normally, this property should be left unchanged. The default value is 262144.

This property can be increased if upload performance seems slow. It is recommended to be a multiple of 4096. Testing with sizes such as 512K and 1MB is reasonable.

top
SslAllowedCiphers
SslAllowedCiphers
· string
Introduced in version 9.5.0.48

Provides a means for setting a list of ciphers that are allowed for SSL/TLS connections. The default (empty string) indicates that all implemented ciphers are possible. The TLS ciphers supported in Chilkat v9.5.0.55 and later are:

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_DHE_RSA_WITH_DES_CBC_SHA
TLS_RSA_WITH_DES_CBC_SHA
To restrict SSL/TLS connections to one or more specific ciphers, set this property to a comma-separated list of ciphers such as TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. The order should be in terms of preference, with the preferred algorithms listed first. (Note that the client cannot specifically choose the algorithm is picked because it is the server that chooses. The client simply provides the server with a list from which to choose.)

The property can also disallow connections with servers having certificates with RSA keys less than a certain size. By default, server certificates having RSA keys of 512 bits or greater are allowed. Add the keyword rsa1024 to disallow connections with servers having keys smaller than 1024 bits. Add the keyword rsa2048 to disallow connections with servers having keys smaller than 2048 bits.

Note: Prior to Chilkat v9.5.0.55, it was not possible to explicitly list allowed cipher suites. The deprecated means for indicating allowed ciphers was both incomplete and unprecise. For example, the following keywords could be listed to allow matching ciphers: aes256-cbc, aes128-cbc, 3des-cbc, and rc4. These keywords will still be recognized, but programs should be updated to explicitly list the allowed ciphers.

secure-renegotiation: Starting in Chilkat v9.5.0.55, the keyword secure-renegotiation may be added to require that all renegotions be done securely (as per RFC 5746).

best-practices: Starting in Chilkat v9.5.0.55, this property may be set to the single keyword best-practices. This will allow ciphers based on the current best practices. As new versions of Chilkat are released, the best practices may change. Changes will be noted here. The current best practices are:

  • If the server uses an RSA key, it must be 1024 bits or greater.
  • All renegotations must be secure renegotiations.
  • All ciphers using RC4, DES, or 3DES are disallowed.

Example: The following string would restrict to 2 specific cipher suites, require RSA keys to be 1024 bits or greater, and require secure renegotiations: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, rsa1024, secure-renegotiation

top
SslProtocol
SslProtocol
· string
Introduced in version 9.5.0.46

Selects the secure protocol to be used for secure (SSL/TLS) connections (for both SMTP and POP3). Possible values are:

default
TLS 1.3
TLS 1.2
TLS 1.1
TLS 1.0
SSL 3.0
TLS 1.3 or higher
TLS 1.2 or higher
TLS 1.1 or higher
TLS 1.0 or higher
The default value is default which will choose the, which allows for the protocol to be selected dynamically at runtime based on the requirements of the server. Choosing an exact protocol will cause the connection to fail unless that exact protocol is negotiated. It is better to choose X or higher than an exact protocol. The default is effectively SSL 3.0 or higher.

top
StartTLS
StartTLS
· boolean

When set to true, causes the mailman to issue a STARTTLS command to switch over to a secure SSL/TLS connection prior to authenticating and sending email. The default value is false.

Note: This property applies to SMTP, not to POP3.

More Information and Examples
top
StartTLSifPossible
StartTLSifPossible
· boolean
Introduced in version 9.5.0.67

When set to true, causes the mailman to do STARTTLS (if possible and supported by the server) to convert to a secure SMTP SSL/TLS connection prior to authenticating and sending email. The default value is true.

Note: Setting the StartTLS property = true causes STARTTLS to always be used, even if the SMTP server does not support it. This property allows for a non-encrypted connection, whereas the StartTLS property disallows non-encrypted connections.

Note: This property applies to SMTP, not to POP3.

top
TlsCipherSuite
TlsCipherSuite
· string, read-only
Introduced in version 9.5.0.49

Contains the current or last negotiated TLS cipher suite. If no TLS connection has yet to be established, or if a connection as attempted and failed, then this will be empty. A sample cipher suite string looks like this: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.

top
TlsPinSet
TlsPinSet
· string
Introduced in version 9.5.0.55

Specifies a set of pins for Public Key Pinning for TLS connections. This property lists the expected SPKI fingerprints for the server certificates. If the server's certificate (sent during the TLS handshake) does not match any of the SPKI fingerprints, then the TLS handshake is aborted and the connection fails. The format of this string property is as follows:

hash_algorithm, encoding, SPKI_fingerprint_1, SPKI_fingerprint_2, ...
For example, the following string specifies a single sha256 base64-encoded SPKI fingerprint:
"sha256, base64, lKg1SIqyhPSK19tlPbjl8s02yChsVTDklQpkMCHvsTE="
This example specifies two SPKI fingerprints:
"sha256, base64, 4t37LpnGmrMEAG8HEz9yIrnvJV2euVRwCLb9EH5WZyI=, 68b0G5iqMvWVWvUCjMuhLEyekM5729PadtnU5tdXZKs="
Any of the following hash algorithms are allowed:.sha1, sha256, sha384, sha512, md2, md5, haval, ripemd128, ripemd160,ripemd256, or ripemd320.

The following encodings are allowed: base64, hex, and any of the encodings indicated in the link below.

More Information and Examples
top
TlsVersion
TlsVersion
· string, read-only
Introduced in version 9.5.0.49

Contains the current or last negotiated TLS protocol version. If no TLS connection has yet to be established, or if a connection as attempted and failed, then this will be empty. Possible values are SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, and TLS 1.3.

top
UncommonOptions
UncommonOptions
· string
Introduced in version 9.5.0.80

This is a catch-all property to be used for uncommon needs. This property defaults to the empty string and should typically remain empty. Can be set to a list of the following comma separated keywords:

  • ProtectFromVpn - Introduced in v9.5.0.80. On Android systems, will bypass any VPN that may be installed or active.
  • SmtpLoginAnsi - Introduced in v9.5.0.97. If the SMTP login and/or password contains non-us-ascii chars, some SMTP servers expect the utf-8 encoding, whereas others expect ANSI. Historically, Chilkat passed the login/password using the ANSI encoding. Starting in v9.5.0.97, Chilkat switched to using the utf-8 encoding. This uncommon option can be used to revert back to the old behavior of sending the ANSI byte representation.

More Information and Examples
top
UseApop
UseApop
· boolean

If true, will automatically use APOP authentication if the POP3 server supports it. The default value of this property is false.

top
VerboseLogging
VerboseLogging
· boolean

If set to true, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. The default value is false. Verbose logging should only be used for debugging. The potentially large quantity of logged information may adversely affect peformance.

top
Version
Version
· string, read-only

Version of the component/library, such as "10.1.0"

More Information and Examples
top

Methods

AddPfxSourceBd
var success = AddPfxSourceBd(bd, password);
· return: boolean; true for success, false for failure
· bd: CkBinData
· password: string
Introduced in version 11.0.0

Adds a PFX file to the object's list of sources for locating certificates and private keys during decryption or signing. To add multiple PFX sources, call this method for each file. bd should contain the bytes of a PFX file (also known as PKCS12 or .p12). The password is the password to the PFX.

Returns true for success, false for failure.

top
AddPfxSourceFile
var success = AddPfxSourceFile(pfxFilePath, password);
· return: boolean; true for success, false for failure
· pfxFilePath: string
· password: string

Adds a PFX file to the object's internal list of sources to be searched for certificates and private keys when decrypting or when sending signed email. Multiple PFX files can be added by calling this method once for each. (On the Windows operating system, the registry-based certificate stores are also automatically searched, so it is commonly not required to explicitly add PFX sources.)

The pfxFilePath contains the bytes of a PFX file (also known as PKCS12 or .p12).

Returns true for success, false for failure.

top
CheckMail
var intVal = CheckMail();
· return: int

Returns the number of emails available on the POP3 server. Returns -1 on error.

The VerifyPopConnection method can be called to verify basic TCP/IP connectivity with the POP3 server. The VerifyPopLogin method can be called to verify the POP3 login. The Verify* methods are intended to be called as a way of diagnosing the failure when a POP3 method returns an error status.

top
ClearBadEmailAddresses
ClearBadEmailAddresses();
· return: undefined

Clears the list of bad email addresses stored within the Mailman object. When an email-sending method is called, any email addresses rejected by the SMTP server will be cached within the Mailman object. These can be accessed by calling the GetBadEmailAddresses method. This method clears the Mailman's in-memory cache of bad addresses.

top
ClearPop3SessionLog
ClearPop3SessionLog();
· return: undefined

Clears the contents of the Pop3SessionLog property.

top
ClearSmtpSessionLog
ClearSmtpSessionLog();
· return: undefined

Clears the contents of the SmtpSessionLog property.

top
CloseSmtpConnection
var success = CloseSmtpConnection();
· return: boolean; true for success, false for failure

The mailman object automatically opens an SMTP connection (if necessary) whenever an email-sending method is called. The connection is kept open until explicitly closed by this method. Calling this method is entirely optional. The SMTP connection is also automatically closed when the mailman object is destructed. Thus, if an application calls SendEmail 10 times to send 10 emails, the 1st call will open the SMTP connection, while the subsequent 9 will send over the existing connection (unless a property such as username, login, hostname, etc. is changed, which would force the connection to become closed and re-established with the next mail-sending method call).

Note: This method sends a QUIT command to the SMTP server prior to closing the connection.

Returns true for success, false for failure.

More Information and Examples
top
DeleteBundle
var success = DeleteBundle(emailBundle);
· return: boolean; true for success, false for failure
· emailBundle: CkEmailBundle

Marks multiple emails on the POP3 server for deletion. (Each email in emailBundle that is also present on the server is marked for deletion.) To complete the deletion of the emails, a QUIT message must be sent and the POP3 session ended. This will happen automatically when the ImmediateDelete property equals true, which is the default. If ImmediateDelete equals false, then the Pop3EndSession method can be called to send the QUIT and end the session (i.e. disconnect.)

Note: When making multiple calls to a Delete* method, it's best to turn off ImmediateDelete, and then manually call Pop3EndSession to finalize the deletions.

Also, any method call requiring communication with the POP3 server will automatically re-establish a session based on the current property settings.

Returns true for success, false for failure.

top
DeleteByMsgnum
var success = DeleteByMsgnum(msgnum);
· return: boolean; true for success, false for failure
· msgnum: int

Marks an email for deletion by message number. WARNING: Be very careful if calling this method. Message numbers are specific to a POP3 session. If a maildrop has (for example) 10 messages, the message numbers will be 1, 2, 3, ... 10. If message number 1 is deleted and a new POP3 session is established, there will be 9 messages numbered 1, 2, 3, ... 9.

IMPORTANT: A POP3 must first be established by either calling Pop3BeginSession explicitly, or implicitly by calling some other method that automatically establishes the session. This method will not automatically establish a new POP3 session (because if it did, the message numbers would potentially be different than what the application expects).

This method only marks an email for deletion. It is not actually removed from the maildrop until the POP3 session is explicitly ended by calling Pop3EndSession.

Returns true for success, false for failure.

top
DeleteByUidl
var success = DeleteByUidl(uidl);
· return: boolean; true for success, false for failure
· uidl: string

Marks an email on the POP3 server for deletion. To complete the deletion of an email, a QUIT message must be sent and the POP3 session ended. This will happen automatically when the ImmediateDelete property equals true, which is the default. If ImmediateDelete equals false, then the Pop3EndSession method can be called to send the QUIT and end the session (i.e. disconnect.)

Note: When making multiple calls to a Delete* method, it's best to turn off ImmediateDelete, and then manually call Pop3EndSession to finalize the deletions.

Also, any method call requiring communication with the POP3 server will automatically re-establish a session based on the current property settings.

Returns true for success, false for failure.

top
DeleteEmail
var success = DeleteEmail(email);
· return: boolean; true for success, false for failure
· email: CkEmail

Marks an email on the POP3 server for deletion. To complete the deletion of an email, a QUIT message must be sent and the POP3 session ended. This will happen automatically when the ImmediateDelete property equals true, which is the default. If ImmediateDelete equals false, then the Pop3EndSession method can be called to send the QUIT and end the session (i.e. disconnect.)

Note: When making multiple calls to a Delete* method, it's best to turn off ImmediateDelete, and then manually call Pop3EndSession to finalize the deletions.

Also, any method call requiring communication with the POP3 server will automatically re-establish a session based on the current property settings.

Returns true for success, false for failure.

top
DeleteUidlSet
var success = DeleteUidlSet(stUidls);
· return: boolean; true for success, false for failure
· stUidls: CkStringTable
Introduced in version 11.1.0

Marks multiple emails for deletion on the POP3 server when their UIDL matches any in stUidls. To finalize deletions, a QUIT message must be sent and the POP3 session closed. This occurs automatically when the ImmediateDelete property is set to true (default setting). If ImmediateDelete is false, use the Pop3EndSession method to manually send the QUIT message and disconnect.

Note: When making multiple Delete* method calls, it's advisable to set ImmediateDelete to false and manually execute Pop3EndSession to complete deletions. Any method that requires server communication will automatically re-establish a session according to the current property settings.

Returns true for success, false for failure.

top
FetchAll
var success = FetchAll(keepOnServer, headersOnly, numBodyLines, bundle);
· return: boolean; true for success, false for failure
· keepOnServer: boolean
· headersOnly: boolean
· numBodyLines: int
· bundle: CkEmailBundle
Introduced in version 11.0.0

Retrieves all emails from the POP3 server. If keepOnServer is true, emails remain on the server. If headersOnly is true, only the headers and the first numBodyLines lines of each email are downloaded, excluding attachments. Otherwise, the entire emails with attachments are downloaded. The emails are stored in bundle.

Note: keepOnServer only applies when downloading full emails (not headers-only). Downloading headers-only will not cause the email to be deleted from the server, regardless of keepOnServer.

Returns true for success, false for failure.

More Information and Examples
top
FetchByUidl
var success = FetchByUidl(uidl, headerOnly, numBodyLines, email);
· return: boolean; true for success, false for failure
· uidl: string
· headerOnly: boolean
· numBodyLines: int
· email: CkEmail
Introduced in version 11.0.0

Retrieves either the complete email or just the header along with the first N lines of the message body from the POP3 server specified by uidl, without deleting the email from the server.

Returns true for success, false for failure.

top
FetchFull
var success = FetchFull(partialEmail, fullEmail);
· return: boolean; true for success, false for failure
· partialEmail: CkEmail
· fullEmail: CkEmail
Introduced in version 11.0.0

If a partial email (header-only) was retrieved, this method will download and return the full email from the server using the partial email as an argument.

Returns true for success, false for failure.

top
FetchMimeBd
var success = FetchMimeBd(uidl, mimeData);
· return: boolean; true for success, false for failure
· uidl: string
· mimeData: CkBinData
Introduced in version 9.5.0.73

Fetches an email by UIDL and returns the MIME source of the email in uidl.

Returns true for success, false for failure.

More Information and Examples
top
FetchMimeByMsgnumBd
var success = FetchMimeByMsgnumBd(msgnum, bd);
· return: boolean; true for success, false for failure
· msgnum: int
· bd: CkBinData
Introduced in version 11.0.0

Retrieves an email by its message number and provides the MIME source in bd. Note: Message numbers are unique to each POP3 session. For instance, if there are 10 messages in the maildrop, they will be numbered 1 through 10. If message 1 is deleted and a new POP3 session is started, the remaining messages will be renumbered from 1 to 9. Please note that a POP3 connection must be established beforehand. This can be done by explicitly calling Pop3BeginSession or through other methods that implicitly start the session. This method does not initiate a POP3 session automatically.

Returns true for success, false for failure.

top
FetchOne
var success = FetchOne(headerOnly, numBodyLines, msgNum, email);
· return: boolean; true for success, false for failure
· headerOnly: boolean
· numBodyLines: int
· msgNum: int
· email: CkEmail
Introduced in version 11.0.0

Retrieves a complete message or header by its message number and stores it in msgNum. The first email has a message number of 1. Messages fetched by this method remain on the server.

Note: Message numbers are unique to each POP3 session.

Returns true for success, false for failure.

top
FetchRange
var success = FetchRange(keepOnServer, headersOnly, numBodyLines, startIndex, endIndex, bundle);
· return: boolean; true for success, false for failure
· keepOnServer: boolean
· headersOnly: boolean
· numBodyLines: int
· startIndex: int
· endIndex: int
· bundle: CkEmailBundle
Introduced in version 11.0.0

Retrieves a specified range of emails from the POP3 server. If keepOnServer is true, the emails remain on the server. If headersOnly is true, only the headers and the first numBodyLines lines of each email are downloaded, without attachments. Otherwise, the entire emails, including attachments, are downloaded. The range of emails to download is determined by startIndex and endIndex. The GetMailboxCount method returns the total number of emails in the POP3 mailbox, with the first email at index 0. The downloaded emails are stored in bundle.

Note: keepOnServer only applies when downloading full emails (not headers-only). Downloading headers-only will not cause the email to be deleted from the server, regardless of keepOnServer.

Returns true for success, false for failure.

top
FetchUidls
var success = FetchUidls(uidls);
· return: boolean; true for success, false for failure
· uidls: CkStringTable
Introduced in version 11.0.0

Returns the UIDLs of the emails currently stored on the POP3 server.

POP3 UIDLs (Unique ID Listings) are persistent, unique identifiers assigned by a mail server to each email message in a mailbox. Unlike message numbers, which can change between sessions, UIDLs remain consistent as long as the message exists, allowing email clients to track which messages have already been downloaded—even across multiple sessions—without re-fetching the same emails.

Returns true for success, false for failure.

top
FetchUidlSet
var success = FetchUidlSet(uidls, headersOnly, numBodyLines, bundle);
· return: boolean; true for success, false for failure
· uidls: CkStringTable
· headersOnly: boolean
· numBodyLines: int
· bundle: CkEmailBundle
Introduced in version 11.0.0

Fetches the email headers or full emails from the POP3 server whose UIDL is present in the uidls. If headersOnly is true, only the headers and the first numBodyLines lines of each email are downloaded, excluding attachments. Otherwise, the entire emails with attachments are downloaded. The emails are stored in bundle. The downloaded emails are not deleted from the server.

Returns true for success, false for failure.

top
GetLastJsonData
GetLastJsonData(json);
· return: undefined
· json: CkJsonObject
Introduced in version 11.0.0

Provides information about what transpired in the last method called on this object instance. For many methods, there is no information. However, for some methods, details about what occurred can be obtained by getting the LastJsonData right after the method call returns.

top
GetMailboxCount
var intVal = GetMailboxCount();
· return: int

Returns the number of emails on the POP3 server, or -1 for failure.

This method is identical to CheckEmail. It was added for clarity.

top
GetMailboxInfoXml
var strVal = GetMailboxInfoXml();
· return: string

Returns an XML document with information about the emails in a POP3 mailbox. The XML contains the UIDL and size (in bytes) of each email in the mailbox.

Returns null on failure

More Information and Examples
top
GetMailboxSize
var uintVal = GetMailboxSize();
· return: unsigned int

Returns the total combined size in bytes of all the emails in the POP3 mailbox. This is also known as the mail drop size. Returns -1 on failure.

top
GetServerCert
var success = GetServerCert(useSmtp, cert);
· return: boolean; true for success, false for failure
· useSmtp: boolean
· cert: CkCert
Introduced in version 11.0.0

If the current connection is SSL/TLS, this method returns the digital certificate of the SMTP or POP3 server specified by useSmtp. The certificate is returned in cert.

Returns true for success, false for failure.

top
GetSizeByUidl
var intVal = GetSizeByUidl(uidl);
· return: int
· uidl: string

Returns the size of an email (including attachments) given the UIDL of the email on the POP3 server. Returns -1 for failure.

top
IsSmtpDsnCapable
var boolVal = IsSmtpDsnCapable();
· return: boolean

Contacts the SMTP server and determines if it supports the DSN (Delivery Status Notification) features specified by RFC 3461 and supported by the DsnEnvid, DsnNotify, and DsnRet properties. Returns true if the SMTP server supports DSN, otherwise returns false.

top
LoadMbxFile
var success = LoadMbxFile(mbxPath, bundle);
· return: boolean; true for success, false for failure
· mbxPath: string
· bundle: CkEmailBundle
Introduced in version 11.0.0

Loads a .mbx file containing emails and returns in bundle. If a Filter is present, only emails that match the filter are returned.

Returns true for success, false for failure.

top
OpenSmtpConnection
var success = OpenSmtpConnection();
· return: boolean; true for success, false for failure

Explicitly opens a connection to the SMTP server and authenticates (if a username/password was specified). Calling this method is optional because the SendEmail method and other mail-sending methods will automatically open the connection to the SMTP server if one is not already established.

Note: This method is the equivalent of calling SmtpConnect followed by SmtpAuthenticate.

Returns true for success, false for failure.

top
Pop3Authenticate
var success = Pop3Authenticate();
· return: boolean; true for success, false for failure
Introduced in version 9.5.0.56

Authenticates with the POP3 server using the property settings such as PopUsername, PopPassword, etc. This method should only be called after a successful call to Pop3Connect.

Note 1: The Pop3BeginSession method both connects and authenticates. It is the equivalent of calling Pop3Connect followed by Pop3Authenticate.

Note 2: All methods that communicate with the POP3 server, such as FetchEmail, will automatically connect and authenticate if not already connected and authenticated.

Returns true for success, false for failure.

top
Pop3BeginSession
var success = Pop3BeginSession();
· return: boolean; true for success, false for failure

Call to explicitly begin a POP3 session. It is not necessary to call this method because any method requiring an established POP3 session will automatically connect and login if a session is not already open.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

Returns true for success, false for failure.

More Information and Examples
top
Pop3Connect
var success = Pop3Connect();
· return: boolean; true for success, false for failure
Introduced in version 9.5.0.56

Explicitly establishes a connection to the POP3 server, which includes establishing a secure TLS channel if required, and receives the initial greeting. This method stops short of authenticating. The Pop3Authenticate method should be called after a successful call to this method.

When finished transacting with a POP3 mail server you can disconnect by calling Pop3EndSession or Pop3EndSessionNoQuit.

Note 1: The Pop3BeginSession method both connects and authenticates. It is the equivalent of calling Pop3Connect followed by Pop3Authenticate.

Note 2: All methods that communicate with the POP3 server, such as FetchEmail, will automatically connect and authenticate if not already connected and authenticated.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

Returns true for success, false for failure.

top
Pop3EndSession
var success = Pop3EndSession();
· return: boolean; true for success, false for failure

Call to explicitly end a POP3 session (sends the QUIT command and then closes the connection with the POP3 server). If the ImmediateDelete property is set to false, and emails marked for deletion will be deleted at this time.

Returns true for success, false for failure.

top
Pop3EndSessionNoQuit
var boolVal = Pop3EndSessionNoQuit();
· return: boolean

This method is identical to Pop3EndSession, but no QUIT command is sent. The client simply disconnects from the POP3 server.

This method should always return true.

top
Pop3Noop
var success = Pop3Noop();
· return: boolean; true for success, false for failure

Sends a NOOP command to the POP3 server. This may be a useful method to call periodically to keep a connection open, or to verify that the POP3 connection (session) is open and functioning.

Returns true for success, false for failure.

top
Pop3Reset
var success = Pop3Reset();
· return: boolean; true for success, false for failure

Sends a RSET command to the POP3 server. If any messages have been marked as deleted by the POP3 server, they are unmarked. Calling Pop3Reset resets the POP3 session to a valid, known starting point.

Returns true for success, false for failure.

top
Pop3SendRawCommand
var strVal = Pop3SendRawCommand(command, charset);
· return: string
· command: string
· charset: string

Sends a raw command to the POP3 server and returns the POP3 server's response. If non-us-ascii characters are included in command, then charset indicates the charset to be used in sending the command (such as utf-8, ansi, iso-8859-1, Shift_JIS, etc.)

Returns null on failure

top
QuickSend
var success = QuickSend(fromAddr, toAddr, subject, body, smtpServer);
· return: boolean; true for success, false for failure
· fromAddr: string
· toAddr: string
· subject: string
· body: string
· smtpServer: string

A quick way to send an email to a single recipient without having to explicitly create an email object.

Returns true for success, false for failure.

top
RenderToMime
var strVal = RenderToMime(email);
· return: string
· email: CkEmail

When you call SendEmail , the email is first processed by rendering it with the specified properties and contents. This may include digital signing, encryption, substituting values for placeholders, and encoding header fields if necessary. The RenderToMime method handles this rendering process without sending the email. The resulting MIME text is what would be sent to the SMTP server if SendEmail were called. Essentially, SendEmail is equivalent to executing RenderToMime followed by SendMime. If successful, the rendered MIME string is returned.

Returns null on failure

top
RenderToMimeBd
var success = RenderToMimeBd(email, renderedMime);
· return: boolean; true for success, false for failure
· email: CkEmail
· renderedMime: CkBinData
Introduced in version 9.5.0.62

The same as RenderToMimeBytes, except the MIME is rendered into renderedMime. The rendered MIME is appended to renderedMime.

Returns true for success, false for failure.

More Information and Examples
top
RenderToMimeSb
var success = RenderToMimeSb(email, renderedMime);
· return: boolean; true for success, false for failure
· email: CkEmail
· renderedMime: CkStringBuilder
Introduced in version 9.5.0.62

The same as RenderToMime, except the MIME is rendered into renderedMime. The rendered MIME is appended to renderedMime.

Returns true for success, false for failure.

top
SendBundle
var success = SendBundle(bundle);
· return: boolean; true for success, false for failure
· bundle: CkEmailBundle

Sends a bundle of emails. This is identical to calling SendEmail for each email in the bundle.

If an error occurs when sending one of the emails in the bundle, it will continue with each subsequent email until each email in the bundle has been attempted (unless a fatal error occurs, in which case the send is aborted).

Because it is difficult or impossible to programmatically identify which emails in the bundle failed and which succeeded, it is best to write a loop that sends each email separately (via the SendEmail method).

Returns true for success, false for failure.

top
SendEmail
var success = SendEmail(email);
· return: boolean; true for success, false for failure
· email: CkEmail

Sends a single email. The connection to the SMTP server will remain open so that a subsequent call to SendEmail (or other email-sending methods) can re-use the same connection. If any properties relating to the SMTP server are changed, such as SmtpHost, SmtpUsername, etc., then the next call to an email-sending method will automatically close the connection and re-establish a connection using the updated property settings.

Important: Some SMTP servers do not actually send the email until the connection is closed. In these cases, it is necessary to call CloseSmtpConnection for the mail to be sent. Most SMTP servers send the email immediately, and it is not required to close the connection.

GMail: If sending via smtp.gmail.com, then send with OAuth2 authentication if possible. Otherwise you will need to change your GMail account settings to allow for sending by less secure apps. See the links below.

Note: After sending email, information about what transpired is available via the LastJsonData method.

Note: Returns true if the final SMTP status code in the SMTP session is in the 200's or 300's. See SMTP Server Return Codes

Returns true for success, false for failure.

top
SendMime
var success = SendMime(fromAddr, recipients, mimeSource);
· return: boolean; true for success, false for failure
· fromAddr: string
· recipients: string
· mimeSource: string

Provides complete control over the email that is sent. The MIME text passed in mimeSource (the MIME source of an email) is passed exactly as-is to the SMTP server. The recipients is a comma separated list of recipient email addresses. The fromAddr is the reverse-path email address. This is where bounced email (non-delivery reports) will be delivered. It may be different than the From header field in the mimeSource.

To understand how the fromAddr and recipients relate to the email addresses found in the MIME headers (FROM, TO, CC), see the link below entitled SMTP Protocol in a Nutshell. The fromAddr is what is passed to the SMTP server in the MAIL FROM command. The recipients are the email addresses passed in RCPT TO commands. These are usually the same email addresses found in the MIME headers, but need not be (unless the SMTP server enforces policies that require them to be the same).

Note: Returns true if the final SMTP status code in the SMTP session is in the 200's or 300's. See SMTP Server Return Codes

Returns true for success, false for failure.

top
SendMimeBd
var success = SendMimeBd(fromAddr, recipients, mimeData);
· return: boolean; true for success, false for failure
· fromAddr: string
· recipients: string
· mimeData: CkBinData
Introduced in version 9.5.0.73

This method is the same as SendMimeBytes, except the MIME is passed in an object (mimeData) rather than explicitly passing the bytes.

Note: Returns true if the final SMTP status code in the SMTP session is in the 200's or 300's. See SMTP Server Return Codes

Returns true for success, false for failure.

top
SendMimeToList
var success = SendMimeToList(fromAddr, distListFilename, mimeSource);
· return: boolean; true for success, false for failure
· fromAddr: string
· distListFilename: string
· mimeSource: string

Same as SendMime, but the recipient list is read from a text file (distListFilename) containing one email address per line.

Returns true for success, false for failure.

top
SetDecryptCert
var success = SetDecryptCert(cert);
· return: boolean; true for success, false for failure
· cert: CkCert
Introduced in version 9.5.0.40

Explicitly specifies the certificate to be used for decrypting encrypted email.

Returns true for success, false for failure.

top
SetDecryptCert2
var success = SetDecryptCert2(cert, privateKey);
· return: boolean; true for success, false for failure
· cert: CkCert
· privateKey: CkPrivateKey

Explicitly specifies the certificate and associated private key to be used for decrypting S/MIME encrypted email.

Note: In most cases, it is easier to call AddPfxSourceFile or AddPfxSourceData to provide the required cert and private key. On Windows systems where the certificate + private key has already been installed in the default certificate store, nothing needs to be done -- the mailman will automatically locate and use the required cert + private key.

Returns true for success, false for failure.

top
SetPassword
var success = SetPassword(protocol, password);
· return: boolean; true for success, false for failure
· protocol: string
· password: CkSecureString
Introduced in version 9.5.0.71

Provides a more secure way of setting either the POP3 or SMTP password. The protocol can be pop3 or smtp. When the protocol is pop3, this is equivalent to setting the PopPassword property. When protocol is smtp, this is equivalent to setting the SmtpPassword property.

Returns true for success, false for failure.

More Information and Examples
top
SetSslClientCert
var success = SetSslClientCert(cert);
· return: boolean; true for success, false for failure
· cert: CkCert

Sets the client-side certificate to be used with SSL connections. This is typically not required, as most SSL connections are such that only the server is authenticated while the client remains unauthenticated.

Returns true for success, false for failure.

top
SetSslClientCertPem
var success = SetSslClientCertPem(pemDataOrFilename, pemPassword);
· return: boolean; true for success, false for failure
· pemDataOrFilename: string
· pemPassword: string

Allows for a client-side certificate to be used for the SSL / TLS connection.

Returns true for success, false for failure.

top
SetSslClientCertPfx
var success = SetSslClientCertPfx(pfxFilename, pfxPassword);
· return: boolean; true for success, false for failure
· pfxFilename: string
· pfxPassword: string

Allows for a client-side certificate to be used for the SSL / TLS connection.

Returns true for success, false for failure.

top
SmtpAuthenticate
var success = SmtpAuthenticate();
· return: boolean; true for success, false for failure
Introduced in version 9.5.0.48

Authenticates with the SMTP server using the property settings such as SmtpUsername, SmtpPassword, etc. This method should only be called after a successful call to SmtpConnect.

Note 1: The OpenSmtpConnection method both connects and authenticates. It is the equivalent of calling SmtpConnect followed by SmtpAuthenticate.

Note 2: All methods that communicate with the SMTP server, such as SendEmail, will automatically connect and authenticate if not already connected and authenticated.

Returns true for success, false for failure.

More Information and Examples
top
SmtpConnect
var success = SmtpConnect();
· return: boolean; true for success, false for failure
Introduced in version 9.5.0.48

Explicitly establishes a connection to the SMTP server, which includes establishing a secure TLS channel if required, and receives the initial greeting. This method stops short of authenticating. The SmtpAuthenticate method should be called after a successful call to this method.

Note 1: The OpenSmtpConnection method both connects and authenticates. It is the equivalent of calling SmtpConnect followed by SmtpAuthenticate.

Note 2: All methods that communicate with the SMTP server, such as SendEmail, will automatically connect and authenticate if not already connected and authenticated.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

Returns true for success, false for failure.

More Information and Examples
top
SmtpNoop
var success = SmtpNoop();
· return: boolean; true for success, false for failure

Sends a no-op to the SMTP server. Calling this method is good for testing to see if the connection to the SMTP server is working and valid. The SmtpNoop method will automatically establish the SMTP connection if it does not already exist.

Returns true for success, false for failure.

top
SmtpReset
var success = SmtpReset();
· return: boolean; true for success, false for failure

Sends an RSET command to the SMTP server. This method is rarely needed. The RSET command resets the state of the connection to the SMTP server to the initial state (so that the component can proceed with sending a new email). The SmtpReset method would only be needed if a mail-sending method failed and left the connection with the SMTP server open and in a non-initial state. (A situation that is probably not even possible with the Chilkat mail component.)

Returns true for success, false for failure.

top
SmtpSendRawCommand
var strVal = SmtpSendRawCommand(command, charset, bEncodeBase64);
· return: string
· command: string
· charset: string
· bEncodeBase64: boolean

Sends a raw command to the SMTP server and returns the SMTP server's response. If non-us-ascii characters are included in command, then charset indicates the charset to be used in sending the command (such as utf-8, ansi, iso-8859-1, Shift_JIS, etc.)

If bEncodeBase64 is true, then the response is returned in Base64-encoded format. Otherwise the raw response is returned.

Returns null on failure

More Information and Examples
top
SshAuthenticatePk
var success = SshAuthenticatePk(sshLogin, sshUsername);
· return: boolean; true for success, false for failure
· sshLogin: string
· sshUsername: CkSshKey

Authenticates with the SSH server using public-key authentication. The corresponding public key must have been installed on the SSH server for the sshLogin. Authentication will succeed if the matching sshUsername is provided.

Important: When reporting problems, please send the full contents of the LastErrorText property to support@chilkatsoft.com.

Returns true for success, false for failure.

top
SshAuthenticatePw
var success = SshAuthenticatePw(sshLogin, sshPassword);
· return: boolean; true for success, false for failure
· sshLogin: string
· sshPassword: string

Authenticates with the SSH server using a sshLogin and sshPassword.

An SSH tunneling (port forwarding) session always begins by first calling SshTunnel to connect to the SSH server, then calling either AuthenticatePw or AuthenticatePk to authenticate.

Note: Once the SSH tunnel is setup by calling SshTunnel and SshAuthenticatePw (or SshAuthenticatePk), all underlying communcations with the POP3 or SMTP server use the SSH tunnel. No changes in programming are required other than making two initial calls to setup the tunnel.

Important: When reporting problems, please send the full contents of the LastErrorText property to support@chilkatsoft.com.

Returns true for success, false for failure.

top
SshCloseTunnel
var success = SshCloseTunnel();
· return: boolean; true for success, false for failure

Closes the SSH tunnel for SMTP or POP3.

Returns true for success, false for failure.

top
SshOpenTunnel
var success = SshOpenTunnel(sshHostname, sshPort);
· return: boolean; true for success, false for failure
· sshHostname: string
· sshPort: int
Introduced in version 9.5.0.50

Connects to an SSH server and creates a tunnel for SMTP or POP3. The sshHostname is the hostname (or IP address) of the SSH server. The sshPort is typically 22, which is the standard SSH port number.

An SSH tunneling (port forwarding) session always begins by first calling SshTunnel to connect to the SSH server, followed by calling either SshAuthenticatePw or SshAuthenticatePk to authenticate.

Note: Once the SSH tunnel is setup by calling SshOpenTunnel and SshAuthenticatePw (or SshAuthenticatePk), all underlying communcations with the SMTP or POP3 server use the SSH tunnel. No changes in programming are required other than making two initial calls to setup the tunnel.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

Returns true for success, false for failure.

top
UseCertVault
var success = UseCertVault(vault);
· return: boolean; true for success, false for failure
· vault: CkXmlCertVault
Introduced in version 9.5.0.40

Adds an XML certificate vault to the object's internal list of sources to be searched for certificates and private keys when encrypting/decrypting or signing/verifying. Unlike the AddPfxSourceData and AddPfxSourceFile methods, only a single XML certificate vault can be used. If UseCertVault is called multiple times, only the last certificate vault will be used, as each call to UseCertVault will replace the certificate vault provided in previous calls.

Returns true for success, false for failure.

top
UseSsh
var success = UseSsh(ssh);
· return: boolean; true for success, false for failure
· ssh: CkSsh
Introduced in version 9.5.0.55

Uses an existing SSH tunnel for the connections to the POP3 andSMTP servers. This method is identical to the UseSshTunnel method, except the SSH connection is obtained from an SSH object instead of a Socket object.

Uses an existing SSH tunnel. This is useful for sharing an existing SSH tunnel connection wth other objects. (SSH is a protocol where the tunnel contains many logical channels. SMTP and POP3 connections can exist simultaneously within a single SSH tunnel as SSH channels.)

Returns true for success, false for failure.

top
UseSshTunnel
var success = UseSshTunnel(tunnel);
· return: boolean; true for success, false for failure
· tunnel: CkSocket
Introduced in version 9.5.0.50

Uses an existing SSH tunnel. This is useful for sharing an existing SSH tunnel connection wth other objects. (SSH is a protocol where the tunnel contains many logical channels. SMTP and POP3 connections can exist simultaneously within a single SSH tunnel as SSH channels.)

Returns true for success, false for failure.

top
VerifyPopConnection
var boolVal = VerifyPopConnection();
· return: boolean

Return true if a TCP/IP connection can be established with the POP3 server, otherwise returns false.

top
VerifyPopLogin
var boolVal = VerifyPopLogin();
· return: boolean

Return true if a TCP/IP connection and login is successful with the POP3 server. Otherwise return false.

top
VerifyRecips
var success = VerifyRecips(email, badAddrs);
· return: boolean; true for success, false for failure
· email: CkEmail
· badAddrs: CkStringArray

Initiates sending an email, but aborts just after passing all recipients (TO, CC, BCC) to the SMTP server. This allows your program to collect email addresses flagged as invalid by the SMTP server.

Important: Please read this blog post before using this method: http://www.cknotes.com/?p=249>http://www.cknotes.com/?p=249

Returns true for success, false for failure.

More Information and Examples
top
VerifySmtpConnection
var boolVal = VerifySmtpConnection();
· return: boolean

Return true if a TCP/IP connection can be established with the SMTP server, otherwise returns false.

top
VerifySmtpLogin
var boolVal = VerifySmtpLogin();
· return: boolean

Return true if a TCP/IP connection and login is successful with the SMTP server. Otherwise returns false.

top