Class MailMan
- All Implemented Interfaces:
AutoCloseable
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
Send email messages, MIME content, bundles of messages, and signed or encrypted S/MIME mail through SMTP servers.
POP3 receiving
Connect to POP3 mailboxes, list messages, download email, retrieve headers, and control when messages are deleted from the server.
Secure authentication
Use passwords, OAuth2 access tokens, TLS, STARTTLS, client certificates, and secret-backed credentials where appropriate.
MIME and attachments
Render, send, retrieve, and process MIME messages, including HTML bodies, alternative bodies, embedded images, and file attachments.
S/MIME support
Work with certificates and private keys to sign, verify, encrypt, and decrypt email messages.
Diagnostics and routing
Troubleshoot SMTP and POP3 sessions with detailed logs, status codes, server responses, proxy settings, and SSH tunnel support.
Common pattern:
Configure the SMTP or POP3 server settings, choose the security and
authentication method, send or retrieve messages, then inspect server status,
response text, and LastErrorText when troubleshooting provider-
specific behavior.
For an extended overview, see MailMan Class Overview.
</section>
Event-capable: long-running methods report progress through a ProgressListener installed
with setProgressListener(ProgressListener), onAbortCheck(BooleanSupplier),
onPercentDone(IntPredicate) or onProgressInfo(BiConsumer).
Instances hold a native Chilkat object: close them with ChilkatObject.close() (try-with-resources) when
done; an unclosed instance is freed when it becomes unreachable.
- See Also:
- Online reference
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddPfxSourceBd(BinData bd, String password)Adds a PFX/PKCS#12 certificate store to the MailMan object's internal list of sources used for locating certificates and private keys.voidaddPfxSourceFile(String pfxFilePath, String password)Adds a PFX/PKCS#12 file to the MailMan object's internal list of sources used for locating certificates and private keys.intReturns the number of messages currently available in the POP3 mailbox.voidClears the current contents of theproperty.getPop3SessionLog()voidClears the current contents of theproperty.getSmtpSessionLog()voidExplicitly closes the current SMTP connection.voiddeleteBundle(EmailBundle emailBundle)Deletes POP3 messages by using the UIDLs stored in theX-UIDLheaders of theEmailobjects inemailBundle.voiddeleteByMsgnum(int msgnum)Marks an email for deletion by its POP3 message number.voiddeleteByUidl(String uidl)Marks the POP3 message identified by the UIDL inuidlfor deletion.voiddeleteEmail(Email email)Deletes a POP3 message by using the UIDL stored in theX-UIDLheader of theEmailinemail.voiddeleteUidlSet(StringTable stUidls)Marks the POP3 messages whose UIDLs are listed instUidlsfor deletion.voidfetchAll(boolean keepOnServer, boolean headersOnly, int numBodyLines, EmailBundle bundle)Retrieves messages from the POP3 mailbox and appends them to theEmailBundleinbundle.voidfetchByUidl(String uidl, boolean headerOnly, int numBodyLines, Email email)Retrieves one message by UIDL and stores it in theEmailinemail.voidDownloads the complete version of the header-only or partialEmailinpartialEmailand stores it infullEmail.voidfetchMimeBd(String uidl, BinData mimeData)Fetches an email from the POP3 server by UIDL and stores the raw MIME source bytes inmimeData.voidfetchMimeByMsgnumBd(int msgnum, BinData bd)Retrieves an email by POP3 message number and stores the raw MIME source bytes in.bdvoidRetrieves one message by POP3 message number and stores it in theEmailinemail.voidfetchRange(boolean keepOnServer, boolean headersOnly, int numBodyLines, int startIndex, int endIndex, EmailBundle bundle)Retrieves a range of messages from the POP3 mailbox and appends them to theEmailBundleinbundle.voidfetchUidls(StringTable uidls)Retrieves the UIDLs of the messages currently stored in the POP3 mailbox and stores them inuidls.voidfetchUidlSet(StringTable uidls, boolean headersOnly, int numBodyLines, EmailBundle bundle)Retrieves the messages whose UIDLs are listed inuidlsand appends them to theEmailBundleinbundle.booleanSet this property toto request that the currently running operation be aborted.truebooleanDetermines whether an email should be sent when one or more recipients are rejected by the SMTP server.booleanControls whether Chilkat automatically selects the SMTP and POP3 TLS mode from a standard port number when a connection is prepared.booleanDetermines whether Chilkat automatically generates a uniqueMessage-IDheader when an email is sent.booleanWhen, Chilkat automatically sends the SMTPtrueRSETcommand before sending a new email over an already-open SMTP connection.booleanDetermines whether Chilkat automatically unwraps digitally signed or encrypted email when the message is downloaded or loaded from MIME.Sets the local IP address to use when connecting from a computer that has multiple network interfaces or multiple IP addresses.intContains a numeric code describing the result of the last connection attempt.intThe maximum number of seconds to wait while attempting to connect to an SMTP or POP3 server.TheDsnEnvidproperty specifies the SMTP DSNENVIDvalue, which is an arbitrary identifier attached to the SMTP envelope.Sets the SMTP DSNNOTIFYparameter used when sending email.Sets the SMTP DSNRETparameter used when sending email.booleanWhen, Chilkat embeds the signing certificate chain in signed email.truebooleanEnables automatic resolution of passwords and credentials from secure local storage.Specifies a filter expression applied by methods such as,LoadXmlFile,LoadXmlString,LoadMbx, andCopyMail.TransferMailintSets the interval, in milliseconds, betweenAbortCheckevent callbacks.Sets the hostname sent in the SMTPEHLOorHELOcommand.Sets the authentication method used when the configured HTTP proxy requires credentials.Sets the optional Windows domain used for NTLM authentication with an HTTP proxy.Sets the hostname or IP address of the HTTP proxy used for SMTP and POP3 connections.Sets the password used to authenticate with the configured HTTP proxy.intSets the TCP port of the HTTP proxy.Sets the username used to authenticate with the configured HTTP proxy.booleanDetermines whether pending POP3 deletion marks are committed automatically after a successful delete operation or full-message retrieval performed withkeepOnServer =.falsebooleanDetermines whether the root CA certificate is included in the S/MIME signature of a signed email.booleanReturnsif Chilkat believes the POP3 connection is still open.truebooleanReturnsif Chilkat believes the SMTP connection is still open.truevoidgetLastJsonData(JsonObject json)Copies intojsonany structured JSON details produced by the immediately preceding method call.intContains the SMTP failure status code returned by the server for the most recent SMTP operation.Provides the text associated with the most recent SMTP reply received from the server.Specifies a local file path where Chilkat writes each message exactly as it was received from the POP3 server.Specifies a local file path where Chilkat writes the exact MIME message sent to the SMTP server.intReturns the number of emails currently available in the POP3 mailbox.Returns an XML document containing information about the messages currently stored in the POP3 mailbox.longReturns the total combined size, in bytes, of all messages currently stored in the POP3 mailbox.Sets the POP3 server hostname or IP address.intSets the POP3 server port number.intLimits the number of messages retrieved from the POP3 server.Sets the OAuth2 access token used for POP3 or SMTP XOAUTH2 authentication.booleanControls the MIME format used for digitally signed email.Sets the filename used in theContent-Dispositionheader when sending a PKCS#7 encrypted email.Sets the filename used in theContent-Dispositionheader when sending an opaque signed PKCS#7 email.Sets the filename used in theContent-Dispositionheader when sending a signed email with a detached PKCS#7 signature.intThis property is only valid in programming environments and languages that allow for event callbacks.intReturns0when no POP3 session is active.Provides the accumulated raw POP3 commands sent to the server and the raw responses received from the server.booleanDetermines whether SPA, also known as NTLM authentication, is used for POP3.booleanIndicates whether the POP3 server certificate chain was successfully verified during the most recent SSL/TLS POP3 connection.booleanDetermines whether Chilkat requires the POP3 connection to be upgraded to TLS using theSTLScommand.booleanDetermines whether Chilkat attempts POP3STLSwhen the server advertises support for it.Sets the POP3 password.Sets the POP3 password as Base64-encoded data instead of plain text.booleanDetermines whether implicit SSL/TLS is used when connecting to the POP3 server.Sets the POP3 login name.booleanDetermines whether IPv6 is preferred over IPv4 when both are available for a hostname.Returns the installed listener, ornull.intSets the maximum number of seconds to wait when the SMTP or POP3 server stops responding.booleanDetermines whether the hostname used for the TLS connection must match a name in the server certificate's Subject Alternative Name (SAN) extension.booleanDetermines whether Chilkat requires the SMTP or POP3 server certificate chain to be successfully verified for an SSL/TLS connection.booleanDetermines whether the email'sDateheader is reset to the current date and time when an email is loaded.intSets the buffer size used by the underlying TCP/IP socket when sending data.voidgetServerCert(boolean useSmtp, Cert cert)Gets the digital certificate presented by the SMTP or POP3 server for the current SSL/TLS connection and stores it in.certintgetSizeByUidl(String uidl)Returns the size, in bytes, of the email on the POP3 server identified by.uidlintSets the maximum message size, in bytes, for POP3 operations that can download one or more complete emails.Sets the SMTP authentication method to use.Contains a keyword describing the result or failure reason for the last SMTP operation.Sets the SMTP server hostname or IP address.Sets the Windows domain to use when logging in to an SMTP server with NTLM authentication.Sets the SMTP envelope sender address used in theMAIL FROMcommand.Sets the password used for SMTP authentication.booleanDetermines whether SMTP pipelining is used when the server advertises support for it.intSets the SMTP server port.Provides the accumulated raw SMTP commands sent to the server and raw responses received from the server.booleanDetermines whether Chilkat uses implicit SSL/TLS when connecting to the SMTP server.booleanIndicates whether the SMTP server certificate chain was successfully verified during the most recent SSL/TLS SMTP connection.Sets the username used for SMTP authentication.Specifies the DNS hostname sent in the Server Name Indication (SNI) extension of the TLS handshake for SMTP and POP3 connections.Sets the SOCKS4 or SOCKS5 proxy hostname or IPv4 address.Sets the SOCKS5 proxy password, if authentication is required.intSets the SOCKS proxy port.Sets the SOCKS4 or SOCKS5 proxy username.intSpecifies whether a SOCKS proxy is used.intSets the socket receive buffer size.intSets the socket send buffer size.Sets the TLS cipher suites Chilkat is allowed to offer when establishing SSL/TLS connections.Selects the SSL/TLS protocol version used for secure SMTP and POP3 connections.booleanDetermines whether Chilkat requires SMTPSTARTTLS.booleanDetermines whether Chilkat attempts SMTPSTARTTLSwhen the server advertises support for it.Contains the current or most recently negotiated TLS cipher suite.Sets the expected Subject Public Key Info (SPKI) fingerprints for TLS public key pinning.Contains the current or most recently negotiated TLS protocol version.Provides a comma-separated list of uncommon option keywords.booleanDetermines whether Chilkat automatically uses APOP authentication when the POP3 server supports it.booleanContacts the SMTP server and determines whether it supports the DSN, or Delivery Status Notification, extension defined by RFC 3461.voidloadMbxFile(String mbxPath, EmailBundle bundle)Loads emails from a.mbxmailbox file and stores them in.bundlevoidonAbortCheck(BooleanSupplier callback)Installs a listener whose only callback isabortCheck: called everyHeartbeatMsmilliseconds during a long-running method; returntrueto abort it.voidonPercentDone(IntPredicate callback)Installs a listener whose only callback ispercentDone: called with the completion percentage (0..100) as a long-running method progresses; returntrueto abort it.voidonProgressInfo(BiConsumer<String,String> callback)Installs a listener whose only callback isprogressInfo: called with a name/value pair of progress information as a long-running method proceeds.voidExplicitly opens a connection to the SMTP server and authenticates if a username and password, OAuth2 token, or other applicable authentication settings have been provided.voidAuthenticates with the POP3 server using the current POP3 property settings, such as,getPopUsername(), and any authentication-related options.getPopPassword()voidExplicitly begins a POP3 session by connecting to the POP3 server and authenticating using the current POP3 property settings.voidExplicitly connects to the POP3 server.voidSends the POP3QUITcommand and closes the current POP3 connection.voidCloses the POP3 connection without sending theQUITcommand.voidpop3Noop()Sends a POP3NOOPcommand to the server.voidSends the POP3RSETcommand to the server.pop3SendRawCommand(String command, String charset)Sends a raw command to the POP3 server and returns the server's response.voidSends a simple email to a single recipient without requiring the application to explicitly create anEmailobject.renderToMime(Email email)Renders theEmailinemailas the MIME text that would be sent to the SMTP server, without actually sending the email.voidrenderToMimeBd(Email email, BinData renderedMime)Renders theEmailinemailas MIME bytes and appends the result torenderedMime.voidrenderToMimeSb(Email email, StringBuilder renderedMime)Renders theEmailinemailas MIME text and appends the result torenderedMime.voidsendBundle(EmailBundle bundle)Sends each email in.bundlevoidSends a single email through the configured SMTP server.voidSends an email from caller-supplied MIME text.voidsendMimeBd(String fromAddr, String recipients, BinData mimeData)Sends an email from caller-supplied MIME bytes contained in.mimeDatavoidsetAbortCurrent(boolean value)Sets theAbortCurrentproperty; seegetAbortCurrent().voidsetAllOrNone(boolean value)Sets theAllOrNoneproperty; seegetAllOrNone().voidsetAutoFix(boolean value)Sets theAutoFixproperty; seegetAutoFix().voidsetAutoGenMessageId(boolean value)Sets theAutoGenMessageIdproperty; seegetAutoGenMessageId().voidsetAutoSmtpRset(boolean value)Sets theAutoSmtpRsetproperty; seegetAutoSmtpRset().voidsetAutoUnwrapSecurity(boolean value)Sets theAutoUnwrapSecurityproperty; seegetAutoUnwrapSecurity().voidsetClientIpAddress(String value)Sets theClientIpAddressproperty; seegetClientIpAddress().voidsetConnectTimeout(int value)Sets theConnectTimeoutproperty; seegetConnectTimeout().voidsetDecryptCert(Cert cert)Explicitly specifies the certificate to use when decrypting encrypted email.voidsetDecryptCert2(Cert cert, PrivateKey privateKey)Explicitly specifies both the certificate and its associated private key to use when decrypting S/MIME encrypted email.voidsetDsnEnvid(String value)Sets theDsnEnvidproperty; seegetDsnEnvid().voidsetDsnNotify(String value)Sets theDsnNotifyproperty; seegetDsnNotify().voidSets theDsnRetproperty; seegetDsnRet().voidsetEmbedCertChain(boolean value)Sets theEmbedCertChainproperty; seegetEmbedCertChain().voidsetEnableSecrets(boolean value)Sets theEnableSecretsproperty; seegetEnableSecrets().voidSets theFilterproperty; seegetFilter().voidsetHeartbeatMs(int value)Sets theHeartbeatMsproperty; seegetHeartbeatMs().voidsetHeloHostname(String value)Sets theHeloHostnameproperty; seegetHeloHostname().voidsetHttpProxyAuthMethod(String value)Sets theHttpProxyAuthMethodproperty; seegetHttpProxyAuthMethod().voidsetHttpProxyDomain(String value)Sets theHttpProxyDomainproperty; seegetHttpProxyDomain().voidsetHttpProxyHostname(String value)Sets theHttpProxyHostnameproperty; seegetHttpProxyHostname().voidsetHttpProxyPassword(String value)Sets theHttpProxyPasswordproperty; seegetHttpProxyPassword().voidsetHttpProxyPort(int value)Sets theHttpProxyPortproperty; seegetHttpProxyPort().voidsetHttpProxyUsername(String value)Sets theHttpProxyUsernameproperty; seegetHttpProxyUsername().voidsetImmediateDelete(boolean value)Sets theImmediateDeleteproperty; seegetImmediateDelete().voidsetIncludeRootCert(boolean value)Sets theIncludeRootCertproperty; seegetIncludeRootCert().voidsetLogMailReceivedFilename(String value)Sets theLogMailReceivedFilenameproperty; seegetLogMailReceivedFilename().voidsetLogMailSentFilename(String value)Sets theLogMailSentFilenameproperty; seegetLogMailSentFilename().voidsetMailHost(String value)Sets theMailHostproperty; seegetMailHost().voidsetMailPort(int value)Sets theMailPortproperty; seegetMailPort().voidsetMaxCount(int value)Sets theMaxCountproperty; seegetMaxCount().voidsetOAuth2AccessToken(String value)Sets theOAuth2AccessTokenproperty; seegetOAuth2AccessToken().voidsetOpaqueSigning(boolean value)Sets theOpaqueSigningproperty; seegetOpaqueSigning().voidsetP7mEncryptAttachFilename(String value)Sets theP7mEncryptAttachFilenameproperty; seegetP7mEncryptAttachFilename().voidsetP7mSigAttachFilename(String value)Sets theP7mSigAttachFilenameproperty; seegetP7mSigAttachFilename().voidsetP7sSigAttachFilename(String value)Sets theP7sSigAttachFilenameproperty; seegetP7sSigAttachFilename().voidsetPassword(String protocolName, SecureString password)Sets the POP3 or SMTP password from aSecureString.voidsetPercentDoneScale(int value)Sets thePercentDoneScaleproperty; seegetPercentDoneScale().voidsetPop3SPA(boolean value)Sets thePop3SPAproperty; seegetPop3SPA().voidsetPop3Stls(boolean value)Sets thePop3Stlsproperty; seegetPop3Stls().voidsetPop3StlsIfPossible(boolean value)Sets thePop3StlsIfPossibleproperty; seegetPop3StlsIfPossible().voidsetPopPassword(String value)Sets thePopPasswordproperty; seegetPopPassword().voidsetPopPasswordBase64(String value)Sets thePopPasswordBase64property; seegetPopPasswordBase64().voidsetPopSsl(boolean value)Sets thePopSslproperty; seegetPopSsl().voidsetPopUsername(String value)Sets thePopUsernameproperty; seegetPopUsername().voidsetPreferIpv6(boolean value)Sets thePreferIpv6property; seegetPreferIpv6().voidsetProgressListener(ProgressListener listener)Installs the listener that receives this object's progress events (abortCheck,percentDone,progressInfo) during its long-running methods; replaces any listener or lambda installed before;nullremoves it.voidsetReadTimeout(int value)Sets theReadTimeoutproperty; seegetReadTimeout().voidsetRequireHostnameMatch(boolean value)Sets theRequireHostnameMatchproperty; seegetRequireHostnameMatch().voidsetRequireSslCertVerify(boolean value)Sets theRequireSslCertVerifyproperty; seegetRequireSslCertVerify().voidsetResetDateOnLoad(boolean value)Sets theResetDateOnLoadproperty; seegetResetDateOnLoad().voidsetSendBufferSize(int value)Sets theSendBufferSizeproperty; seegetSendBufferSize().voidsetSizeLimit(int value)Sets theSizeLimitproperty; seegetSizeLimit().voidsetSmtpAuthMethod(String value)Sets theSmtpAuthMethodproperty; seegetSmtpAuthMethod().voidsetSmtpHost(String value)Sets theSmtpHostproperty; seegetSmtpHost().voidsetSmtpLoginDomain(String value)Sets theSmtpLoginDomainproperty; seegetSmtpLoginDomain().voidsetSmtpMailFrom(String value)Sets theSmtpMailFromproperty; seegetSmtpMailFrom().voidsetSmtpPassword(String value)Sets theSmtpPasswordproperty; seegetSmtpPassword().voidsetSmtpPipelining(boolean value)Sets theSmtpPipeliningproperty; seegetSmtpPipelining().voidsetSmtpPort(int value)Sets theSmtpPortproperty; seegetSmtpPort().voidsetSmtpSsl(boolean value)Sets theSmtpSslproperty; seegetSmtpSsl().voidsetSmtpUsername(String value)Sets theSmtpUsernameproperty; seegetSmtpUsername().voidsetSniHostname(String value)Sets theSniHostnameproperty; seegetSniHostname().voidsetSocksHostname(String value)Sets theSocksHostnameproperty; seegetSocksHostname().voidsetSocksPassword(String value)Sets theSocksPasswordproperty; seegetSocksPassword().voidsetSocksPort(int value)Sets theSocksPortproperty; seegetSocksPort().voidsetSocksUsername(String value)Sets theSocksUsernameproperty; seegetSocksUsername().voidsetSocksVersion(int value)Sets theSocksVersionproperty; seegetSocksVersion().voidsetSoRcvBuf(int value)Sets theSoRcvBufproperty; seegetSoRcvBuf().voidsetSoSndBuf(int value)Sets theSoSndBufproperty; seegetSoSndBuf().voidsetSslAllowedCiphers(String value)Sets theSslAllowedCiphersproperty; seegetSslAllowedCiphers().voidsetSslClientCert(Cert cert)Sets the client-side certificate to use for SSL/TLS connections.voidsetSslClientCertPem(String pemDataOrFilename, String pemPassword)Sets the client-side certificate to use for SSL/TLS connections, loading it from PEM data or from a PEM file.voidsetSslClientCertPfx(String pfxPath, String pfxPassword)Sets the client-side certificate to use for SSL/TLS connections, loading it from a PFX/PKCS#12 file.voidsetSslProtocol(String value)Sets theSslProtocolproperty; seegetSslProtocol().voidsetStartTLS(boolean value)Sets theStartTLSproperty; seegetStartTLS().voidsetStartTLSifPossible(boolean value)Sets theStartTLSifPossibleproperty; seegetStartTLSifPossible().voidsetTlsPinSet(String value)Sets theTlsPinSetproperty; seegetTlsPinSet().voidsetUncommonOptions(String value)Sets theUncommonOptionsproperty; seegetUncommonOptions().voidsetUseApop(boolean value)Sets theUseApopproperty; seegetUseApop().voidAuthenticates with the SMTP server using the current SMTP property settings, such as,getSmtpUsername(), OAuth2 token settings, and other authentication-related options.getSmtpPassword()voidExplicitly connects to the SMTP server.voidsmtpNoop()Sends an SMTPNOOPcommand to the server.voidSends an SMTPRSETcommand to the server.smtpSendRawCommand(String command, String charset, boolean bEncodeBase64)Sends a raw command to the SMTP server and returns the server's response.voidsshAuthenticatePk(String sshLogin, SshKey privKey)Authenticates with the SSH server using public-key authentication after an SSH tunnel has been opened.voidsshAuthenticatePw(String sshLogin, String sshPassword)Authenticates with the SSH server using an SSH username and password after an SSH tunnel has been opened.voidCloses the SSH tunnel used for SMTP or POP3 communication.voidsshOpenTunnel(String sshHostname, int sshPort)Connects to an SSH server and opens an SSH tunnel for MailMan's SMTP or POP3 connections.voiduseCertVault(XmlCertVault vault)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.voidConfigures MailMan to use an existing SSH tunnel provided by theSshobject insshfor SMTP and POP3 connections.voiduseSshTunnel(Socket tunnel)Configures MailMan to use an existing SSH tunnel provided by aSocketobject for SMTP and POP3 connections.booleanTests whether a TCP/IP connection can be established with the configured POP3 server.booleanTests whether Chilkat can connect to the configured POP3 server and successfully log in using the current POP3 authentication settings.voidverifyRecips(Email email, StringArray badAddrs)Begins the SMTP send process for, sends the recipient addresses to the SMTP server, and then aborts before sending the message content.emailbooleanTests whether a TCP/IP connection can be established with the configured SMTP server.booleanTests whether Chilkat can connect to the configured SMTP server and successfully authenticate using the current SMTP authentication settings.Methods inherited from class com.chilkatsoft.chilkat2.ChilkatObject
close, getDebugLogFilePath, getLastErrorHtml, getLastErrorText, getLastErrorXml, getLastMethodSuccess, getVerboseLogging, getVersion, isClosed, setDebugLogFilePath, setLastMethodSuccess, setVerboseLogging, toString
-
Constructor Details
-
MailMan
public MailMan()Creates a newMailManobject.
-
-
Method Details
-
getAbortCurrent
public boolean getAbortCurrent()Set this property toto request that the currently running operation be aborted.trueThis 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 tofalse.falseBoth synchronous and asynchronous method calls can be aborted. A synchronous method can be aborted by setting this property from another thread.
- Returns:
- the value of the
AbortCurrentproperty
-
setAbortCurrent
public void setAbortCurrent(boolean value)Sets theAbortCurrentproperty; seegetAbortCurrent().- Parameters:
value- the new value
-
getAllOrNone
public boolean getAllOrNone()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.falseWhen set to
, the email is not sent to any recipients if the SMTP server rejects any recipient address.trueImportant: This property only works when SMTP pipelining is disabled. Because
isgetSmtpPipelining()by default, settrueSmtpPipelining =when all-or-none behavior is required.falseNote: SMTP servers do not always verify recipient addresses. Even when they do, the server can usually verify only addresses within domains it controls.
- Returns:
- the value of the
AllOrNoneproperty
-
setAllOrNone
public void setAllOrNone(boolean value)Sets theAllOrNoneproperty; seegetAllOrNone().- Parameters:
value- the new value
-
getAutoFix
public boolean getAutoFix()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 ().getSmtpSsl()=true - SMTP port
587: explicit TLS usingSTARTTLS. - SMTP port
25: no TLS is implied. - POP3 port
995: implicit TLS ().getPopSsl()=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.trueIf 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.
- Returns:
- the value of the
AutoFixproperty
- SMTP port
-
setAutoFix
public void setAutoFix(boolean value)Sets theAutoFixproperty; seegetAutoFix().- Parameters:
value- the new value
-
getAutoGenMessageId
public boolean getAutoGenMessageId()Determines whether Chilkat automatically generates a uniqueMessage-IDheader when an email is sent.The default behavior is to generate a new unique
Message-IDat send time. This allows the sameEmailobject 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 thefalseMessage-IDheader.- Returns:
- the value of the
AutoGenMessageIdproperty
-
setAutoGenMessageId
public void setAutoGenMessageId(boolean value)Sets theAutoGenMessageIdproperty; seegetAutoGenMessageId().- Parameters:
value- the new value
-
getAutoSmtpRset
public boolean getAutoSmtpRset()When, Chilkat automatically sends the SMTPtrueRSETcommand 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
.falseNote: This property only applies when reusing an existing SMTP connection.
- Returns:
- the value of the
AutoSmtpRsetproperty
-
setAutoSmtpRset
public void setAutoSmtpRset(boolean value)Sets theAutoSmtpRsetproperty; seegetAutoSmtpRset().- Parameters:
value- the new value
-
getAutoUnwrapSecurity
public boolean getAutoUnwrapSecurity()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.trueSet this property to
if you want signed or encrypted attachments, such asfalse.p7mor.p7sfiles, 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.
- Returns:
- the value of the
AutoUnwrapSecurityproperty
-
setAutoUnwrapSecurity
public void setAutoUnwrapSecurity(boolean value)Sets theAutoUnwrapSecurityproperty; seegetAutoUnwrapSecurity().- Parameters:
value- the new value
-
getClientIpAddress
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.- Returns:
- the value of the
ClientIpAddressproperty
-
setClientIpAddress
Sets theClientIpAddressproperty; seegetClientIpAddress().- Parameters:
value- the new value (notnull)
-
getConnectFailReason
public int getConnectFailReason()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
0Success.1Empty hostname.2DNS lookup failed.3DNS timeout.4Aborted by the application.5Internal failure.6Connection timed out.7Connection rejected, or failed for another reason.100TLS internal error.101Failed to send the TLS client hello.102Unexpected TLS handshake message.103Failed to read the TLS server hello.104No server certificate was received.105Unexpected TLS protocol version.106Server certificate verification failed.107Unacceptable TLS protocol version.109Failed to read TLS handshake messages.110Failed to send client certificate handshake message.111Failed to send client key exchange handshake message.112Client certificate private key is not accessible.113Failed to send client certificate verify handshake message.114Failed to send change cipher spec handshake message.115Failed to send finished handshake message.116The server's finished message is invalid.- Returns:
- the value of the
ConnectFailReasonproperty (read-only)
-
getConnectTimeout
public int getConnectTimeout()The maximum number of seconds to wait while attempting to connect to an SMTP or POP3 server.The default value is
30seconds.- Returns:
- the value of the
ConnectTimeoutproperty
-
setConnectTimeout
public void setConnectTimeout(int value)Sets theConnectTimeoutproperty; seegetConnectTimeout().- Parameters:
value- the new value
-
getDsnEnvid
TheDsnEnvidproperty specifies the SMTP DSNENVIDvalue, 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
DsnEnvidinclude:-
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-IDheader, although some applications choose to use the same identifier for both.About
SMTP DSNSMTP 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.— controls when notifications are requested, such asgetDsnNotify()SUCCESS,FAILURE,DELAY, orNEVER.— controls whether DSN responses include the full message or only headers.getDsnRet()
DSN is an optional SMTP extension and is not supported by all SMTP servers. A server supports DSN only if it advertises the
DSNcapability in response to the SMTPEHLOcommand.The
method can be used to determine whether the SMTP server supports DSN.isSmtpDsnCapable()Even when DSN is supported, some SMTP servers or downstream mail systems may ignore or partially honor DSN requests.
- Returns:
- the value of the
DsnEnvidproperty
-
An internal message ID:
-
setDsnEnvid
Sets theDsnEnvidproperty; seegetDsnEnvid().- Parameters:
value- the new value (notnull)
-
getDsnNotify
Sets the SMTP DSNNOTIFYparameter used when sending email.The value may be left empty, set to
NEVER, or set to a comma-separated combination ofSUCCESS,FAILURE, andDELAY.- Returns:
- the value of the
DsnNotifyproperty
-
setDsnNotify
Sets theDsnNotifyproperty; seegetDsnNotify().- Parameters:
value- the new value (notnull)
-
getDsnRet
Sets the SMTP DSNRETparameter used when sending email.The value may be left empty, set to
FULLto request the full message in DSN notifications, or set toHDRSto request only the message headers.- Returns:
- the value of the
DsnRetproperty
-
setDsnRet
Sets theDsnRetproperty; seegetDsnRet().- Parameters:
value- the new value (notnull)
-
getEmbedCertChain
public boolean getEmbedCertChain()When, Chilkat embeds the signing certificate chain in signed email.trueCertificates are included up to, but not including, the root certificate. If
is alsogetIncludeRootCert(), the root CA certificate is included as well.trueThe default value is
false- Returns:
- the value of the
EmbedCertChainproperty
-
setEmbedCertChain
public void setEmbedCertChain(boolean value)Sets theEmbedCertChainproperty; seegetEmbedCertChain().- Parameters:
value- the new value
-
getEnableSecrets
public boolean getEnableSecrets()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 withtrue!!.Chilkat resolves secrets from:
- Windows Credential Manager on Windows.
- Apple Keychain on macOS.
The secret specification format is:
!![appName|]service[|domain]|usernameThis applies to
,getPopPassword(),getSmtpPassword(),getHttpProxyPassword(),getSocksPassword(), andgetPopPasswordBase64().sshAuthenticatePw(String, String)The default value is
.false- Returns:
- the value of the
EnableSecretsproperty
-
setEnableSecrets
public void setEnableSecrets(boolean value)Sets theEnableSecretsproperty; seegetEnableSecrets().- Parameters:
value- the new value
-
getFilter
Specifies a filter expression applied by methods such as,LoadXmlFile,LoadXmlString,LoadMbx, andCopyMail.TransferMailWhen a filter is present, only emails matching the expression are returned. For
, only matching emails are removed from the mail server.TransferMailExample 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.
- Returns:
- the value of the
Filterproperty
-
setFilter
Sets theFilterproperty; seegetFilter().- Parameters:
value- the new value (notnull)
-
getHeartbeatMs
public int getHeartbeatMs()Sets the interval, in milliseconds, betweenAbortCheckevent callbacks.This allows an application to periodically decide whether a long-running operation should be aborted.
The default value is
0, which means noAbortCheckcallbacks are generated.- Returns:
- the value of the
HeartbeatMsproperty
-
setHeartbeatMs
public void setHeartbeatMs(int value)Sets theHeartbeatMsproperty; seegetHeartbeatMs().- Parameters:
value- the new value
-
getHeloHostname
Sets the hostname sent in the SMTPEHLOorHELOcommand.The default value is an empty string, which causes Chilkat to use the local computer's hostname.
- Returns:
- the value of the
HeloHostnameproperty
-
setHeloHostname
Sets theHeloHostnameproperty; seegetHeloHostname().- Parameters:
value- the new value (notnull)
-
getHttpProxyAuthMethod
Sets the authentication method used when the configured HTTP proxy requires credentials.Valid values are
BasicandNTLM. Leave this property empty when the proxy does not require authentication.- Returns:
- the value of the
HttpProxyAuthMethodproperty
-
setHttpProxyAuthMethod
Sets theHttpProxyAuthMethodproperty; seegetHttpProxyAuthMethod().- Parameters:
value- the new value (notnull)
-
getHttpProxyDomain
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.
- Returns:
- the value of the
HttpProxyDomainproperty
-
setHttpProxyDomain
Sets theHttpProxyDomainproperty; seegetHttpProxyDomain().- Parameters:
value- the new value (notnull)
-
getHttpProxyHostname
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.
- Returns:
- the value of the
HttpProxyHostnameproperty
-
setHttpProxyHostname
Sets theHttpProxyHostnameproperty; seegetHttpProxyHostname().- Parameters:
value- the new value (notnull)
-
getHttpProxyPassword
Sets the password used to authenticate with the configured HTTP proxy.This property is used together with
and, for NTLM authentication, may also be used withgetHttpProxyUsername().getHttpProxyDomain()- Returns:
- the value of the
HttpProxyPasswordproperty
-
setHttpProxyPassword
Sets theHttpProxyPasswordproperty; seegetHttpProxyPassword().- Parameters:
value- the new value (notnull)
-
getHttpProxyPort
public int getHttpProxyPort()Sets the TCP port of the HTTP proxy.Common proxy ports include
8080and3128. The value is used only whenis set.getHttpProxyHostname()- Returns:
- the value of the
HttpProxyPortproperty
-
setHttpProxyPort
public void setHttpProxyPort(int value)Sets theHttpProxyPortproperty; seegetHttpProxyPort().- Parameters:
value- the new value
-
getHttpProxyUsername
Sets the username used to authenticate with the configured HTTP proxy.This property is used only when the proxy requires authentication.
- Returns:
- the value of the
HttpProxyUsernameproperty
-
setHttpProxyUsername
Sets theHttpProxyUsernameproperty; seegetHttpProxyUsername().- Parameters:
value- the new value (notnull)
-
getImmediateDelete
public boolean getImmediateDelete()Determines whether pending POP3 deletion marks are committed automatically after a successful delete operation or full-message retrieval performed withkeepOnServer =.falseThe default value is
. Chilkat sendstrueDELEas each message is processed. After the complete operation succeeds, Chilkat sendsQUIT, commits the deletions, and closes the POP3 session. The next POP3 method automatically reconnects and establishes a new session.When set to
, Chilkat sendsfalseDELEbut leaves the session open and the deletions uncommitted. Callto sendpop3EndSession()QUITand commit them. Calling, callingpop3Reset(), or losing the POP3 connection beforepop3EndSessionNoQuit()QUITcauses 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.- Returns:
- the value of the
ImmediateDeleteproperty
-
setImmediateDelete
public void setImmediateDelete(boolean value)Sets theImmediateDeleteproperty; seegetImmediateDelete().- Parameters:
value- the new value
-
getIncludeRootCert
public boolean getIncludeRootCert()Determines whether the root CA certificate is included in the S/MIME signature of a signed email.This property only applies when
isgetEmbedCertChain().true- Returns:
- the value of the
IncludeRootCertproperty
-
setIncludeRootCert
public void setIncludeRootCert(boolean value)Sets theIncludeRootCertproperty; seegetIncludeRootCert().- Parameters:
value- the new value
-
getIsPop3Connected
public boolean getIsPop3Connected()Returnsif Chilkat believes the POP3 connection is still open.trueAccessing 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
.trueTo verify that the POP3 connection is actually alive, call
.pop3Noop()- Returns:
- the value of the
IsPop3Connectedproperty (read-only)
-
getIsSmtpConnected
public boolean getIsSmtpConnected()Returnsif Chilkat believes the SMTP connection is still open.trueAccessing 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()- Returns:
- the value of the
IsSmtpConnectedproperty (read-only)
-
getLastSmtpStatus
public int getLastSmtpStatus()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
4xxor5xxreplies.- 4xx — Temporary failure. Retrying later may succeed.
- 5xx — Permanent failure. The request was rejected and usually requires a change
before retrying.
A value of
0means that no SMTP failure status code was received. For example, the operation may have failed before an SMTP session was established. UseandgetSmtpFailReason()LastErrorTextfor additional diagnostic information.- Returns:
- the value of the
LastSmtpStatusproperty (read-only)
-
getLastSmtpStatusMsg
Provides the text associated with the most recent SMTP reply received from the server.Use this property together with
when diagnosing an SMTP failure or interpreting a server-specific response.getLastSmtpStatus()- Returns:
- the value of the
LastSmtpStatusMsgproperty (read-only)
-
getLogMailReceivedFilename
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.
- Returns:
- the value of the
LogMailReceivedFilenameproperty
-
setLogMailReceivedFilename
Sets theLogMailReceivedFilenameproperty; seegetLogMailReceivedFilename().- Parameters:
value- the new value (notnull)
-
getLogMailSentFilename
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.
- Returns:
- the value of the
LogMailSentFilenameproperty
-
setLogMailSentFilename
Sets theLogMailSentFilenameproperty; seegetLogMailSentFilename().- Parameters:
value- the new value (notnull)
-
getMailHost
Sets the POP3 server hostname or IP address.Do not include
http://orhttps://. The value should be a hostname such aspop.example.comor an IPv4/IPv6 address.- Returns:
- the value of the
MailHostproperty
-
setMailHost
Sets theMailHostproperty; seegetMailHost().- Parameters:
value- the new value (notnull)
-
getMailPort
public int getMailPort()Sets the POP3 server port number.The default value is
110.The standard POP3 ports and their associated
MailManproperty 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
STLScommand.mailman.MailPort = 110; mailman.PopSsl = false; mailman.Pop3Stls = true;
Port 110 — Opportunistic STLS
Attempts to upgrade the connection to TLS using
STLSif the POP3 server supports it. Otherwise, the connection remains unencrypted.mailman.MailPort = 110; mailman.PopSsl = false; mailman.Pop3StlsIfPossible = true;
Important:
andgetPopSsl()represent two different approaches to TLS security:getPop3Stls()-
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.
- Returns:
- the value of the
MailPortproperty
-
-
setMailPort
public void setMailPort(int value)Sets theMailPortproperty; seegetMailPort().- Parameters:
value- the new value
-
getMaxCount
public int getMaxCount()Limits the number of messages retrieved from the POP3 server. The following methods honor this property:GetAllHeadersGetHeadersfetchAll(boolean, boolean, int, EmailBundle)fetchRange(boolean, boolean, int, int, int, EmailBundle)
The default value is
0, which means no limit.For
FetchAll, a positive value selects the newest messages in the mailbox. For example, whenMaxCount = 2, the two newest messages are retrieved and returned in normal mailbox order, with the older of the two first.- Returns:
- the value of the
MaxCountproperty
-
setMaxCount
public void setMaxCount(int value)Sets theMaxCountproperty; seegetMaxCount().- Parameters:
value- the new value
-
getOAuth2AccessToken
Sets the OAuth2 access token used for POP3 or SMTP XOAUTH2 authentication.When this property is set, Chilkat uses the
AUTH XOAUTH2authentication mechanism when it is supported by the server.For POP3 XOAUTH2 authentication:
should be left empty, or explicitly set to the empty string.getPopPassword()For SMTP XOAUTH2 authentication:
should be left unset, or set to the empty string.getSmtpPassword()The access token is sent as a bearer token during the
AUTH XOAUTH2authentication exchange.- Returns:
- the value of the
OAuth2AccessTokenproperty
-
setOAuth2AccessToken
Sets theOAuth2AccessTokenproperty; seegetOAuth2AccessToken().- Parameters:
value- the new value (notnull)
-
getOpaqueSigning
public boolean getOpaqueSigning()Controls the MIME format used for digitally signed email.When set to
, Chilkat creates afalsemultipart/signedemail. 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-Typeheader 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.trueThe top-level MIME
Content-Typeheader will look similar to:Content-Type: application/pkcs7-mime; smime-type="signed-data"; name="smime.p7m"; micalg=sha-256This 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- Returns:
- the value of the
OpaqueSigningproperty
-
setOpaqueSigning
public void setOpaqueSigning(boolean value)Sets theOpaqueSigningproperty; seegetOpaqueSigning().- Parameters:
value- the new value
-
getP7mEncryptAttachFilename
Sets the filename used in theContent-Dispositionheader when sending a PKCS#7 encrypted email.The default value is
smime.p7m.- Returns:
- the value of the
P7mEncryptAttachFilenameproperty
-
setP7mEncryptAttachFilename
Sets theP7mEncryptAttachFilenameproperty; seegetP7mEncryptAttachFilename().- Parameters:
value- the new value (notnull)
-
getP7mSigAttachFilename
Sets the filename used in theContent-Dispositionheader when sending an opaque signed PKCS#7 email.The default value is
smime.p7m.- Returns:
- the value of the
P7mSigAttachFilenameproperty
-
setP7mSigAttachFilename
Sets theP7mSigAttachFilenameproperty; seegetP7mSigAttachFilename().- Parameters:
value- the new value (notnull)
-
getP7sSigAttachFilename
Sets the filename used in theContent-Dispositionheader when sending a signed email with a detached PKCS#7 signature.The default value is
smime.p7s.- Returns:
- the value of the
P7sSigAttachFilenameproperty
-
setP7sSigAttachFilename
Sets theP7sSigAttachFilenameproperty; seegetP7sSigAttachFilename().- Parameters:
value- the new value (notnull)
-
getPercentDoneScale
public int getPercentDoneScale()This property is only valid in programming environments and languages that allow for event callbacks.Sets the value that represents 100% completion for
PercentDoneevent callbacks.The default value is
100, meaning progress values range from0to100. Setting this property to a larger value provides finer granularity. For example, settingPercentDoneScale = 1000allows progress to be reported in tenths of a percent.For example, if
PercentDoneScale = 1000, then a callback value of453represents 45.3% complete.The value is clamped to a minimum of
10and a maximum of100000.- Returns:
- the value of the
PercentDoneScaleproperty
-
setPercentDoneScale
public void setPercentDoneScale(int value)Sets thePercentDoneScaleproperty; seegetPercentDoneScale().- Parameters:
value- the new value
-
getPop3SPA
public boolean getPop3SPA()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.trueThe default value is
.falseNote: If SPA/NTLM authentication fails, set
Global.DefaultNtlmVersion = 1and retry.- Returns:
- the value of the
Pop3SPAproperty
-
setPop3SPA
public void setPop3SPA(boolean value)Sets thePop3SPAproperty; seegetPop3SPA().- Parameters:
value- the new value
-
getPop3SessionId
public int getPop3SessionId()Returns0when 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.
- Returns:
- the value of the
Pop3SessionIdproperty (read-only)
-
getPop3SessionLog
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()- Returns:
- the value of the
Pop3SessionLogproperty (read-only)
-
getPop3SslServerCertVerified
public boolean getPop3SslServerCertVerified()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.
- Returns:
- the value of the
Pop3SslServerCertVerifiedproperty (read-only)
-
getPop3Stls
public boolean getPop3Stls()Determines whether Chilkat requires the POP3 connection to be upgraded to TLS using theSTLScommand.When set to
, Chilkat initially connects without encryption and then sendstrueSTLSbefore authenticating. The connection fails if the server does not support the required upgrade.takes precedence. If implicit TLS is enabled, this property does not cause an additional explicit TLS upgrade.getPopSsl()The default value is
. Usefalsewhen the upgrade should be attempted only when the server advertises support.getPop3StlsIfPossible()- Returns:
- the value of the
Pop3Stlsproperty
-
setPop3Stls
public void setPop3Stls(boolean value)Sets thePop3Stlsproperty; seegetPop3Stls().- Parameters:
value- the new value
-
getPop3StlsIfPossible
public boolean getPop3StlsIfPossible()Determines whether Chilkat attempts POP3STLSwhen the server advertises support for it.If the server supports
STLS, the connection is upgraded to TLS. Otherwise, the connection remains unencrypted.takes precedence. If implicit TLS is enabled, no separategetPopSsl()STLSupgrade is attempted. Useinstead when encryption is required and the connection should fail if explicit TLS is unavailable.getPop3Stls()=trueThe default value is
.false- Returns:
- the value of the
Pop3StlsIfPossibleproperty
-
setPop3StlsIfPossible
public void setPop3StlsIfPossible(boolean value)Sets thePop3StlsIfPossibleproperty; seegetPop3StlsIfPossible().- Parameters:
value- the new value
-
getPopPassword
Sets the POP3 password.On Windows, if
is enabled, bothgetPop3SPA()andgetPopUsername()PopPasswordmay be set to"default"to use the credentials of the current logged-on Windows user.- Returns:
- the value of the
PopPasswordproperty
-
setPopPassword
Sets thePopPasswordproperty; seegetPopPassword().- Parameters:
value- the new value (notnull)
-
getPopPasswordBase64
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.
- Returns:
- the value of the
PopPasswordBase64property
-
setPopPasswordBase64
Sets thePopPasswordBase64property; seegetPopPasswordBase64().- Parameters:
value- the new value (notnull)
-
getPopSsl
public boolean getPopSsl()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 porttrue995.Implicit TLS takes precedence over explicit TLS. Therefore, when
PopSsl =, the settings intrueandgetPop3Stls()do not cause a separategetPop3StlsIfPossible()STLSupgrade.The default value is
. Whenfalseis enabled, a standard POP3 port can cause Chilkat to select the appropriate TLS mode automatically before connecting.getAutoFix()- Returns:
- the value of the
PopSslproperty
-
setPopSsl
public void setPopSsl(boolean value)Sets thePopSslproperty; seegetPopSsl().- Parameters:
value- the new value
-
getPopUsername
Sets the POP3 login name.On Windows, if
is enabled, bothgetPop3SPA()PopUsernameandmay be set togetPopPassword()"default"to use the credentials of the current logged-on Windows user.- Returns:
- the value of the
PopUsernameproperty
-
setPopUsername
Sets thePopUsernameproperty; seegetPopUsername().- Parameters:
value- the new value (notnull)
-
getPreferIpv6
public boolean getPreferIpv6()Determines whether IPv6 is preferred over IPv4 when both are available for a hostname.The default value is
, which means IPv4 is preferred.false- Returns:
- the value of the
PreferIpv6property
-
setPreferIpv6
public void setPreferIpv6(boolean value)Sets thePreferIpv6property; seegetPreferIpv6().- Parameters:
value- the new value
-
getReadTimeout
public int getReadTimeout()Sets the maximum number of seconds to wait when the SMTP or POP3 server stops responding.The default value is
30seconds.- Returns:
- the value of the
ReadTimeoutproperty
-
setReadTimeout
public void setReadTimeout(int value)Sets theReadTimeoutproperty; seegetReadTimeout().- Parameters:
value- the new value
-
getRequireHostnameMatch
public boolean getRequireHostnameMatch()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
to the expected DNS hostname.getSniHostname()Hostname matching is enforced independently of
. Therefore, it still occurs when certificate-chain verification is not required.getRequireSslCertVerify()Starting in v11.7.0, a wildcard SAN entry is matched as RFC 9525 (formerly RFC 6125) specifies. The wildcard must be the entire left-most label (
*.example.com) and stands for exactly one label:*.example.commatcheswww.example.com, but nota.b.example.comand not the bareexample.com. (Earlier versions matched the bare domain, and accepted a wildcard in any position.) A wildcard is not accepted directly under a top-level domain or a country-code second level such asco.uk, and never matches an IP address.The default value is
.false- Returns:
- the value of the
RequireHostnameMatchproperty
-
setRequireHostnameMatch
public void setRequireHostnameMatch(boolean value)Sets theRequireHostnameMatchproperty; seegetRequireHostnameMatch().- Parameters:
value- the new value
-
getRequireSslCertVerify
public boolean getRequireSslCertVerify()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.trueCertificate-chain verification is separate from hostname matching and public key pinning.
is enforced independently, even when this property isgetRequireHostnameMatch().falsesupplements, rather than replaces, certificate verification.getTlsPinSet()The default value is
. This property applies only to SSL/TLS connections.false- Returns:
- the value of the
RequireSslCertVerifyproperty
-
setRequireSslCertVerify
public void setRequireSslCertVerify(boolean value)Sets theRequireSslCertVerifyproperty; seegetRequireSslCertVerify().- Parameters:
value- the new value
-
getResetDateOnLoad
public boolean getResetDateOnLoad()Determines whether the email'sDateheader is reset to the current date and time when an email is loaded.This applies to methods such as
,LoadMbx,LoadEml,LoadMimeLoadXml, and.LoadXmlStringThe default value is
.false- Returns:
- the value of the
ResetDateOnLoadproperty
-
setResetDateOnLoad
public void setResetDateOnLoad(boolean value)Sets theResetDateOnLoadproperty; seegetResetDateOnLoad().- Parameters:
value- the new value
-
getSendBufferSize
public int getSendBufferSize()Sets the buffer size used by the underlying TCP/IP socket when sending data.The default value is
32767.- Returns:
- the value of the
SendBufferSizeproperty
-
setSendBufferSize
public void setSendBufferSize(int value)Sets theSendBufferSizeproperty; seegetSendBufferSize().- Parameters:
value- the new value
-
getSizeLimit
public int getSizeLimit()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
Emailis added for the skipped message, and skipping an oversized message does not by itself cause the retrieval method to fail.- Returns:
- the value of the
SizeLimitproperty
-
setSizeLimit
public void setSizeLimit(int value)Sets theSizeLimitproperty; seegetSizeLimit().- Parameters:
value- the new value
-
getSmtpAuthMethod
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, orNTLM.Note: If NTLM authentication fails, set
Global.DefaultNtlmVersion = 1and retry.- Returns:
- the value of the
SmtpAuthMethodproperty
-
setSmtpAuthMethod
Sets theSmtpAuthMethodproperty; seegetSmtpAuthMethod().- Parameters:
value- the new value (notnull)
-
getSmtpFailReason
Contains a keyword describing the result or failure reason for the last SMTP operation.Success: The method succeeded.Failed: A general failure occurred.NoValidRecipients: The SMTP server rejected all recipients.NoRecipients: No To, CC, or BCC recipients were provided.SomeBadRecipients:isgetAllOrNone()trueand some recipients were rejected.Aborted: The application aborted the operation.NoFrom: No FROM address was provided.FromFailure: The server rejected theMAIL FROMcommand.NoCredentials: Required credentials were not provided.AuthFailure: SMTP authentication failed.DataFailure: The server returned an error in response toDATA.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:UnlockBundlewas not called on at least one MailMan instance.InternalFailure: An internal failure occurred and should be reported to Chilkat support.- Returns:
- the value of the
SmtpFailReasonproperty (read-only)
-
getSmtpHost
Sets the SMTP server hostname or IP address.Do not include
http://orhttps://. The value may be a hostname, IPv4 address, or IPv6 address.- Returns:
- the value of the
SmtpHostproperty
-
setSmtpHost
Sets theSmtpHostproperty; seegetSmtpHost().- Parameters:
value- the new value (notnull)
-
getSmtpLoginDomain
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.
- Returns:
- the value of the
SmtpLoginDomainproperty
-
setSmtpLoginDomain
Sets theSmtpLoginDomainproperty; seegetSmtpLoginDomain().- Parameters:
value- the new value (notnull)
-
getSmtpMailFrom
Sets the SMTP envelope sender address used in theMAIL FROMcommand.This address receives bounce messages and identifies the originator of the SMTP transaction. It may differ from the
FromMIME header.If left empty, Chilkat uses the email address from the message's
Fromheader.SMTP servers may reject the envelope sender based on DNS, SPF, or other server policy checks.
- Returns:
- the value of the
SmtpMailFromproperty
-
setSmtpMailFrom
Sets theSmtpMailFromproperty; seegetSmtpMailFrom().- Parameters:
value- the new value (notnull)
-
getSmtpPassword
Sets the password used for SMTP authentication.Chilkat supports SMTP authentication methods such as
LOGIN,PLAIN,CRAM-MD5, andNTLM, and normally chooses the most secure available method automatically.If NTLM authentication is used,
andgetSmtpUsername()SmtpPasswordmay be set to the keyword"default"to use the current Windows logged-on credentials.- Returns:
- the value of the
SmtpPasswordproperty
-
setSmtpPassword
Sets theSmtpPasswordproperty; seegetSmtpPassword().- Parameters:
value- the new value (notnull)
-
getSmtpPipelining
public boolean getSmtpPipelining()Determines whether SMTP pipelining is used when the server advertises support for it.The default value is
.trueSet this property to
to prevent SMTP pipelining. This is required when usingfalse.getAllOrNone()- Returns:
- the value of the
SmtpPipeliningproperty
-
setSmtpPipelining
public void setSmtpPipelining(boolean value)Sets theSmtpPipeliningproperty; seegetSmtpPipelining().- Parameters:
value- the new value
-
getSmtpPort
public int getSmtpPort()Sets the SMTP server port.The default value is
25. If using implicit SSL/TLS withSmtpSsl =, the common port istrue465.- Returns:
- the value of the
SmtpPortproperty
-
setSmtpPort
public void setSmtpPort(int value)Sets theSmtpPortproperty; seegetSmtpPort().- Parameters:
value- the new value
-
getSmtpSessionLog
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()- Returns:
- the value of the
SmtpSessionLogproperty (read-only)
-
getSmtpSsl
public boolean getSmtpSsl()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 porttrue465.Implicit TLS takes precedence over explicit TLS. Therefore, when
SmtpSsl =, the settings intrueandgetStartTLS()do not cause a separategetStartTLSifPossible()STARTTLSupgrade.The default value is
. Whenfalseis enabled, a standard SMTP port can cause Chilkat to select the appropriate TLS mode automatically before connecting.getAutoFix()- Returns:
- the value of the
SmtpSslproperty
-
setSmtpSsl
public void setSmtpSsl(boolean value)Sets theSmtpSslproperty; seegetSmtpSsl().- Parameters:
value- the new value
-
getSmtpSslServerCertVerified
public boolean getSmtpSslServerCertVerified()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.
- Returns:
- the value of the
SmtpSslServerCertVerifiedproperty (read-only)
-
getSmtpUsername
Sets the username used for SMTP authentication.If
isgetSmtpAuthMethod()NTLM,SmtpUsernameandmay be set to the keywordgetSmtpPassword()"default"to use the current Windows logged-on credentials.- Returns:
- the value of the
SmtpUsernameproperty
-
setSmtpUsername
Sets theSmtpUsernameproperty; seegetSmtpUsername().- Parameters:
value- the new value (notnull)
-
getSniHostname
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
for SMTP connections andgetSmtpHost()for POP3 connections.getMailHost()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
isgetRequireHostnameMatch().trueThe default value is the empty string.
- Returns:
- the value of the
SniHostnameproperty
-
setSniHostname
Sets theSniHostnameproperty; seegetSniHostname().- Parameters:
value- the new value (notnull)
-
getSoRcvBuf
public int getSoRcvBuf()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.- Returns:
- the value of the
SoRcvBufproperty
-
setSoRcvBuf
public void setSoRcvBuf(int value)Sets theSoRcvBufproperty; seegetSoRcvBuf().- Parameters:
value- the new value
-
getSoSndBuf
public int getSoSndBuf()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
512Kor1MBis reasonable. Values should preferably be multiples of4096.- Returns:
- the value of the
SoSndBufproperty
-
setSoSndBuf
public void setSoSndBuf(int value)Sets theSoSndBufproperty; seegetSoSndBuf().- Parameters:
value- the new value
-
getSocksHostname
Sets the SOCKS4 or SOCKS5 proxy hostname or IPv4 address.This property is used only when
is set togetSocksVersion()4or5.- Returns:
- the value of the
SocksHostnameproperty
-
setSocksHostname
Sets theSocksHostnameproperty; seegetSocksHostname().- Parameters:
value- the new value (notnull)
-
getSocksPassword
Sets the SOCKS5 proxy password, if authentication is required.SOCKS4 does not use passwords, so this property applies only to SOCKS5.
- Returns:
- the value of the
SocksPasswordproperty
-
setSocksPassword
Sets theSocksPasswordproperty; seegetSocksPassword().- Parameters:
value- the new value (notnull)
-
getSocksPort
public int getSocksPort()Sets the SOCKS proxy port.The default value is
1080. This property applies only whenis set togetSocksVersion()4or5.- Returns:
- the value of the
SocksPortproperty
-
setSocksPort
public void setSocksPort(int value)Sets theSocksPortproperty; seegetSocksPort().- Parameters:
value- the new value
-
getSocksUsername
Sets the SOCKS4 or SOCKS5 proxy username.This property is used only when
is set togetSocksVersion()4or5.- Returns:
- the value of the
SocksUsernameproperty
-
setSocksUsername
Sets theSocksUsernameproperty; seegetSocksUsername().- Parameters:
value- the new value (notnull)
-
getSocksVersion
public int getSocksVersion()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.
- Returns:
- the value of the
SocksVersionproperty
-
setSocksVersion
public void setSocksVersion(int value)Sets theSocksVersionproperty; seegetSocksVersion().- Parameters:
value- the new value
-
getSslAllowedCiphers
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-practicessetting 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- Returns:
- the value of the
SslAllowedCiphersproperty
-
setSslAllowedCiphers
Sets theSslAllowedCiphersproperty; seegetSslAllowedCiphers().- Parameters:
value- the new value (notnull)
-
getSslProtocol
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 highersetting is preferable.- Returns:
- the value of the
SslProtocolproperty
-
setSslProtocol
Sets theSslProtocolproperty; seegetSslProtocol().- Parameters:
value- the new value (notnull)
-
getStartTLS
public boolean getStartTLS()Determines whether Chilkat requires SMTPSTARTTLS.When set to
, Chilkat connects to the SMTP server normally and then sends thetrueSTARTTLScommand to upgrade the connection to TLS before authenticating and sending email. The connection fails if the server does not support the required upgrade.takes precedence. If implicit TLS is enabled, this property does not cause an additional explicit TLS upgrade.getSmtpSsl()The default value is
. Usefalsewhen the upgrade should be attempted only when the server advertises support.getStartTLSifPossible()This property applies to SMTP only, not POP3.
- Returns:
- the value of the
StartTLSproperty
-
setStartTLS
public void setStartTLS(boolean value)Sets theStartTLSproperty; seegetStartTLS().- Parameters:
value- the new value
-
getStartTLSifPossible
public boolean getStartTLSifPossible()Determines whether Chilkat attempts SMTPSTARTTLSwhen the server advertises support for it.If the server supports
STARTTLS, the connection is upgraded to TLS. Otherwise, the connection remains unencrypted.takes precedence. If implicit TLS is enabled, no separategetSmtpSsl()STARTTLSupgrade is attempted. Useinstead when encryption is required and the connection should fail if explicit TLS is unavailable.getStartTLS()=trueThe default value is
. This property applies to SMTP only, not POP3.true- Returns:
- the value of the
StartTLSifPossibleproperty
-
setStartTLSifPossible
public void setStartTLSifPossible(boolean value)Sets theStartTLSifPossibleproperty; seegetStartTLSifPossible().- Parameters:
value- the new value
-
getTlsCipherSuite
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- Returns:
- the value of the
TlsCipherSuiteproperty (read-only)
-
getTlsPinSet
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, andripemd320.Supported encodings include
base64,hex, and other Chilkat-supported encodings.- Returns:
- the value of the
TlsPinSetproperty
-
setTlsPinSet
Sets theTlsPinSetproperty; seegetTlsPinSet().- Parameters:
value- the new value (notnull)
-
getTlsVersion
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, andTLS 1.3.- Returns:
- the value of the
TlsVersionproperty (read-only)
-
getUncommonOptions
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.
- Returns:
- the value of the
UncommonOptionsproperty
-
-
setUncommonOptions
Sets theUncommonOptionsproperty; seegetUncommonOptions().- Parameters:
value- the new value (notnull)
-
getUseApop
public boolean getUseApop()Determines whether Chilkat automatically uses APOP authentication when the POP3 server supports it.The default value is
.false- Returns:
- the value of the
UseApopproperty
-
setUseApop
public void setUseApop(boolean value)Sets theUseApopproperty; seegetUseApop().- Parameters:
value- the new value
-
addPfxSourceBd
Adds a PFX/PKCS#12 certificate store to the MailMan object's internal list of sources used for locating certificates and private keys.bdis aBinDataobject containing the bytes of a.pfxor.p12file.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.
passwordspecifies the password required to open the PFX.- Parameters:
bd- thebdargument (notnull)password- thepasswordargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
addPfxSourceFile
Adds a PFX/PKCS#12 file to the MailMan object's internal list of sources used for locating certificates and private keys. Theargument is the path to apfxFilePath.pfxor.p12file.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- Parameters:
pfxFilePath- thepfxFilePathargument (notnull)password- thepasswordargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
checkMail
public int checkMail()Returns the number of messages currently available in the POP3 mailbox. Returns-1if 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
orpop3EndSession()to end it.pop3EndSessionNoQuit()If this method fails, use
to test basic connectivity andverifyPopConnection()to test authentication.verifyPopLogin()- Returns:
- the result (see
ChilkatObject.getLastMethodSuccess()where the description mentions failure)
-
clearPop3SessionLog
public void clearPop3SessionLog()Clears the current contents of theproperty.getPop3SessionLog() -
clearSmtpSessionLog
public void clearSmtpSessionLog()Clears the current contents of theproperty.getSmtpSessionLog() -
closeSmtpConnection
public void closeSmtpConnection()Explicitly closes the current SMTP connection. Before closing the socket connection, Chilkat sends the SMTPQUITcommand 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
ten times, the first call opens the SMTP connection, and the following calls send over the same connection.sendEmail(Email)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.
- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
deleteBundle
Deletes POP3 messages by using the UIDLs stored in theX-UIDLheaders of theEmailobjects inemailBundle. An email that does not contain anX-UIDLheader 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
isgetImmediateDelete(), which is the default, Chilkat sends a singletrueQUITafter 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 callsfalse.pop3EndSession()When making multiple deletion calls, it is usually more efficient to set
ImmediateDeleteto, perform all deletion operations, and callfalsePop3EndSessiononce at the end.- Parameters:
emailBundle- theemailBundleargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
deleteByMsgnum
public void deleteByMsgnum(int msgnum)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
1through10. If message1is deleted and a new POP3 session is opened, the remaining messages are renumbered1through9.A POP3 session must already be established before this method is called, either explicitly by calling
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.pop3BeginSession()This method only marks the message for deletion. The message is not removed from the POP3 mailbox until the session is ended by calling
, which sends thepop3EndSession()QUITcommand.- Parameters:
msgnum- themsgnumargument- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
deleteByUidl
Marks the POP3 message identified by the UIDL inuidlfor deletion. UIDLs are preferred over message numbers because they remain stable across sessions while the message remains in the mailbox.If
isgetImmediateDelete(), which is the default, Chilkat sendstrueQUIT, commits the deletion, and closes the session before returning. If it is, the message is only marked withfalseDELE; callto commit all pending deletions.pop3EndSession()orpop3Reset()cancels uncommitted deletion marks.pop3EndSessionNoQuit()If no POP3 session is active, Chilkat connects and authenticates automatically.
- Parameters:
uidl- theuidlargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
deleteEmail
Deletes a POP3 message by using the UIDL stored in theX-UIDLheader of theEmailinemail. Ifemaildoes not contain anX-UIDLheader, 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
isgetImmediateDelete(), which is the default, Chilkat marks the message for deletion, sendstrueQUITto commit the deletion, and closes the POP3 session before returning. If it is, the message is marked withfalseDELEand the deletion remains pending untilsendspop3EndSession()QUIT.orpop3Reset()cancels uncommitted deletion marks. Uncommitted marks are also forgotten if the POP3 connection is lost beforepop3EndSessionNoQuit()QUITis sent.- Parameters:
email- theemailargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
deleteUidlSet
Marks the POP3 messages whose UIDLs are listed instUidlsfor deletion.Chilkat processes the UIDL set and sends
DELEfor 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
isgetImmediateDelete(), which is the default, Chilkat sends a singletrueQUITafter 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 callsfalse.pop3EndSession()When making multiple deletion calls, it is usually more efficient to set
ImmediateDeleteto, perform all deletion operations, and callfalsePop3EndSessiononce at the end.- Parameters:
stUidls- thestUidlsargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchAll
public void fetchAll(boolean keepOnServer, boolean headersOnly, int numBodyLines, EmailBundle bundle)Retrieves messages from the POP3 mailbox and appends them to theEmailBundleinbundle. Existing emails inbundleare preserved.If
headersOnlyis, Chilkat retrieves the message headers and a partial body.truenumBodyLinesspecifies the number of body lines; a value of0retrieves the first body line. Attachments are not downloaded. IfheadersOnlyis, Chilkat retrieves the complete messages, including attachments.falseIf
keepOnServeris, every retrieved message remains on the POP3 server, regardless oftrue.getImmediateDelete()If
keepOnServerisand complete messages are retrieved, Chilkat sendsfalseDELEfor each message after it is downloaded. IfImmediateDelete =, Chilkat sendstrueQUITonly after the entire requested set has been downloaded successfully; this commits the deletions and closes the POP3 session. IfImmediateDelete =, the deletion marks remain pending in the open session until the application callsfalse.pop3EndSession()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
keepOnServerorImmediateDelete.can limit the result to the newest messages.getMaxCount()can omit oversized messages from full-message retrieval.getSizeLimit()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.- Parameters:
keepOnServer- thekeepOnServerargumentheadersOnly- theheadersOnlyargumentnumBodyLines- thenumBodyLinesargumentbundle- thebundleargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchByUidl
Retrieves one message by UIDL and stores it in theEmailinemail. The message remains on the POP3 server.If
headerOnlyis, Chilkat retrieves the headers and a partial body.truenumBodyLinesspecifies the number of body lines; a value of0retrieves the first body line. Attachments are not downloaded. IfheaderOnlyis, Chilkat retrieves the complete message, including attachments.falseIf
uidlis not found or the fetch otherwise fails,emailis left unchanged.- Parameters:
uidl- theuidlargument (notnull)headerOnly- theheaderOnlyargumentnumBodyLines- thenumBodyLinesargumentemail- theemailargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchFull
Downloads the complete version of the header-only or partialEmailinpartialEmailand stores it infullEmail. The full result includes the complete body and any attachments.partialEmailmust 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
fullEmailremains 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.
- Parameters:
partialEmail- thepartialEmailargument (notnull)fullEmail- thefullEmailargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchMimeBd
Fetches an email from the POP3 server by UIDL and stores the raw MIME source bytes inmimeData.Chilkat clears the existing contents of
mimeDatabefore attempting the download. If the method succeeds,mimeDatacontains the downloaded MIME bytes. If it fails,mimeDataremains empty.- Parameters:
uidl- theuidlargument (notnull)mimeData- themimeDataargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchMimeByMsgnumBd
Retrieves an email by POP3 message number and stores the raw MIME source bytes in.bdChilkat clears the existing contents of
bdbefore attempting the download. If the method succeeds,bdcontains the downloaded MIME bytes. If it fails,bdremains 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
1through10. If message1is deleted and a new POP3 session is opened, the remaining messages are renumbered1through9.A POP3 session must already be established before this method is called, either explicitly by calling
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.pop3BeginSession()- Parameters:
msgnum- themsgnumargumentbd- thebdargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchOne
Retrieves one message by POP3 message number and stores it in theEmailinemail. The first message has number1. The message remains on the server.If
headerOnlyis, Chilkat retrieves the headers and a partial body.truenumBodyLinesspecifies the number of body lines; a value of0retrieves the first body line. Attachments are not downloaded. IfheaderOnlyis, Chilkat retrieves the complete message, including attachments.falseIf the message number is invalid or the fetch otherwise fails,
emailis 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.
- Parameters:
headerOnly- theheaderOnlyargumentnumBodyLines- thenumBodyLinesargumentmsgNum- themsgNumargumentemail- theemailargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchRange
public void fetchRange(boolean keepOnServer, boolean headersOnly, int numBodyLines, int startIndex, int endIndex, EmailBundle bundle)Retrieves a range of messages from the POP3 mailbox and appends them to theEmailBundleinbundle. Existing emails inbundleare preserved.startIndexandendIndexare zero-based, inclusive indexes in the server's current mailbox order. The messages are appended in increasing index order. IfendIndexextends past the end of the mailbox, Chilkat stops at the final message. IfstartIndexis greater thanendIndex, the method succeeds without appending any messages.If
headersOnlyis, Chilkat retrieves the message headers and a partial body.truenumBodyLinesspecifies the number of body lines; a value of0retrieves the first body line. Attachments are not downloaded. IfheadersOnlyis, Chilkat retrieves the complete messages, including attachments.falseIf
keepOnServeris, every retrieved message remains on the POP3 server, regardless oftrue.getImmediateDelete()If
keepOnServerisand complete messages are retrieved, Chilkat sendsfalseDELEfor each message after it is downloaded. IfImmediateDelete =, Chilkat sendstrueQUITonly after the entire requested set has been downloaded successfully; this commits the deletions and closes the POP3 session. IfImmediateDelete =, the deletion marks remain pending in the open session until the application callsfalse.pop3EndSession()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
keepOnServerorImmediateDelete.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.- Parameters:
keepOnServer- thekeepOnServerargumentheadersOnly- theheadersOnlyargumentnumBodyLines- thenumBodyLinesargumentstartIndex- thestartIndexargumentendIndex- theendIndexargumentbundle- thebundleargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchUidlSet
public void fetchUidlSet(StringTable uidls, boolean headersOnly, int numBodyLines, EmailBundle bundle)Retrieves the messages whose UIDLs are listed inuidlsand appends them to theEmailBundleinbundle. Existing emails inbundleare 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
headersOnlyis, Chilkat retrieves the headers and a partial body.truenumBodyLinesspecifies the number of body lines; a value of0retrieves the first body line. Attachments are not downloaded. IfheadersOnlyis, Chilkat retrieves the complete messages, including attachments.falseIf 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.- Parameters:
uidls- theuidlsargument (notnull)headersOnly- theheadersOnlyargumentnumBodyLines- thenumBodyLinesargumentbundle- thebundleargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
fetchUidls
Retrieves the UIDLs of the messages currently stored in the POP3 mailbox and stores them inuidls. 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.
- Parameters:
uidls- theuidlsargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
getLastJsonData
Copies intojsonany 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.
- Parameters:
json- thejsonargument (notnull)
-
getMailboxCount
public int getMailboxCount()Returns the number of emails currently available in the POP3 mailbox. Returns-1if an error occurs.This method is functionally identical to
.checkMail()- Returns:
- the result (see
ChilkatObject.getLastMethodSuccess()where the description mentions 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:
- the result (never
null) - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
getMailboxSize
public long 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
-1on failure.- Returns:
- the result (see
ChilkatObject.getLastMethodSuccess()where the description mentions failure)
-
getServerCert
Gets the digital certificate presented by the SMTP or POP3 server for the current SSL/TLS connection and stores it in.certIf
isuseSmtp, Chilkat returns the certificate for the SMTP connection. IftrueisuseSmtp, Chilkat returns the certificate for the POP3 connection.falseThis method applies only when the current connection uses SSL/TLS.
- Parameters:
useSmtp- theuseSmtpargumentcert- thecertargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
getSizeByUidl
Returns the size, in bytes, of the email on the POP3 server identified by. The size includes the full message content, including attachments.uidlReturns
-1if an error occurs.- Parameters:
uidl- theuidlargument (notnull)- Returns:
- the result (see
ChilkatObject.getLastMethodSuccess()where the description mentions failure)
-
isSmtpDsnCapable
public boolean 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
,getDsnEnvid(), andgetDsnNotify(). ReturnsgetDsnRet()if the SMTP server advertises DSN support, otherwise returnstrue.false- Returns:
- the result; this method never throws
ChilkatException
-
loadMbxFile
Loads emails from a.mbxmailbox file and stores them in.bundleIf a filter has been configured, only the emails matching the filter are returned.
- Parameters:
mbxPath- thembxPathargument (notnull)bundle- thebundleargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
openSmtpConnection
public void openSmtpConnection()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
automatically open and authenticate the SMTP connection when needed.sendEmail(Email)This method is equivalent to calling
followed bysmtpConnect().smtpAuthenticate()- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3Authenticate
public void pop3Authenticate()Authenticates with the POP3 server using the current POP3 property settings, such as,getPopUsername(), and any authentication-related options.getPopPassword()This method should be called only after a successful call to
. Thepop3Connect()method performs both steps and is equivalent to callingpop3BeginSession()followed bypop3Connect()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.
- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3BeginSession
public void 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.
- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3Connect
public void 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
Pop3Connectsucceeds, callto log in. Thepop3Authenticate()method performs both steps and is equivalent to callingpop3BeginSession()Pop3Connectfollowed 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
orpop3EndSession()to disconnect.pop3EndSessionNoQuit()- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3EndSession
public void pop3EndSession()Sends the POP3QUITcommand 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,isgetIsPop3Connected()andfalsereturnsgetPop3SessionId()0.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3EndSessionNoQuit
public void pop3EndSessionNoQuit()Closes the POP3 connection without sending theQUITcommand.Pending deletion marks are not committed. Messages marked with
DELEduring the session remain in the mailbox after reconnecting.Use
when pending deletions should be finalized.pop3EndSession()This method should always return
.true- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3Noop
public void pop3Noop()Sends a POP3NOOPcommand 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.
- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3Reset
public void pop3Reset()Sends the POP3RSETcommand 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.
- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
pop3SendRawCommand
Sends a raw command to the POP3 server and returns the server's response.If
contains non-US-ASCII characters,commandspecifies the character set used to encode the command before it is sent. Examples includecharsetutf-8,ansi,iso-8859-1, andShift_JIS.This method is intended for advanced use, diagnostics, or issuing POP3 commands not directly exposed by higher-level MailMan methods.
- Parameters:
command- thecommandargument (notnull)charset- thecharsetargument (notnull)- Returns:
- the result (never
null) - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
quickSend
public void quickSend(String fromAddr, String toAddr, String subject, String body, String smtpServer)Sends a simple email to a single recipient without requiring the application to explicitly create anEmailobject.The
argument is the sender address,fromAddris the recipient address,toAddris the message subject,subjectis the plain-text body, andbodyis the SMTP server hostname.smtpServerThis 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
Emailobject and useinstead.sendEmail(Email)- Parameters:
fromAddr- thefromAddrargument (notnull)toAddr- thetoAddrargument (notnull)subject- thesubjectargument (notnull)body- thebodyargument (notnull)smtpServer- thesmtpServerargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
renderToMime
Renders theEmailinemailas the MIME text that would be sent to the SMTP server, without actually sending the email.Rendering uses the current MailMan and
Emailsettings 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 suppliedEmail. Repeated calls are not guaranteed to produce byte-for-byte identical MIME.By default, a
Bccheader present inemailis included in the rendered MIME. AddNoBccHeaderto theEmailobject'sUncommonOptionsproperty to omit theBccheader from the MIME.Conceptually,
performs this rendering step and then sends the resulting MIME.sendEmail(Email)Note: If the MIME may contain 8-bit or binary data, use
orRenderToMimeBytes. Returning binary MIME as a string can corrupt bytes that are not valid text.renderToMimeBd(Email, BinData)- Parameters:
email- theemailargument (notnull)- Returns:
- the result (never
null) - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
renderToMimeBd
Renders theEmailinemailas MIME bytes and appends the result torenderedMime.This method is the
BinDataversion of. It is useful when the rendered MIME must be preserved as bytes, especially when it may contain 8-bit or binary MIME content.RenderToMimeBytesRendering does not modify
email. Values generated for the rendered MIME are not written back to the suppliedEmail.- Parameters:
email- theemailargument (notnull)renderedMime- therenderedMimeargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
renderToMimeSb
Renders theEmailinemailas MIME text and appends the result torenderedMime.This method is the
StringBuilderversion of. Rendering does not modifyrenderToMime(Email)email; values generated for the rendered MIME are not written back to the suppliedEmail.Note: If the MIME may contain 8-bit or binary content, use
orRenderToMimeBytesinstead. Returning binary MIME as text can corrupt data that is not valid text.renderToMimeBd(Email, BinData)- Parameters:
email- theemailargument (notnull)renderedMime- therenderedMimeargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
sendBundle
Sends each email in. This is equivalent to callingbundleonce for each email in the bundle.sendEmail(Email)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
for each message individually.sendEmail(Email)- Parameters:
bundle- thebundleargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
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
SendEmailor another email-sending method can reuse the same SMTP connection. If an SMTP-related property changes, such as,getSmtpHost(), 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.getSmtpUsername()Important: Some SMTP servers do not complete final delivery processing until the SMTP connection is closed. In these cases, call
after sending. Most SMTP servers process the message immediately, so explicitly closing the connection is usually not required.closeSmtpConnection()By default, a
Bccheader inemailis included in the MIME sent to the SMTP server. To prevent Bcc addresses from appearing in the MIME header, addNoBccHeaderto theEmailobject'sUncommonOptionsproperty.After sending, additional information about the SMTP transaction may be available by calling
.getLastJsonData(JsonObject)If this method fails, examine
andgetSmtpFailReason(). The latter is nonzero only when Chilkat established an SMTP session and received a failure status code from the server.getLastSmtpStatus()- Parameters:
email- theemailargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
sendMime
Sends an email from caller-supplied MIME text. The MIME source inis passed to the SMTP server as the message content.mimeSourceThis 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
Emailobject.The
argument is the SMTP reverse-path address used in thefromAddrMAIL FROMcommand. This is where bounced email and non-delivery reports are normally delivered. It can be different from theFromheader in the MIME.recipientsis a comma-separated list of plain email addresses used in SMTPRCPT TOcommands. Do not include display names or formatted mailbox syntax; supply only addresses such asalice@example.com,bob@example.com.If this method fails, examine
andgetSmtpFailReason(). The latter is nonzero only when Chilkat established an SMTP session and received a failure status code from the server.getLastSmtpStatus()- Parameters:
fromAddr- thefromAddrargument (notnull)recipients- therecipientsargument (notnull)mimeSource- themimeSourceargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
sendMimeBd
Sends an email from caller-supplied MIME bytes contained in.mimeDataThis method is the
BinDataversion of. 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.SendMimeBytesfromAddris the SMTP reverse-path address used in theMAIL FROMcommand.recipientsis a comma-separated list of plain email addresses used in SMTPRCPT TOcommands. Do not include display names or formatted mailbox syntax inrecipients.If this method fails, examine
andgetSmtpFailReason(). The latter is nonzero only when Chilkat established an SMTP session and received a failure status code from the server.getLastSmtpStatus()- Parameters:
fromAddr- thefromAddrargument (notnull)recipients- therecipientsargument (notnull)mimeData- themimeDataargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
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.
- Parameters:
cert- thecertargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
setDecryptCert2
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
oraddPfxSourceFile(String, String)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.AddPfxSourceData- Parameters:
cert- thecertargument (notnull)privateKey- theprivateKeyargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
setPassword
Sets the POP3 or SMTP password from aSecureString.The
argument specifies which password is being set. UseprotocolNamepop3to set the POP3 password, which is equivalent to setting theproperty. UsegetPopPassword()smtpto set the SMTP password, which is equivalent to setting theproperty.getSmtpPassword()- Parameters:
protocolName- theprotocolNameargument (notnull)password- thepasswordargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
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.
- Parameters:
cert- thecertargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
setSslClientCertPem
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. ThepemDataOrFilenameargument supplies the password if the PEM private key is encrypted.pemPasswordTLS 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.
- Parameters:
pemDataOrFilename- thepemDataOrFilenameargument (notnull)pemPassword- thepemPasswordargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
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, andpfxPathis the password required to open it.pfxPasswordTLS 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.
- Parameters:
pfxPath- thepfxPathargument (notnull)pfxPassword- thepfxPasswordargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
smtpAuthenticate
public void smtpAuthenticate()Authenticates with the SMTP server using the current SMTP property settings, such as,getSmtpUsername(), OAuth2 token settings, and other authentication-related options.getSmtpPassword()This method should be called only after a successful call to
. ThesmtpConnect()method performs both steps and is equivalent to callingopenSmtpConnection()followed bysmtpConnect()SmtpAuthenticate.Calling this method is optional in most applications because SMTP methods that communicate with the server, such as
, automatically connect and authenticate if no authenticated SMTP connection is already open.sendEmail(Email)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
smtpConnect
public void 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
SmtpConnectsucceeds, callto authenticate. ThesmtpAuthenticate()method performs both steps and is equivalent to callingopenSmtpConnection()SmtpConnectfollowed by.smtpAuthenticate()Calling this method is optional in most applications because SMTP methods that communicate with the server, such as
, automatically connect and authenticate if no authenticated SMTP connection is already open.sendEmail(Email)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
smtpNoop
public void smtpNoop()Sends an SMTPNOOPcommand 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,
SmtpNoopautomatically establishes the connection using the current SMTP property settings.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
smtpReset
public void smtpReset()Sends an SMTPRSETcommand to the server.The
RSETcommand 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.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
smtpSendRawCommand
Sends a raw command to the SMTP server and returns the server's response.If
contains non-US-ASCII characters,commandspecifies the character set used to encode the command before it is sent. Examples includecharsetutf-8,ansi,iso-8859-1, andShift_JIS.If
isbEncodeBase64, the response is returned in Base64-encoded form. IftrueisbEncodeBase64, the raw response text is returned.falseThis method is intended for advanced use, diagnostics, or issuing SMTP commands not directly exposed by higher-level MailMan methods.
- Parameters:
command- thecommandargument (notnull)charset- thecharsetargument (notnull)bEncodeBase64- thebEncodeBase64argument- Returns:
- the result (never
null) - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
sshAuthenticatePk
Authenticates with the SSH server using public-key authentication after an SSH tunnel has been opened.The
argument is the SSH account name. ThesshLoginargument is theprivKeySshKeycontaining 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
to connect to the SSH server, followed by eithersshOpenTunnel(String, int)SshAuthenticatePkorto authenticate.sshAuthenticatePw(String, String)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.
- Parameters:
sshLogin- thesshLoginargument (notnull)privKey- theprivKeyargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
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, andsshLoginis the corresponding SSH password.sshPasswordAn SSH tunneling session begins by calling
to connect to the SSH server, followed by eithersshOpenTunnel(String, int)SshAuthenticatePworto authenticate.sshAuthenticatePk(String, SshKey)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.
- Parameters:
sshLogin- thesshLoginargument (notnull)sshPassword- thesshPasswordargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
sshCloseTunnel
public void sshCloseTunnel()Closes the SSH tunnel used for SMTP or POP3 communication.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
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. ThesshHostnameargument is the SSH port, typicallysshPort22.An SSH tunneling session begins by calling
SshOpenTunnel, followed by eitherorsshAuthenticatePw(String, String)to authenticate.sshAuthenticatePk(String, SshKey)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.
- Parameters:
sshHostname- thesshHostnameargument (notnull)sshPort- thesshPortargument- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
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, oraddPfxSourceBd(BinData, String), only one XML certificate vault can be used at a time. IfaddPfxSourceFile(String, String)UseCertVaultis called more than once, the most recent vault replaces the previously supplied vault.- Parameters:
vault- thevaultargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
useSsh
Configures MailMan to use an existing SSH tunnel provided by theSshobject insshfor SMTP and POP3 connections.This method is similar to
, except the SSH tunnel is supplied inuseSshTunnel(Socket)sshrather than aSocketobject.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.
- Parameters:
ssh- thesshargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
useSshTunnel
Configures MailMan to use an existing SSH tunnel provided by aSocketobject 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.
- Parameters:
tunnel- thetunnelargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
verifyPopConnection
public boolean verifyPopConnection()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
to test both connection and login.verifyPopLogin()Returns
if the connection can be established, otherwise returnstrue.false- Returns:
- the result; this method never throws
ChilkatException
-
verifyPopLogin
public boolean 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 returnstrue.false- Returns:
- the result; this method never throws
ChilkatException
-
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 inemail.badAddrsThis method can help identify addresses the SMTP server rejects during the SMTP
RCPT TOstage. 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.- Parameters:
email- theemailargument (notnull)badAddrs- thebadAddrsargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
verifySmtpConnection
public boolean 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
to test both connection and login.verifySmtpLogin()Returns
if the connection can be established, otherwise returnstrue.false- Returns:
- the result; this method never throws
ChilkatException
-
verifySmtpLogin
public boolean 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 returnstrue.false- Returns:
- the result; this method never throws
ChilkatException
-
setProgressListener
Installs the listener that receives this object's progress events (abortCheck,percentDone,progressInfo) during its long-running methods; replaces any listener or lambda installed before;nullremoves it.- Parameters:
listener- the listener, ornull- Throws:
IllegalStateException- if called from inside one of this object's own callbacks
-
getProgressListener
Returns the installed listener, ornull.- Returns:
- the listener installed with
setProgressListener(ProgressListener)or one of theon...methods
-
onAbortCheck
Installs a listener whose only callback isabortCheck: called everyHeartbeatMsmilliseconds during a long-running method; returntrueto abort it. Replaces any listener installed before.- Parameters:
callback- the callback, ornullto remove the listener
-
onPercentDone
Installs a listener whose only callback ispercentDone: called with the completion percentage (0..100) as a long-running method progresses; returntrueto abort it. Replaces any listener installed before.- Parameters:
callback- the callback, ornullto remove the listener
-
onProgressInfo
Installs a listener whose only callback isprogressInfo: called with a name/value pair of progress information as a long-running method proceeds. Replaces any listener installed before.- Parameters:
callback- the callback, ornullto remove the listener
-