גיט דער SMTP פֿאַרבינדונג פֿון Indy אַ פּראָקסי IOHandler
פֿאַרבינדט SOCKS אָדער HTTP CONNECT מיט TIdSMTP דורך די IOHandler אייגנשאַפֿטן פֿון דער ריכטיקער Indy ווערסיע, מיט באַזונדערע פּאָסט און פּראָקסי איינשטעלונגען.
אין Indy פֿאַרבינדט דעם פּראָקסי צו דעם IOHandler וואָס TIdSMTP ניצט. האַלט TIdSMTP.Host און Port געווענדעט צו דער פּאָסט סערוויס. די פּראָקסי קאָמפּאָנענט פֿון IOHandler פֿאַרזאָרגט די אַדרעס פֿון דעם מיטלער און פֿירט אויס דעם פּראָקסי האַנטשאַק אויף דער זעלבער פֿאַרבינדונג.
די אייגנשאַפֿט וואָס איר ניצט אָנהענגט פֿון דער Indy ווערסיע: Indy 9 שטעלט צו SocksInfo; Indy 10 ניצט TransparentProxy. פּרויפֿט די קאָמפּאָנענט ביבליאָטעק אין דער אַפּליקאַציע אַנשטאָט אויסקלויבן אַ ביישפּיל נאָר לויט דעם נאָמען פֿון דער Delphi אויסגאַבע.
Indy 10 מיט SOCKS5
לאָמיר זיך פֿאָרשטעלן אַז דאָס פֿאָרמולאַר האָט שוין די קאָמפּאָנענטן:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: TIdSocksInfo
פֿאַרבינדט און קאָנפֿיגורירט זיי פֿאַר איר עפֿנט די SMTP פֿאַרבינדונג:
Smtp.Host := 'smtp.example.net';
Smtp.Port := 587;
Smtp.IOHandler := MailSocket;
Socks.Host := 'proxy.example.net';
Socks.Port := 1080;
Socks.Version := svSocks5;
MailSocket.TransparentProxy := Socks;
די פּאָרט ווערטן זענען ביישפּילן. דער SMTP פּאָרט מוז שטימען מיט דער סערוויס און דעם TLS מאָדע וואָס איר פּלאַנירט צו ניצן. דער SOCKS פּאָרט געהערט צום פּראָקסי.
פֿאַר אַ דערלויבטער פּובליקער SMTP פּרובֿ וואו אַ פּובליקער מיטלער איז דערלויבט, די SOCKS5 פּראָקסי ליסטע פֿאָרשטעלט קאַנדידאַט אַדרעסן. באַשטעטיקט אַז דער קאַנדידאַט דערלויבט דעם עמעסטן פּאָסט האָסט און פּאָרט, און ניצט דעם צווײַג אָן פּראָקסי אויטענטיפֿיקאַציע אָן אויפֿהיטן באַשטעטיקונגען פֿון אַ פֿריִערדיקן פּראָקסי.
TIdSocksInfo הייבט אָן מיט svNoSocks, דעריבער בלויז אַ פּראָקסי האָסטנאָמען אָנשטעלן אַקטיווירט עס נישט. קלייבט די פּאַסיקע SOCKS ווערסיע. אויב דער פּראָקסי פֿאָדערט SOCKS5 באַניצער נאָמען/פּאַראָל אויטענטיפֿיקאַציע, קאָנפֿיגורירט סיי דעם אויטענטיפֿיקאַציע מעטאָד און סיי די באַשטעטיקונגען:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser און ProxyPassword פֿאָרשטעלן ווערטן וואָס די אַפּליקאַציע שטעלט צו. די אייגנשאַפֿטן אויטענטיפֿיצירן זיך בײַם פּראָקסי. קאָנפֿיגורירט דעם SMTP חשבון און זײַן אויטענטיפֿיקאַציע מעטאָד באַזונדער אין דעם פּאָסט קליענט.
אויפֿהיטן אַן עקזיסטירנדן TLS IOHandler
אַ פּאָסט קליענט וואָס ניצט STARTTLS אָדער אימפּליציט TLS דאַרף זײַן SSL-פֿעיִיקן IOHandler. פֿאַרבײַטס נישט די קאָמפּאָנענט מיט אַ פּשוטן TIdIOHandlerStack בלויז כּדי צוצוגעבן דעם פּראָקסי.
אין Indy 10 שטאַמט די SSL IOHandler באַזע פֿון TIdIOHandlerStack און ירשנט זײַן פּראָקסי שטיצע. פֿאַר אַן עקזיסטירנדן פּאַסיקן SSL IOHandler מיטן נאָמען MailTLS ווערט די פֿאַרבינדונג:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
די איינשטעלונג UseTLS פֿון דער SMTP קאָמפּאָנענט קלייבט נאָך אַלץ דעם TLS מאָדע פֿון דער פּאָסט סערוויס. קאָנפֿיגורירט צוטרוי צום צערטיפֿיקאַט און באַשטעטיקונג פֿון האָסטנאָמען אין דער TLS אינטעגראַציע פֿאַר smtp.example.net, נישט פֿאַר דעם פּראָקסי האָסטנאָמען. צוגעבן אַ טונעל שטעלט נישט אַליין אויס צערטיפֿיקאַט באַשטעטיקונג.
ניצן אַ HTTP CONNECT פּראָקסי אַנשטאָט
פֿאַר Indy 10 ניצט די קאָמפּאָנענט TIdConnectThroughHttpProxy, פֿאַראַן פֿון IdConnectThroughHttpProxy. אין דער אָננאָמע אַז עס עקזיסטירט אַ פֿאָרמולאַר-אייגענע אינסטאַנץ מיטן נאָמען HttpTunnel:
HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;
אויב SMTP ניצט MailTLS, באַשטימט HttpTunnel צו דער TransparentProxy פֿון יענעם באַהאַנדלער. דאָס פּאָסט ציל בלײַבט אויף Smtp.
די קאָמפּאָנענט שטעלט אויס אַ HTTP CONNECT טונעל און פֿירט דורך גרונטיקע פּראָקסי אויטענטיפֿיקאַציע דורך אירע Username און Password אייגנשאַפֿטן. אַ פּראָקסי וואָס פֿאָדערט אַן אַנדער אויטענטיפֿיקאַציע מעקאַניזם דאַרף אַ פּאַסיקע פֿירונג; דענקט נישט אַז די צוויי אייגנשאַפֿטן שטעלן צו אַלע HTTP אויטענטיפֿיקאַציע סכעמעס.
דער פּראָקסי מוז אויך דערלויבן CONNECT צום עמעסטן פּאָרט פֿון דעם פּאָסט סערווער. דערלויבעניש צו מאַכן אַ טונעל צו וועבסערווערס אויף 443 מיינט נישט דערלויבעניש צו דערגרייכן אַ פֿאָרלייג סערוויס אויף 587 אָדער אַ SMTP סערווער אויף 25.
די Indy 9 פֿאַרבינדונג
Indy 9 ניצט TIdIOHandlerSocket און זײַן אייגנשאַפֿט SocksInfo. מיט פֿאָרמולאַר-אייגענע קאָמפּאָנענטן מיטן נאָמען Socket9 און Socks9 איז די גלײַכווערטיקע פֿאַרבינדונג:
Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;
זײַן SOCKS פֿירונג שטיצט ווערסיעס 4, 4a און 5. די אָרדענונג TransparentProxy און HTTP CONNECT קאָמפּאָנענט פֿון Indy 10 קען נישט בלויז אָנגעקלעפּט ווערן אין דעם עלטערן צווישנשײַד.
עס עקזיסטירט נישט קיין באַזונדערע פֿאָרלאָפּיקע פּראָקסי אַרײַנלאָגירונג וואָס מען זאָל טאָן מיט אַן אַנדער TCP קליענט. פּראָקסי אויטענטיפֿיקאַציע, טונעל אויסשטעלונג און SMTP אויסטויש מוזן געהערן צו דער פֿאַרבינדונג וואָס די SMTP קאָמפּאָנענט ניצט טאַקע. ווען יענע פֿאַרבינדונג איז ריכטיק, קען מען לאָקאַליזירן אַ דורכפֿאַל בײַם פּראָקסי אָפּשמועס, בײַם SMTP גרוס, אין TLS אָדער אין פּאָסט אויטענטיפֿיקאַציע, אַנשטאָט אָננעמען יעדע אָפּוואַרפֿונג ווי אַ פֿאַלש פּאָסט פּאַראָל.