Jou Indy's SMTP-ferbining in proxy-IOHandler
Ferbin SOCKS of HTTP CONNECT mei TIdSMTP mei de IOHandler-eigenskippen fan 'e juste Indy-ferzje, mei aparte mail- en proxy-ynstellings.
Yn Indy ferbynje jo de proxy oan 'e IOHandler dy't TIdSMTP brûkt. Hâld TIdSMTP.Host en Port rjochte op 'e mailtsjinst. De proxykomponint fan 'e IOHandler leveret it adres fan 'e tuskenpersoan en docht de proxy-hânjeklap op deselde ferbining.
De eigenskip dy't jo brûke hinget ôf fan 'e Indy-ferzje: Indy 9 biedt SocksInfo; Indy 10 brûkt TransparentProxy. Kontrolearje de komponintbibleteek yn 'e applikaasje ynstee fan in foarbyld te kiezen allinnich op grûn fan 'e namme fan 'e Delphi-útjefte.
Indy 10 mei SOCKS5
Stel dat it formulier dizze komponinten al hat:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: TIdSocksInfo
Ferbyn en konfigurearje se foar't jo de SMTP-ferbining iepenje:
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;
De poartewearden binne foarbylden. De SMTP-poarte moat oerienkomme mei de tsjinst en de TLS-modus dy't jo brûke wolle. De SOCKS-poarte heart by de proxy.
Foar in tastiene iepenbiere SMTP-test wêr't in iepenbiere tuskenpersoan tastien is, biedt de SOCKS5-proxylist kandidaatadressen. Befêstigje dat de kandidaat de echte mailhost en poarte tastiet, en brûk de tûke sûnder proxy-autentikaasje sûnder bewiisstikken fan in eardere proxy te behâlden.
TIdSocksInfo begjint mei svNoSocks, dus allinnich it ynstellen fan in proxyhostnamme aktivearret it net. Kies de passende SOCKS-ferzje. As de proxy SOCKS5-brûkersnamme/wachtwurd-autentikaasje freget, konfigurearje dan sawol de autentikaasjemetoade as de bewiisstikken:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser en ProxyPassword fertsjintwurdigje wearden dy't de applikaasje leveret. Dizze eigenskippen autentisearje by de proxy. Konfigurearje it SMTP-akkount en syn autentikaasjemetoade apart yn 'e mailclient.
In besteande TLS-IOHandler behâlde
In mailclient dy't STARTTLS of ymplisite TLS brûkt hat syn SSL-machtige IOHandler nedich. Ferfang dy komponint net troch in gewoane TIdIOHandlerStack allinnich om de proxy ta te foegjen.
Yn Indy 10 stamt de SSL-IOHandler-basis fan TIdIOHandlerStack ôf en erft syn proxy-stipe. Foar in besteande kompatibele SSL-IOHandler mei de namme MailTLS wurdt de ferbining:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
De UseTLS-ynstelling fan 'e SMTP-komponint kiest noch altyd de TLS-modus fan 'e mailtsjinst. Konfigurearje sertifikaatfertrouwen en hostnammevalidaasje yn 'e TLS-yntegraasje foar smtp.example.net, net foar de proxyhostnamme. It tafoegjen fan in tunnel fêstiget op himsels gjin sertifikaatvalidaasje.
Ynstee in HTTP CONNECT-proxy brûke
Brûk foar Indy 10 in TIdConnectThroughHttpProxy-komponint, beskikber út IdConnectThroughHttpProxy. Oannommen dat d'r in besteande formulier-eigene eksimplaar is mei de namme HttpTunnel:
HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;
As SMTP MailTLS brûkt, tawize dan HttpTunnel oan 'e TransparentProxy fan dy handler. It maildoel bliuwt op Smtp.
Dizze komponint leget in HTTP CONNECT-tunnel oan en ymplementearret Basis proxy-autentikaasje fia syn eigenskippen Username en Password. In proxy dy't in oar autentikaasjemeganisme freget, hat in kompatibele ymplemintaasje nedich; nim net oan dat dizze twa eigenskippen alle HTTP-autentikaasjeskema's leverje.
De proxy moat ek CONNECT tastean nei de echte poarte fan 'e mailserver. Tastimming om nei webservers op 443 te tunneljen betsjut net tastimming om in yntsjintsjinst op 587 of in SMTP-server op 25 te berikken.
De Indy 9-ferbining
Indy 9 brûkt in TIdIOHandlerSocket en syn eigenskip SocksInfo. Mei formulier-eigene komponinten mei de nammen Socket9 en Socks9 is de lykweardige bekabeling:
Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;
Syn SOCKS-ymplemintaasje stipet ferzjes 4, 4a en 5. De yndieling TransparentProxy en HTTP CONNECT-komponint fan Indy 10 kin net samar yn dit âldere ynterface plakt wurde.
D'r is gjin aparte foarôfgeande proxylogin dy't mei in oare TCP-client dien wurde moat. Proxy-autentikaasje, tunnelopset en SMTP-útwikseling moatte by de ferbining hearre dy't de SMTP-komponint echt brûkt. As dy bekabeling kloppet, kin in flater lokalisearre wurde by proxy-ûnderhanneling, de SMTP-groet, TLS of mail-autentikaasje, ynstee fan elke ôfwizing as in ferkeard mailwachtwurd te behanneljen.