を使用する場合STARTTLS、サーバーのリスニングポートは、接続時に最初は暗号化されていません。クライアントが接続すると、サーバーがサポートしている場合は、オプションのSTARTTLSコマンドをサーバーに送信して、その時点でSSL/TLSハンドシェイクを動的に実行できます。これにより、従来の非SSL / TLSクライアントは同じポートに接続し続けることができ、新しいSSL/TLS対応クライアントはサーバーで使用可能な場合はSSL/TLSを使用できます。これUseTLS=utUseExplicitTLSはインディに対応します。コマンドはサーバーがコマンドをサポートしているかどうかを検出する方法であるため、UseEHLOを使用するにはTrueに設定する必要があります。UseTLS=utUseExplicitTLSEHLOTIdSMTPSTARTTLS
SSL/TLSの代わりにを使用する場合STARTTLS、サーバーのリスニングポートは常に暗号化を使用し、クライアントは他のデータを交換する前に、接続直後にSSL/TLSハンドシェイクを開始する必要があります。これUseTLS=utUseImplicitTLSはインディに対応します。STARTTLS使用されるコマンドはありません。
認証にTIdSMTPは、2つのオプションがあります。元のSMTP仕様で定義された古い(安全でない)AUTH LOGINコマンドと、SASLベースのハッシュ/暗号化アルゴリズム(Kerberos、GSSAPI、NTLMなどがSASLアルゴリズムとして実装されている)のSMTP拡張機能です。
SASLを使用するには、アプリでサポートするアルゴリズムの個別の派生コンポーネントを指すようにコレクションを設定TIdSMTP.AuthTypeしてから入力します。Indyには、、、、(実験的)、、、、、、、および(のSASLラッパー)のネイティブSASLコンポーネントがあります。別のアルゴリズム(たとえば、KerberosまたはGSSAPI)が必要な場合は、独自の派生コンポーネントを作成する必要があります。ユーザー名/パスワードを使用するアルゴリズムの場合、値を別のコンポーネントに割り当ててから、SASLコンポーネント(およびsatSASLTIdSMTP.SASLMechanismsTIdSASLDIGEST-MD5CRAM-MD5CRAM-SHA1NTLMANONYMOUSEXTERNALOTPPLAINSKEYLOGINAUTH LOGINTIdSASLTIdUserPassProviderTIdSMTP.UserNameTIdSMTP.PasswordプロパティはSASLでは使用されません)。サポートするSASLアルゴリズムが多いほど、サポートできるサーバーの数が増えます。
を引き続きサポートするサーバーの場合はAUTH LOGIN、に設定TIdSMTP.AuthTypeして(サーバーがサポートしているが、コマンドに応答してレポートしない場合はsatDefaultオプションTIdSMTP.ValidateAuthLoginCapabilityでFalseに設定) 、プロパティを入力するか、コンポーネントをに含めることで使用できます。コレクション。AUTH LOGINEHLOTIdSMTP.UserNameTIdSMTP.PasswordTIdSASLLoginTIdSMTP.SASLMechanisms
UseVerpセキュリティとUseNagleは何の関係もありません。 VERP配信不能エラーによるバウンスメールを検出するためのSMTP拡張機能です。Nagleは、ネットワークデータパケットを最適化するためのネットワークアルゴリズムです。