আমি এই পিএইচপি কোডটি জুড়ে এসেছি এসএমটিপি ব্যবহার করে কোনও ইমেল না প্রেরণ করে ইমেল ঠিকানা চেক করতে ।
কেউ কি অনুরূপ কিছু চেষ্টা করেছে বা এটি আপনার পক্ষে কাজ করে? আপনি কি বলতে পারবেন কোনও ইমেল গ্রাহক / ব্যবহারকারী প্রবেশ করান সঠিক এবং উপস্থিত থাকলে?
আমি এই পিএইচপি কোডটি জুড়ে এসেছি এসএমটিপি ব্যবহার করে কোনও ইমেল না প্রেরণ করে ইমেল ঠিকানা চেক করতে ।
কেউ কি অনুরূপ কিছু চেষ্টা করেছে বা এটি আপনার পক্ষে কাজ করে? আপনি কি বলতে পারবেন কোনও ইমেল গ্রাহক / ব্যবহারকারী প্রবেশ করান সঠিক এবং উপস্থিত থাকলে?
উত্তর:
দু'টি পদ্ধতি রয়েছে যা আপনি কখনও কখনও নির্ধারণ করতে ব্যবহার করতে পারেন যে কোনও প্রাপক আসলে রয়েছে কিনা:
আপনি সার্ভারের সাথে সংযুক্ত হতে পারেন এবং একটি VRFY
আদেশ জারি করতে পারেন । খুব কম সার্ভারই এই আদেশটি সমর্থন করে, তবে এটি ঠিক এটির জন্যই। যদি সার্ভারটি 2.0.0 ডিএসএন দিয়ে সাড়া দেয় তবে ব্যবহারকারীর উপস্থিতি রয়েছে।
VRFY user
আপনি একটি জারি করতে RCPT
পারেন এবং মেলটি প্রত্যাখ্যান করা হয়েছে কিনা তা দেখতে পারেন।
MAIL FROM:<>
RCPT TO:<user@domain>
ব্যবহারকারীর অস্তিত্ব না থাকলে আপনি একটি 5.1.1 ডিএসএন পাবেন। তবে, কেবল ইমেলটি প্রত্যাখ্যান করা হয়নি, এর অর্থ এই নয় যে ব্যবহারকারীর উপস্থিতি রয়েছে। কিছু সার্ভার তাদের ব্যবহারকারীদের সংখ্যা রোধ করতে নীরবে এই জাতীয় অনুরোধগুলি বাতিল করে দেবে। অন্যান্য সার্ভারগুলি ব্যবহারকারীকে যাচাই করতে পারে না এবং নির্বিশেষে বার্তাটি গ্রহণ করতে হবে।
গ্রিলিস্টিং নামে একটি এন্টিস্পাম প্রযুক্তিও রয়েছে, যার ফলে সার্ভারটি প্রাথমিকভাবে ঠিকানাটি প্রত্যাখ্যান করবে, এমন প্রত্যাশা করে যে সত্যিকারের এসএমটিপি সার্ভারের কিছুক্ষণ পরে পুনরায় বিতরণ করার চেষ্টা করবে। এটি ঠিকানাটি যাচাই করার চেষ্টাগুলিকে গোলমাল করবে।
সত্যিই, আপনি যদি কোনও ঠিকানা বৈধ করার চেষ্টা করছেন তবে স্পষ্টত অবৈধ ঠিকানাগুলিকে ব্লক করার জন্য একটি সহজ রেজেক্স ব্যবহার করা ভাল, এবং তারপরে আপনার সিস্টেমে কোনও লিঙ্ক সহ একটি প্রকৃত ইমেল প্রেরণ করা হবে যা ইমেলটি বৈধ হয়ে উঠবে। এটিও নিশ্চিত করে যে তারা ব্যবহারকারী তাদের প্রকৃত ইমেল প্রবেশ করেছে, সামান্য টাইপও নয় যা অন্য কারও সাথে সম্পর্কিত।
এখানে অন্যান্য উত্তর এটি করার চেষ্টা করে বিভিন্ন সমস্যা নিয়ে আলোচনা করে। আমি ভেবেছিলাম আপনি নিজেই করে শিখতে চাইলে আপনি কীভাবে এটি চেষ্টা করতে পারেন তা আমি প্রদর্শন করব।
ইমেল ঠিকানা রয়েছে কিনা তা জানতে আপনি টেলনেটের মাধ্যমে কোনও মেল সার্ভারের সাথে সংযোগ করতে পারেন। এখানে ইমেল ঠিকানা পরীক্ষার উদাহরণ রয়েছে stackoverflow.com
:
সি: \> nslookup -q = এমএক্স স্ট্যাকওভারফ্লো ডটকম অননুমোদিত উত্তর: stackoverflow.com এমএক্স পছন্দ = 40, মেল এক্সচেঞ্জার = STACKOVERFLOW.COM.S9B2.PSMTP.com stackoverflow.com এমএক্স পছন্দ = 10, মেল এক্সচেঞ্জার = STACKOVERFLOW.COM.S9A1.PSMTP.com stackoverflow.com এমএক্স পছন্দ = 20, মেল এক্সচেঞ্জার = STACKOVERFLOW.COM.S9A2.PSMTP.com stackoverflow.com এমএক্স পছন্দ = 30, মেল এক্সচেঞ্জার = STACKOVERFLOW.COM.S9B1.PSMTP.com সি: \> টেলনেট STACKOVERFLOW.COM.S9A1.PSMTP.com 25 220 পোস্টিনি ESMTP 213 y6_35_0c4 প্রস্তুত। সিএ ব্যবসা এবং পেশাগত কোড বিভাগ 17538.45 অযৌক্তিক বৈদ্যুতিন মেল বিজ্ঞাপনগুলির জন্য এই সিস্টেমের ব্যবহার নিষিদ্ধ করে। হ্যালো হাই 250 পোস্টিনি হ্যালো ফিরে বলে মেল থেকে: <me@myhost.com> 250 ওকে rcpt এ: <নকল@stackoverflow.com> 550-5.1.1 আপনি যে ইমেল অ্যাকাউন্টটিতে পৌঁছানোর চেষ্টা করেছেন তা বিদ্যমান নেই। চেষ্টা করুন 550-5.1.1 প্রাপকের ইমেল ঠিকানা টাইপসের জন্য বা ডাবল-চেক করা 550-5.1.1 অপ্রয়োজনীয় স্থান। আরও জানুন 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 w41si3198459wfd.71
সংখ্যার কোড সহ উপসর্গযুক্ত রেখাগুলি এসএমটিপি সার্ভারের প্রতিক্রিয়া। এটিকে আরও পঠনযোগ্য করার জন্য আমি কয়েকটি ফাঁকা লাইন যুক্ত করেছি।
অনেক মেল সার্ভার স্প্যামারদের দ্বারা ইমেল ঠিকানা সংগ্রহের বিরুদ্ধে রোধ করার উপায় হিসাবে এই তথ্যটি ফেরত দেবে না, তাই আপনি এই কৌশলটিতে নির্ভর করতে পারবেন না। তবে আপনার অবৈধ মেল সার্ভারগুলি সনাক্ত করে বা প্রাপক ঠিকানাগুলি উপরে হিসাবে প্রত্যাখ্যান করে কিছু স্পষ্টত খারাপ ইমেল ঠিকানা পরিষ্কার করার ক্ষেত্রে কিছুটা সাফল্য পেতে পারেন।
আপনি আরও অনেক অনুরোধ করলে মেল সার্ভারগুলি আপনাকে কালো তালিকাভুক্ত করতে পারে তাও নোট করুন।
পিএইচপি আমি বিশ্বাস করি আপনি ব্যবহার করতে পারেন fsockopen
, fwrite
এবং fread
প্রোগ্রামের মাধ্যমে উপরোক্ত ধাপগুলি সঞ্চালন করুন:
$smtp_server = fsockopen("STACKOVERFLOW.COM.S9A1.PSMTP.com", 25, $errno, $errstr, 30);
fwrite($smtp_server, "helo hi\r\n");
fwrite($smtp_server, "mail from: <me@myhost.com>\r\n");
fwrite($smtp_server, "rcpt to: <fake@stackoverflow.com>\r\n");
সাধারণ উত্তরটি হ'ল আপনি যদি কোনও ইমেল প্রেরণ করেন তবে কোনও ইমেল ঠিকানা ইভেন্ট উপস্থিত রয়েছে কিনা তা আপনি পরীক্ষা করতে পারবেন না : এটি কেবল একটি ব্ল্যাকহোলের মধ্যে যেতে পারে।
বলা হচ্ছে সেখানে বর্ণিত পদ্ধতিটি বেশ কার্যকর। এটি জোনচেকের প্রোডাকশন কোডে ব্যবহৃত হয় ব্যতীত এটি কোয়েটের পরিবর্তে আরএসইটি ব্যবহার করে।
যেখানে তার মেইলবক্সের সাথে ব্যবহারকারীর ইন্টারঅ্যাকশন অতিমাত্রায় নয় বরং অনেকগুলি সাইট এটি পরীক্ষা করে যে মেলটি কোথাও একটি গোপন নম্বর প্রেরণ করে প্রেরণকারীকে অবশ্যই প্রেরণ করা উচিত (কোনও গোপন URL এ গিয়ে অথবা ইমেলের মাধ্যমে এই গোপন নম্বরটি ফেরত পাঠিয়ে)। বেশিরভাগ মেলিংয়ের তালিকাগুলি সেভাবে কাজ করে।
সত্যিই নয় ..... কিছু সার্ভার হয়ত "আরসিটিপি টু:" পরীক্ষা করে না
http://www.freesoft.org/CIE/RFC/1123/92.htm
এটি করা কি সুরক্ষা ঝুঁকিপূর্ণ .....
যদি সার্ভারটি করে, আপনি সার্ভারের প্রতিটি ঠিকানা আবিষ্কার করতে একটি বট লিখতে পারেন ....
লক্ষ্য মেইল সার্ভার গ্রিলিস্টিং ব্যবহার করলে এটি (অন্যান্য ক্ষেত্রেও) ব্যর্থ হবে।
গ্রিলিস্টিং : এসএমটিপি সার্ভার প্রথমবারের মতো অজানা ক্লায়েন্টের সংযোগ করার পরে বিতরণ প্রত্যাখ্যান করে, পরবর্তী বারের জন্য অনুমতি দেয়; বৈধ ব্যবহারের অনুমতি দেওয়ার সময় এটি কিছু শতাংশ স্প্যামবটকে বাইরে রাখে - যেমনটি প্রত্যাশিত যে কোনও বৈধ মেল প্রেরক আবার চেষ্টা করবেন যা সাধারণ মেল স্থানান্তর এজেন্টরা করবে।
তবে, যদি আপনার কোডটি কেবল একবার সার্ভারে চেক করে , গ্রিলিস্টিং সহ একটি সার্ভার বিতরণ অস্বীকার করবে (যেমন আপনার ক্লায়েন্ট প্রথমবারের জন্য সংযুক্ত হচ্ছে); আপনি যদি কিছুক্ষণের মধ্যে আবার যাচাই না করেন, আপনি ভুলভাবে বৈধ ইমেল ঠিকানাগুলি প্রত্যাখ্যান করতে পারেন।
কিছু বিষয়:
যদিও এই প্রশ্নটি খানিকটা পুরানো, এই পরিষেবা টিপ ব্যবহারকারীদের প্রেরণের আগে সিনট্যাক্স বৈধতার বাইরে ইমেল ঠিকানাগুলি পরীক্ষা করার জন্য একই জাতীয় সমাধান অনুসন্ধান করতে সহায়তা করতে পারে।
আমি ভাল ফলাফল সহ কয়েকটি প্রকল্পের জন্য ইমেলগুলির গভীরতার সাথে বৈধতা (ই-মেইল ঠিকানা ডোমেনে এমএক্স রেকর্ডের জন্য পরীক্ষা করা ইত্যাদি) এই উন্মুক্ত উত্সাহিত পরিষেবাটি ব্যবহার করছি। এটি সাধারণ টাইপস ডাইনি পরীক্ষা করেও বেশ কার্যকর। এখানে ডেমো ।
"কোনও ইমেল গ্রাহক / ব্যবহারকারীর প্রবেশ করানো সঠিক এবং উপস্থিত থাকলে আপনি কি বলতে পারবেন?"
আসলে এই দুটি পৃথক জিনিস। এটি উপস্থিত থাকতে পারে তবে সঠিক নাও হতে পারে।
কখনও কখনও আপনাকে ফেস ভ্যালুতে ব্যবহারকারীদের ইনপুট নিতে হয়। অন্যথায় সিস্টেমকে পরাজিত করার জন্য অনেকগুলি উপায় রয়েছে।
আপনি যা করতে পারেন সেগুলি সম্পর্কে ডিএনএস অনুসন্ধান করা এবং ইমেল ঠিকানায় থাকা ডোমেনটির একটি এমএক্স রেকর্ড রয়েছে তা নিশ্চিত করা ছাড়া অন্যটির সাথে এটির কোনও নির্ভরযোগ্য উপায় নেই।
আপনি এসএমটিপি সার্ভারের সাথে কথা বলার সময় কিছু সার্ভার আরসিটিপি-টু পদ্ধতিতে কাজ করতে পারে তবে এটি পুরোপুরি সার্ভারের কনফিগারেশনের উপর নির্ভর করে। অন্য সমস্যাটি হ'ল ওভারলোড হওয়া সার্ভারটি 550 কোডটি ব্যবহারকারীকে অজানা বলে প্রত্যাবর্তন করতে পারে, তবে এটি একটি অস্থায়ী ত্রুটি, এখানে একটি স্থায়ী ত্রুটি রয়েছে (451 আমি মনে করি?) যা ফেরত যেতে পারে। এটি সম্পূর্ণরূপে সার্ভারের কনফিগারেশনের উপর নির্ভর করে।
আমি ব্যক্তিগতভাবে ডিএনএস এমএক্স রেকর্ডের জন্য যাচাই করতাম, তারপরে যদি এমএক্স রেকর্ডটি উপস্থিত থাকে তবে ইমেল যাচাইকরণ পাঠান।
function EmailValidation($email)
{
$email = htmlspecialchars(stripslashes(strip_tags($email))); //parse unnecessary characters to prevent exploits
if (eregi('[a-z||0-9]@[a-z||0-9].[a-z]', $email)) {
//checks to make sure the email address is in a valid format
$domain = explode( "@", $email ); //get the domain name
if (@fsockopen ($domain[1],80,$errno,$errstr,3)) {
//if the connection can be established, the email address is probably valid
echo "Domain Name is valid ";
return true;
} else {
echo "Con not a email domian";
return false; //if a connection cannot be established return false
}
return false; //if email address is an invalid format return false
}
}
এটি ব্যবহারকারীর ঠিকানা হিসাবে ধরে নেওয়া, কিছু মেল সার্ভারগুলি এসএমটিপি ভিআরএফওয়াই কমান্ডকে তার মেইলবক্সগুলির বিপরীতে ইমেল ঠিকানাটি যাচাই করার অনুমতি দেয়। প্রধান সাইট বেশিরভাগ আপনাকে বেশি তথ্য দেবে না; জিমেইল প্রতিক্রিয়াটি হ'ল "যদি আপনি এটি মেইল করার চেষ্টা করেন, আমরা এটি সরবরাহ করার চেষ্টা করব" বা এর মতো চতুর কিছু।
আমি মনে করি আপনি পারবেন না, এমন অনেক পরিস্থিতিতে আছে যেখানে একটি ইমেল প্রেরণও ব্যর্থ হতে পারে। যেমন। ব্যবহারকারী পক্ষের মেল সার্ভারটি অস্থায়ীভাবে ডাউন, মেলবক্স উপস্থিত রয়েছে তবে পূর্ণ রয়েছে তাই বার্তা সরবরাহ করা যায় না, ইত্যাদি
ব্যবহারকারী সম্ভবত নিশ্চিতকরণ ই-মেইল পেয়েছেন বলে নিশ্চিত হওয়ার পরেও সম্ভবত এতগুলি সাইট নিবন্ধকরণকে বৈধতা দেয়।
আমি জোসেফ এবং ড্রাগ এর উত্তর ব্যবহারের উত্তরটি নিশ্চিত করতে পারি RCTP TO: <address_to_check>
। আমি এই উত্তরগুলির উপরে কিছু সামান্য সংযোজন যুক্ত করতে চাই।
কিছু মেল সরবরাহকারী একটি ক্যাচ-অল নীতি প্রয়োগ করে, যার অর্থ *@mydomain.com
হ'ল RCTP TO:
কমান্ডটি ইতিবাচক হবে । তবে এর অর্থ এই নয় যে "মানুষের অন্তর্গত" মেলবক্সটি "বিদ্যমান" রয়েছে। এখানে অনেক কিছুই করা যায় না, কেবল সচেতন হন।
গ্রিলিস্টিং: অজানা আইপি থেকে প্রথম সংযোগটি অবরুদ্ধ করা হয়েছে। সমাধান: কমপক্ষে 2 বার আবার চেষ্টা করুন।
ব্ল্যাকলিস্টিং: আপনি যদি একই আইপি থেকে অনেক বেশি অনুরোধ প্রেরণ করেন তবে এই আইপিটি ব্লক করা আছে। সমাধান: আইপি ঘূর্ণন ব্যবহার করুন; রিচার টর ব্যবহার করে।
এটি খুব সরবরাহকারীর জন্য নির্দিষ্ট, তবে আপনি কখনও কখনও ভালভাবে তৈরি করা এইচটিটিপি অনুরোধগুলি ব্যবহার করতে পারেন এবং এই অনুরোধের প্রতিক্রিয়াগুলি পার্স করে দেখতে পারেন যে এই ব্যবহারকারীর নাম ইতিমধ্যে সাইন আপ হয়েছে কিনা বা এই সরবরাহকারীর সাথে নেই see
এখানে একটি ওপেন সোর্স লাইব্রেরি আমি চেক করতে লিখেছিলেন থেকে প্রাসঙ্গিক ফাংশন *@yahoo.com
: HTTP অনুরোধ ব্যবহার ঠিকানাগুলি চেক-যদি-ইমেল-বিদ্যমান । আমি জানি আমার কোডটি মরিচা এবং এই থ্রেডটি পিএইচপি ট্যাগ করা আছে, তবে একই ধারণা প্রয়োগ হয়।
এটি একটি প্রান্তের কেস হতে পারে, তবে যখন ব্যবহারকারীটির পূর্ণ ইনবক্স থাকবে, তখন এটি পূর্ণ বলে RCTP TO:
একটি 5.1.1 DSN
ত্রুটি বার্তা দেবে। এর অর্থ হল যে অ্যাকাউন্টটি আসলে বিদ্যমান!
আমি দৌড়াই রিচার , একটি রিয়েল-টাইম ইমেল যাচাইকরণ এপিআই । আমার কোডটি মরিচায় লিখিত এবং এটি 100% মুক্ত-উত্স। আপনি আরও দৃ solution় সমাধান চান কিনা তা পরীক্ষা করে দেখুন:
গিথুব: https://github.com/amaurymartiny/check-if-email-exists
হুপসের মাধ্যমে লাফিয়ে তোলার বিভিন্ন কৌশলগুলির সংমিশ্রণে, আমি আমার গ্রাহকরা যে ইমেলগুলি চেক করেন তার প্রায় 80% ইমেল যাচাই করে পরিচালনা করি ।
<?php
$email = "someone@exa mple.com";
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
echo "E-mail is not valid";
else
echo "E-mail is valid";
?>