Indy मा, TIdSMTP ले प्रयोग गर्ने IOHandler मा प्रोक्सी जोड्नुहोस्। TIdSMTP.Host र Port मेल सेवातिरै राख्नुहोस्। IOHandler को प्रोक्सी कम्पोनेन्टले मध्यस्थको ठेगाना दिन्छ र त्यही जडानमा प्रोक्सी ह्यान्डसेक गर्छ।

तपाईंले प्रयोग गर्ने गुण Indy संस्करणमा निर्भर गर्छ: Indy 9 ले SocksInfo दिन्छ; Indy 10 ले TransparentProxy प्रयोग गर्छ। Delphi रिलिजको नाम मात्र हेरेर उदाहरण छान्नुको सट्टा अनुप्रयोगको कम्पोनेन्ट पुस्तकालय जाँच्नुहोस्।

SOCKS5 सहित Indy 10

फारमसँग पहिले नै यी कम्पोनेन्टहरू छन् भनी मान्नुहोस्:

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

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;

पोर्ट मानहरू उदाहरण हुन्। SMTP पोर्ट तपाईंले प्रयोग गर्न चाहेको सेवा र TLS मोडसँग मिल्नुपर्छ। SOCKS पोर्ट प्रोक्सीको हो।

सार्वजनिक मध्यस्थलाई अनुमति दिइएको स्वीकृत सार्वजनिक SMTP परीक्षणका लागि SOCKS5 प्रोक्सी सूचीले उम्मेद्वार ठेगानाहरू दिन्छ। उम्मेद्वारले वास्तविक मेल होस्ट र पोर्टलाई अनुमति दिन्छ भनी पुष्टि गर्नुहोस्, र अघिल्लो प्रोक्सीको प्रमाणहरू नराखी प्रोक्सी-प्रमाणीकरण-रहित शाखा प्रयोग गर्नुहोस्।

TIdSocksInfo svNoSocks बाट सुरु हुन्छ, त्यसैले प्रोक्सी होस्टनाम मात्र सेट गर्नाले यसलाई सक्रिय गर्दैन। उपयुक्त SOCKS संस्करण छान्नुहोस्। यदि प्रोक्सीलाई SOCKS5 प्रयोगकर्तानाम/पासवर्ड प्रमाणीकरण चाहिन्छ भने प्रमाणीकरण विधि र प्रमाण दुवै कन्फिगर गर्नुहोस्:

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

ProxyUser र ProxyPassword अनुप्रयोगले दिने मानहरू जनाउँछन्। यी गुणहरूले प्रोक्सीसँग प्रमाणीकरण गर्छन्। मेल क्लाइन्टमा SMTP खाता र यसको प्रमाणीकरण विधि छुट्टै कन्फिगर गर्नुहोस्।

भइरहेको TLS IOHandler कायम राख्ने

STARTTLS वा निहित TLS प्रयोग गर्ने मेल क्लाइन्टलाई SSL-सक्षम IOHandler आवश्यक हुन्छ। प्रोक्सी थप्न मात्र त्यो कम्पोनेन्टलाई साधारण TIdIOHandlerStack ले नबदल्नुहोस्।

Indy 10 मा SSL IOHandler को आधार TIdIOHandlerStack बाट आउँछ र यसको प्रोक्सी समर्थन वंशानुगत रूपमा पाउँछ। MailTLS नामको भइरहेको उपयुक्त SSL IOHandler का लागि जडान यस्तो हुन्छ:

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

SMTP कम्पोनेन्टको UseTLS सेटिङले अझै मेल सेवाको TLS मोड छान्छ। smtp.example.net का लागि TLS एकीकरणमा प्रमाणपत्र विश्वास र होस्टनाम प्रमाणीकरण कन्फिगर गर्नुहोस्, प्रोक्सी होस्टनामका लागि होइन। टनेल थप्दा आफैंमा प्रमाणपत्र प्रमाणीकरण स्थापित हुँदैन।

यसको सट्टा HTTP CONNECT प्रोक्सी प्रयोग गर्ने

Indy 10 का लागि TIdConnectThroughHttpProxy कम्पोनेन्ट प्रयोग गर्नुहोस्, जो IdConnectThroughHttpProxy बाट उपलब्ध छ। फारमको स्वामित्वमा रहेको HttpTunnel नामको भइरहेको इन्स्ट्यान्स छ भनी मान्दै:

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

यदि SMTP ले MailTLS प्रयोग गर्छ भने सट्टामा HttpTunnel लाई त्यो ह्यान्डलरको TransparentProxy मा तोक्नुहोस्। मेल लक्ष्य Smtp मै रहन्छ।

यो कम्पोनेन्टले HTTP CONNECT टनेल स्थापना गर्छ र आफ्ना Username र Password गुणहरूमार्फत आधारभूत प्रोक्सी प्रमाणीकरण लागू गर्छ। अर्को प्रमाणीकरण विधि चाहिने प्रोक्सीलाई उपयुक्त कार्यान्वयन चाहिन्छ; यी दुई गुणले सबै HTTP प्रमाणीकरण योजनाहरू दिन्छन् भनी नमान्नुहोस्।

प्रोक्सीले मेल सर्भरको वास्तविक पोर्टमा CONNECT लाई पनि अनुमति दिनुपर्छ। 443 मा वेब सर्भरतर्फ टनेल गर्ने अनुमतिले 587 मा पेस गर्ने सेवा वा 25 मा SMTP सर्भर पुग्ने अनुमति जनाउँदैन।

Indy 9 जडान

Indy 9 ले TIdIOHandlerSocket र यसको SocksInfo गुण प्रयोग गर्छ। Socket9 र Socks9 नामका फारम-स्वामित्वका कम्पोनेन्टहरूसँग समान तारिङ:

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

यसको SOCKS कार्यान्वयनले संस्करण 4, 4a र 5 लाई समर्थन गर्छ। Indy 10 को TransparentProxy र HTTP CONNECT कम्पोनेन्टको मिलान यो पुरानो इन्टरफेसमा सिधै टाँस्न सकिँदैन।

अर्को TCP क्लाइन्टसँग गर्नुपर्ने छुट्टै प्रारम्भिक प्रोक्सी लगइन छैन। प्रोक्सी प्रमाणीकरण, टनेल सेटअप र SMTP आदानप्रदान SMTP कम्पोनेन्टले वास्तवमा प्रयोग गर्ने जडानकै हुनुपर्छ। त्यो तारिङ सही भएमा असफलता प्रोक्सी वार्तालाप, SMTP अभिवादन, TLS वा मेल प्रमाणीकरणमा पहिचान गर्न सकिन्छ, प्रत्येक अस्वीकारलाई खराब मेल पासवर्ड मान्नुको सट्टा।

सम्बन्धित लेखहरू