Gefðu SMTP-tengingunni í Indy proxy-IOHandler
Tengdu SOCKS eða HTTP CONNECT við TIdSMTP með IOHandler-eiginleikum réttrar Indy-útgáfu, með aðskildum póst- og proxy-stillingum.
Í 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: TIdSMTPMailSocket: TIdIOHandlerStackSocks: 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ð.