MailMan Delphi DLL 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.
Create/Dispose
var myObject: HCkMailMan; begin myObject := CkMailMan_Create(); // ... CkMailMan_Dispose(myObject); end;
Creates an instance of the HCkMailMan object and returns a handle (i.e. a Pointer). The handle is passed in the 1st argument for the functions listed on this page.
Objects created by calling CkMailMan_Create must be freed by calling this method. A memory leak occurs if a handle is not disposed by calling this function.
Properties
AbortCurrent
procedure CkMailMan_putAbortCurrent(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Set this property to to request that the currently running
operation be aborted.
True
This applies to methods that may take time to complete, such as methods that perform network communication or lengthy file operations. Methods that always complete quickly are generally not affected.
If no method is currently running, the property is automatically reset to
when the next method call begins. When an abort actually
occurs, Chilkat resets this property to False.
False
Both synchronous and asynchronous method calls can be aborted. A synchronous method can be aborted by setting this property from another thread.
topAllOrNone
procedure CkMailMan_putAllOrNone(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether an email should be sent when one or more recipients are rejected by the SMTP server.
The default value is , which means Chilkat continues sending
even if some recipients are rejected.
False
When set to , the email is not sent to any recipients if the
SMTP server rejects any recipient address.
True
Important: This property only works when SMTP pipelining is
disabled. Because SmtpPipelining is by default,
set TrueSmtpPipelining = when all-or-none behavior is required.
False
Note: SMTP servers do not always verify recipient addresses. Even when they do, the server can usually verify only addresses within domains it controls.
AutoFix
procedure CkMailMan_putAutoFix(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
When , Chilkat automatically adjusts common SMTP and POP3
SSL/TLS settings based on the configured port numbers.
True
- If
SmtpPort = 465, Chilkat setsStartTLS =andFalseSmtpSsl =.True - If
SmtpPort = 25, Chilkat setsSmtpSsl =.False - If
MailPort = 995, Chilkat setsPopSsl =.True - If
MailPort = 110, Chilkat setsPopSsl =.False
The default value is .
True
AutoGenMessageId
procedure CkMailMan_putAutoGenMessageId(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat automatically generates a unique
Message-ID header when an email is sent.
The default behavior is to generate a new unique Message-ID at
send time. This allows the same Email object to be reused without
accidentally sending duplicate message IDs.
If duplicate message IDs are used, some SMTP servers may treat the message as a duplicate and discard it.
When automatic generation is enabled, calling
GetHeaderField("Message-ID") before sending will not necessarily
show the actual message ID that Chilkat sends.
Set this property to to prevent Chilkat from automatically
generating the FalseMessage-ID header.
AutoSmtpRset
procedure CkMailMan_putAutoSmtpRset(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
When , Chilkat automatically sends the SMTP
TrueRSET command before sending a new email over an already-open SMTP
connection.
This helps ensure the SMTP session is in a clean state before the next email is sent.
The default value is .
False
Note: This property only applies when reusing an existing SMTP connection.
topAutoUnwrapSecurity
procedure CkMailMan_putAutoUnwrapSecurity(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat automatically unwraps digitally signed or encrypted email when the message is downloaded or loaded from MIME.
The default value is . When enabled, Chilkat verifies
signatures and decrypts encrypted content when possible. The results are made
available through the email object's security-related properties and methods.
True
Set this property to if you want signed or encrypted
attachments, such as False.p7m or .p7s files, to remain as
ordinary attachments.
Important: Signature verification and decryption must occur when the original MIME is first loaded. After MIME is parsed into Chilkat's internal email object format, the exact original MIME bytes are no longer available, and the signature can no longer be verified.
topClientIpAddress
procedure CkMailMan_putClientIpAddress(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__clientIpAddress(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the local IP address to use when connecting from a computer that has multiple network interfaces or multiple IP addresses.
For most computers, this property should be left unset. Chilkat will automatically use the default local IP address.
The value should be a numeric IP address, such as
165.164.55.124, not a hostname.
See the notes about PWideChar memory ownership and validity.
ConnectFailReason
Contains a numeric code describing the result of the last connection attempt. This applies to the last connection made, or attempted, by any method.
| Code | Meaning |
|---|---|
0 | Success. |
1 | Empty hostname. |
2 | DNS lookup failed. |
3 | DNS timeout. |
4 | Aborted by the application. |
5 | Internal failure. |
6 | Connection timed out. |
7 | Connection rejected, or failed for another reason. |
100 | TLS internal error. |
101 | Failed to send the TLS client hello. |
102 | Unexpected TLS handshake message. |
103 | Failed to read the TLS server hello. |
104 | No server certificate was received. |
105 | Unexpected TLS protocol version. |
106 | Server certificate verification failed. |
107 | Unacceptable TLS protocol version. |
109 | Failed to read TLS handshake messages. |
110 | Failed to send client certificate handshake message. |
111 | Failed to send client key exchange handshake message. |
112 | Client certificate private key is not accessible. |
113 | Failed to send client certificate verify handshake message. |
114 | Failed to send change cipher spec handshake message. |
115 | Failed to send finished handshake message. |
116 | The server's finished message is invalid. |
ConnectTimeout
procedure CkMailMan_putConnectTimeout(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
The maximum number of seconds to wait while attempting to connect to an SMTP or POP3 server.
The default value is 30 seconds.
DebugLogFilePath
procedure CkMailMan_putDebugLogFilePath(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__debugLogFilePath(objHandle: HCkMailMan): PWideChar; stdcall;
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.
See the notes about PWideChar memory ownership and validity.
DsnEnvid
procedure CkMailMan_putDsnEnvid(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__dsnEnvid(objHandle: HCkMailMan): PWideChar; stdcall;
The DsnEnvid property specifies the SMTP DSN
ENVID value, which is an arbitrary identifier attached to the
SMTP envelope. The same value is typically returned in DSN responses so the
sending application can correlate delivery notifications with the original
outbound email.
Common choices for DsnEnvid include:
-
An internal message ID:
MSG-10004521 -
A GUID or UUID:
550e8400-e29b-41d4-a716-446655440000 -
An order or transaction number:
ORDER-847291 -
A timestamp-based identifier:
MAIL-20260515-153045-001 -
A composite identifier combining application, customer, and message IDs:
billing|cust-9182|invoice-44381
The value should uniquely identify the outbound email within your application.
It does not need to match the MIME Message-ID header, although
some applications choose to use the same identifier for both.
About SMTP DSN
SMTP DSN means Delivery Status Notification. It is an optional SMTP service extension defined by RFC 3461 that allows the sender to request delivery-status reports from the SMTP server.
DSN allows an application to request notifications such as:
- Successful delivery
- Delivery failure
- Delayed delivery
It also allows the sender to specify whether the returned notification should include the full original message or only the message headers.
In Chilkat.MailMan, DSN behavior is controlled using:
DsnEnvid— sets the SMTPENVIDenvelope identifier.DsnNotify— controls when notifications are requested, such asSUCCESS,FAILURE,DELAY, orNEVER.DsnRet— controls whether DSN responses include the full message or only headers.
DSN is an optional SMTP extension and is not supported by all SMTP servers.
A server supports DSN only if it advertises the DSN capability in
response to the SMTP EHLO command.
The IsSmtpDsnCapable method can be used to determine whether the
SMTP server supports DSN.
Even when DSN is supported, some SMTP servers or downstream mail systems may ignore or partially honor DSN requests.
See the notes about PWideChar memory ownership and validity.
topDsnNotify
procedure CkMailMan_putDsnNotify(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__dsnNotify(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SMTP DSN NOTIFY parameter used when sending email.
The value may be left empty, set to NEVER, or set to a
comma-separated combination of SUCCESS, FAILURE, and
DELAY.
See the notes about PWideChar memory ownership and validity.
topDsnRet
procedure CkMailMan_putDsnRet(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__dsnRet(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SMTP DSN RET parameter used when sending email.
The value may be left empty, set to FULL to request the full
message in DSN notifications, or set to HDRS to request only the
message headers.
See the notes about PWideChar memory ownership and validity.
topEmbedCertChain
procedure CkMailMan_putEmbedCertChain(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
When , Chilkat embeds the signing certificate chain in signed
email.
True
Certificates are included up to, but not including, the root certificate. If
IncludeRootCert is also , the root CA certificate
is included as well.
True
The default value is False
EnableSecrets
procedure CkMailMan_putEnableSecrets(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Enables automatic resolution of passwords and credentials from secure local storage.
When set to , supported properties and methods can accept a
Chilkat secret specification string instead of a literal password. Secret
specification strings begin with True!!.
Chilkat resolves secrets from:
- Windows Credential Manager on Windows.
- Apple Keychain on macOS.
The secret specification format is: !![appName|]service[|domain]|username
This applies to PopPassword, SmtpPassword,
HttpProxyPassword, SocksPassword,
PopPasswordBase64, and SshAuthenticatePw.
The default value is .
False
Filter
procedure CkMailMan_putFilter(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__filter(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies a filter expression applied by methods such as
LoadXmlFile, LoadXmlString, LoadMbx,
CopyMail, and TransferMail.
When a filter is present, only emails matching the expression are returned.
For TransferMail, only matching emails are removed from the mail
server.
Example expressions:
Body like "mortgage rates*"
Subject contains "update" and From contains "chilkat"
To = "info@chilkatsoft.com"
Rules for filter expressions:
- Any MIME header field name may be used. Header names are case-insensitive.
- Literal strings are enclosed in double quotes.
- String matching is case-insensitive.
- The
*wildcard matches zero or more characters. - Parentheses may be used to control precedence.
- Logical operators are
AND,OR, andNOT. - String comparison operators include
CONTAINSandLIKE.
Note: Filtering works on text strings only, not dates or numbers.
See the notes about PWideChar memory ownership and validity.
HeartbeatMs
procedure CkMailMan_putHeartbeatMs(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies the interval, in milliseconds, between AbortCheck
event callbacks.
This allows an application to periodically decide whether a long-running operation should be aborted.
The default value is 0, which means no AbortCheck
callbacks are generated.
HeloHostname
procedure CkMailMan_putHeloHostname(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__heloHostname(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the hostname sent in the SMTP EHLO or
HELO command.
The default value is an empty string, which causes Chilkat to use the local computer's hostname.
See the notes about PWideChar memory ownership and validity.
topHttpProxyAuthMethod
procedure CkMailMan_putHttpProxyAuthMethod(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__httpProxyAuthMethod(objHandle: HCkMailMan): PWideChar; stdcall;
HttpProxyAuthMethod
Specifies the authentication method used when connecting through an HTTP proxy that requires authentication.
Valid values are Basic and NTLM.
See the notes about PWideChar memory ownership and validity.
topHttpProxyDomain
procedure CkMailMan_putHttpProxyDomain(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__httpProxyDomain(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the optional NTLM domain when using NTLM authentication with an HTTP proxy.
See the notes about PWideChar memory ownership and validity.
topHttpProxyHostname
procedure CkMailMan_putHttpProxyHostname(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__httpProxyHostname(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the hostname or IPv4 address of the HTTP proxy to use.
See the notes about PWideChar memory ownership and validity.
topHttpProxyPassword
procedure CkMailMan_putHttpProxyPassword(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__httpProxyPassword(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the password used when authenticating to an HTTP proxy.
See the notes about PWideChar memory ownership and validity.
topHttpProxyPort
procedure CkMailMan_putHttpProxyPort(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
HttpProxyUsername
procedure CkMailMan_putHttpProxyUsername(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__httpProxyUsername(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the username used when authenticating to an HTTP proxy.
See the notes about PWideChar memory ownership and validity.
topImmediateDelete
procedure CkMailMan_putImmediateDelete(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether POP3 deletions are finalized immediately.
The default value is . When enabled, any method that deletes
email from the POP3 server also sends a TrueQUIT command and closes
the POP3 session so the deletion is committed immediately.
In POP3, the DELE command only marks a message for deletion. The
message is not actually deleted until the session ends with QUIT.
If ImmediateDelete is set to , your application
must call FalsePop3EndSession to finalize the deletions.
IncludeRootCert
procedure CkMailMan_putIncludeRootCert(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether the root CA certificate is included in the S/MIME signature of a signed email.
This property only applies when EmbedCertChain is
.
True
IsPop3Connected
Returns if Chilkat believes the POP3 connection is still
open.
True
Accessing this property does not send any command to the POP3 server. If the
server has disconnected but Chilkat has not yet attempted further
communication, this property may still return .
True
To verify that the POP3 connection is actually alive, call
Pop3Noop.
IsSmtpConnected
Returns if Chilkat believes the SMTP connection is still
open.
True
Accessing this property does not communicate with the SMTP server. A lost connection may not be detected until the next SMTP command is sent.
To verify that the SMTP connection is actually alive, call
SmtpNoop.
LastErrorHtml
function CkMailMan__lastErrorHtml(objHandle: HCkMailMan): PWideChar; stdcall;
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.
See the notes about PWideChar memory ownership and validity.
topLastErrorText
function CkMailMan__lastErrorText(objHandle: HCkMailMan): PWideChar; stdcall;
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.
See the notes about PWideChar memory ownership and validity.
LastErrorXml
function CkMailMan__lastErrorXml(objHandle: HCkMailMan): PWideChar; stdcall;
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.
See the notes about PWideChar memory ownership and validity.
topLastMethodSuccess
procedure CkMailMan_putLastMethodSuccess(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
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.
LastSmtpStatus
Contains the last SMTP status code returned by the SMTP server during the most recent SMTP operation.
SMTP status codes are numeric reply codes defined by the SMTP protocol. They
indicate the result of SMTP protocol commands such as EHLO,
AUTH, MAIL FROM, RCPT TO, and
DATA.
In general:
- 2xx — Success. The requested action completed successfully.
- 3xx — Intermediate success. Additional information or authentication data is required.
- 4xx — Temporary failure. The operation failed, but retrying later may succeed.
- 5xx — Permanent failure. The request was rejected and retrying will usually not help unless something changes.
LastSmtpStatusMsg
function CkMailMan__lastSmtpStatusMsg(objHandle: HCkMailMan): PWideChar; stdcall;
Contains the text message associated with the last SMTP status code received from the server.
See the notes about PWideChar memory ownership and validity.
topLogMailReceivedFilename
procedure CkMailMan_putLogMailReceivedFilename(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__logMailReceivedFilename(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies a local file path where Chilkat writes each message exactly as it was received from the POP3 server.
This is useful for debugging problems involving MIME structure, encodings, attachments, or server behavior.
See the notes about PWideChar memory ownership and validity.
topLogMailSentFilename
procedure CkMailMan_putLogMailSentFilename(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__logMailSentFilename(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies a local file path where Chilkat writes the exact MIME message sent to the SMTP server.
This is useful for inspecting the final MIME produced by Chilkat.
See the notes about PWideChar memory ownership and validity.
topMailHost
procedure CkMailMan_putMailHost(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__mailHost(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the POP3 server hostname or IP address.
Do not include http:// or https://. The value should
be a hostname such as pop.example.com or an IPv4/IPv6 address.
See the notes about PWideChar memory ownership and validity.
topMailPort
procedure CkMailMan_putMailPort(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies the POP3 server port number.
The default value is 110.
The standard POP3 ports and their associated
Chilkat.MailMan property settings are described below.
Port 995 — POP3 over Implicit SSL/TLS
Uses implicit SSL/TLS, meaning the TLS connection is established immediately when the TCP connection is opened.
mailman.MailPort = 995; mailman.PopSsl = true;
Port 110 — Standard Unencrypted POP3
Uses a normal unencrypted POP3 connection.
mailman.MailPort = 110; mailman.PopSsl = false; mailman.Pop3Stls = false; mailman.Pop3StlsIfPossible = false;
Port 110 — POP3 with Explicit TLS via STLS
The connection begins unencrypted and is upgraded to TLS using the POP3
STLS command.
mailman.MailPort = 110; mailman.PopSsl = false; mailman.Pop3Stls = true;
Port 110 — Opportunistic STLS
Attempts to upgrade the connection to TLS using STLS if the
POP3 server supports it. Otherwise, the connection remains unencrypted.
mailman.MailPort = 110; mailman.PopSsl = false; mailman.Pop3StlsIfPossible = true;
Important: PopSsl and
Pop3Stls represent two different approaches to TLS security:
-
PopSsl = truemeans the connection begins as SSL/TLS from the very start (implicit TLS). -
Pop3Stls = truemeans the connection begins unencrypted and is later upgraded to TLS using the POP3STLScommand (explicit TLS).
These two approaches are mutually exclusive and should not both be enabled at the same time.
Modern POP3 servers most commonly use either:
995withPopSsl = true, or110withPop3Stls = true.
MaxCount
procedure CkMailMan_putMaxCount(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Limits the number of messages Chilkat attempts to retrieve from the POP3 server in a single method call.
This is useful for large mailboxes. For example, setting
MaxCount = 100 allows an application to download messages in
batches of 100.
OAuth2AccessToken
procedure CkMailMan_putOAuth2AccessToken(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__oAuth2AccessToken(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the OAuth2 access token to be used for POP3 or SMTP XOAUTH2 authentication.
When this property is set, Chilkat will use the SMTP or POP3
AUTH XOAUTH2 authentication mechanism if supported by the
server.
For POP3 XOAUTH2 authentication:
-
PopPasswordshould be left empty, or explicitly set to the empty string. -
SmtpPasswordshould be left unset, or set to the empty string.
The OAuth2 access token is sent as a bearer token during the
AUTH XOAUTH2 authentication exchange.
See the notes about PWideChar memory ownership and validity.
OpaqueSigning
procedure CkMailMan_putOpaqueSigning(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls the MIME format used for digitally signed email.
When set to , Chilkat creates a
Falsemultipart/signed email. In this format, the original email
content remains visible as a normal MIME body part, and the digital
signature is included as a separate MIME part.
The top-level MIME Content-Type header will look similar to:
Content-Type: multipart/signed;
protocol="application/pkcs7-signature";
micalg=sha-256;
boundary="------------040808030405050402070604"
This is commonly referred to as a detached signature because the signed content exists separately from the signature itself.
When set to , Chilkat creates an opaque signed email
using PKCS#7 signed-data format. In this case, the original MIME content is
encapsulated inside the PKCS#7 signature structure.
True
The top-level MIME Content-Type header will look similar to:
Content-Type: application/pkcs7-mime;
smime-type="signed-data";
name="smime.p7m"; micalg=sha-256
This format is historically known as opaque signing because the original message content is wrapped inside the PKCS#7 signed object and is not directly visible as ordinary MIME body parts.
The default value is .
True
P7mEncryptAttachFilename
procedure CkMailMan_putP7mEncryptAttachFilename(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__p7mEncryptAttachFilename(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the filename used in the Content-Disposition header
when sending a PKCS#7 encrypted email.
The default value is smime.p7m.
See the notes about PWideChar memory ownership and validity.
topP7mSigAttachFilename
procedure CkMailMan_putP7mSigAttachFilename(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__p7mSigAttachFilename(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the filename used in the Content-Disposition header
when sending an opaque signed PKCS#7 email.
The default value is smime.p7m.
See the notes about PWideChar memory ownership and validity.
topP7sSigAttachFilename
procedure CkMailMan_putP7sSigAttachFilename(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__p7sSigAttachFilename(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the filename used in the Content-Disposition header
when sending a signed email with a detached PKCS#7 signature.
The default value is smime.p7s.
See the notes about PWideChar memory ownership and validity.
topPercentDoneScale
procedure CkMailMan_putPercentDoneScale(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
This property is only valid in programming environments and languages that allow for event callbacks.
Sets the value that represents 100% completion for
PercentDone event callbacks.
The default value is 100, meaning progress values range from
0 to 100. Setting this property to a larger value
provides finer granularity. For example, setting
PercentDoneScale = 1000 allows progress to be reported in
tenths of a percent.
For example, if PercentDoneScale = 1000, then a callback value
of 453 represents 45.3% complete.
The value is clamped to a minimum of 10 and a maximum of
100000.
Pop3SessionId
Returns 0 when no POP3 session is active.
Otherwise, returns a positive integer that increments each time a new POP3 session is established. This can be used to detect whether a new session has started.
topPop3SessionLog
function CkMailMan__pop3SessionLog(objHandle: HCkMailMan): PWideChar; stdcall;
Contains the accumulated raw POP3 commands sent to the server and the raw responses received from the server.
This property is read-only. To clear it, call
ClearPop3SessionLog.
See the notes about PWideChar memory ownership and validity.
Pop3SPA
procedure CkMailMan_putPop3SPA(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether SPA, also known as NTLM authentication, is used for POP3.
Set this property to to use SPA authentication. No other
programming changes are required.
True
The default value is .
False
Note: If SPA/NTLM authentication fails, set
Global.DefaultNtlmVersion = 1 and retry.
Pop3SslServerCertVerified
Indicates whether the POP3 server's SSL/TLS certificate was successfully verified during the connection.
This property is meaningful only when connecting via SSL/TLS.
topPop3Stls
procedure CkMailMan_putPop3Stls(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat requires the POP3 connection to be upgraded to TLS
using the STLS command.
When set to , Chilkat initially connects without encryption,
typically on port True110, and then sends STLS to
convert the connection to TLS.
Use this only with POP3 servers known to support STLS. When this
property is , TruePopSsl should be
.
False
The default value is .
False
Pop3StlsIfPossible
procedure CkMailMan_putPop3StlsIfPossible(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat uses POP3 STLS automatically when the
server supports it.
If the server supports STLS, the connection is upgraded to TLS.
If the server does not support STLS, the connection remains
unencrypted.
The default value is .
False
PopPassword
procedure CkMailMan_putPopPassword(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__popPassword(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the POP3 password.
On Windows, if Pop3SPA is enabled, both PopUsername and
PopPassword may be set to "default" to use the
credentials of the current logged-on Windows user.
See the notes about PWideChar memory ownership and validity.
topPopPasswordBase64
procedure CkMailMan_putPopPasswordBase64(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__popPasswordBase64(objHandle: HCkMailMan): PWideChar; stdcall;
Provides a way to specify the POP3 password as a Base64-encoded string.
See the notes about PWideChar memory ownership and validity.
topPopSsl
procedure CkMailMan_putPopSsl(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether implicit SSL/TLS is used when connecting to the POP3 server.
When set to , the TLS connection is established immediately
when connecting. The POP3 SSL/TLS port is typically True995.
The default value is .
False
PopUsername
procedure CkMailMan_putPopUsername(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__popUsername(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the POP3 login name.
On Windows, if Pop3SPA is enabled, both PopUsername and
PopPassword may be set to "default" to use the
credentials of the current logged-on Windows user.
See the notes about PWideChar memory ownership and validity.
topPreferIpv6
procedure CkMailMan_putPreferIpv6(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether IPv6 is preferred over IPv4 when both are available for a hostname.
The default value is , which means IPv4 is preferred.
False
ReadTimeout
procedure CkMailMan_putReadTimeout(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies the maximum number of seconds to wait when the SMTP or POP3 server stops responding.
The default value is 30 seconds.
RequireSslCertVerify
procedure CkMailMan_putRequireSslCertVerify(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat requires SMTP and POP3 SSL/TLS server certificates to be successfully verified.
When set to , Chilkat rejects the connection if the server
certificate is expired or if the certificate signature cannot be verified.
True
The default value is .
False
This property applies only to SSL/TLS connections.
topResetDateOnLoad
procedure CkMailMan_putResetDateOnLoad(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether the email's Date header is reset to the current
date and time when an email is loaded.
This applies to methods such as LoadMbx, LoadEml,
LoadMime, LoadXml, and LoadXmlString.
The default value is .
False
SendBufferSize
procedure CkMailMan_putSendBufferSize(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies the buffer size used by the underlying TCP/IP socket when sending data.
The default value is 32767.
SendIndividual
procedure CkMailMan_putSendIndividual(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls how email is sent to distribution lists.
When , Chilkat sends one email per recipient. Each message
has the recipient's address in the TrueTo header.
When , Chilkat sends messages in batches of up to 100 BCC
recipients at a time.
False
For example, a distribution list with 350 recipients would result in four messages: three with 100 BCC recipients, and one with 50 BCC recipients.
The default value is .
True
SizeLimit
procedure CkMailMan_putSizeLimit(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies the maximum size, in bytes, of messages Chilkat will retrieve from a POP3 server.
Messages larger than this limit are not downloaded.
The default value is 0, which means no size limit.
SmtpAuthMethod
procedure CkMailMan_putSmtpAuthMethod(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__smtpAuthMethod(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SMTP authentication method to use.
This property should usually be left empty so Chilkat can automatically choose the most secure method advertised by the SMTP server.
If the server does not advertise authentication methods, or if a specific
method must be forced, set this property to one of:
NONE, LOGIN, PLAIN,
CRAM-MD5, or NTLM.
Note: If NTLM authentication fails, set
Global.DefaultNtlmVersion = 1 and retry.
See the notes about PWideChar memory ownership and validity.
SmtpFailReason
function CkMailMan__smtpFailReason(objHandle: HCkMailMan): PWideChar; stdcall;
Contains a keyword describing the result or failure reason for the last SMTP operation.
Success: The method succeeded.
Failed: A general failure occurred.
NoValidRecipients: The SMTP server rejected all recipients.
NoRecipients: No To, CC, or BCC recipients were provided.
SomeBadRecipients: AllOrNone is True and some recipients were rejected.
Aborted: The application aborted the operation.
NoFrom: No FROM address was provided.
FromFailure: The server rejected the MAIL FROM command.
NoCredentials: Required credentials were not provided.
AuthFailure: SMTP authentication failed.
DataFailure: The server returned an error in response to DATA.
NoSmtpHostname: No SMTP hostname or IP address was provided.
StartTlsFailed: Failed to upgrade the connection using STARTTLS.
ConnectFailed: Could not establish the TCP or TLS connection.
GreetingError: The SMTP server returned an error in the initial greeting.
ConnectionLost: The SMTP connection was lost during the operation.
Timeout: A socket read or write timeout occurred.
RenderFailed: The email could not be rendered for sending.
NotUnlocked: UnlockBundle was not called on at least one MailMan instance.
InternalFailure: An internal failure occurred and should be reported to Chilkat support.
See the notes about PWideChar memory ownership and validity.
topSmtpHost
procedure CkMailMan_putSmtpHost(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__smtpHost(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SMTP server hostname or IP address.
Do not include http:// or https://. The value may be
a hostname, IPv4 address, or IPv6 address.
See the notes about PWideChar memory ownership and validity.
SmtpLoginDomain
procedure CkMailMan_putSmtpLoginDomain(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__smtpLoginDomain(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the Windows domain to use when logging in to an SMTP server with NTLM authentication.
Leave this property empty if no domain is required.
See the notes about PWideChar memory ownership and validity.
topSmtpMailFrom
procedure CkMailMan_putSmtpMailFrom(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__smtpMailFrom(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SMTP envelope sender address used in the
MAIL FROM command.
This address receives bounce messages and identifies the originator of the
SMTP transaction. It may differ from the From MIME header.
If left empty, Chilkat uses the email address from the message's
From header.
SMTP servers may reject the envelope sender based on DNS, SPF, or other server policy checks.
See the notes about PWideChar memory ownership and validity.
topSmtpPassword
procedure CkMailMan_putSmtpPassword(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__smtpPassword(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the password used for SMTP authentication.
Chilkat supports
SMTP authentication methods such as LOGIN, PLAIN,
CRAM-MD5, and NTLM, and normally chooses the most
secure available method automatically.
If NTLM authentication is used, SmtpUsername and
SmtpPassword may be set to the keyword "default" to use the
current Windows logged-on credentials.
See the notes about PWideChar memory ownership and validity.
topSmtpPipelining
procedure CkMailMan_putSmtpPipelining(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether SMTP pipelining is used when the server advertises support for it.
The default value is .
True
Set this property to to prevent SMTP pipelining. This is
required when using FalseAllOrNone.
SmtpPort
procedure CkMailMan_putSmtpPort(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies the SMTP server port.
The default value is 25. If using implicit SSL/TLS with
SmtpSsl = , the common port is True465.
SmtpSessionLog
function CkMailMan__smtpSessionLog(objHandle: HCkMailMan): PWideChar; stdcall;
Contains the accumulated raw SMTP commands sent to the server and raw responses received from the server.
This property is read-only. To clear it, call
ClearSmtpSessionLog.
See the notes about PWideChar memory ownership and validity.
SmtpSsl
procedure CkMailMan_putSmtpSsl(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat uses implicit SSL/TLS when connecting to the SMTP server.
When set to , the TLS connection is established immediately
when the TCP connection is opened.
True
SmtpSslServerCertVerified
Indicates whether the SMTP server's SSL/TLS certificate was successfully verified during the connection.
This property is meaningful only when an SSL/TLS SMTP connection is used.
topSmtpUsername
procedure CkMailMan_putSmtpUsername(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__smtpUsername(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the username used for SMTP authentication.
If SmtpAuthMethod is NTLM,
SmtpUsername and SmtpPassword may be set to the keyword
"default" to use the current Windows logged-on credentials.
See the notes about PWideChar memory ownership and validity.
SocksHostname
procedure CkMailMan_putSocksHostname(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__socksHostname(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SOCKS4 or SOCKS5 proxy hostname or IPv4 address.
This property is used only when SocksVersion is set to
4 or 5.
See the notes about PWideChar memory ownership and validity.
topSocksPassword
procedure CkMailMan_putSocksPassword(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__socksPassword(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SOCKS5 proxy password, if authentication is required.
SOCKS4 does not use passwords, so this property applies only to SOCKS5.
See the notes about PWideChar memory ownership and validity.
topSocksPort
procedure CkMailMan_putSocksPort(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies the SOCKS proxy port.
The default value is 1080. This property applies only when
SocksVersion is set to 4 or 5.
SocksUsername
procedure CkMailMan_putSocksUsername(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__socksUsername(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the SOCKS4 or SOCKS5 proxy username.
This property is used only when SocksVersion is set to
4 or 5.
See the notes about PWideChar memory ownership and validity.
topSocksVersion
procedure CkMailMan_putSocksVersion(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Specifies whether a SOCKS proxy is used.
0— no SOCKS proxy is used. This is the default.4— connect through a SOCKS4 proxy.5— connect through a SOCKS5 proxy.
SoRcvBuf
procedure CkMailMan_putSoRcvBuf(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Sets the socket receive buffer size.
The default value is 4194304.
This property should normally be left unchanged. It may be increased if
download performance is slow. Values should preferably be multiples of
4096.
SoSndBuf
procedure CkMailMan_putSoSndBuf(objHandle: HCkMailMan; newPropVal: Integer); stdcall;
Sets the socket send buffer size.
The default value is 262144.
This property should normally be left unchanged. It may be increased if
upload performance is slow. Testing values such as 512K or
1MB is reasonable. Values should preferably be multiples of
4096.
SslAllowedCiphers
procedure CkMailMan_putSslAllowedCiphers(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__sslAllowedCiphers(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the TLS cipher suites Chilkat is allowed to offer when establishing SSL/TLS connections.
The default value is an empty string, meaning Chilkat may offer all implemented cipher suites. To restrict the allowed ciphers, set this property to a comma-separated list of cipher suite names, ordered by preference.
The cipher suites supported by Chilkat are:
TLS 1.3 Cipher Suites
TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256TLS_AES_256_GCM_SHA384
ChaCha20-Poly1305 Cipher Suites
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
AES-GCM Cipher Suites
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_DHE_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_DHE_RSA_WITH_AES_256_GCM_SHA384TLS_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
AES-128 CBC Cipher Suites
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_DHE_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256TLS_DHE_RSA_WITH_AES_128_CBC_SHA256TLS_RSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
AES-256 CBC Cipher Suites
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_DHE_RSA_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_256_CBC_SHATLS_DHE_RSA_WITH_AES_256_CBC_SHA256TLS_RSA_WITH_AES_256_CBC_SHA256TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
Important: The client offers a list of allowed cipher suites, but the server chooses the final cipher suite from that list.
This property can also include special keywords:
rsa1024— reject server certificates with RSA keys smaller than 1024 bits.rsa2048— reject server certificates with RSA keys smaller than 2048 bits.secure-renegotiation— require secure renegotiation as defined by RFC 5746.best-practices— use Chilkat's current best-practice cipher policy.
The best-practices setting currently requires RSA server keys of
at least 1024 bits, requires secure renegotiation, and disallows RC4, DES,
and 3DES ciphers.
Example:
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, rsa1024, secure-renegotiation
See the notes about PWideChar memory ownership and validity.
topSslProtocol
procedure CkMailMan_putSslProtocol(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__sslProtocol(objHandle: HCkMailMan): PWideChar; stdcall;
Selects the SSL/TLS protocol version used for secure SMTP and POP3 connections.
Possible values include:
defaultTLS 1.3TLS 1.2TLS 1.1TLS 1.0SSL 3.0TLS 1.3 or higherTLS 1.2 or higherTLS 1.1 or higherTLS 1.0 or higher
The default value is default, which allows Chilkat to choose the
protocol dynamically based on the server's requirements.
Choosing an exact protocol version can cause the connection to fail unless
that exact version is negotiated. In most cases, using an
or higher setting is preferable.
See the notes about PWideChar memory ownership and validity.
topStartTLS
procedure CkMailMan_putStartTLS(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat requires SMTP STARTTLS.
When set to , Chilkat connects to the SMTP server normally
and then sends the TrueSTARTTLS command to upgrade the connection to
SSL/TLS before authenticating and sending email.
The default value is .
False
This property applies to SMTP only, not POP3.
StartTLSifPossible
procedure CkMailMan_putStartTLSifPossible(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat uses SMTP STARTTLS automatically when the server supports it.
When set to , Chilkat upgrades the SMTP connection to TLS if
the server advertises STARTTLS support. If STARTTLS is not supported, the
connection remains unencrypted.
True
The default value is .
True
Use StartTLS = instead when encryption is required and the
connection should fail if STARTTLS is unavailable.
True
This property applies to SMTP only, not POP3.
topTlsCipherSuite
function CkMailMan__tlsCipherSuite(objHandle: HCkMailMan): PWideChar; stdcall;
Contains the current or most recently negotiated TLS cipher suite.
If no TLS connection has been established, or if the TLS connection attempt failed, this property is empty.
Example value:
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256See the notes about PWideChar memory ownership and validity.
topTlsPinSet
procedure CkMailMan_putTlsPinSet(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__tlsPinSet(objHandle: HCkMailMan): PWideChar; stdcall;
Specifies the expected SPKI fingerprints for TLS public key pinning.
During the TLS handshake, Chilkat compares the server certificate's public key fingerprint against this pin set. If none of the pins match, the TLS handshake is aborted and the connection fails.
The format is:
hash_algorithm, encoding, SPKI_fingerprint_1, SPKI_fingerprint_2, ...
Example with one SHA-256 Base64 pin:
sha256, base64, lKg1SIqyhPSK19tlPbjl8s02yChsVTDklQpkMCHvsTE=
Example with two SHA-256 Base64 pins:
sha256, base64, 4t37LpnGmrMEAG8HEz9yIrnvJV2euVRwCLb9EH5WZyI=, 68b0G5iqMvWVWvUCjMuhLEyekM5729PadtnU5tdXZKs=
Supported hash algorithms include sha1, sha256,
sha384, sha512, md2, md5,
haval, ripemd128, ripemd160,
ripemd256, and ripemd320.
Supported encodings include base64, hex, and other
Chilkat-supported encodings.
See the notes about PWideChar memory ownership and validity.
TlsVersion
function CkMailMan__tlsVersion(objHandle: HCkMailMan): PWideChar; stdcall;
Contains the current or most recently negotiated TLS protocol version.
If no TLS connection has been established, or if the TLS connection attempt failed, this property is empty.
Possible values include SSL 3.0, TLS 1.0,
TLS 1.1, TLS 1.2, and TLS 1.3.
See the notes about PWideChar memory ownership and validity.
topUncommonOptions
procedure CkMailMan_putUncommonOptions(objHandle: HCkMailMan; newPropVal: PWideChar); stdcall;
function CkMailMan__uncommonOptions(objHandle: HCkMailMan): PWideChar; stdcall;
Provides a comma-separated list of uncommon option keywords.
This property defaults to an empty string and should normally remain empty.
-
ProtectFromVpn— introduced in v9.5.0.80. On Android, bypasses any installed or active VPN. -
SmtpLoginAnsi— introduced in v9.5.0.97. Causes SMTP login and password strings containing non-ASCII characters to be sent using ANSI encoding instead of UTF-8. This restores the older Chilkat behavior for SMTP servers that expect ANSI credentials.
See the notes about PWideChar memory ownership and validity.
UseApop
procedure CkMailMan_putUseApop(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
Controls whether Chilkat automatically uses APOP authentication when the POP3 server supports it.
The default value is .
False
VerboseLogging
procedure CkMailMan_putVerboseLogging(objHandle: HCkMailMan; newPropVal: wordbool); stdcall;
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.
Version
function CkMailMan__version(objHandle: HCkMailMan): PWideChar; stdcall;
Version of the component/library, such as "10.1.0"
See the notes about PWideChar memory ownership and validity.
Methods
AddPfxSourceBd
bd: HCkBinData;
password: PWideChar): wordbool; stdcall;
Adds a PFX/PKCS#12 certificate store to the MailMan object's internal list of sources used for locating certificates and private keys.
The PFX data is supplied in the bd object, which should contain the bytes of a .pfx or .p12 file.
The added PFX source is searched when Chilkat needs a certificate and private key for operations such as:
- Decrypting S/MIME encrypted email
- Creating digitally signed email
Multiple PFX sources can be added by calling this method once for each PFX.
On Windows, the registry-based Windows certificate stores are automatically searched when locating certificates and private keys. Therefore, if the required certificate and private key are already installed in the Windows certificate store, explicitly adding a PFX source is often unnecessary.
On macOS, the Apple Keychain is also searched automatically. If the required certificate and private key are already available in the Apple Keychain, it is likewise unnecessary to explicitly add a PFX source.
The password argument specifies the password required to open the PFX.
Returns True for success, False for failure.
topAddPfxSourceFile
pfxFilePath: PWideChar;
password: PWideChar): wordbool; stdcall;
Adds a PFX/PKCS#12 file to the MailMan object's internal list of sources used for locating certificates and private keys.
The pfxFilePath argument is the path to a .pfx or .p12 file.
The added PFX source is searched when Chilkat needs a certificate and private key for operations such as:
- Decrypting S/MIME encrypted email
- Creating digitally signed email
Multiple PFX sources can be added by calling this method once for each PFX.
On Windows, the registry-based Windows certificate stores are automatically searched when locating certificates and private keys. Therefore, if the required certificate and private key are already installed in the Windows certificate store, explicitly adding a PFX source is often unnecessary.
On macOS, the Apple Keychain is also searched automatically. If the required certificate and private key are already available in the Apple Keychain, it is likewise unnecessary to explicitly add a PFX source.
The password argument specifies the password required to open the PFX.
Returns True for success, False for failure.
topCheckMail
Returns the number of emails currently available in the POP3 mailbox. Returns -1 if an error occurs.
If this method fails, use VerifyPopConnection to test basic TCP/IP connectivity to the POP3 server, and
VerifyPopLogin to test whether the POP3 login succeeds. The Verify* methods are intended as
diagnostic helpers when a POP3 operation returns an error.
CheckMailAsync (1)
Creates an asynchronous task to call the CheckMail method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
ClearBadEmailAddresses
Clears the MailMan object's in-memory list of bad email addresses.
When an email-sending method is called, email addresses rejected by the SMTP server are cached in the MailMan object.
These rejected addresses can be retrieved by calling GetBadEmailAddresses. This method clears that cached
list so the object starts with no remembered bad addresses.
ClearPop3SessionLog
Clears the current contents of the Pop3SessionLog property.
ClearSmtpSessionLog
Clears the current contents of the SmtpSessionLog property.
CloseSmtpConnection
Explicitly closes the current SMTP connection. Before closing the socket connection, Chilkat sends the SMTP
QUIT command to the server.
Calling this method is optional in most applications. The MailMan object automatically opens an SMTP connection when an
email-sending method is called and no connection is already open. The connection is then kept open so subsequent sends
can reuse it. For example, if an application calls SendEmail ten times, the first call opens the SMTP
connection, and the following calls send over the same connection.
If an SMTP-related property changes, such as the hostname, username, password, port, or SSL/TLS settings, the existing connection is closed and a new connection is established the next time an email-sending method is called.
The SMTP connection is also closed automatically when the MailMan object is destroyed.
Returns True for success, False for failure.
CloseSmtpConnectionAsync (1)
Creates an asynchronous task to call the CloseSmtpConnection method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
DeleteBundle
emailBundle: HCkEmailBundle): wordbool; stdcall;
Marks multiple emails on the POP3 server for deletion. Each email in emailBundle that is still present in
the POP3 mailbox is marked for deletion.
In POP3, messages marked for deletion are not permanently removed until the session ends with the QUIT
command. If the ImmediateDelete property is , which is the default, Chilkat sends
TrueQUIT and ends the POP3 session automatically so the deletions are completed immediately. If
ImmediateDelete is , call FalsePop3EndSession when finished to send
QUIT and finalize the deletions.
When making multiple calls to Delete* methods, it is usually better to set ImmediateDelete to
, perform all deletion markings, and then call FalsePop3EndSession once.
Any method that requires communication with the POP3 server will automatically re-establish a session using the current property settings if a session is not already open.
Returns True for success, False for failure.
topDeleteBundleAsync (1)
emailBundle: HCkEmailBundle): HCkTask; stdcall;
Creates an asynchronous task to call the DeleteBundle method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
DeleteByMsgnum
msgnum: Integer): wordbool; stdcall;
Marks an email for deletion by its POP3 message number.
Important: Message numbers are specific to a single POP3 session and can change from one session to
the next. For example, if a mailbox contains ten messages, they are numbered 1 through 10.
If message 1 is deleted and a new POP3 session is opened, the remaining messages are renumbered
1 through 9.
A POP3 session must already be established before this method is called, either explicitly by calling
Pop3BeginSession or implicitly by calling another method that opens the session. This method does not
automatically begin a new session because doing so could change the message numbers and cause the application to delete
a different message than intended.
This method only marks the message for deletion. The message is not removed from the POP3 mailbox until the session is
ended by calling Pop3EndSession, which sends the QUIT command.
Returns True for success, False for failure.
topDeleteByMsgnumAsync (1)
Creates an asynchronous task to call the DeleteByMsgnum method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
DeleteByUidl
uidl: PWideChar): wordbool; stdcall;
Marks an email on the POP3 server for deletion using its UIDL. UIDLs are generally preferred over POP3 message numbers because UIDLs remain stable across sessions for as long as the message remains in the mailbox.
In POP3, messages marked for deletion are not permanently removed until the session ends with the QUIT
command. If the ImmediateDelete property is , which is the default, Chilkat sends
TrueQUIT and ends the POP3 session automatically so the deletion is completed immediately. If
ImmediateDelete is , call FalsePop3EndSession when finished to send
QUIT and finalize the deletion.
When making multiple calls to Delete* methods, it is usually better to set ImmediateDelete to
, perform all deletion markings, and then call FalsePop3EndSession once.
Any method that requires communication with the POP3 server will automatically re-establish a session using the current property settings if a session is not already open.
Returns True for success, False for failure.
topDeleteByUidlAsync (1)
Creates an asynchronous task to call the DeleteByUidl method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
DeleteEmail
Marks the specified email for deletion on the POP3 server. The email object should represent a message that
was retrieved from the same POP3 mailbox and can be matched to a message still present on the server.
In POP3, messages marked for deletion are not permanently removed until the session ends with the QUIT
command. If the ImmediateDelete property is , which is the default, Chilkat sends
TrueQUIT and ends the POP3 session automatically so the deletion is completed immediately. If
ImmediateDelete is , call FalsePop3EndSession when finished to send
QUIT and finalize the deletion.
When making multiple calls to Delete* methods, it is usually better to set ImmediateDelete to
, perform all deletion markings, and then call FalsePop3EndSession once.
Any method that requires communication with the POP3 server will automatically re-establish a session using the current property settings if a session is not already open.
Returns True for success, False for failure.
topDeleteEmailAsync (1)
Creates an asynchronous task to call the DeleteEmail method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
DeleteUidlSet
stUidls: HCkStringTable): wordbool; stdcall;
Marks multiple emails on the POP3 server for deletion. Each message whose UIDL matches an entry in
stUidls is marked for deletion.
In POP3, messages marked for deletion are not permanently removed until the session ends with the QUIT
command. If the ImmediateDelete property is , which is the default, Chilkat sends
TrueQUIT and ends the POP3 session automatically so the deletions are completed immediately. If
ImmediateDelete is , call FalsePop3EndSession when finished to send
QUIT and finalize the deletions.
When making multiple calls to Delete* methods, it is usually better to set ImmediateDelete to
, perform all deletion markings, and then call FalsePop3EndSession once.
Any method that requires communication with the POP3 server will automatically re-establish a session using the current property settings if a session is not already open.
Returns True for success, False for failure.
topDeleteUidlSetAsync (1)
stUidls: HCkStringTable): HCkTask; stdcall;
Creates an asynchronous task to call the DeleteUidlSet method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchAll
keepOnServer: wordbool;
headersOnly: wordbool;
numBodyLines: Integer;
bundle: HCkEmailBundle): wordbool; stdcall;
Retrieves all emails from the POP3 mailbox and stores them in bundle.
If headersOnly is , Chilkat downloads only the message headers and the first
TruenumBodyLines lines of the message body. Attachments are not downloaded. If headersOnly is
, Chilkat downloads the complete messages, including attachments.
False
If keepOnServer is , the downloaded emails remain on the POP3 server. If
TruekeepOnServer is , the messages may be deleted from the server after full download,
depending on the POP3 deletion/session behavior.
False
Note: keepOnServer applies only when downloading full emails. Header-only downloads do not
delete messages from the server, regardless of the value of keepOnServer.
Returns True for success, False for failure.
FetchAllAsync (1)
keepOnServer: wordbool;
headersOnly: wordbool;
numBodyLines: Integer;
bundle: HCkEmailBundle): HCkTask; stdcall;
Creates an asynchronous task to call the FetchAll method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchByUidl
uidl: PWideChar;
headerOnly: wordbool;
numBodyLines: Integer;
email: HCkEmail): wordbool; stdcall;
Retrieves an email from the POP3 server by UIDL and stores it in email. The message is not deleted from
the server.
If headerOnly is , Chilkat downloads only the message headers and the first
TruenumBodyLines lines of the message body. Attachments are not downloaded. If headerOnly is
, Chilkat downloads the complete message, including attachments.
False
Returns True for success, False for failure.
topFetchByUidlAsync (1)
uidl: PWideChar;
headerOnly: wordbool;
numBodyLines: Integer;
email: HCkEmail): HCkTask; stdcall;
Creates an asynchronous task to call the FetchByUidl method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchFull
partialEmail: HCkEmail;
fullEmail: HCkEmail): wordbool; stdcall;
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.
topFetchFullAsync (1)
partialEmail: HCkEmail;
fullEmail: HCkEmail): HCkTask; stdcall;
Creates an asynchronous task to call the FetchFull method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchMimeBd
uidl: PWideChar;
mimeData: HCkBinData): wordbool; stdcall;
Fetches an email by UIDL and returns the MIME source of the email in uidl.
Returns True for success, False for failure.
FetchMimeBdAsync (1)
uidl: PWideChar;
mimeData: HCkBinData): HCkTask; stdcall;
Creates an asynchronous task to call the FetchMimeBd method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchMimeByMsgnumBd
msgnum: Integer;
bd: HCkBinData): wordbool; stdcall;
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.
topFetchMimeByMsgnumBdAsync (1)
msgnum: Integer;
bd: HCkBinData): HCkTask; stdcall;
Creates an asynchronous task to call the FetchMimeByMsgnumBd method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchOne
headerOnly: wordbool;
numBodyLines: Integer;
msgNum: Integer;
email: HCkEmail): wordbool; stdcall;
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.
topFetchOneAsync (1)
headerOnly: wordbool;
numBodyLines: Integer;
msgNum: Integer;
email: HCkEmail): HCkTask; stdcall;
Creates an asynchronous task to call the FetchOne method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchRange
keepOnServer: wordbool;
headersOnly: wordbool;
numBodyLines: Integer;
startIndex: Integer;
endIndex: Integer;
bundle: HCkEmailBundle): wordbool; stdcall;
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.
topFetchRangeAsync (1)
keepOnServer: wordbool;
headersOnly: wordbool;
numBodyLines: Integer;
startIndex: Integer;
endIndex: Integer;
bundle: HCkEmailBundle): HCkTask; stdcall;
Creates an asynchronous task to call the FetchRange method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchUidls
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.
topFetchUidlsAsync (1)
Creates an asynchronous task to call the FetchUidls method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchUidlSet
uidls: HCkStringTable;
headersOnly: wordbool;
numBodyLines: Integer;
bundle: HCkEmailBundle): wordbool; stdcall;
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.
topFetchUidlSetAsync (1)
uidls: HCkStringTable;
headersOnly: wordbool;
numBodyLines: Integer;
bundle: HCkEmailBundle): HCkTask; stdcall;
Creates an asynchronous task to call the FetchUidlSet method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetLastJsonData
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.
topGetMailboxCount
Returns the number of emails on the POP3 server, or -1 for failure.
This method is identical to CheckEmail. It was added for clarity.
topGetMailboxCountAsync (1)
Creates an asynchronous task to call the GetMailboxCount method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetMailboxInfoXml
outXml: HCkString): wordbool; stdcall;
function CkMailMan__getMailboxInfoXml(objHandle: HCkMailMan): PWideChar; stdcall;
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 True for success, False for failure.
See the notes about PWideChar memory ownership and validity.
GetMailboxInfoXmlAsync (1)
Creates an asynchronous task to call the GetMailboxInfoXml method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetMailboxSize
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.
GetMailboxSizeAsync (1)
Creates an asynchronous task to call the GetMailboxSize method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetServerCert
useSmtp: wordbool;
cert: HCkCert): wordbool; stdcall;
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.
topGetSizeByUidl
uidl: PWideChar): Integer; stdcall;
Returns the size of an email (including attachments) given the UIDL of the email on the POP3 server. Returns -1 for failure.
topGetSizeByUidlAsync (1)
Creates an asynchronous task to call the GetSizeByUidl method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
IsSmtpDsnCapable
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.
IsSmtpDsnCapableAsync (1)
Creates an asynchronous task to call the IsSmtpDsnCapable method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
LoadMbxFile
mbxPath: PWideChar;
bundle: HCkEmailBundle): wordbool; stdcall;
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.
topLoadTaskCaller
OpenSmtpConnection
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.
OpenSmtpConnectionAsync (1)
Creates an asynchronous task to call the OpenSmtpConnection method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3Authenticate
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.
topPop3AuthenticateAsync (1)
Creates an asynchronous task to call the Pop3Authenticate method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3BeginSession
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.
Pop3BeginSessionAsync (1)
Creates an asynchronous task to call the Pop3BeginSession method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3Connect
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.
topPop3ConnectAsync (1)
Creates an asynchronous task to call the Pop3Connect method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3EndSession
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.
Pop3EndSessionAsync (1)
Creates an asynchronous task to call the Pop3EndSession method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3EndSessionNoQuit
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.
Pop3EndSessionNoQuitAsync (1)
Creates an asynchronous task to call the Pop3EndSessionNoQuit method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3Noop
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.
topPop3NoopAsync (1)
Creates an asynchronous task to call the Pop3Noop method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3Reset
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.
topPop3ResetAsync (1)
Creates an asynchronous task to call the Pop3Reset method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Pop3SendRawCommand
command: PWideChar;
charset: PWideChar;
outStr: HCkString): wordbool; stdcall;
function CkMailMan__pop3SendRawCommand(objHandle: HCkMailMan;
command: PWideChar;
charset: PWideChar): PWideChar; stdcall;
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 True for success, False for failure.
See the notes about PWideChar memory ownership and validity.
topPop3SendRawCommandAsync (1)
command: PWideChar;
charset: PWideChar): HCkTask; stdcall;
Creates an asynchronous task to call the Pop3SendRawCommand method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
QuickSend
fromAddr: PWideChar;
toAddr: PWideChar;
subject: PWideChar;
body: PWideChar;
smtpServer: PWideChar): wordbool; stdcall;
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.
topQuickSendAsync (1)
fromAddr: PWideChar;
toAddr: PWideChar;
subject: PWideChar;
body: PWideChar;
smtpServer: PWideChar): HCkTask; stdcall;
Creates an asynchronous task to call the QuickSend method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
RenderToMime
email: HCkEmail;
outStr: HCkString): wordbool; stdcall;
function CkMailMan__renderToMime(objHandle: HCkMailMan;
email: HCkEmail): PWideChar; stdcall;
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 True for success, False for failure.
See the notes about PWideChar memory ownership and validity.
RenderToMimeBd
email: HCkEmail;
renderedMime: HCkBinData): wordbool; stdcall;
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.
RenderToMimeSb
email: HCkEmail;
renderedMime: HCkStringBuilder): wordbool; stdcall;
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.
SendBundle
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.
topSendBundleAsync (1)
bundle: HCkEmailBundle): HCkTask; stdcall;
Creates an asynchronous task to call the SendBundle method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SendEmail
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.
SendEmailAsync (1)
Creates an asynchronous task to call the SendEmail method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SendMime
fromAddr: PWideChar;
recipients: PWideChar;
mimeSource: PWideChar): wordbool; stdcall;
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.
SendMimeAsync (1)
fromAddr: PWideChar;
recipients: PWideChar;
mimeSource: PWideChar): HCkTask; stdcall;
Creates an asynchronous task to call the SendMime method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SendMimeBd
fromAddr: PWideChar;
recipients: PWideChar;
mimeData: HCkBinData): wordbool; stdcall;
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.
SendMimeBdAsync (1)
fromAddr: PWideChar;
recipients: PWideChar;
mimeData: HCkBinData): HCkTask; stdcall;
Creates an asynchronous task to call the SendMimeBd method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SendMimeToList
fromAddr: PWideChar;
distListFilename: PWideChar;
mimeSource: PWideChar): wordbool; stdcall;
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.
topSendMimeToListAsync (1)
fromAddr: PWideChar;
distListFilename: PWideChar;
mimeSource: PWideChar): HCkTask; stdcall;
Creates an asynchronous task to call the SendMimeToList method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SetDecryptCert
Explicitly specifies the certificate to be used for decrypting encrypted email.
Returns True for success, False for failure.
topSetDecryptCert2
cert: HCkCert;
privateKey: HCkPrivateKey): wordbool; stdcall;
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.
topSetPassword
protocol: PWideChar;
password: HCkSecureString): wordbool; stdcall;
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.
SetSslClientCert
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.
topSetSslClientCertPem
pemDataOrFilename: PWideChar;
pemPassword: PWideChar): wordbool; stdcall;
Allows for a client-side certificate to be used for the SSL / TLS connection.
Returns True for success, False for failure.
SetSslClientCertPfx
pfxFilename: PWideChar;
pfxPassword: PWideChar): wordbool; stdcall;
Allows for a client-side certificate to be used for the SSL / TLS connection.
Returns True for success, False for failure.
topSmtpAuthenticate
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.
SmtpAuthenticateAsync (1)
Creates an asynchronous task to call the SmtpAuthenticate method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SmtpConnect
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.
SmtpConnectAsync (1)
Creates an asynchronous task to call the SmtpConnect method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SmtpNoop
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.
topSmtpNoopAsync (1)
Creates an asynchronous task to call the SmtpNoop method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SmtpReset
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.
topSmtpResetAsync (1)
Creates an asynchronous task to call the SmtpReset method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SmtpSendRawCommand
command: PWideChar;
charset: PWideChar;
bEncodeBase64: wordbool;
outStr: HCkString): wordbool; stdcall;
function CkMailMan__smtpSendRawCommand(objHandle: HCkMailMan;
command: PWideChar;
charset: PWideChar;
bEncodeBase64: wordbool): PWideChar; stdcall;
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 True for success, False for failure.
See the notes about PWideChar memory ownership and validity.
SmtpSendRawCommandAsync (1)
command: PWideChar;
charset: PWideChar;
bEncodeBase64: wordbool): HCkTask; stdcall;
Creates an asynchronous task to call the SmtpSendRawCommand method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SshAuthenticatePk
sshLogin: PWideChar;
sshUsername: HCkSshKey): wordbool; stdcall;
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.
topSshAuthenticatePkAsync (1)
sshLogin: PWideChar;
sshUsername: HCkSshKey): HCkTask; stdcall;
Creates an asynchronous task to call the SshAuthenticatePk method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SshAuthenticatePw
sshLogin: PWideChar;
sshPassword: PWideChar): wordbool; stdcall;
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.
SshAuthenticatePwAsync (1)
sshLogin: PWideChar;
sshPassword: PWideChar): HCkTask; stdcall;
Creates an asynchronous task to call the SshAuthenticatePw method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SshCloseTunnel
SshCloseTunnelAsync (1)
Creates an asynchronous task to call the SshCloseTunnel method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
SshOpenTunnel
sshHostname: PWideChar;
sshPort: Integer): wordbool; stdcall;
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.
SshOpenTunnelAsync (1)
sshHostname: PWideChar;
sshPort: Integer): HCkTask; stdcall;
Creates an asynchronous task to call the SshOpenTunnel method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
UseCertVault
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.
topUseSsh
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.
UseSshTunnel
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.
topVerifyPopConnection
Return True if a TCP/IP connection can be established with the POP3 server, otherwise returns False.
VerifyPopConnectionAsync (1)
Creates an asynchronous task to call the VerifyPopConnection method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
VerifyPopLogin
Return True if a TCP/IP connection and login is successful with the POP3 server. Otherwise return False.
VerifyPopLoginAsync (1)
Creates an asynchronous task to call the VerifyPopLogin method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
VerifyRecips
email: HCkEmail;
badAddrs: HCkStringArray): wordbool; stdcall;
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.
VerifyRecipsAsync (1)
email: HCkEmail;
badAddrs: HCkStringArray): HCkTask; stdcall;
Creates an asynchronous task to call the VerifyRecips method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
VerifySmtpConnection
Return True if a TCP/IP connection can be established with the SMTP server, otherwise returns False.
VerifySmtpConnectionAsync (1)
Creates an asynchronous task to call the VerifySmtpConnection method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
VerifySmtpLogin
Return True if a TCP/IP connection and login is successful with the SMTP server. Otherwise returns False.
VerifySmtpLoginAsync (1)
Creates an asynchronous task to call the VerifySmtpLogin method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
Events
AbortCheck
Enables a method call to be aborted by triggering the AbortCheck event at intervals defined by the HeartbeatMs property. If HeartbeatMs is set to its default value of 0, no events will occur. For instance, set HeartbeatMs to 200 to trigger 5 AbortCheck events per second. Return True to abort; return False to continue (not abort)
PercentDone
This provides the percentage completion for any method involving network communications or time-consuming processing, assuming the progress can be measured as a percentage. This event is triggered only when it's possible and logical to express the operation's progress as a percentage. The pctDone argument will range from 1 to 100. For methods that finish quickly, the number of PercentDone callbacks may vary, but the final callback will have pctDone equal to 100. For longer operations, callbacks will not exceed one per percentage point (e.g., 1, 2, 3, ..., 98, 99, 100).
The PercentDone callback also acts as an AbortCheck event. For fast methods where PercentDone fires, an AbortCheck event may not trigger since the PercentDone callback already provides an opportunity to abort. For longer operations, where time between PercentDone callbacks is extended, AbortCheck callbacks enable more responsive operation termination.
Return True to abort; return False to continue (not abort)
ProgressInfo
This event callback provides tag name/value pairs that detail what occurs during a method call. To discover existing tag names, create code to handle the event, emit the pairs, and review them. Most tag names are self-explanatory.
TaskCompleted
Called from the background thread when an asynchronous task completes.
Deprecated
AddPfxSourceData Deprecated
pfxData: HCkByteData;
password: PWideChar): wordbool; stdcall;
Adds a PFX/PKCS#12 certificate store to the MailMan object's internal list of sources used for locating certificates and private keys.
The pfxData argument contains the bytes of a .pfx /
.p12 file.
The added PFX source is searched when Chilkat needs a certificate and private key for operations such as:
- Decrypting S/MIME encrypted email
- Creating digitally signed email
Multiple PFX sources can be added by calling this method once for each PFX.
On Windows, the registry-based Windows certificate stores are automatically searched when locating certificates and private keys. Therefore, if the required certificate and private key are already installed in the Windows certificate store, explicitly adding a PFX source is often unnecessary.
On macOS, the Apple Keychain is also searched automatically. If the required certificate and private key are already available in the Apple Keychain, it is likewise unnecessary to explicitly add a PFX source.
The password argument specifies the password required to open the PFX.
Returns True for success, False for failure.
topCopyMail
This method is deprecated. Applications should instead call FetchAll.
Copy the email from a POP3 server into a EmailBundle. This does not remove the email from the POP3 server.
Returns nil on failure
CopyMailAsync (1) (2)
Creates an asynchronous task to call the CopyMail method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
DeleteMultiple
uidlArray: HCkStringArray): wordbool; stdcall;
Marks multiple emails on the POP3 server for deletion. (Any email on the server having a UIDL equal to a UIDL found in uidlArray 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.
DeleteMultipleAsync (1)
uidlArray: HCkStringArray): HCkTask; stdcall;
Creates an asynchronous task to call the DeleteMultiple method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchByMsgnum
This method is deprecated. Applications should instead call FetchOne.
Fetches an email 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 connection 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).
Returns nil on failure
FetchByMsgnumAsync (1) (2)
Creates an asynchronous task to call the FetchByMsgnum method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchEmail
This method is deprecated. Applications should instead call FetchByUidl.
Fetches an email from the POP3 mail server given its UIDL. Calling this method does not remove the email from the server. A typical program might get the email headers from the POP3 server by calling GetAllHeaders or GetHeaders, and then fetch individual emails by UIDL.
Returns a null reference on failure.
Returns nil on failure
FetchEmailAsync (1) (2)
Creates an asynchronous task to call the FetchEmail method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchMime Deprecated
uidl: PWideChar;
outData: HCkByteData): wordbool; stdcall;
Fetches an email by UIDL and returns the MIME source of the email in a byte array.
Returns True for success, False for failure.
topFetchMimeAsync Deprecated (1)
Creates an asynchronous task to call the FetchMime method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchMimeByMsgnum Deprecated
msgnum: Integer;
outBytes: HCkByteData): wordbool; stdcall;
Retrieves an email by its message number and returns the MIME bytes. 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.
topFetchMimeByMsgnumAsync Deprecated (1)
msgnum: Integer): HCkTask; stdcall;
Creates an asynchronous task to call the FetchMimeByMsgnum method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchMultiple
uidlArray: HCkStringArray): HCkEmailBundle; stdcall;
This method is deprecated. Applications should instead call FetchUidlSet.
Given an array of UIDL strings, fetchs all the emails from the POP3 server whose UIDL is present in the array, and returns the emails in a bundle.
Returns nil on failure
FetchMultipleAsync (1) (2)
uidlArray: HCkStringArray): HCkTask; stdcall;
Creates an asynchronous task to call the FetchMultiple method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchMultipleHeaders
uidlArray: HCkStringArray;
numBodyLines: Integer): HCkEmailBundle; stdcall;
This method is deprecated. Applications should instead call FetchUidlSet.
Given an array of UIDL strings, fetchs all the email headers from the POP3 server whose UIDL is present in the array.
Note: The email objects returned in the bundle contain only headers. The attachments will be missing, and the bodies will be mostly missing (only the 1st numBodyLines lines of either the plain-text or HTML body will be present).
Returns nil on failure
FetchMultipleHeadersAsync (1) (2)
uidlArray: HCkStringArray;
numBodyLines: Integer): HCkTask; stdcall;
Creates an asynchronous task to call the FetchMultipleHeaders method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchMultipleMime
uidlArray: HCkStringArray): HCkStringArray; stdcall;
This deprecated method will be removed in a future major release of Chilkat. MIME can potentially include non-encoded binary data and mixed character encodings, so downloading emails as a simple MIME string often requires processing and modifications, making it impractical. Instead, applications should use FetchMimeBd or methods that download emails to email objects.
This method downloads emails from the POP3 server for each UIDL in uidlArray and returns an object containing the collection of downloaded MIME strings.
Returns nil on failure
FetchMultipleMimeAsync (1) (2)
uidlArray: HCkStringArray): HCkTask; stdcall;
Creates an asynchronous task to call the FetchMultipleMime method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchSingleHeader
numBodyLines: Integer;
messageNumber: Integer): HCkEmail; stdcall;
This method is deprecated. Applications should instead call FetchOne.
Fetches a single header by message number. Returns an email object on success, or a null reference on failure.
Returns nil on failure
FetchSingleHeaderAsync (1) (2)
numBodyLines: Integer;
messageNumber: Integer): HCkTask; stdcall;
Creates an asynchronous task to call the FetchSingleHeader method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
FetchSingleHeaderByUidl
numBodyLines: Integer;
uidl: PWideChar): HCkEmail; stdcall;
This method is deprecated. Applications should instead call FetchByUidl.
Fetches a single header by UIDL. Returns an email object on success, or a null reference on failure.
Note: The email objects returned in the bundle contain only headers. The attachments will be missing, and the bodies will be mostly missing (only the 1st uidl lines of either the plain-text or HTML body will be present).
Returns nil on failure
FetchSingleHeaderByUidlAsync (1) (2)
numBodyLines: Integer;
uidl: PWideChar): HCkTask; stdcall;
Creates an asynchronous task to call the FetchSingleHeaderByUidl method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetAllHeaders
numBodyLines: Integer): HCkEmailBundle; stdcall;
This method is deprecated. Applications should instead call FetchAll.
Retrieves all emails from the POP3 server, limiting the body to the first numBodyLines lines and excluding attachments. The returned emails are valid objects with truncated bodies and no attachments.
Returns nil on failure
GetAllHeadersAsync (1) (2)
numBodyLines: Integer): HCkTask; stdcall;
Creates an asynchronous task to call the GetAllHeaders method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetFullEmail
This method is deprecated. Applications should instead call FetchFull.
If a partial email (header-only) is retrieved using GetHeaders or GetAllHeaders, this method will download and return the full email from the server using the partial email as an argument.
Returns nil on failure
GetFullEmailAsync (1) (2)
Creates an asynchronous task to call the GetFullEmail method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetHeaders
numBodyLines: Integer;
fromIndex: Integer;
toIndex: Integer): HCkEmailBundle; stdcall;
This method is deprecated. Applications should instead call FetchRange.
The same as the GetAllHeaders method, except only the emails from fromIndex to toIndex on the POP3 server are returned. The first email on the server is at index 0.
Returns nil on failure
GetHeadersAsync (1) (2)
numBodyLines: Integer;
fromIndex: Integer;
toIndex: Integer): HCkTask; stdcall;
Creates an asynchronous task to call the GetHeaders method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
GetPop3SslServerCert
This method is deprecated. Applications should instead call GetServerCert.
Returns the POP3 server's SSL certificate. This is available after connecting via SSL to a POP3 server. (To use POP3 SSL, set the PopSsl property = True.)
Returns a null reference if no POP3 SSL certificate is available.
Returns nil on failure
GetSmtpSslServerCert
This method is deprecated. Applications should instead call GetServerCert.
If using SSL/TLS, this method returns the SMTP server's digital certificate used with the secure connection.
Returns nil on failure
GetUidls
This method is deprecated. Applications should instead call FetchUidls.
Returns the UIDLs of the emails currently stored on the POP3 server.
Returns nil on failure
GetUidlsAsync (1) (2)
Creates an asynchronous task to call the GetUidls method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
LastJsonData
This method is deprecated. Call GetLastJsonData instead.
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.
Returns nil on failure
LoadEml
This deprecated method will be removed in a future Chilkat major version. Applications should instead call the email object's LoadEml method.
Loads a .eml file containing an email.
Returns nil on failure
LoadMbx
This method is deprecated. Applications should instead call LoadMbxFile.
Loads a .mbx file containing emails and returns an email bundle. If a Filter is present, only emails matching the filter are returned.
Returns nil on failure
LoadMime
This deprecated method will be removed in a future Chilkat major version. Applications should instead call the email object's SetFromMimeText method.
Creates and loads an email from a MIME string. Returns a null reference on failure.
Returns nil on failure
LoadXmlEmail
This deprecated method will be removed in a future Chilkat major version. Applications should instead call the email object's SetFromXmlText method.
Loads an XML file containing a single email and returns an email object. Returns a null reference on failure.
Returns nil on failure
LoadXmlEmailString
xmlString: PWideChar): HCkEmail; stdcall;
This deprecated method will be removed in a future Chilkat major version. Applications should instead call the email object's SetFromXmlText method.
Loads an XML string containing a single email and returns an email object. Returns a null reference on failure.
Returns nil on failure
LoadXmlFile
filename: PWideChar): HCkEmailBundle; stdcall;
This deprecated method will be removed in a future Chilkat major version. Applications should instead call the email bundle object's LoadXml method.
Loads an XML file containing one or more emails and returns an email bundle. If a Filter is present, only emails matching the filter are returned. Returns a null reference on failure.
Returns nil on failure
LoadXmlString
xmlString: PWideChar): HCkEmailBundle; stdcall;
This deprecated method will be removed in a future Chilkat major version. Applications should instead call the email bundle object's LoadXmlString method.
Loads from an XML string containing emails and returns an email bundle. If a Filter is present, only emails matching the filter are returned.
Returns nil on failure
MxLookup
emailAddress: PWideChar;
outStrHostname: HCkString): wordbool; stdcall;
function CkMailMan__mxLookup(objHandle: HCkMailMan;
emailAddress: PWideChar): PWideChar; stdcall;
This deprecated method will be removed in a future Chilkat major version. Applications should instead use the Chilkat Dns class to do MX lookups.
Performs a DNS MX lookup to return the mail server hostname based on an email address.
Returns True for success, False for failure.
See the notes about PWideChar memory ownership and validity.
MxLookupAll
emailAddress: PWideChar): HCkStringArray; stdcall;
This deprecated method will be removed in a future Chilkat major version. Applications should instead use the Chilkat Dns class to do MX lookups.
Performs a DNS MX lookup to return the list of mail server hostnames based on an email address. The primary server is at index 0. In most cases, there is only one mail server for a given email address.
Returns nil on failure
RenderToMimeBytes Deprecated
email: HCkEmail;
outBytes: HCkByteData): wordbool; stdcall;
This method is the same as RenderToMime, but the MIME is returned in a byte array. If an email uses an 8bit or binary MIME encoding, then calling RenderToMime may introduce errors because it is not possible to return non-text binary data as a string. Therefore, calling RenderToMimeBytes is recommended over RenderToMime, unless it is assured that the email (MIME) does not use a binary encoding for non-text data.
Returns True for success, False for failure.
topSendMimeBytes Deprecated
fromAddr: PWideChar;
recipients: PWideChar;
mimeSource: HCkByteData): wordbool; stdcall;
This method is the same as SendMime, except the MIME is passed in a byte array. This can be important if the MIME uses a binary encoding, or if a DKIM/DomainKey signature is included.
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.
SendMimeBytesAsync Deprecated (1)
fromAddr: PWideChar;
recipients: PWideChar;
mimeSource: HCkByteData): HCkTask; stdcall;
Creates an asynchronous task to call the SendMimeBytes method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
TransferMail
This method is deprecated. Applications should instead call FetchAll.
Downloads and removes all email from a POP3 server. A bundle containing the emails is returned. A null reference is returned on failure.
Returns nil on failure
TransferMailAsync (1) (2)
Creates an asynchronous task to call the TransferMail method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure
TransferMultipleMime
uidlArray: HCkStringArray): HCkStringArray; stdcall;
This deprecated method will be removed in a future major release of Chilkat. MIME can potentially include non-encoded binary data and mixed character encodings, so downloading emails as a simple MIME string often requires processing and modifications, making it impractical. Instead, applications should use FetchMimeBd or methods that download emails to email objects.
Same as FetchMultipleMime except that the downloaded emails are also deleted from the server. Returns a null reference on failure.
Returns nil on failure
TransferMultipleMimeAsync (1) (2)
uidlArray: HCkStringArray): HCkTask; stdcall;
Creates an asynchronous task to call the TransferMultipleMime method with the arguments provided.
Note: Async method event callbacks happen in the background thread. Accessing and updating UI elements existing in the main thread may require special considerations.
Returns nil on failure