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 বা মেইল প্রমাণীকরণে চিহ্নিত করা যায়, প্রতিটি প্রত্যাখ্যানকে খারাপ মেইল পাসওয়ার্ড ভাবা না করে।

সম্পর্কিত নিবন্ধ