Gitt der SMTP-Verbindung vun Indy en Proxy-IOHandler
Verbind SOCKS oder HTTP CONNECT mat TIdSMTP iwwer d'IOHandler-Eegeschaften vun der richteger Indy-Versioun, mat getrennten Mail- an Proxy-Astellungen.
An Indy befestegt Dir de Proxy un den IOHandler, deen TIdSMTP benotzt. Halt TIdSMTP.Host an Port op de Mailservice geriicht. D'Proxy-Komponent vum IOHandler liwwert d'Adress vum Vermëttler a mécht den Proxy-Handshake op därselwechter Verbindung.
D'Eegeschaft, déi Dir benotzt, hänkt vun der Indy-Versioun of: Indy 9 bitt SocksInfo; Indy 10 benotzt TransparentProxy. Kontrolléiert d'Komponentebibliothéik an der Applikatioun, amplaz e Beispill nëmmen nom Numm vun der Delphi-Verëffentlechung ze wielen.
Indy 10 mat SOCKS5
Stellt Iech vir, datt de Formulaire dës Komponente schonn huet:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: TIdSocksInfo
Verbindt a konfiguréiert se, ier Dir d'SMTP-Verbindung opmaacht:
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;
D'Portwäerter sinn Beispiller. De SMTP-Port muss zum Service an zum TLS-Modus passen, deen Dir wëllt benotzen. Den SOCKS-Port gehéiert zum Proxy.
Fir en erlaabten ëffentlechen SMTP-Test, wou en ëffentleche Vermëttler erlaabt ass, bitt d'SOCKS5-Proxy-Lëscht Kandidatadressen. Bestätegt, datt de Kandidat den tatsächlechen Mailhost an de Port erlaabt, a benotzt de Branche ouni Proxy-Authentifikatioun, ouni d'Umeldungsinformatioune vun engem fréieren Proxy ze behalen.
TIdSocksInfo fänkt mat svNoSocks un, dofir aktivéiert een nëmmen duerch en Hostnumm ze setzen net. Wielt déi passend SOCKS-Versioun. Wann de Proxy SOCKS5-Benotzernumm/Passwuert-Authentifikatioun verlaangt, konfiguréiert souwuel d'Authentifikatiounsmethod wéi och d'Umeldungsinformatiounen:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser an ProxyPassword representéieren Wäerter, déi d'Applikatioun liwwert. Dës Eegeschafte authentifizéieren sech beim Proxy. Konfiguréiert de SMTP-Kont an seng Authentifikatiounsmethod getrennt am Mailclient.
En existéierenden TLS-IOHandler behalen
E Mailclient mat STARTTLS oder implizitem TLS brauch säin SSL-fäegen IOHandler. Ersetzt dës Komponent net duerch en einfachen TIdIOHandlerStack just fir de Proxy dobäizesetzen.
An Indy 10 stammt d'SSL-IOHandler-Basis vum TIdIOHandlerStack of a ierft seng Proxy-Ënnerstëtzung. Fir en existéierende kompatibelen SSL-IOHandler mam Numm MailTLS gëtt d'Verbindung:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
D'Astellung UseTLS vun der SMTP-Komponent wielt weiderhin den TLS-Modus vum Mailservice. Konfiguréiert Zertifikatsvertrauen an Hostnummvalidéierung an der TLS-Integratioun fir smtp.example.net, net fir den Hostnumm vum Proxy. En Tunnel dobäisetzen etabléiert net vun sech aus eng Zertifikatsvalidéierung.
Amplaz eng HTTP CONNECT-Proxy benotzen
Fir Indy 10 benotzt Dir eng TIdConnectThroughHttpProxy-Komponent, verfügbar vun IdConnectThroughHttpProxy. Ugeholl et gëtt eng existéierend formulaire-eegen Instanz mam Numm HttpTunnel:
HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;
Wann SMTP MailTLS benotzt, weist HttpTunnel amplaz der TransparentProxy vun deem Handler zou. D'Mailzil bleift op Smtp.
Dës Komponent etabléiert en HTTP CONNECT-Tunnel a setzt Basic-Proxy-Authentifikatioun duerch seng Username- an Password-Eegeschaften ëm. E Proxy, deen en aneren Authentifikatiounsmechanismus verlaangt, brauch eng kompatibel Ëmsetzung; huelt net un, datt dës zwou Eegeschaften all HTTP-Authentifikatiounsschemaen ubidden.
De Proxy muss och CONNECT zum tatsächleche Port vum Mailserver erlaben. D'Erlaabnes, op Webserveren op 443 ze tunnelen, heescht net d'Erlaabnes, en Ofgabeservice op 587 oder en SMTP-Server op 25 z'erreechen.
D'Indy 9-Verbindung
Indy 9 benotzt en TIdIOHandlerSocket an seng SocksInfo-Eegeschaft. Mat formulaire-eegene Komponenten mam Numm Socket9 an Socks9 ass d'gläichwäerteg Verkabelung:
Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;
Seng SOCKS-Ëmsetzung ënnerstëtzt d'Versioune 4, 4a an 5. D'Uerdnung TransparentProxy an HTTP CONNECT-Komponent vun Indy 10 kann net einfach an dës eeler Interface gepecht ginn.
Et gëtt keen separaten Virbereedungs-Proxy-Login, deen mat engem aneren TCP-Client gemaach muss ginn. Proxy-Authentifikatioun, Tunnelopbau an SMTP-Austausch mussen zu der Verbindung gehéieren, déi d'SMTP-Komponent tatsächlech benotzt. Wann déi Verkabelung richteg ass, kann e Feeler bei der Proxy-Verhandlung, der SMTP-Begréissung, TLS oder der Mail-Authentifikatioun lokaliséiert ginn, amplaz all Oflehnung als falscht Mailpasswuert ze behandelen.