SMTPClient Class
Properties Methods Events Configuration Settings Errors
The SMTPClient class provides client-side functionality for SMTP (Simple Mail Transfer Protocol).
Syntax
SMTPClient
Remarks
Use this component to send e-mails from your application.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
| BlockedCertCount | The number of records in the BlockedCert arrays. |
| BlockedCertBytes | Returns raw certificate data in DER format. |
| BlockedCertHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| ClientCertCount | The number of records in the ClientCert arrays. |
| ClientCertBytes | Returns raw certificate data in DER format. |
| ClientCertHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| ConnInfoAEADCipher | Indicates whether the encryption algorithm used is an AEAD cipher. |
| ConnInfoChainValidationDetails | The details of a certificate chain validation outcome. |
| ConnInfoChainValidationResult | The outcome of a certificate chain validation routine. |
| ConnInfoCiphersuite | The cipher suite employed by this connection. |
| ConnInfoClientAuthenticated | Specifies whether client authentication was performed during this connection. |
| ConnInfoClientAuthRequested | Specifies whether client authentication was requested during this connection. |
| ConnInfoConnectionEstablished | Indicates whether the connection has been established fully. |
| ConnInfoConnectionID | The unique identifier assigned to this connection. |
| ConnInfoDigestAlgorithm | The digest algorithm used in a TLS-enabled connection. |
| ConnInfoEncryptionAlgorithm | The symmetric encryption algorithm used in a TLS-enabled connection. |
| ConnInfoExportable | Indicates whether a TLS connection uses a reduced-strength exportable cipher. |
| ConnInfoKeyExchangeAlgorithm | The key exchange algorithm used in a TLS-enabled connection. |
| ConnInfoKeyExchangeKeyBits | The length of the key exchange key of a TLS-enabled connection. |
| ConnInfoNamedECCurve | The elliptic curve used in this connection. |
| ConnInfoPFSCipher | Indicates whether the chosen ciphersuite provides perfect forward secrecy (PFS). |
| ConnInfoPreSharedIdentityHint | A hint professed by the server to help the client select the PSK identity to use. |
| ConnInfoPublicKeyBits | The length of the public key. |
| ConnInfoResumedSession | Indicates whether a TLS-enabled connection was spawned from another TLS connection. |
| ConnInfoSecureConnection | Indicates whether TLS or SSL is enabled for this connection. |
| ConnInfoServerAuthenticated | Indicates whether server authentication was performed during a TLS-enabled connection. |
| ConnInfoSignatureAlgorithm | The signature algorithm used in a TLS handshake. |
| ConnInfoSymmetricBlockSize | The block size of the symmetric algorithm used. |
| ConnInfoSymmetricKeyBits | The key length of the symmetric algorithm used. |
| ConnInfoTotalBytesReceived | The total number of bytes received over this connection. |
| ConnInfoTotalBytesSent | The total number of bytes sent over this connection. |
| ConnInfoValidationLog | Contains the server certificate's chain validation log. |
| ConnInfoVersion | Indicates the version of SSL/TLS protocol negotiated during this connection. |
| Domain | The sender host's domain name for HELO/EHLO. |
| ExternalCryptoCustomParams | Custom parameters to be passed to the signing service (uninterpreted). |
| ExternalCryptoData | Additional data to be included in the async state and mirrored back by the requestor. |
| ExternalCryptoExternalHashCalculation | Specifies whether the message hash is to be calculated at the external endpoint. |
| ExternalCryptoHashAlgorithm | Specifies the request's signature hash algorithm. |
| ExternalCryptoKeyID | The ID of the pre-shared key used for DC request authentication. |
| ExternalCryptoKeySecret | The pre-shared key used for DC request authentication. |
| ExternalCryptoMethod | Specifies the asynchronous signing method. |
| ExternalCryptoMode | Specifies the external cryptography mode. |
| ExternalCryptoPublicKeyAlgorithm | Provide public key algorithm here if the certificate is not available on the pre-signing stage. |
| KnownCertCount | The number of records in the KnownCert arrays. |
| KnownCertBytes | Returns raw certificate data in DER format. |
| KnownCertHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| KnownCRLCount | The number of records in the KnownCRL arrays. |
| KnownCRLBytes | Returns raw CRL data in DER format. |
| KnownCRLHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| KnownOCSPCount | The number of records in the KnownOCSP arrays. |
| KnownOCSPBytes | Buffer containing raw OCSP response data. |
| KnownOCSPHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| MsgAttachmentCount | Returns the number of attachments in this message. |
| MsgBcc | The contents of the BCC header property. |
| MsgCc | The value of the CC header property. |
| MsgComments | Contains additional information about the message body. |
| MsgDate | The date and time when the message entered the mail delivery system. |
| MsgDeliveryReceipt | Enables delivery notification. |
| MsgFrom | Contains the value of the From header property. |
| MsgHtmlText | The HTML version of the message. |
| MsgID | The contents of the Message-ID header property. |
| MsgInReplyTo | The value of the In-Reply-To header property. |
| MsgKeywords | The value of the Keywords header property. |
| MsgMailer | The name of the software that was used to send the message. |
| MsgPlainText | The plain text version of the message. |
| MsgPriority | Specifies the message priority. |
| MsgReadReceipt | Enables a read notification. |
| MsgReferences | The value of the References header property. |
| MsgReplyTo | The value of the Reply-To header property. |
| MsgReturnPath | The value of the Return-Path header property. |
| MsgSender | The value of the Sender header property. |
| MsgSendTo | The value of the To header property. |
| MsgSubject | Contains the subject property of this message. |
| Password | The authentication password. |
| ProxyAddress | The IP address of the proxy server. |
| ProxyAuthentication | The authentication type used by the proxy server. |
| ProxyPassword | The password to authenticate to the proxy server. |
| ProxyPort | The port on the proxy server to connect to. |
| ProxyProxyType | The type of the proxy server. |
| ProxyRequestHeaders | Contains HTTP request headers for WebTunnel and HTTP proxy. |
| ProxyResponseBody | Contains the HTTP or HTTPS (WebTunnel) proxy response body. |
| ProxyResponseHeaders | Contains response headers received from an HTTP or HTTPS (WebTunnel) proxy server. |
| ProxyUseIPv6 | Specifies whether IPv6 should be used when connecting through the proxy. |
| ProxyUseProxy | Enables or disables proxy-driven connection. |
| ProxyUsername | Specifies the username credential for proxy authentication. |
| ServerCertCount | The number of records in the ServerCert arrays. |
| ServerCertBytes | Returns raw certificate data in DER format. |
| ServerCertCAKeyID | A unique identifier (fingerprint) of the CA certificate's private key. |
| ServerCertFingerprint | Contains the fingerprint (a hash imprint) of this certificate. |
| ServerCertHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| ServerCertIssuer | The common name of the certificate issuer (CA), typically a company name. |
| ServerCertIssuerRDN | A collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate issuer. |
| ServerCertKeyAlgorithm | Specifies the public key algorithm of this certificate. |
| ServerCertKeyBits | Returns the length of the public key. |
| ServerCertKeyFingerprint | Returns a fingerprint of the public key contained in the certificate. |
| ServerCertKeyUsage | Indicates the purposes of the key contained in the certificate, in the form of an OR'ed flag set. |
| ServerCertPublicKeyBytes | Contains the certificate's public key in DER format. |
| ServerCertSelfSigned | Indicates whether the certificate is self-signed (root) or signed by an external CA. |
| ServerCertSerialNumber | Returns the certificate's serial number. |
| ServerCertSigAlgorithm | Indicates the algorithm that was used by the CA to sign this certificate. |
| ServerCertSubject | The common name of the certificate holder, typically an individual's name, a URL, an e-mail address, or a company name. |
| ServerCertSubjectKeyID | Contains a unique identifier (fingerprint) of the certificate's private key. |
| ServerCertSubjectRDN | A collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate holder (subject). |
| ServerCertValidFrom | The time point at which the certificate becomes valid, in UTC. |
| ServerCertValidTo | The time point at which the certificate expires, in UTC. |
| ServerInfoAuthLoginSupported | Whether the SMTP server supports LOGIN authentication method. |
| ServerInfoAuthPlainSupported | Whether the SMTP server supports PLAIN authentication method. |
| ServerInfoAvailable | Specifies whether server extensions are available. |
| ServerInfoBinarySupported | Whether binary sending mode is supported by the SMTP server. |
| ServerInfoChunkingSupported | Whether message chunking is supported by the SMTP server. |
| ServerInfoDsnSupported | Whether the SMTP server supports Delivery Status Notifications. |
| ServerInfoMaxMessageSize | Returns the maximum size of a message in bytes which the server can accept. |
| ServerInfoSaslSupported | Whether the SMTP server supports SASL authentication. |
| ServerInfoSizeSupported | Whether the SMTP server supports SIZE service extension. |
| ServerInfoStatusCodesSupported | Whether the SMTP server supports status codes. |
| SocketDNSMode | Selects the DNS resolver to use: the class's (secure) built-in one, or the one provided by the system. |
| SocketDNSPort | Specifies the port number to be used for sending queries to the DNS server. |
| SocketDNSQueryTimeout | The timeout (in milliseconds) for each DNS query. |
| SocketDNSServers | The addresses of DNS servers to use for address resolution, separated by commas or semicolons. |
| SocketDNSTotalTimeout | The timeout (in milliseconds) for the whole resolution process. |
| SocketIncomingSpeedLimit | The maximum number of bytes to read from the socket, per second. |
| SocketLocalAddress | The local network interface to bind the socket to. |
| SocketLocalPort | The local port number to bind the socket to. |
| SocketOutgoingSpeedLimit | The maximum number of bytes to write to the socket, per second. |
| SocketTimeout | The maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful. |
| SocketUseIPv6 | Enables or disables IP protocol version 6. |
| TLSAutoValidateCertificates | Specifies whether server-side TLS certificates should be validated automatically using internal validation rules. |
| TLSBaseConfiguration | Selects the base configuration for the TLS settings. |
| TLSCiphersuites | A list of ciphersuites separated with commas or semicolons. |
| TLSECCurves | Defines the elliptic curves to enable. |
| TLSForceResumeIfDestinationChanges | Whether to force TLS session resumption when the destination address changes. |
| TLSPreSharedIdentity | Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated. |
| TLSPreSharedKey | Contains the pre-shared for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16. |
| TLSPreSharedKeyCiphersuite | Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation. |
| TLSRenegotiationAttackPreventionMode | Selects renegotiation attack prevention mechanism. |
| TLSRevocationCheck | Specifies the kind(s) of revocation check to perform. |
| TLSSSLOptions | Various SSL (TLS) protocol options, set of cssloExpectShutdownMessage 0x001 Wait for the close-notify message when shutting down the connection cssloOpenSSLDTLSWorkaround 0x002 (DEPRECATED) Use a DTLS version workaround when talking to very old OpenSSL versions cssloDisableKexLengthAlignment 0x004 Do not align the client-side PMS by the RSA modulus size. |
| TLSTLSMode | Specifies the TLS mode to use. |
| TLSUseExtendedMasterSecret | Enables Extended Master Secret Extension, as defined in RFC 7627. |
| TLSUseSessionResumption | Enables or disables TLS session resumption capability. |
| TLSVersions | Th SSL/TLS versions to enable by default. |
| TrustedCertCount | The number of records in the TrustedCert arrays. |
| TrustedCertBytes | Returns raw certificate data in DER format. |
| TrustedCertHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
| Username | The authentication username. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
| Config | Sets or retrieves a configuration setting. |
| Connect | Establishes a connection to the SMTP server. |
| Disconnect | Closes connection to the SMTP server. |
| SendBytes | Sends an e-mail message stored in a byte array. |
| SendFile | Sends an e-mail message stored in a file. |
| SendMessage | Sends a message to the SMTP server. |
| SendStream | Sends an e-mail message stored in a stream. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
| BeforeAuth | Fires before the authentication starts. |
| CertificateValidate | Fires when the server's TLS certificate has to be validated. |
| Command | Reports a command sent to the server. |
| CommandData | Returns the data that accompanies the command. |
| CommandReply | Reports the receipt of a reply to a command. |
| Error | Provides information about errors during SMTP operations. |
| ExternalSign | Handles remote or external signing initiated by the SignExternal method or other source. |
| Notification | This event notifies the application about an underlying control flow event. |
| Progress | Reports the progress of the data transfer operation. |
Configuration Settings
The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.
| Authentications | Specifies enabled authentication methods and their priorities. |
| BinaryChunkSize | Specifies the size of chunks to use for dividing outgoing messages in binary mode. |
| BinaryMode | Specifies whether binary mode is allowed for sending. |
| ForceLogin | Forces the class to login to the server. |
| IgnoreSystemTrust | Whether trusted Windows Certificate Stores should be treated as trusted. |
| RemoveBCC | Specifies if BCC header fields should be removed from messages. |
| SendBufferSize | Size of send buffer in bytes. |
| TempPath | Path for storing temporary files. |
| TolerateMinorChainIssues | Whether to tolerate minor chain issues. |
| UseMicrosoftCTL | Enables or disables automatic use of Microsoft online certificate trust list. |
| UseSystemCertificates | Enables or disables the use of the system certificates. |
| CheckKeyIntegrityBeforeUse | Enables or disable private key integrity check before use. |
| CookieCaching | Specifies whether a cookie cache should be used for HTTP(S) transports. |
| Cookies | Gets or sets local cookies for the class (supported for HTTPClient, RESTClient and SOAPClient only). |
| DefDeriveKeyIterations | Specifies the default key derivation algorithm iteration count. |
| EnableClientSideSSLFFDHE | Enables or disables finite field DHE key exchange support in TLS clients. |
| GlobalCookies | Gets or sets global cookies for all the HTTP transports. |
| HttpUserAgent | Specifies the user agent name to be used by all HTTP clients. |
| LogDestination | Specifies the debug log destination. |
| LogDetails | Specifies the debug log details to dump. |
| LogFile | Specifies the debug log filename. |
| LogFilters | Specifies the debug log filters. |
| LogFlushMode | Specifies the log flush mode. |
| LogLevel | Specifies the debug log level. |
| LogMaxEventCount | Specifies the maximum number of events to cache before further action is taken. |
| LogRotationMode | Specifies the log rotation mode. |
| MaxASN1BufferLength | Specifies the maximal allowed length for ASN.1 primitive tag data. |
| MaxASN1TreeDepth | Specifies the maximal depth for processed ASN.1 trees. |
| OCSPHashAlgorithm | Specifies the hash algorithm to be used to identify certificates in OCSP requests. |
| UseOwnDNSResolver | Specifies whether the client classes should use own DNS resolver. |
| UseSharedSystemStorages | Specifies whether the validation engine should use a global per-process copy of the system certificate stores. |
| UseSystemOAEPAndPSS | Enforces or disables the use of system-driven RSA OAEP and PSS computations. |
| UseSystemRandom | Enables or disables the use of the OS PRNG. |