Í Indy tengir þú proxyið við IOHandlerinn sem TIdSMTP notar. Hafðu TIdSMTP.Host og Port beint að póstþjónustunni. Proxyhluti IOHandlerins gefur slóð milliliðarins og framkvæmir proxy-handshakið á sömu tengingu.

Eiginleikinn sem þú notar fer eftir Indy-útgáfunni: Indy 9 býður SocksInfo; Indy 10 notar TransparentProxy. Athugaðu íhlutarsafnið í forritinu í stað þess að velja dæmi eingöngu út frá nafni Delphi-útgáfunnar.

Indy 10 með SOCKS5

Gerum ráð fyrir að eyðublaðið eigi þegar þessa íhluti:

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

Tengdu þá og stilltu áður en þú opnar SMTP-tenginguna:

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;

Gildin fyrir gáttirnar eru dæmi. SMTP-gáttin verður að passa við þjónustuna og TLS-stillinguna sem þú ætlar að nota. SOCKS-gáttin tilheyrir proxyinu.

Fyrir leyfilegt opinbert SMTP-próf þar sem opinber milliliður er leyfður, býður SOCKS5-proxylistinn frambjóðendaslóðir. Staðfestu að frambjóðandinn leyfi raunverulega póstvél og gátt, og notaðu greinina án proxy-auðkenningar án þess að varðveita skírteini frá fyrra proxyi.

TIdSocksInfo byrjar með svNoSocks, svo að einungis að stilla proxy-vélarheiti virkjar það ekki. Veldu viðeigandi SOCKS-útgáfu. Ef proxyið krefst SOCKS5 notandanafns/lykilorðs auðkenningar skaltu stilla bæði auðkenningaraðferðina og skírteinin:

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

ProxyUser og ProxyPassword tákna gildi sem forritið gefur. Þessir eiginleikar auðkenna gagnvart proxyinu. Stilltu SMTP-reikninginn og auðkenningaraðferð hans sérstaklega í póstforritinu.

Að varðveita núverandi TLS IOHandler

Póstforrit sem notar STARTTLS eða óbeina TLS þarf SSL-færan IOHandlerinn sinn. Skiptu ekki um þann íhlut fyrir venjulegan TIdIOHandlerStack bara til að bæta við proxyinu.

Í Indy 10 er grunnur SSL IOHandlerins kominn af TIdIOHandlerStack og erfir proxy-stuðning hans. Fyrir núverandi samhæfðan SSL IOHandler sem heitir MailTLS verður tengingin:

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

Stillingin UseTLS á SMTP-íhlutnum velur áfram TLS-stillingu póstþjónustunnar. Stilltu skírteinistraust og vélarheitisstaðfestingu í TLS-samþættingunni fyrir smtp.example.net, ekki fyrir vélarheiti proxysins. Að bæta við göngum staðfestir ekki skírteini eitt sér.

Að nota HTTP CONNECT proxy í staðinn

Fyrir Indy 10 skaltu nota TIdConnectThroughHttpProxy íhlut, fáanlegan úr IdConnectThroughHttpProxy. Gerum ráð fyrir að fyrirliggjandi tilvik í eigu eyðublaðsins heiti HttpTunnel:

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

Ef SMTP notar MailTLS skaltu úthluta HttpTunnel á TransparentProxy þess handfangs í staðinn. Póstmarkið verður áfram á Smtp.

Þessi íhlutur setur upp HTTP CONNECT göng og útfærir Basic proxy-auðkenningu í gegnum eiginleikana Username og Password. Proxy sem krefst annarrar auðkenningaraðferðar þarf samhæfða útfærslu; ekki gera ráð fyrir að þessir tveir eiginleikar veiti allar HTTP-auðkenningaraðferðir.

Proxyið verður líka að leyfa CONNECT á raunverulega gátt póstþjónsins. Leyfi til að gera göng að vefþjónum á 443 þýðir ekki leyfi til að ná sendingarþjónustu á 587 eða SMTP-þjóni á 25.

Tengingin í Indy 9

Indy 9 notar TIdIOHandlerSocket og eiginleikann SocksInfo. Með íhlutum eyðublaðsins að nafni Socket9 og Socks9 er samsvarandi tenging:

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

SOCKS-útfærsla þess styður útgáfur 4, 4a og 5. Ekki er hægt að líma uppsetningu TransparentProxy og HTTP CONNECT-íhlutarins úr Indy 10 beint í þetta eldra viðmót.

Engin sérstök forskoðun innskráning í proxyið er framkvæmd með öðrum TCP-biðlara. Proxy-auðkenning, uppsetning ganga og SMTP-skipti verða að tilheyra tengingunni sem SMTP-íhluturinn notar í raun. Þegar sú tenging er rétt er hægt að staðsetja bilun í proxy-samningum, SMTP-kveðju, TLS eða póstauðkenningu í stað þess að líta á hverja synjun sem rangt póstlykilorð.

Tengdir greinar