U Indyju povežite proxy s IOHandlerom koji koristi TIdSMTP. Držite TIdSMTP.Host i Port usmjerene na poštansku uslugu. Proxy komponenta IOHandlera daje adresu posrednika i obavlja proxy rukovanje na istoj vezi.

Svojstvo koje koristite ovisi o inačici Indyja: Indy 9 izlaže SocksInfo; Indy 10 koristi TransparentProxy. Provjerite biblioteku komponenti u aplikaciji umjesto da primjer birate samo po nazivu Delphi izdanja.

Indy 10 sa SOCKS5

Pretpostavimo da obrazac već posjeduje ove komponente:

  • Smtp: TIdSMTP
  • MailSocket: TIdIOHandlerStack
  • Socks: TIdSocksInfo

Povežite ih i konfigurirajte prije otvaranja SMTP veze:

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;

Vrijednosti portova su primjeri. SMTP port mora odgovarati usluzi i TLS načinu koji namjeravate koristiti. SOCKS port pripada proxyju.

Za dopušteni javni SMTP test gdje je javni posrednik dozvoljen, popis SOCKS5 proxyja nudi kandidatne adrese. Potvrdite da kandidat dopušta stvarnog poštanskog hosta i port i koristite granu bez proxy autentifikacije, bez zadržavanja vjerodajnica iz ranijeg proxyja.

TIdSocksInfo počinje s svNoSocks, pa samo postavljanje imena proxy hosta ne aktivira ga. Odaberite odgovarajuću inačicu SOCKS-a. Ako proxy zahtijeva SOCKS5 autentifikaciju korisničkim imenom/lozinkom, konfigurirajte i metodu autentifikacije i vjerodajnice:

Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;

ProxyUser i ProxyPassword predstavljaju vrijednosti koje daje aplikacija. Ta se svojstva autentificiraju prema proxyju. Konfigurirajte SMTP račun i njegovu metodu autentifikacije odvojeno u poštanskom klijentu.

Zadržavanje postojećeg TLS IOHandlera

Poštanski klijent koji koristi STARTTLS ili implicitni TLS treba IOHandler sposoban za SSL. Ne zamjenjujte tu komponentu običnim TIdIOHandlerStack samo da biste dodali proxy.

U Indyju 10 SSL IOHandler osnovica potječe od TIdIOHandlerStack i nasljeđuje njegovu proxy podršku. Za postojeći kompatibilni SSL IOHandler nazvan MailTLS veza postaje:

Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;

Postavka UseTLS SMTP komponente i dalje bira TLS način poštanske usluge. Konfigurirajte povjerenje u certifikat i provjeru imena hosta u TLS integraciji za smtp.example.net, a ne za ime proxy hosta. Dodavanje tunela samo po sebi ne uspostavlja provjeru certifikata.

Korištenje HTTP CONNECT proxyja umjesto toga

Za Indy 10 koristite komponentu TIdConnectThroughHttpProxy, dostupnu iz IdConnectThroughHttpProxy. Uz pretpostavku da postoji postojeća instanca u vlasništvu obrasca nazvana HttpTunnel:

HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;

Ako SMTP koristi MailTLS, dodijelite HttpTunnel svojstvu TransparentProxy tog rukovatelja. Poštanski cilj ostaje na Smtp.

Ova komponenta uspostavlja HTTP CONNECT tunel i implementira osnovnu proxy autentifikaciju kroz svoja svojstva Username i Password. Proxy koji zahtijeva drugi mehanizam autentifikacije treba kompatibilnu implementaciju; ne pretpostavljajte da ta dva svojstva pružaju sve HTTP sheme autentifikacije.

Proxy također mora dopustiti CONNECT na stvarni port poštanskog poslužitelja. Dopuštenje za tunel do web poslužitelja na 443 ne znači dopuštenje za dosezanje usluge predaje na 587 ili SMTP poslužitelja na 25.

Veza u Indyju 9

Indy 9 koristi TIdIOHandlerSocket i njegovo svojstvo SocksInfo. Uz komponente u vlasništvu obrasca nazvane Socket9 i Socks9, ekvivalentno povezivanje je:

Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;

Njegova SOCKS implementacija podržava inačice 4, 4a i 5. Raspored TransparentProxy i HTTP CONNECT komponente iz Indyja 10 ne može se jednostavno zalijepiti u ovo starije sučelje.

Nema zasebne prethodne prijave na proxy koju treba obaviti drugim TCP klijentom. Proxy autentifikacija, postavljanje tunela i SMTP razmjena moraju pripadati vezi koju SMTP komponenta stvarno koristi. Kad je to povezivanje ispravno, kvar se može locirati na proxy pregovaranju, SMTP pozdravu, TLS-u ili poštanskoj autentifikaciji, umjesto da se svako odbijanje smatra lošom poštanskom lozinkom.

Povezani članci