「EHLO」が送信されたときの Google からの応答例を使用するには:
250-mx.google.com at your service, [66.501.941.15]
250-SIZE 35651584
250-8BITMIME
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250 PIPELINING
16 進数:
32 35 30 2d 6d 78 2e 67 6f 6f 67 6c 65 2e 63 63 6f 6d 20 61 74 20 79 6f 75 75 72 20 73 65 72 76 69 63 65 2c 20 5b 39 32 2e 34 32 31 2e 35 36 35 2e 34 34 32 5d 5d 0d 0a 32 35 30 2d 53 49 5a 45 20 33 35 36 35 31 35 35 38 34 0D 0A 32 35 30 2D 38 42 42 49 54 4D 49 4D 45 0D 0A 32 35 30 2D 41 55 54 48 20 4C 4F 47 49 49 4E 20 50 4C 41 49 4E 0D 0A 32 35 30 2D 45 4E 48 41 4E 43 45 44 53 54 41 54 55 53 43 4F 44 45 53 0D 0A 32 35 30 20 50 49 D 50 45 4E 7 49
SMTP 仕様では、行は CR LF (0D 0A) で終了する必要があると規定されているため、これらの 2 バイトを解析して行を見つけることができますが、応答の終わりをどのように判断すればよいでしょうか?
衛星経由では、応答がバラバラになり、その間に大きな遅延が生じる可能性があります。これは、CR LF の後に応答が終了し、完了していない可能性があることを意味します。
250-mx.google.com at your service, [66.501.941.15]
250-SIZE 35651584
250-8BITMIME
後続の CR LF を探すロジックは、応答が完了したと見なします。この場合、CryptLib を使用して SLL トンネルを実行していますが、「応答の終了」を取得する方法があれば、独自のコードでポートを作成してライブラリに渡すことができます。