MailMan PHP Extension Reference Documentation
CkMailMan
Current Version: 11.5.0
Chilkat.MailMan
Send email messages, MIME content, bundles of messages, and signed or
encrypted S/MIME mail through SMTP servers.
Connect to POP3 mailboxes, list messages, download email, retrieve
headers, and control when messages are deleted from the server.
Use passwords, OAuth2 access tokens, TLS, STARTTLS, client certificates,
and secret-backed credentials where appropriate.
Render, send, retrieve, and process MIME messages, including HTML bodies,
alternative bodies, embedded images, and file attachments.
Work with certificates and private keys to sign, verify, encrypt, and
decrypt email messages.
Troubleshoot SMTP and POP3 sessions with detailed logs, status codes,
server responses, proxy settings, and SSH tunnel support.
For an extended overview, see
MailMan Class Overview.
Send, receive, secure, and troubleshoot email with SMTP and POP3.
Chilkat.MailMan is a full-featured email client class for
applications that need SMTP sending and POP3 receiving. It supports secure
authentication, MIME rendering, attachments, S/MIME signing and encryption,
OAuth2, TLS/STARTTLS, proxy and SSH tunnel routing, POP3 download and delete
workflows, delivery status notifications, and detailed diagnostics for
troubleshooting mail server communication.
SMTP sending
POP3 receiving
Secure authentication
MIME and attachments
S/MIME support
Diagnostics and routing
LastErrorText when troubleshooting provider-
specific behavior.
Object Creation
$obj = new CkMailMan();
Properties
AbortCurrent
void put_AbortCurrent(bool boolVal);
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
void put_AllOrNone(bool boolVal);
Determines 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
void put_AutoFix(bool boolVal);
Controls whether Chilkat automatically selects the SMTP and POP3 TLS mode from a standard port number when a connection is prepared.
- SMTP port
465: implicit TLS (SmtpSsl =).true - SMTP port
587: explicit TLS usingSTARTTLS. - SMTP port
25: no TLS is implied. - POP3 port
995: implicit TLS (PopSsl =).true - POP3 port
110: no TLS is implied.
The default value is . For these standard ports, Chilkat sets
the related TLS properties to a consistent combination before connecting, so
conflicting implicit and explicit TLS settings do not remain in effect.
true
If the configured port is nonstandard, AutoFix does not change the TLS properties. The application must set the desired implicit, required-explicit, opportunistic-explicit, or unencrypted mode explicitly.
Important: AutoFix is applied when Chilkat prepares the connection. Assigning a port number does not immediately rewrite the visible property values.
AutoGenMessageId
void put_AutoGenMessageId(bool boolVal);
Determines 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
void put_AutoSmtpRset(bool boolVal);
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
void put_AutoUnwrapSecurity(bool boolVal);
Determines 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
void put_ClientIpAddress(string strVal);
Sets 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.
ConnectFailReason
int get_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
void put_ConnectTimeout(int intVal);
The maximum number of seconds to wait while attempting to connect to an SMTP or POP3 server.
The default value is 30 seconds.
DebugLogFilePath
void put_DebugLogFilePath(string strVal);
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.
DsnEnvid
void put_DsnEnvid(string strVal);
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 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.
topDsnNotify
void put_DsnNotify(string strVal);
Sets 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.
DsnRet
void put_DsnRet(string strVal);
Sets 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.
EmbedCertChain
void put_EmbedCertChain(bool boolVal);
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
void put_EnableSecrets(bool boolVal);
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
void put_Filter(string strVal);
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.
HeloHostname
void put_HeloHostname(string strVal);
Sets 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.
topHttpProxyAuthMethod
void put_HttpProxyAuthMethod(string strVal);
Sets the authentication method used when the configured HTTP proxy requires credentials.
Valid values are Basic and NTLM. Leave this property empty when the proxy does not require authentication.
HttpProxyDomain
void put_HttpProxyDomain(string strVal);
Sets the optional Windows domain used for NTLM authentication with an HTTP proxy.
This property is ignored for Basic proxy authentication and may be left empty when no NTLM domain is required.
topHttpProxyHostname
void put_HttpProxyHostname(string strVal);
Sets the hostname or IP address of the HTTP proxy used for SMTP and POP3 connections.
Leave this property empty to connect directly without an HTTP proxy.
topHttpProxyPassword
void put_HttpProxyPassword(string strVal);
Sets the password used to authenticate with the configured HTTP proxy.
This property is used together with HttpProxyUsername and, for NTLM authentication, may also be used with HttpProxyDomain.
HttpProxyPort
void put_HttpProxyPort(int intVal);
Sets the TCP port of the HTTP proxy.
Common proxy ports include 8080 and 3128. The value is used only when HttpProxyHostname is set.
HttpProxyUsername
void put_HttpProxyUsername(string strVal);
Sets the username used to authenticate with the configured HTTP proxy.
This property is used only when the proxy requires authentication.
topImmediateDelete
void put_ImmediateDelete(bool boolVal);
Determines whether pending POP3 deletion marks are committed automatically
after a successful delete operation or full-message retrieval performed with
keepOnServer = .
false
The default value is . Chilkat sends trueDELE as each
message is processed. After the complete operation succeeds, Chilkat sends
QUIT, commits the deletions, and closes the POP3 session. The next
POP3 method automatically reconnects and establishes a new session.
When set to , Chilkat sends falseDELE but leaves the
session open and the deletions uncommitted. Call
Pop3EndSession to send QUIT
and commit them. Calling Pop3Reset, calling
Pop3EndSessionNoQuit, or losing
the POP3 connection before QUIT causes the server to forget the
pending deletion marks.
Header-only or partial-message retrieval never marks a message for deletion,
regardless of this property or the value of keepOnServer.
IncludeRootCert
void put_IncludeRootCert(bool boolVal);
Determines 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
bool get_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
bool get_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
string lastErrorHtml();
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.
topLastErrorText
string lastErrorText();
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.
LastErrorXml
string lastErrorXml();
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.
topLastMethodSuccess
void put_LastMethodSuccess(bool boolVal);
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
int get_LastSmtpStatus()
Contains the SMTP failure status code returned by the server for the most recent SMTP operation.
This property is nonzero only when Chilkat successfully connected, began an SMTP session, and then received a status code indicating failure. Such failures are generally reported by 4xx or 5xx replies.
- 4xx — Temporary failure. Retrying later may succeed.
- 5xx — Permanent failure. The request was rejected and usually requires a change before retrying.
A value of 0 means that no SMTP failure status code was received. For example, the operation may have failed before an SMTP session was established. Use SmtpFailReason and LastErrorText for additional diagnostic information.
LastSmtpStatusMsg
string lastSmtpStatusMsg();
Provides the text associated with the most recent SMTP reply received from the server.
Use this property together with LastSmtpStatus when diagnosing an SMTP failure or interpreting a server-specific response.
LogMailReceivedFilename
void put_LogMailReceivedFilename(string strVal);
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.
topLogMailSentFilename
void put_LogMailSentFilename(string strVal);
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.
topMailHost
void put_MailHost(string strVal);
Sets 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.
MailPort
void put_MailPort(int intVal);
Sets the POP3 server port number.
The default value is 110.
The standard POP3 ports and their associated
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
void put_MaxCount(int intVal);
Limits the number of messages retrieved from the POP3 server. The following methods honor this property:
The default value is 0, which means no limit.
For FetchAll, a positive value selects the newest messages in the
mailbox. For example, when MaxCount = 2, the two newest messages are
retrieved and returned in normal mailbox order, with the older of the two first.
OAuth2AccessToken
void put_OAuth2AccessToken(string strVal);
Sets the OAuth2 access token used for POP3 or SMTP XOAUTH2 authentication.
When this property is set, Chilkat uses the AUTH XOAUTH2 authentication mechanism when it is supported by the server.
For POP3 XOAUTH2 authentication:
PopPassword should be left empty, or explicitly set to the empty string.
For SMTP XOAUTH2 authentication:
SmtpPassword should be left unset, or set to the empty string.
The access token is sent as a bearer token during the AUTH XOAUTH2 authentication exchange.
OpaqueSigning
void put_OpaqueSigning(bool boolVal);
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
void put_P7mEncryptAttachFilename(string strVal);
Sets the filename used in the Content-Disposition header
when sending a PKCS#7 encrypted email.
The default value is smime.p7m.
P7mSigAttachFilename
void put_P7mSigAttachFilename(string strVal);
Sets the filename used in the Content-Disposition header
when sending an opaque signed PKCS#7 email.
The default value is smime.p7m.
P7sSigAttachFilename
void put_P7sSigAttachFilename(string strVal);
Sets 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.
Pop3SessionId
int get_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
string pop3SessionLog();
Provides 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.
Pop3SPA
void put_Pop3SPA(bool boolVal);
Determines 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
bool get_Pop3SslServerCertVerified()
Indicates whether the POP3 server certificate chain was successfully verified during the most recent SSL/TLS POP3 connection.
This property reports certificate-chain verification only. It does not report hostname matching or public key pinning. When either of those checks is required, a mismatch causes the connection itself to fail.
This property is meaningful only after an SSL/TLS POP3 connection attempt.
topPop3Stls
void put_Pop3Stls(bool boolVal);
Determines whether Chilkat requires the POP3 connection to be upgraded to TLS
using the STLS command.
When set to , Chilkat initially connects without encryption
and then sends trueSTLS before authenticating. The connection fails if
the server does not support the required upgrade.
PopSsl takes precedence. If implicit TLS is
enabled, this property does not cause an additional explicit TLS upgrade.
The default value is . Use
falsePop3StlsIfPossible when the upgrade
should be attempted only when the server advertises support.
Pop3StlsIfPossible
void put_Pop3StlsIfPossible(bool boolVal);
Determines whether Chilkat attempts POP3 STLS when the server
advertises support for it.
If the server supports STLS, the connection is upgraded to TLS.
Otherwise, the connection remains unencrypted.
PopSsl takes precedence. If implicit TLS is
enabled, no separate STLS upgrade is attempted. Use
Pop3Stls = instead when encryption is
required and the connection should fail if explicit TLS is unavailable.
true
The default value is .
false
PopPassword
void put_PopPassword(string strVal);
Sets 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.
PopPasswordBase64
void put_PopPasswordBase64(string strVal);
Sets the POP3 password as Base64-encoded data instead of plain text.
MailMan decodes the Base64 value and uses the resulting bytes as the POP3 password. This property is useful when an application already stores or receives the password in Base64 form; Base64 encoding by itself does not provide encryption.
topPopSsl
void put_PopSsl(bool boolVal);
Determines whether implicit SSL/TLS is used when connecting to the POP3 server.
When set to , the TLS connection is established immediately
when the TCP connection is opened. Implicit POP3 TLS commonly uses port
true995.
Implicit TLS takes precedence over explicit TLS. Therefore, when
PopSsl = , the settings in
truePop3Stls and
Pop3StlsIfPossible do not cause a
separate STLS upgrade.
The default value is . When
falseAutoFix is enabled, a standard POP3 port can
cause Chilkat to select the appropriate TLS mode automatically before
connecting.
PopUsername
void put_PopUsername(string strVal);
Sets 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.
PreferIpv6
void put_PreferIpv6(bool boolVal);
Determines whether IPv6 is preferred over IPv4 when both are available for a hostname.
The default value is , which means IPv4 is preferred.
false
ReadTimeout
void put_ReadTimeout(int intVal);
Sets the maximum number of seconds to wait when the SMTP or POP3 server stops responding.
The default value is 30 seconds.
RequireHostnameMatch
void put_RequireHostnameMatch(bool boolVal);
Determines whether the hostname used for the TLS connection must match a name in the server certificate's Subject Alternative Name (SAN) extension.
The comparison is made against the SNI hostname sent in the TLS handshake.
MailMan normally uses the configured server hostname. When connecting by IP
address or through an alternate endpoint, set
SniHostname to the expected DNS hostname.
Hostname matching is enforced independently of
RequireSslCertVerify. Therefore,
it still occurs when certificate-chain verification is not required.
The default value is .
false
RequireSslCertVerify
void put_RequireSslCertVerify(bool boolVal);
Determines whether Chilkat requires the SMTP or POP3 server certificate chain to be successfully verified for an SSL/TLS connection.
When set to , Chilkat rejects the connection if the certificate
is expired, is not yet valid, or its chain/signature cannot be verified to a
trusted root.
true
Certificate-chain verification is separate from hostname matching and public
key pinning. RequireHostnameMatch
is enforced independently, even when this property is .
falseTlsPinSet supplements, rather than replaces,
certificate verification.
The default value is . This property applies only to SSL/TLS
connections.
false
ResetDateOnLoad
void put_ResetDateOnLoad(bool boolVal);
Determines 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
void put_SendBufferSize(int intVal);
Sets the buffer size used by the underlying TCP/IP socket when sending data.
The default value is 32767.
SizeLimit
void put_SizeLimit(int intVal);
Sets the maximum message size, in bytes, for POP3 operations that can download one or more complete emails. It applies to any method capable of downloading a full email and does not restrict header-only or partial-body retrieval.
The default value is 0, which means no size limit.
For multi-message retrieval, a message larger than the limit is omitted from the
result. No placeholder Email is added for the skipped message, and
skipping an oversized message does not by itself cause the retrieval method to
fail.
SmtpAuthMethod
void put_SmtpAuthMethod(string strVal);
Sets 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.
SmtpFailReason
string smtpFailReason();
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.
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.
SmtpHost
void put_SmtpHost(string strVal);
Sets the SMTP server hostname or IP address.
Do not include http:// or https://. The value may be
a hostname, IPv4 address, or IPv6 address.
SmtpLoginDomain
void put_SmtpLoginDomain(string strVal);
Sets the Windows domain to use when logging in to an SMTP server with NTLM authentication.
Leave this property empty if no domain is required.
topSmtpMailFrom
void put_SmtpMailFrom(string strVal);
Sets 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.
topSmtpPassword
void put_SmtpPassword(string strVal);
Sets 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.
SmtpPipelining
void put_SmtpPipelining(bool boolVal);
Determines 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
void put_SmtpPort(int intVal);
Sets the SMTP server port.
The default value is 25. If using implicit SSL/TLS with
SmtpSsl = , the common port is true465.
SmtpSessionLog
string smtpSessionLog();
Provides 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.
SmtpSsl
void put_SmtpSsl(bool boolVal);
Determines 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. Implicit SMTP TLS commonly uses port
true465.
Implicit TLS takes precedence over explicit TLS. Therefore, when
SmtpSsl = , the settings in
trueStartTLS and
StartTLSifPossible do not cause a
separate STARTTLS upgrade.
The default value is . When
falseAutoFix is enabled, a standard SMTP port can
cause Chilkat to select the appropriate TLS mode automatically before
connecting.
SmtpSslServerCertVerified
bool get_SmtpSslServerCertVerified()
Indicates whether the SMTP server certificate chain was successfully verified during the most recent SSL/TLS SMTP connection.
This property reports certificate-chain verification only. It does not report hostname matching or public key pinning. When either of those checks is required, a mismatch causes the connection itself to fail.
This property is meaningful only after an SSL/TLS SMTP connection attempt.
topSmtpUsername
void put_SmtpUsername(string strVal);
Sets 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.
SniHostname
void put_SniHostname(string strVal);
Specifies the DNS hostname sent in the Server Name Indication (SNI) extension of the TLS handshake for SMTP and POP3 connections.
Normally this property is left empty. In that case, MailMan uses SmtpHost for SMTP connections and MailHost for POP3 connections.
Set this property when connecting by IP address or through an alternate endpoint while the server's TLS certificate and virtual-host configuration use a DNS hostname. The value is also used for certificate hostname comparison when RequireHostnameMatch is .
true
The default value is the empty string.
topSocksHostname
void put_SocksHostname(string strVal);
Sets the SOCKS4 or SOCKS5 proxy hostname or IPv4 address.
This property is used only when SocksVersion is set to
4 or 5.
SocksPassword
void put_SocksPassword(string strVal);
Sets the SOCKS5 proxy password, if authentication is required.
SOCKS4 does not use passwords, so this property applies only to SOCKS5.
topSocksPort
void put_SocksPort(int intVal);
Sets the SOCKS proxy port.
The default value is 1080. This property applies only when
SocksVersion is set to 4 or 5.
SocksUsername
void put_SocksUsername(string strVal);
Sets the SOCKS4 or SOCKS5 proxy username.
This property is used only when SocksVersion is set to
4 or 5.
SocksVersion
void put_SocksVersion(int intVal);
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
void put_SoRcvBuf(int intVal);
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
void put_SoSndBuf(int intVal);
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
void put_SslAllowedCiphers(string strVal);
Sets 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
top
SslProtocol
void put_SslProtocol(string strVal);
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.
StartTLS
void put_StartTLS(bool boolVal);
Determines 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 TLS
before authenticating and sending email. The connection fails if the server
does not support the required upgrade.
SmtpSsl takes precedence. If implicit TLS is
enabled, this property does not cause an additional explicit TLS upgrade.
The default value is . Use
falseStartTLSifPossible when the upgrade
should be attempted only when the server advertises support.
This property applies to SMTP only, not POP3.
StartTLSifPossible
void put_StartTLSifPossible(bool boolVal);
Determines whether Chilkat attempts SMTP STARTTLS when the server
advertises support for it.
If the server supports STARTTLS, the connection is upgraded to TLS.
Otherwise, the connection remains unencrypted.
SmtpSsl takes precedence. If implicit TLS is
enabled, no separate STARTTLS upgrade is attempted. Use
StartTLS = instead when encryption is
required and the connection should fail if explicit TLS is unavailable.
true
The default value is . This property applies to SMTP only, not
POP3.
true
TlsCipherSuite
string tlsCipherSuite();
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_SHA256
top
TlsPinSet
void put_TlsPinSet(string strVal);
Sets the expected Subject Public Key Info (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 connection fails.
Pinning supplements normal certificate-chain verification; it does not replace it. A matching pin does not by itself make an expired or otherwise invalid certificate acceptable.
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.
TlsVersion
string tlsVersion();
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.
UncommonOptions
void put_UncommonOptions(string strVal);
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.
UseApop
void put_UseApop(bool boolVal);
Determines whether Chilkat automatically uses APOP authentication when the POP3 server supports it.
The default value is .
false
Utf8
void put_Utf8(bool boolVal);
When set to true, all string arguments and return values are interpreted as UTF-8 strings. When set to false, they are interpreted as ANSI strings.
In Chilkat v11.0.0 and later, the default value is true. Before v11.0.0, it was false.
VerboseLogging
void put_VerboseLogging(bool boolVal);
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
string version();
Methods
AddPfxSourceBd
Adds a PFX/PKCS#12 certificate store to the MailMan object's internal list of sources used for locating certificates and private keys.
bd is a BinData object containing 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.
password specifies the password required to open the PFX.
Returns true for success, false for failure.
topAddPfxSourceFile
Adds a PFX/PKCS#12 file to the MailMan object's internal list of sources used for locating certificates and private keys.
The argument is the path to a pfxFilePath.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 argument specifies the password required to open the PFX.
password
Returns true for success, false for failure.
CheckMail
Returns the number of messages currently available in the POP3 mailbox. Returns
-1 if an error occurs.
If no POP3 session is active, Chilkat connects and authenticates automatically.
After a successful call, the POP3 session remains open and can be reused by
subsequent POP3 methods. Call Pop3EndSession
or Pop3EndSessionNoQuit to end it.
If this method fails, use VerifyPopConnection
to test basic connectivity and VerifyPopLogin
to test authentication.
CheckMailAsync (1)
Creates an asynchronous task to call the CheckMail method with the arguments provided.
Returns null on failure
ClearPop3SessionLog
ClearSmtpSessionLog
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.
Returns null on failure
DeleteBundle
Deletes POP3 messages by using the UIDLs stored in the X-UIDL
headers of the Email objects in emailBundle. An email that does not contain
an X-UIDL header is skipped.
Chilkat processes the bundle and marks each located message with
DELE. If a connection failure occurs before processing is complete,
the POP3 session is lost and all uncommitted deletion marks are forgotten.
If ImmediateDelete is
, which is the default, Chilkat sends a single
trueQUIT after the entire bundle has been processed. This commits all
deletion marks and closes the POP3 session. If it is , the
marks remain pending until the application calls
falsePop3EndSession.
When making multiple deletion calls, it is usually more efficient to set
ImmediateDelete to , perform all deletion
operations, and call falsePop3EndSession once at the end.
Returns true for success, false for failure.
topDeleteBundleAsync (1)
Creates an asynchronous task to call the DeleteBundle method with the arguments provided.
Returns null on failure
DeleteByMsgnum
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.
DeleteByMsgnumAsync (1)
Creates an asynchronous task to call the DeleteByMsgnum method with the arguments provided.
Returns null on failure
DeleteByUidl
Marks the POP3 message identified by the UIDL in uidl for deletion. UIDLs are
preferred over message numbers because they remain stable across sessions while
the message remains in the mailbox.
If ImmediateDelete is
, which is the default, Chilkat sends trueQUIT, commits
the deletion, and closes the session before returning. If it is
, the message is only marked with falseDELE; call
Pop3EndSession to commit all pending
deletions.
Pop3Reset or
Pop3EndSessionNoQuit cancels
uncommitted deletion marks.
If no POP3 session is active, Chilkat connects and authenticates automatically.
Returns true for success, false for failure.
DeleteByUidlAsync (1)
Creates an asynchronous task to call the DeleteByUidl method with the arguments provided.
Returns null on failure
DeleteEmail
Deletes a POP3 message by using the UIDL stored in the X-UIDL
header of the Email in email. If email does not contain an
X-UIDL header, the method fails.
If no POP3 session is active, Chilkat connects and authenticates automatically. The UIDL is used to locate the corresponding message in the current mailbox.
If ImmediateDelete is
, which is the default, Chilkat marks the message for deletion,
sends trueQUIT to commit the deletion, and closes the POP3 session before
returning. If it is , the message is marked with
falseDELE and the deletion remains pending until
Pop3EndSession sends
QUIT.
Pop3Reset or
Pop3EndSessionNoQuit cancels
uncommitted deletion marks. Uncommitted marks are also forgotten if the POP3
connection is lost before QUIT is sent.
Returns true for success, false for failure.
topDeleteEmailAsync (1)
Creates an asynchronous task to call the DeleteEmail method with the arguments provided.
Returns null on failure
DeleteUidlSet
Marks the POP3 messages whose UIDLs are listed in stUidls for deletion.
Chilkat processes the UIDL set and sends DELE for each located
message. If a connection failure occurs before processing is complete, the POP3
session is lost and all uncommitted deletion marks are forgotten.
If ImmediateDelete is
, which is the default, Chilkat sends a single
trueQUIT after the entire set has been processed. This commits all
deletion marks and closes the POP3 session. If it is , the
marks remain pending until the application calls
falsePop3EndSession.
When making multiple deletion calls, it is usually more efficient to set
ImmediateDelete to , perform all deletion
operations, and call falsePop3EndSession once at the end.
Returns true for success, false for failure.
topDeleteUidlSetAsync (1)
Creates an asynchronous task to call the DeleteUidlSet method with the arguments provided.
Returns null on failure
FetchAll
Retrieves messages from the POP3 mailbox and appends them to the
EmailBundle in bundle. Existing emails in bundle are preserved.
If headersOnly is , Chilkat retrieves the message headers and a partial
body. truenumBodyLines specifies the number of body lines; a value of 0 retrieves
the first body line. Attachments are not downloaded. If headersOnly is
, Chilkat retrieves the complete messages, including
attachments.
false
If keepOnServer is , every retrieved message remains on the POP3 server,
regardless of trueImmediateDelete.
If keepOnServer is and complete messages are retrieved, Chilkat sends
falseDELE for each message after it is downloaded. If
ImmediateDelete = , Chilkat sends trueQUIT only after the
entire requested set has been downloaded successfully; this commits the
deletions and closes the POP3 session. If
ImmediateDelete = , the deletion marks remain pending in the
open session until the application calls
falsePop3EndSession.
If the POP3 connection is lost before QUIT, the session ends and the
server forgets all uncommitted deletion marks. Chilkat automatically reconnects
and establishes a new session when the next POP3 method is called.
Header-only or partial retrieval never marks messages for deletion, regardless
of keepOnServer or ImmediateDelete.
MaxCount can limit the result to the newest
messages. SizeLimit can omit oversized
messages from full-message retrieval.
If an error occurs while retrieving multiple messages, processing stops at the
first failure. Messages that were successfully retrieved before the failure
remain appended to the output EmailBundle; Chilkat does not remove
those results or restore the bundle to its prior state.
Returns true for success, false for failure.
FetchAllAsync (1)
Creates an asynchronous task to call the FetchAll method with the arguments provided.
Returns null on failure
FetchByUidl
Retrieves one message by UIDL and stores it in the Email in email. The
message remains on the POP3 server.
If headerOnly is , Chilkat retrieves the headers and a partial body.
truenumBodyLines specifies the number of body lines; a value of 0 retrieves the
first body line. Attachments are not downloaded. If headerOnly is
, Chilkat retrieves the complete message, including
attachments.
false
If uidl is not found or the fetch otherwise fails, email is left unchanged.
Returns true for success, false for failure.
topFetchByUidlAsync (1)
Creates an asynchronous task to call the FetchByUidl method with the arguments provided.
Returns null on failure
FetchFull
Downloads the complete version of the header-only or partial Email
in partialEmail and stores it in fullEmail. The full result includes the complete body and
any attachments.
partialEmail must retain the UIDL needed to locate the same message in the POP3 mailbox.
The original POP3 session is not required; Chilkat connects and authenticates
automatically when a session is not already active.
If the UIDL no longer exists in the mailbox, or if the full message cannot be
downloaded for another reason, the method fails and fullEmail remains unchanged.
This method is useful when an application first retrieves headers or partial bodies and downloads the complete message only after the user selects it.
Returns true for success, false for failure.
topFetchFullAsync (1)
Creates an asynchronous task to call the FetchFull method with the arguments provided.
Returns null on failure
FetchMimeBd
Fetches an email from the POP3 server by UIDL and stores the raw MIME source
bytes in mimeData.
Chilkat clears the existing contents of mimeData before attempting the download. If
the method succeeds, mimeData contains the downloaded MIME bytes. If it fails, mimeData
remains empty.
Returns true for success, false for failure.
FetchMimeBdAsync (1)
Creates an asynchronous task to call the FetchMimeBd method with the arguments provided.
Returns null on failure
FetchMimeByMsgnumBd
Retrieves an email by POP3 message number and stores the raw MIME source bytes in .
bd
Chilkat clears the existing contents of bd before attempting the download. If
the method succeeds, bd contains the downloaded MIME bytes. If it fails, bd
remains empty.
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 POP3 session because doing so could change the message numbers.
Returns true for success, false for failure.
topFetchMimeByMsgnumBdAsync (1)
Creates an asynchronous task to call the FetchMimeByMsgnumBd method with the arguments provided.
Returns null on failure
FetchOne
Retrieves one message by POP3 message number and stores it in the
Email in email. The first message has number 1. The message
remains on the server.
If headerOnly is , Chilkat retrieves the headers and a partial body.
truenumBodyLines specifies the number of body lines; a value of 0 retrieves the
first body line. Attachments are not downloaded. If headerOnly is
, Chilkat retrieves the complete message, including
attachments.
false
If the message number is invalid or the fetch otherwise fails, email is left
unchanged.
POP3 message numbers are specific to the current mailbox state and can change between sessions. Use UIDLs when a message must be identified reliably across sessions.
Returns true for success, false for failure.
topFetchOneAsync (1)
Creates an asynchronous task to call the FetchOne method with the arguments provided.
Returns null on failure
FetchRange
Retrieves a range of messages from the POP3 mailbox and appends them to the
EmailBundle in bundle. Existing emails in bundle are preserved.
startIndex and endIndex are zero-based, inclusive indexes in the server's current mailbox
order. The messages are appended in increasing index order. If endIndex extends
past the end of the mailbox, Chilkat stops at the final message. If startIndex is
greater than endIndex, the method succeeds without appending any messages.
If headersOnly is , Chilkat retrieves the message headers and a partial
body. truenumBodyLines specifies the number of body lines; a value of 0 retrieves
the first body line. Attachments are not downloaded. If headersOnly is
, Chilkat retrieves the complete messages, including
attachments.
false
If keepOnServer is , every retrieved message remains on the POP3 server,
regardless of trueImmediateDelete.
If keepOnServer is and complete messages are retrieved, Chilkat sends
falseDELE for each message after it is downloaded. If
ImmediateDelete = , Chilkat sends trueQUIT only after the
entire requested set has been downloaded successfully; this commits the
deletions and closes the POP3 session. If
ImmediateDelete = , the deletion marks remain pending in the
open session until the application calls
falsePop3EndSession.
If the POP3 connection is lost before QUIT, the session ends and the
server forgets all uncommitted deletion marks. Chilkat automatically reconnects
and establishes a new session when the next POP3 method is called.
Header-only or partial retrieval never marks messages for deletion, regardless
of keepOnServer or ImmediateDelete.
If an error occurs while retrieving multiple messages, processing stops at the
first failure. Messages that were successfully retrieved before the failure
remain appended to the output EmailBundle; Chilkat does not remove
those results or restore the bundle to its prior state.
Returns true for success, false for failure.
topFetchRangeAsync (1)
Creates an asynchronous task to call the FetchRange method with the arguments provided.
Returns null on failure
FetchUidls
Retrieves the UIDLs of the messages currently stored in the POP3 mailbox and
stores them in uidls. The UIDLs are returned in the server's current mailbox
order, with one entry for each message.
A POP3 UIDL, or Unique ID Listing, is a persistent identifier assigned by the mail server. Unlike POP3 message numbers, which can change between sessions, a UIDL remains stable for as long as the message remains in the mailbox.
If no POP3 session is active, Chilkat connects and authenticates automatically. After a successful call, the session remains open for reuse by subsequent POP3 methods.
Returns true for success, false for failure.
topFetchUidlsAsync (1)
Creates an asynchronous task to call the FetchUidls method with the arguments provided.
Returns null on failure
FetchUidlSet
Retrieves the messages whose UIDLs are listed in uidls and appends them to the
EmailBundle in bundle. Existing emails in bundle are preserved, and the
retrieved messages remain on the POP3 server.
UIDLs are processed in the order in which they occur in uidls. A duplicate UIDL
causes the same message to be appended again. A UIDL that is not present in the
mailbox is ignored and does not by itself cause the method to fail.
If headersOnly is , Chilkat retrieves the headers and a partial body.
truenumBodyLines specifies the number of body lines; a value of 0 retrieves the
first body line. Attachments are not downloaded. If headersOnly is
, Chilkat retrieves the complete messages, including
attachments.
false
If an error occurs while retrieving multiple messages, processing stops at the
first failure. Messages that were successfully retrieved before the failure
remain appended to the output EmailBundle; Chilkat does not remove
those results or restore the bundle to its prior state.
Returns true for success, false for failure.
topFetchUidlSetAsync (1)
Creates an asynchronous task to call the FetchUidlSet method with the arguments provided.
Returns null on failure
GetLastJsonData
Copies into json any structured JSON details produced by the immediately preceding method call.
Not every MailMan method produces JSON details. Call this method immediately after the operation of interest so the returned information corresponds to that operation.
topGetMailboxCount
Returns the number of emails currently available in the POP3 mailbox. Returns -1 if an error occurs.
This method is functionally identical to CheckMail.
GetMailboxCountAsync (1)
Creates an asynchronous task to call the GetMailboxCount method with the arguments provided.
Returns null on failure
GetMailboxInfoXml
Returns an XML document containing information about the messages currently stored in the POP3 mailbox.
The XML includes the UIDL and size, in bytes, for each message in the mailbox. This is useful for scanning mailbox state without downloading the full messages.
Returns true for success, false for failure.
GetMailboxInfoXmlAsync (1)
Creates an asynchronous task to call the GetMailboxInfoXml method with the arguments provided.
Returns null on failure
GetMailboxSize
Returns the total combined size, in bytes, of all messages currently stored in the POP3 mailbox. This is also known as the POP3 maildrop size.
If no POP3 session is active, Chilkat connects and authenticates automatically. After a successful call, the session remains open for reuse by subsequent POP3 methods.
Returns -1 on failure.
GetMailboxSizeAsync (1)
Creates an asynchronous task to call the GetMailboxSize method with the arguments provided.
Returns null on failure
GetServerCert
Gets the digital certificate presented by the SMTP or POP3 server for the current SSL/TLS connection and stores it in
.
cert
If is useSmtp, Chilkat returns the certificate for the SMTP connection. If
true is useSmtp, Chilkat returns the certificate for the POP3 connection.
false
This method applies only when the current connection uses SSL/TLS.
Returns true for success, false for failure.
topGetSizeByUidl
Returns the size, in bytes, of the email on the POP3 server identified by . The size includes the full
message content, including attachments.
uidl
Returns -1 if an error occurs.
GetSizeByUidlAsync (1)
Creates an asynchronous task to call the GetSizeByUidl method with the arguments provided.
Returns null on failure
IsSmtpDsnCapable
Contacts the SMTP server and determines whether it supports the DSN, or Delivery Status Notification, extension defined by RFC 3461.
DSN support is used with properties such as DsnEnvid, DsnNotify, and DsnRet.
Returns if the SMTP server advertises DSN support, otherwise returns true.
false
IsSmtpDsnCapableAsync (1)
Creates an asynchronous task to call the IsSmtpDsnCapable method with the arguments provided.
Returns null on failure
LoadMbxFile
Loads emails from a .mbx mailbox file and stores them in .
bundle
If a filter has been configured, only the emails matching the filter are returned.
Returns true for success, false for failure.
topLoadTaskCaller
Associates this MailMan object with the original MailMan caller of the asynchronous operation represented by .
task
Use this method when the application has a Task but no longer has a reference to the MailMan object that started the asynchronous operation. A common example is code running in a TaskCompleted event handler that needs access to the original MailMan object.
may be the task returned by any MailMan asynchronous method, and the task does not need to be complete.
task
This method does not copy the original caller's configuration or state. After it succeeds, this MailMan object refers to the same MailMan state as the original caller. Any state previously associated with this MailMan object is replaced, and changes made through either reference affect the same MailMan instance.
Returns true for success, false for failure.
topOpenSmtpConnection
Explicitly opens a connection to the SMTP server and authenticates if a username and password, OAuth2 token, or other applicable authentication settings have been provided.
Calling this method is optional. Email-sending methods such as SendEmail automatically open and authenticate
the SMTP connection when needed.
This method is equivalent to 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.
Returns null on failure
Pop3Authenticate
Authenticates with the POP3 server using the current POP3 property settings, such as PopUsername,
PopPassword, and any authentication-related options.
This method should be called only after a successful call to Pop3Connect. The Pop3BeginSession
method performs both steps and is equivalent to calling Pop3Connect followed by
Pop3Authenticate.
Calling this method is optional in most applications because POP3 methods that communicate with the server automatically connect and authenticate if no authenticated session is already open.
Returns true for success, false for failure.
topPop3AuthenticateAsync (1)
Creates an asynchronous task to call the Pop3Authenticate method with the arguments provided.
Returns null on failure
Pop3BeginSession
Explicitly begins a POP3 session by connecting to the POP3 server and authenticating using the current POP3 property settings.
Calling this method is optional. Any method that requires an established POP3 session automatically connects and logs in if a session is not already open.
Returns true for success, false for failure.
Pop3BeginSessionAsync (1)
Creates an asynchronous task to call the Pop3BeginSession method with the arguments provided.
Returns null on failure
Pop3Connect
Explicitly connects to the POP3 server. If SSL/TLS is required by the current property settings, the secure TLS channel is established as part of this call. This method receives the server's initial greeting but does not authenticate.
After Pop3Connect succeeds, call Pop3Authenticate to log in. The Pop3BeginSession
method performs both steps and is equivalent to calling Pop3Connect followed by
Pop3Authenticate.
Calling this method is optional in most applications because POP3 methods that communicate with the server automatically
connect and authenticate if no authenticated session is already open. When finished with the POP3 server, call
Pop3EndSession or Pop3EndSessionNoQuit to disconnect.
Returns true for success, false for failure.
topPop3ConnectAsync (1)
Creates an asynchronous task to call the Pop3Connect method with the arguments provided.
Returns null on failure
Pop3EndSession
Sends the POP3 QUIT command and closes the current POP3 connection.
Any messages marked for deletion during the session are permanently deleted when
the server accepts QUIT. After the session ends,
IsPop3Connected is
and falsePop3SessionId
returns 0.
Returns true for success, false for failure.
Pop3EndSessionAsync (1)
Creates an asynchronous task to call the Pop3EndSession method with the arguments provided.
Returns null on failure
Pop3EndSessionNoQuit
Closes the POP3 connection without sending the QUIT command.
Pending deletion marks are not committed. Messages marked with DELE
during the session remain in the mailbox after reconnecting.
Use Pop3EndSession when pending
deletions should be finalized.
This method should always return .
true
Pop3EndSessionNoQuitAsync (1)
Creates an asynchronous task to call the Pop3EndSessionNoQuit method with the arguments provided.
Returns null on failure
Pop3Noop
Sends a POP3 NOOP command to the server.
This can be useful for keeping a POP3 session alive or for verifying that the current POP3 connection is still open and functioning.
Returns true for success, false for failure.
Pop3NoopAsync (1)
Creates an asynchronous task to call the Pop3Noop method with the arguments provided.
Returns null on failure
Pop3Reset
Sends the POP3 RSET command to the server.
Any messages marked for deletion during the current session are unmarked and remain in the mailbox. The POP3 session remains open after a successful reset.
Returns true for success, false for failure.
topPop3ResetAsync (1)
Creates an asynchronous task to call the Pop3Reset method with the arguments provided.
Returns null on failure
Pop3SendRawCommand
string pop3SendRawCommand(string command, string charset);
Sends a raw command to the POP3 server and returns the server's response.
If contains non-US-ASCII characters, command specifies the character set used to encode
the command before it is sent. Examples include charsetutf-8, ansi, iso-8859-1, and
Shift_JIS.
This method is intended for advanced use, diagnostics, or issuing POP3 commands not directly exposed by higher-level MailMan methods.
Returns true for success, false for failure.
topPop3SendRawCommandAsync (1)
Creates an asynchronous task to call the Pop3SendRawCommand method with the arguments provided.
Returns null on failure
QuickSend
Sends a simple email to a single recipient without requiring the application to explicitly create an Email
object.
The argument is the sender address, fromAddr is the recipient address,
toAddr is the message subject, subject is the plain-text body, and body is the
SMTP server hostname.
smtpServer
This method is convenient for simple cases. For attachments, HTML email, CC/BCC recipients, alternate bodies, signing,
encryption, or more control over headers and SMTP behavior, create an Email object and use
SendEmail instead.
Returns true for success, false for failure.
topQuickSendAsync (1)
Creates an asynchronous task to call the QuickSend method with the arguments provided.
Returns null on failure
RenderToMime
Renders the Email in email as the MIME text that would be sent to the
SMTP server, without actually sending the email.
Rendering uses the current MailMan and Email settings and may include
MIME formatting, header encoding, replacement-pattern substitution, digital
signing, encryption, and other transformations required before transmission.
This method does not modify email. Values generated as part of rendering are
produced for the returned MIME and are not written back to the supplied
Email. Repeated calls are not guaranteed to produce byte-for-byte
identical MIME.
By default, a Bcc header present in email is included in the rendered
MIME. Add NoBccHeader to the Email object's
UncommonOptions property to omit the Bcc header from the
MIME.
Conceptually, SendEmail performs this
rendering step and then sends the resulting MIME.
Note: If the MIME may contain 8-bit or binary data, use
RenderToMimeBytes or
RenderToMimeBd. Returning binary MIME
as a string can corrupt bytes that are not valid text.
Returns true for success, false for failure.
RenderToMimeBd
Renders the Email in email as MIME bytes and appends the result to
renderedMime.
This method is the BinData version of
RenderToMimeBytes. It is useful
when the rendered MIME must be preserved as bytes, especially when it may
contain 8-bit or binary MIME content.
Rendering does not modify email. Values generated for the rendered MIME are not
written back to the supplied Email.
Returns true for success, false for failure.
RenderToMimeSb
Renders the Email in email as MIME text and appends the result to renderedMime.
This method is the StringBuilder version of
RenderToMime. Rendering does not modify
email; values generated for the rendered MIME are not written back to the
supplied Email.
Note: If the MIME may contain 8-bit or binary content, use
RenderToMimeBytes or
RenderToMimeBd instead. Returning
binary MIME as text can corrupt data that is not valid text.
Returns true for success, false for failure.
SendBundle
Sends each email in . This is equivalent to calling bundleSendEmail once for each email in the
bundle.
If an error occurs while sending one email, Chilkat continues attempting to send the remaining emails unless a fatal error occurs that requires the send operation to stop.
Because it can be difficult or impossible to programmatically determine exactly which emails succeeded and which failed
after a bundle send, applications that need detailed per-message status should loop through the bundle and call
SendEmail for each message individually.
Returns true for success, false for failure.
topSendBundleAsync (1)
Creates an asynchronous task to call the SendBundle method with the arguments provided.
Returns null on failure
SendEmail
Sends a single email through the configured SMTP server.
Chilkat automatically opens the SMTP connection when needed. After the email is sent, the connection remains open so a
subsequent call to SendEmail or another email-sending method can reuse the same SMTP connection. If an
SMTP-related property changes, such as SmtpHost, SmtpUsername, password, port, or SSL/TLS
settings, Chilkat automatically closes the existing connection and establishes a new one using the updated settings on
the next send.
Important: Some SMTP servers do not complete final delivery processing until the SMTP connection is
closed. In these cases, call CloseSmtpConnection after sending. Most SMTP servers process the message
immediately, so explicitly closing the connection is usually not required.
By default, a Bcc header in email is included in the MIME sent to the
SMTP server. To prevent Bcc addresses from appearing in the MIME header, add
NoBccHeader to the Email object's
UncommonOptions property.
After sending, additional information about the SMTP transaction may be available by calling
GetLastJsonData.
If this method fails, examine SmtpFailReason and LastSmtpStatus. The latter is nonzero only when Chilkat established an SMTP session and received a failure status code from the server.
Returns true for success, false for failure.
SendEmailAsync (1)
Creates an asynchronous task to call the SendEmail method with the arguments provided.
Returns null on failure
SendMime
Sends an email from caller-supplied MIME text. The MIME source in is passed to the SMTP server
as the message content.
mimeSource
This method provides complete control over the MIME that is sent. It is useful when the application already has a fully
formed MIME message, or when the MIME was created externally and should not be rebuilt from an Email object.
The argument is the SMTP reverse-path address used in the fromAddrMAIL FROM command. This is
where bounced email and non-delivery reports are normally delivered. It can be different from the From
header in the MIME.
recipients is a comma-separated list of plain email addresses used in SMTP
RCPT TO commands. Do not include display names or formatted mailbox
syntax; supply only addresses such as alice@example.com,bob@example.com.
If this method fails, examine SmtpFailReason and LastSmtpStatus. The latter is nonzero only when Chilkat established an SMTP session and received a failure status code from the server.
Returns true for success, false for failure.
SendMimeAsync (1)
Creates an asynchronous task to call the SendMime method with the arguments provided.
Returns null on failure
SendMimeBd
Sends an email from caller-supplied MIME bytes contained in .
mimeData
This method is the BinData version of SendMimeBytes. It is useful when the MIME must be sent
exactly as bytes, such as when it contains binary MIME content, 8bit encodings, or a DKIM/DomainKey signature where byte
preservation matters.
fromAddr is the SMTP reverse-path address used in the MAIL FROM command.
recipients is a comma-separated list of plain email addresses used in SMTP
RCPT TO commands. Do not include display names or formatted mailbox
syntax in recipients.
If this method fails, examine SmtpFailReason and LastSmtpStatus. The latter is nonzero only when Chilkat established an SMTP session and received a failure status code from the server.
Returns true for success, false for failure.
SendMimeBdAsync (1)
Creates an asynchronous task to call the SendMimeBd method with the arguments provided.
Returns null on failure
SetDecryptCert
Explicitly specifies the certificate to use when decrypting encrypted email.
The certificate must correspond to the recipient certificate used to encrypt the message, and the associated private key must be available to Chilkat through the certificate itself, an added PFX source, an XML certificate vault, or the platform certificate store where applicable.
Returns true for success, false for failure.
topSetDecryptCert2
Explicitly specifies both the certificate and its associated private key to use when decrypting S/MIME encrypted email.
In most cases, it is simpler to call AddPfxSourceFile or AddPfxSourceData to provide the
certificate and private key together in a PFX/PKCS#12 source. On Windows, if the certificate and private key are already
installed in the default certificate store, no explicit setup may be needed because MailMan automatically searches the
Windows certificate stores.
Returns true for success, false for failure.
topSetPassword
Sets the POP3 or SMTP password from a SecureString.
The argument specifies which password is being set. Use protocolpop3 to set the POP3 password,
which is equivalent to setting the PopPassword property. Use smtp to set the SMTP password,
which is equivalent to setting the SmtpPassword property.
Returns true for success, false for failure.
SetSslClientCert
Sets the client-side certificate to use for SSL/TLS connections.
This is typically not required. Most SSL/TLS connections authenticate the server only, while the client remains unauthenticated at the TLS layer. Use this method only when the SMTP or POP3 server requires TLS client certificate authentication.
Returns true for success, false for failure.
topSetSslClientCertPem
Sets the client-side certificate to use for SSL/TLS connections, loading it from PEM data or from a PEM file.
The argument may contain PEM text or the path to a PEM file. The
pemDataOrFilename argument supplies the password if the PEM private key is encrypted.
pemPassword
TLS client certificates are typically required only when the server uses mutual TLS. Most SMTP and POP3 SSL/TLS connections do not require a client certificate.
Returns true for success, false for failure.
SetSslClientCertPfx
Sets the client-side certificate to use for SSL/TLS connections, loading it from a PFX/PKCS#12 file.
The argument is the path to the PFX file, and pfxPath is the password required
to open it.
pfxPassword
TLS client certificates are typically required only when the server uses mutual TLS. Most SMTP and POP3 SSL/TLS connections do not require a client certificate.
Returns true for success, false for failure.
topSmtpAuthenticate
Authenticates with the SMTP server using the current SMTP property settings, such as SmtpUsername,
SmtpPassword, OAuth2 token settings, and other authentication-related options.
This method should be called only after a successful call to SmtpConnect. The
OpenSmtpConnection method performs both steps and is equivalent to calling SmtpConnect
followed by SmtpAuthenticate.
Calling this method is optional in most applications because SMTP methods that communicate with the server, such as
SendEmail, automatically connect and authenticate if no authenticated SMTP connection is already open.
Returns true for success, false for failure.
SmtpAuthenticateAsync (1)
Creates an asynchronous task to call the SmtpAuthenticate method with the arguments provided.
Returns null on failure
SmtpConnect
Explicitly connects to the SMTP server. If SSL/TLS is required by the current property settings, the secure TLS channel is established as part of this call. This method receives the server's initial greeting but does not authenticate.
After SmtpConnect succeeds, call SmtpAuthenticate to authenticate. The
OpenSmtpConnection method performs both steps and is equivalent to calling SmtpConnect
followed by SmtpAuthenticate.
Calling this method is optional in most applications because SMTP methods that communicate with the server, such as
SendEmail, automatically connect and authenticate if no authenticated SMTP connection is already open.
Returns true for success, false for failure.
SmtpConnectAsync (1)
Creates an asynchronous task to call the SmtpConnect method with the arguments provided.
Returns null on failure
SmtpNoop
Sends an SMTP NOOP command to the server.
This can be useful for testing whether the SMTP connection is working and still valid. If an SMTP connection is not
already open, SmtpNoop automatically establishes the connection using the current SMTP property settings.
Returns true for success, false for failure.
SmtpNoopAsync (1)
Creates an asynchronous task to call the SmtpNoop method with the arguments provided.
Returns null on failure
SmtpReset
Sends an SMTP RSET command to the server.
The RSET command resets the server-side state of the current SMTP transaction so the connection can be used
to begin a new mail transaction. This method is rarely needed. It would normally only be useful if a mail-sending method
failed and left the SMTP connection open in a non-initial state, a situation that should generally not occur with the
Chilkat MailMan object.
Returns true for success, false for failure.
topSmtpResetAsync (1)
Creates an asynchronous task to call the SmtpReset method with the arguments provided.
Returns null on failure
SmtpSendRawCommand
string smtpSendRawCommand(string command, string charset, bool bEncodeBase64);
Sends a raw command to the SMTP server and returns the server's response.
If contains non-US-ASCII characters, command specifies the character set used to encode
the command before it is sent. Examples include charsetutf-8, ansi, iso-8859-1, and
Shift_JIS.
If is bEncodeBase64, the response is returned in Base64-encoded form. If
true is bEncodeBase64, the raw response text is returned.
false
This method is intended for advanced use, diagnostics, or issuing SMTP commands not directly exposed by higher-level MailMan methods.
Returns true for success, false for failure.
SmtpSendRawCommandAsync (1)
Creates an asynchronous task to call the SmtpSendRawCommand method with the arguments provided.
Returns null on failure
SshAuthenticatePk
Authenticates with the SSH server using public-key authentication after an SSH tunnel has been opened.
The argument is the SSH account name. The sshLogin argument, despite its name in
this signature, is the sshUsernameSshKey containing the private key used for authentication. The matching public key
must already be installed for the SSH account on the server.
An SSH tunneling session begins by calling SshOpenTunnel to connect to the SSH server, followed by either
SshAuthenticatePk or SshAuthenticatePw to authenticate.
After the SSH tunnel is established and authenticated, MailMan's underlying SMTP or POP3 communication uses the SSH tunnel. No other programming changes are required beyond the initial tunnel setup calls.
Returns true for success, false for failure.
topSshAuthenticatePkAsync (1)
Creates an asynchronous task to call the SshAuthenticatePk method with the arguments provided.
Returns null on failure
SshAuthenticatePw
Authenticates with the SSH server using an SSH username and password after an SSH tunnel has been opened.
The argument is the SSH account name, and sshLogin is the corresponding SSH
password.
sshPassword
An SSH tunneling session begins by calling SshOpenTunnel to connect to the SSH server, followed by either
SshAuthenticatePw or SshAuthenticatePk to authenticate.
After the SSH tunnel is established and authenticated, MailMan's underlying SMTP or POP3 communication uses the SSH tunnel. No other programming changes are required beyond the initial tunnel setup calls.
Returns true for success, false for failure.
SshAuthenticatePwAsync (1)
Creates an asynchronous task to call the SshAuthenticatePw method with the arguments provided.
Returns null on failure
SshCloseTunnel
Closes the SSH tunnel used for SMTP or POP3 communication.
Returns true for success, false for failure.
topSshCloseTunnelAsync (1)
Creates an asynchronous task to call the SshCloseTunnel method with the arguments provided.
Returns null on failure
SshOpenTunnel
Connects to an SSH server and opens an SSH tunnel for MailMan's SMTP or POP3 connections.
The argument is the hostname or IP address of the SSH server. The sshHostname argument
is the SSH port, typically sshPort22.
An SSH tunneling session begins by calling SshOpenTunnel, followed by either
SshAuthenticatePw or SshAuthenticatePk to authenticate.
After the SSH tunnel is established and authenticated, MailMan's underlying SMTP or POP3 communication uses the SSH tunnel. No other programming changes are required beyond the initial tunnel setup calls.
Returns true for success, false for failure.
SshOpenTunnelAsync (1)
Creates an asynchronous task to call the SshOpenTunnel method with the arguments provided.
Returns null on failure
UseCertVault
Provides an XML certificate vault to be searched for certificates and private keys when MailMan performs operations such as encryption, decryption, signing, or signature verification.
Unlike PFX sources added with AddPfxSourceData, AddPfxSourceBd, or
AddPfxSourceFile, only one XML certificate vault can be used at a time. If UseCertVault is
called more than once, the most recent vault replaces the previously supplied vault.
Returns true for success, false for failure.
topUseSsh
Configures MailMan to use an existing SSH tunnel provided by the Ssh object in ssh for SMTP and POP3 connections.
This method is similar to UseSshTunnel, except the SSH tunnel is supplied in ssh
rather than a Socket object.
Sharing an existing SSH tunnel is useful when multiple objects need to communicate through the same SSH connection. SSH supports multiple logical channels within one tunnel, so SMTP and POP3 connections can exist simultaneously as separate SSH channels.
Returns true for success, false for failure.
UseSshTunnel
Configures MailMan to use an existing SSH tunnel provided by a Socket object for SMTP and POP3 connections.
Sharing an existing SSH tunnel is useful when multiple objects need to communicate through the same SSH connection. SSH supports multiple logical channels within one tunnel, so SMTP and POP3 connections can exist simultaneously as separate SSH channels.
Returns true for success, false for failure.
topVerifyPopConnection
Tests whether a TCP/IP connection can be established with the configured POP3 server.
This method verifies connectivity only. It does not prove that POP3 authentication will succeed. Use
VerifyPopLogin to test both connection and login.
Returns if the connection can be established, otherwise returns true.
false
VerifyPopConnectionAsync (1)
Creates an asynchronous task to call the VerifyPopConnection method with the arguments provided.
Returns null on failure
VerifyPopLogin
Tests whether Chilkat can connect to the configured POP3 server and successfully log in using the current POP3 authentication settings.
Use this method to diagnose whether POP3 credentials and authentication settings are correct. If only the TCP/IP
connection needs to be tested, use VerifyPopConnection.
Returns if the connection and login succeed, otherwise returns true.
false
VerifyPopLoginAsync (1)
Creates an asynchronous task to call the VerifyPopLogin method with the arguments provided.
Returns null on failure
VerifyRecips
Begins the SMTP send process for , sends the recipient addresses to the SMTP server, and then aborts
before sending the message content. Recipient addresses rejected by the SMTP server are returned in email.
badAddrs
This method can help identify addresses the SMTP server rejects during the SMTP RCPT TO stage. However, it
cannot guarantee that all accepted addresses are valid. SMTP servers often accept addresses outside their own domains
and only later discover delivery failures when relaying or delivering to the final destination.
Returns true for success, false for failure.
VerifyRecipsAsync (1)
Creates an asynchronous task to call the VerifyRecips method with the arguments provided.
Returns null on failure
VerifySmtpConnection
Tests whether a TCP/IP connection can be established with the configured SMTP server.
This method verifies connectivity only. It does not prove that SMTP authentication will succeed. Use
VerifySmtpLogin to test both connection and login.
Returns if the connection can be established, otherwise returns true.
false
VerifySmtpConnectionAsync (1)
Creates an asynchronous task to call the VerifySmtpConnection method with the arguments provided.
Returns null on failure
VerifySmtpLogin
Tests whether Chilkat can connect to the configured SMTP server and successfully authenticate using the current SMTP authentication settings.
Use this method to diagnose whether SMTP credentials and authentication settings are correct. If only the TCP/IP
connection needs to be tested, use VerifySmtpConnection.
Returns if the connection and login succeed, otherwise returns true.
false
VerifySmtpLoginAsync (1)
Creates an asynchronous task to call the VerifySmtpLogin method with the arguments provided.
Returns null on failure
Deprecated
SendIndividual
void put_SendIndividual(bool boolVal);
Controls how email is sent to distribution lists. The default value is
.
true
When , Chilkat creates and sends a separate email for each
recipient. The original trueTo, Cc, and Bcc
headers are cleared, and the current recipient is placed in the
To header. Replacement patterns are applied separately for each
recipient, and every individual message receives a unique
Message-ID.
If sending to one recipient fails, processing stops and no later recipients are attempted.
When , Chilkat sends messages in batches of up to 100
falseBcc recipients at a time. For example, a distribution list with 350
recipients produces four messages: three containing 100 Bcc recipients and one
containing 50.
AddPfxSourceData Deprecated
Adds a PFX/PKCS#12 certificate store to the MailMan object's internal list of sources used for locating certificates and private keys.
The argument contains the bytes of a pfxData.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 argument specifies the password required to open the PFX.
password
Returns true for success, false for failure.
topClearBadEmailAddresses
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.
CopyMail
Deprecated: Use FetchAll instead.
Downloads all matching messages from the POP3 mailbox and returns them in an EmailBundle. The messages remain on the POP3 server.
If Filter is set, only messages that match the filter expression are included.
Returns null on failure
CopyMailAsync (1) (2)
Creates an asynchronous task to call the CopyMail method with the arguments provided.
Returns null on failure
DeleteMultiple
Deprecated: Use DeleteUidlSet instead.
Marks each POP3 message whose UIDL appears in uidlArray for deletion.
POP3 deletions are committed when the session ends with QUIT. With the default setting ImmediateDelete = , MailMan sends trueQUIT automatically. For a sequence of deletion calls, set ImmediateDelete = , mark all messages, and call falsePop3EndSession once.
Returns true for success, false for failure.
DeleteMultipleAsync (1)
Creates an asynchronous task to call the DeleteMultiple method with the arguments provided.
Returns null on failure
FetchByMsgnum
Deprecated: Use FetchOne instead.
Retrieves the message identified by the POP3 message number in msgnum. The message remains on the server.
Important: POP3 message numbers are valid only within the current session and can change after messages are deleted or a new session begins. A POP3 session must already be active; this method does not open a new session automatically.
Returns null on failure
FetchByMsgnumAsync (1) (2)
Creates an asynchronous task to call the FetchByMsgnum method with the arguments provided.
Returns null on failure
FetchEmail
Deprecated: Use FetchByUidl instead.
Retrieves the POP3 message identified by the UIDL in uidl. The message remains on the server.
UIDLs are generally preferable to POP3 message numbers because they remain stable across sessions while the message remains in the mailbox.
Returns null on failure
FetchEmailAsync (1) (2)
Creates an asynchronous task to call the FetchEmail method with the arguments provided.
Returns null on failure
FetchMime Deprecated
Retrieves the POP3 message identified by the UIDL in uidl and returns its raw MIME bytes. The message remains on the server.
Use a byte-oriented result because MIME can contain arbitrary binary data and multiple character encodings.
Returns true for success, false for failure.
topFetchMimeAsync Deprecated (1)
Creates an asynchronous task to call the FetchMime method with the arguments provided.
Returns null on failure
FetchMimeByMsgnum Deprecated
Retrieves an email by POP3 message number and returns the raw MIME source bytes.
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 POP3 session because doing so could change the message numbers.
Returns true for success, false for failure.
topFetchMimeByMsgnumAsync Deprecated (1)
Creates an asynchronous task to call the FetchMimeByMsgnum method with the arguments provided.
Returns null on failure
FetchMultiple
Deprecated: Use FetchUidlSet instead.
Retrieves each POP3 message whose UIDL appears in uidlArray and returns the messages in an EmailBundle. The downloaded messages remain on the server.
Returns null on failure
FetchMultipleAsync (1) (2)
Creates an asynchronous task to call the FetchMultiple method with the arguments provided.
Returns null on failure
FetchMultipleHeaders
Deprecated: Use FetchUidlSet instead.
Retrieves partial messages for the UIDLs in uidlArray. Each returned Email contains the complete message headers and at most the first numBodyLines lines of the body; attachments are not downloaded.
Returns null on failure
FetchMultipleHeadersAsync (1) (2)
Creates an asynchronous task to call the FetchMultipleHeaders method with the arguments provided.
Returns null on failure
FetchMultipleMime
Deprecated: Use FetchMimeBd for individual raw MIME messages, or retrieve messages as Email objects.
Downloads the messages identified by the UIDLs in uidlArray and returns their MIME content as strings.
MIME can contain unencoded binary data and mixed character encodings, so a string is not a reliable container for arbitrary MIME. Byte-oriented methods are preferred.
Returns null on failure
FetchMultipleMimeAsync (1) (2)
Creates an asynchronous task to call the FetchMultipleMime method with the arguments provided.
Returns null on failure
FetchSingleHeader
Deprecated: Use FetchOne instead.
Retrieves a partial message by POP3 message number. numBodyLines specifies the maximum number of body lines to include, and messageNumber specifies the POP3 message number.
The returned Email contains the message headers and partial body but does not contain attachments. POP3 message numbers are session-specific and can change between sessions.
Returns null on failure
FetchSingleHeaderAsync (1) (2)
Creates an asynchronous task to call the FetchSingleHeader method with the arguments provided.
Returns null on failure
FetchSingleHeaderByUidl
Deprecated: Use FetchByUidl instead.
Retrieves a partial message by UIDL. numBodyLines specifies the maximum number of body lines to include, and uidl specifies the UIDL.
The returned Email contains the message headers and partial body but does not contain attachments.
Returns null on failure
FetchSingleHeaderByUidlAsync (1) (2)
Creates an asynchronous task to call the FetchSingleHeaderByUidl method with the arguments provided.
Returns null on failure
GetAllHeaders
Deprecated: Use FetchAll instead.
Retrieves partial representations of messages in the POP3 mailbox. Each returned
Email contains the complete headers and at most the first numBodyLines lines
of the body; attachments are not downloaded.
MaxCount limits the number of messages
returned when it is greater than 0.
Returns null on failure
GetAllHeadersAsync (1) (2)
Creates an asynchronous task to call the GetAllHeaders method with the arguments provided.
Returns null on failure
GetFullEmail
Deprecated: Use FetchFull instead.
Uses the partial or header-only in emailemail to locate and download the complete message from the POP3 server, including the full body and attachments.
Returns null on failure
GetFullEmailAsync (1) (2)
Creates an asynchronous task to call the GetFullEmail method with the arguments provided.
Returns null on failure
GetHeaders
Deprecated: Use FetchRange instead.
Retrieves partial messages from the zero-based mailbox index range fromIndex through
toIndex. Each returned Email contains the complete headers and at most
the first numBodyLines lines of the body; attachments are not downloaded.
MaxCount limits the number of messages
returned when it is greater than 0.
Returns null on failure
GetHeadersAsync (1) (2)
Creates an asynchronous task to call the GetHeaders method with the arguments provided.
Returns null on failure
GetPop3SslServerCert
Deprecated: Use GetServerCert instead.
Returns the certificate presented by the POP3 server for the current SSL/TLS connection. The certificate is available only after a secure POP3 connection has been established.
Returns null on failure
GetSmtpSslServerCert
Deprecated: Use GetServerCert instead.
Returns the certificate presented by the SMTP server for the current SSL/TLS connection. The certificate is available only after a secure SMTP connection has been established.
Returns null on failure
GetUidls
Deprecated: Use FetchUidls instead.
Returns the UIDLs of the messages currently stored in the POP3 mailbox, in mailbox order.
Returns null on failure
GetUidlsAsync (1) (2)
Creates an asynchronous task to call the GetUidls method with the arguments provided.
Returns null on failure
LastJsonData
Deprecated: Use GetLastJsonData instead.
Returns a JsonObject containing additional details produced by the immediately preceding method call when that method provides structured diagnostic information. Not every method produces JSON details.
Returns null on failure
LoadEml
Deprecated: Create an Email object and call its LoadEml method instead.
Loads a single email from the local .eml file at emlFilename and returns the parsed Email object.
emlFilename may be an absolute path, a relative path, or a filename in the current working directory.
Returns null on failure
LoadMbx
Deprecated: Use LoadMbxFile instead.
Loads emails from the local .mbx mailbox file at mbxFileName and returns them in an EmailBundle. If Filter is set, only matching emails are included.
Returns null on failure
LoadMime
Deprecated: Create an Email object and call its SetFromMimeText method instead.
Parses the MIME text in mimeText and returns the resulting Email object.
Returns null on failure
LoadXmlEmail
Deprecated: Create an Email object and call its SetFromXmlText method instead.
Loads a single email from the local XML file at filename and returns the reconstructed Email object.
Returns null on failure
LoadXmlEmailString
Deprecated: Create an Email object and call its SetFromXmlText method instead.
Reconstructs a single Email from the XML text in xmlString.
Returns null on failure
LoadXmlFile
Deprecated: Create an EmailBundle and call its LoadXml method instead.
Loads one or more emails from the local XML file at filename and returns them in an EmailBundle. If Filter is set, only matching emails are included.
Returns null on failure
LoadXmlString
Deprecated: Create an EmailBundle and call its LoadXmlString method instead.
Loads one or more emails from the XML text in xmlString and returns them in an EmailBundle. If Filter is set, only matching emails are included.
Returns null on failure
MxLookup
Deprecated: Use the Dns class for MX lookups.
Performs a DNS MX lookup for the domain portion of the email address in emailAddress and returns the hostname of a mail exchanger.
Returns true for success, false for failure.
MxLookupAll
Deprecated: Use the Dns class for MX lookups.
Performs a DNS MX lookup for the domain portion of the email address in emailAddress and returns the available mail-exchanger hostnames in priority order. The preferred server is at index 0.
Returns null on failure
RenderToMimeBytes Deprecated
Renders the Email in email as the MIME bytes that would be sent to the
SMTP server, without actually sending the email.
This method is similar to RenderToMime,
except the rendered MIME is returned as a byte array. Use it when the MIME may
contain 8-bit or binary content, or when the exact rendered bytes are needed.
Rendering does not modify email. Values generated for the rendered MIME are not
written back to the supplied Email.
Returns true for success, false for failure.
topSendMimeBytes Deprecated
Sends an email from caller-supplied MIME bytes.
This method is similar to SendMime, except the MIME is supplied as a byte array. Use this method when the
MIME contains binary data, 8bit content, or a DKIM/DomainKey signature where preserving the exact bytes is important.
The argument is the SMTP reverse-path address used in the fromAddrMAIL FROM command. This is
where bounced email and non-delivery reports are normally delivered. It can be different from the From
header in the MIME.
recipients is a comma-separated list of plain email addresses used in SMTP
RCPT TO commands. Do not include display names or formatted mailbox
syntax; supply only addresses such as alice@example.com,bob@example.com.
If this method fails, examine SmtpFailReason and LastSmtpStatus. The latter is nonzero only when Chilkat established an SMTP session and received a failure status code from the server.
Returns true for success, false for failure.
SendMimeBytesAsync Deprecated (1)
Creates an asynchronous task to call the SendMimeBytes method with the arguments provided.
Returns null on failure
SendMimeToList
Sends caller-supplied MIME text to a distribution list read from a text file.
This method is similar to SendMime, except the recipient list is read from .
The distribution list file should contain one email address per line.
distListFilename
The argument is the SMTP reverse-path address used in the fromAddrMAIL FROM command. The MIME
text in is used as the message content.
mimeSource
Returns true for success, false for failure.
topSendMimeToListAsync (1)
Creates an asynchronous task to call the SendMimeToList method with the arguments provided.
Returns null on failure
TransferMail
Deprecated: Use FetchAll with ARG1 set to instead.false
Downloads all matching messages from the POP3 mailbox, returns them in an EmailBundle, and removes the fully downloaded messages from the server according to the POP3 deletion and session settings.
If Filter is set, only matching messages are transferred.
Returns null on failure
TransferMailAsync (1) (2)
Creates an asynchronous task to call the TransferMail method with the arguments provided.
Returns null on failure
TransferMultipleMime
Deprecated: Use byte-oriented MIME methods or retrieve messages as Email objects.
Downloads the messages identified by the UIDLs in uidlArray, returns their MIME content as strings, and removes the downloaded messages from the POP3 server according to the POP3 deletion and session settings.
MIME can contain unencoded binary data and mixed character encodings, so a string is not a reliable container for arbitrary MIME.
Returns null on failure
TransferMultipleMimeAsync (1) (2)
Creates an asynchronous task to call the TransferMultipleMime method with the arguments provided.
Returns null on failure