を使用する場合STARTTLS
、サーバーのリスニングポートは、接続時に最初は暗号化されていません。クライアントが接続すると、サーバーがサポートしている場合は、オプションのSTARTTLS
コマンドをサーバーに送信して、その時点でSSL/TLSハンドシェイクを動的に実行できます。これにより、従来の非SSL / TLSクライアントは同じポートに接続し続けることができ、新しいSSL/TLS対応クライアントはサーバーで使用可能な場合はSSL/TLSを使用できます。これUseTLS=utUseExplicitTLS
はインディに対応します。コマンドはサーバーがコマンドをサポートしているかどうかを検出する方法であるため、UseEHLO
を使用するにはTrueに設定する必要があります。UseTLS=utUseExplicitTLS
EHLO
TIdSMTP
STARTTLS
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コンポーネント(およびsatSASL
TIdSMTP.SASLMechanisms
TIdSASL
DIGEST-MD5
CRAM-MD5
CRAM-SHA1
NTLM
ANONYMOUS
EXTERNAL
OTP
PLAIN
SKEY
LOGIN
AUTH LOGIN
TIdSASL
TIdUserPassProvider
TIdSMTP.UserName
TIdSMTP.Password
プロパティはSASLでは使用されません)。サポートするSASLアルゴリズムが多いほど、サポートできるサーバーの数が増えます。
を引き続きサポートするサーバーの場合はAUTH LOGIN
、に設定TIdSMTP.AuthType
して(サーバーがサポートしているが、コマンドに応答してレポートしない場合はsatDefault
オプションTIdSMTP.ValidateAuthLoginCapability
でFalseに設定) 、プロパティを入力するか、コンポーネントをに含めることで使用できます。コレクション。AUTH LOGIN
EHLO
TIdSMTP.UserName
TIdSMTP.Password
TIdSASLLogin
TIdSMTP.SASLMechanisms
UseVerp
セキュリティとUseNagle
は何の関係もありません。 VERP
配信不能エラーによるバウンスメールを検出するためのSMTP拡張機能です。Nagleは、ネットワークデータパケットを最適化するためのネットワークアルゴリズムです。