Ninu Indy, so proxy mọ IOHandler ti TIdSMTP ń lò. Jẹ́ kí TIdSMTP.Host àti Port tọ́ka sí iṣẹ́ imeeli. Ẹ̀ka proxy ti IOHandler ń pèsè àdírẹ́sì alárinà, ó sì ń ṣe ìfọwọ́sowọ́pọ̀ proxy lórí ìsopọ̀ kan náà.

Ẹ̀yà tí o bá lò dá lórí ẹ̀yà Indy: Indy 9 ń pèsè SocksInfo; Indy 10 ń lò TransparentProxy. Ṣàyẹ̀wò ìkàwé àwọn ẹ̀yà nínú ètò náà dípò yíyan àpẹẹrẹ kan nípa orúkọ àtẹ̀jáde Delphi nìkan.

Indy 10 pẹ̀lú SOCKS5

Ká gbà pé fọ́ọ̀mù ti ní àwọn ẹ̀yà wọ̀nyí:

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

Sop wọ́n kí o sì ṣètò wọ́n kí o tó ṣí ìsopọ̀ SMTP:

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;

Àwọn iye ibùdó jẹ́ àpẹẹrẹ. Ibùdó SMTP gbọ́dọ̀ bá iṣẹ́ àti ipò TLS tí o ń wé lò mu. Ibùdó SOCKS jẹ́ ti proxy.

Fún ìdánwò SMTP gbogbogbo tí a gbà tí alárinà gbogbogbo gbà laaye, àkójọ proxy SOCKS5 ń pèsè àwọn àdírẹ́sì olùdíje. Jẹ́rìí pé olùdíje gbà olùgbàlejò imeeli àti ibùdó gidi, kí o sì lo ẹ̀ka tí kò ní ìjẹ́rìí proxy láìpa àwọn ẹ̀rí ìdánimọ̀ láti proxy iṣáájú mọ́.

TIdSocksInfo bẹ̀rẹ̀ pẹ̀lú svNoSocks, nítorí náà ṣíṣe orúkọ olùgbàlejò proxy nìkan kò mú u ṣiṣẹ́. Yan ẹ̀yà SOCKS tó yẹ. Bí proxy bá nílò ìjẹ́rìí SOCKS5 orúkọ olùmúlò/ọ̀rọ̀ ìpamọ́, ṣètò ọ̀nà ìjẹ́rìí àti àwọn ẹ̀rí ìdánimọ̀ pọ̀:

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

ProxyUser àti ProxyPassword dúró fún àwọn iye tí ètò náà ń pèsè. Àwọn ẹ̀yà wọ̀nyí ń jẹ́rìí sí proxy. Ṣètò àkọsílẹ̀ SMTP àti ọ̀nà ìjẹ́rìí rẹ̀ lọ́tọ̀ nínú ẹ̀rọ imeeli.

Pípa IOHandler TLS tó wà mọ́

Ẹ̀rọ imeeli tí ń lo STARTTLS tàbí TLS àìlójú nílò IOHandler rẹ̀ tí ó lágbára SSL. Má ṣe pààrọ̀ ẹ̀yà yẹn pẹ̀lú TIdIOHandlerStack lasan kìkì láti fi proxy kún un.

Nínú Indy 10, ìpìlẹ̀ IOHandler SSL wá láti TIdIOHandlerStack ó sì jogún àtìlẹ́yìn proxy rẹ̀. Fún IOHandler SSL tó báramu tí ó wà tí orúkọ rẹ̀ jẹ́ MailTLS, ìsopọ̀ náà di:

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

Ètò UseTLS ti ẹ̀yà SMTP ṣì ń yan ipò TLS ti iṣẹ́ imeeli. Ṣètò ìgbẹ́kẹ̀lé ẹ̀rí àti ìjẹ́rìí orúkọ olùgbàlejò nínú ìsopọ̀ TLS fún smtp.example.net, kì í ṣe fún orúkọ olùgbàlejò proxy. Fífi ọ̀nà àbẹ́wọ́ kún un kò fìdí ìjẹ́rìí ẹ̀rí múlẹ̀ fúnra rẹ̀.

Lílo proxy HTTP CONNECT dípò

Fún Indy 10, lo ẹ̀yà TIdConnectThroughHttpProxy, tí ó wà láti IdConnectThroughHttpProxy. Bí a bá gbà pé àpẹẹrẹ kan tí fọ́ọ̀mù ni orúkọ rẹ̀ jẹ́ HttpTunnel wà:

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

Bí SMTP bá ń lo MailTLS, yàn HttpTunnel sí TransparentProxy ti olùtọ́jú yẹn dípò. Àfojúsùn imeeli wà lórí Smtp.

Ẹ̀yà yìí ń dá ọ̀nà àbẹ́wọ́ HTTP CONNECT sílẹ̀ ó sì ń ṣe ìjẹ́rìí proxy ìpìlẹ̀ nípasẹ̀ àwọn ẹ̀yà Username àti Password rẹ̀. Proxy tí ó nílò ọ̀nà ìjẹ́rìí mìíràn nílò ìmúṣẹ tó báramu; má gbà pé àwọn ẹ̀yà méjì wọ̀nyí ń pèsè gbogbo ètò ìjẹ́rìí HTTP.

Proxy gbọ́dọ̀ gbà CONNECT sí ibùdó gidi ti olùsìn imeeli pẹ̀lú. Ìyọ̀ǹda láti ṣe ọ̀nà àbẹ́wọ́ sí àwọn olùsìn wẹ́ẹ̀bù lórí 443 kò túmọ̀ sí ìyọ̀ǹda láti dé iṣẹ́ ìfiránṣẹ́ lórí 587 tàbí olùsìn SMTP lórí 25.

Ìsopọ̀ Indy 9

Indy 9 ń lo TIdIOHandlerSocket àti ẹ̀yà rẹ̀ SocksInfo. Pẹ̀lú àwọn ẹ̀yà tí fọ́ọ̀mù ni tí orúkọ wọn jẹ́ Socket9 àti Socks9, ìsopọ̀ tó dọ́gba ni:

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

Ìmúṣẹ SOCKS rẹ̀ ń ṣe àtìlẹ́yìn ẹ̀yà 4, 4a àti 5. A kò lè fi ìṣètò TransparentProxy àti ẹ̀yà HTTP CONNECT ti Indy 10 lẹ̀mọ́ sórí ìfarahàn àtijọ́ yìí.

Kò sí ìwọlé proxy àkọ́kọ́ lọ́tọ̀ tí a gbọ́dọ̀ ṣe pẹ̀lú ẹ̀rọ TCP mìíràn. Ìjẹ́rìí proxy, ìṣètò ọ̀nà àbẹ́wọ́ àti pàṣípàrọ̀ SMTP gbọ́dọ̀ jẹ́ ti ìsopọ̀ tí ẹ̀yà SMTP ń lò ní tòótọ́. Nígbà tí ìsopọ̀ yẹn bá tọ́, a lè wá àìṣeédé ní ìdúnàdúrà proxy, ìkíni SMTP, TLS tàbí ìjẹ́rìí imeeli, dípò kí a kà gbogbo ìkọ̀sílẹ̀ sí ọ̀rọ̀ ìpamọ́ imeeli tí kò tọ́.

Àwọn àpilẹ̀kọ tó jọra