ऑनलाइन सुरक्षा में यूज़र ऑथेंटिकेशन महत्वपूर्ण है। ईमेल-आधारित ऑथेंटिकेशन लोकप्रिय है, लेकिन उपयोगकर्ता नकली/अमान्य ईमेल डाल सकते हैं। ईमेल वैलिडेशन सर्विस (जैसे emailvalidation.io) सिंटैक्स, डोमेन, मेलबॉक्स जांचती है और डिस्पोज़ेबल/रिस्की ईमेल पहचानती है।
पूर्वापेक्षाएँ
- Python 3.8+ ज्ञान
- Flask, Blueprints, Requests की बुनियादी समझ
वर्चुअल एनवायरनमेंट सेटअप
mkdir email-validation
cd email-validation
python -m venv env
source env/bin/activate # Windows: source env/Scripts/activate
pip install requests python-decouple
ईमेल वैलिडेशन फ़ंक्शन
emailvalidation.io पर अकाउंट बनाकर API की प्राप्त करें।
# test.py
import requests
from requests.structures import CaseInsensitiveDict
def is_valid(email: str):
url = f"https://api.emailvalidation.io/v1/info?email={email}"
headers = CaseInsensitiveDict()
headers["apikey"] = "your-api-key-here"
response = requests.get(url, headers=headers)
return response.json()
print(is_valid("support@emailvalidation.io"))
print(is_valid("venip42579@jdsdhak.com"))
रिस्पॉन्स में मुख्य फ़ील्ड्स: format_valid, mx_found, smtp_check, state (deliverable/undeliverable)।
बूलियन रिटर्न करने वाला संस्करण:
def is_valid(email: str):
url = f"https://api.emailvalidation.io/v1/info?email={email}"
headers = CaseInsensitiveDict()
headers["apikey"] = "your-api-key"
response = requests.get(url, headers=headers)
if response.status_code == 200:
j = response.json()
return (j["format_valid"] and j["mx_found"] and
j["smtp_check"] and j["state"] == "deliverable")
return False
Flask में बेसिक यूज़र ऑथेंटिकेशन सेटअप
GitHub से बेस प्रोजेक्ट क्लोन करें (ashutoshkrris/Flask-User-Authentication), डिपेंडेंसीज़ इंस्टॉल करें, .env से एन्वायरनमेंट वेरिएबल्स लोड करें, Flask-Migrate से डेटाबेस बनाएं, python manage.py run से चलाएं।
ईमेल वैलिडेशन इंटीग्रेशन
.envमेंAPI_KEY=your-keyजोड़ें,source .envचलाएंsrc/accounts/utils.pyबनाएं:
import requests
from requests.structures import CaseInsensitiveDict
from decouple import config
def is_valid(email: str):
url = f"https://api.emailvalidation.io/v1/info?email={email}"
headers = CaseInsensitiveDict()
headers["apikey"] = config("API_KEY")
response = requests.get(url, headers=headers)
if response.status_code == 200:
j = response.json()
return (j["format_valid"] and j["mx_found"] and
j["smtp_check"] and j["state"] == "deliverable")
return False
forms.pyमेंRegisterForm.validateमेथड संशोधित करें:
from src.accounts.utils import is_valid
class RegisterForm(FlaskForm):
# ... फील्ड्स ...
def validate(self):
if not super().validate():
return False
if not is_valid(self.email.data):
self.email.errors.append("Email is invalid")
return False
user = User.query.filter_by(email=self.email.data).first()
if user:
self.email.errors.append("Email already registered")
return False
if self.password.data != self.confirm.data:
self.password.errors.append("Passwords must match")
return False
return True
अब रजिस्ट्रेशन पर अमान्य ईमेल रिजेक्ट होंगे।
अन्य उपयोग केस
- ईमेल लिस्ट सफाई: अमान्य/रिस्की एड्रेस हटाकर डिलीवरेबिलिटी सुधारें
- धोखाधड़ी रोकथाम: नकली अकाउंट/ऑर्डर के ईमेल वैलिडेट करें
- मार्केटिंग अभियान: वैध/सक्रिय ईमेल्स से डिलीवरी रेट बढ़ाएं
निष्कर्ष
ईमेल वैलिडेशन सर्विस किसी भी ऐप के लिए शक्तिशाली टूल है जो यूज़र डेटा की सटीकता, धोखाधड़ी रोकथाम, और UX सुधारती है।
अतिरिक्त संसाधन
- Flask Blueprints गाइड
- Flask में ईमेल वेरिफ़िकेशन सेटअप
- emailvalidation.io डॉक्यूमेंटेशन