Indy च्या SMTP कनेक्शनला प्रॉक्सी IOHandler द्या
योग्य Indy आवृत्तीच्या IOHandler गुणधर्मांसह SOCKS किंवा HTTP CONNECT TIdSMTP ला जोडा, मेल आणि प्रॉक्सी सेटिंग्ज वेगळ्या ठेवून.
Indy मध्ये, प्रॉक्सी त्या IOHandler ला जोडा जो TIdSMTP वापरतो. TIdSMTP.Host आणि Port मेल सेवेकडेच ठेवा. IOHandler चा प्रॉक्सी घटक मध्यस्थाचा पत्ता देतो आणि त्याच कनेक्शनवर प्रॉक्सी हँडशेक करतो.
तुम्ही वापरता तो गुणधर्म Indy आवृत्तीवर अवलंबून असतो: Indy 9 SocksInfo देते; Indy 10 TransparentProxy वापरते. फक्त Delphi प्रकाशनाच्या नावावरून उदाहरण निवडण्याऐवजी अॅप्लिकेशनमधील घटक लायब्ररी तपासा.
SOCKS5 सह Indy 10
फॉर्मकडे हे घटक आधीच आहेत असे गृहीत धरा:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: 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 किंवा मेल प्रमाणीकरणात शोधता येते, प्रत्येक नकाराला चुकीचा मेल पासवर्ड मानण्याऐवजी.