6

私はindyコンポーネントを使用して、delphiアプリケーションに電子メールを実装しています。特にTidSMTPコンポーネントを使用しています。すべての主要な電子メールサーバーを効果的にサポートする必要があります。私はMozillaThunderbirdを電子メールクライアントとして使用しており、smtpプロパティをTidSMTPコンポーネントのプロパティと比較しています。TidSMTPプロパティ間の関係を説明するドキュメントを見つけようとしましたが、理解できませんでした。

誰かがこれらがどのように比較され、何をするのかを説明できますか?

  • Thunderbirdの場合:接続セキュリティ:(なし、STARTTLS、SSL / TLS)。
  • TidSMTP.UseTLS(utNoTLSSupport、utUseImplicitTLS、utUseRequireTLS、utUseExplicitTLS)

  • Thunderbirdの場合:認証方法:(認証なし、通常のパスワード、暗号化されたパスワード、Kerberos / GSSAPI、NTLM)

  • TidSMTP(ユーザー名、パスワード、useAuthenticationメソッドを使用)

他のTidSMTPプロパティ(UseEhlo、UseVerp、UseNagle)も表示されます。これらを使用する必要がありますか?彼らは何をしますか?

4

1 に答える 1

18

を使用する場合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は、ネットワークデータパケットを最適化するためのネットワークアルゴリズムです。

于 2012-05-08T19:55:35.793 に答える