इस पोस्ट के लिए देर से रास्ता है, लेकिन मैं कुछ अलग कहने के लिए मिल गया है ...
>> "Are email addresses case sensitive?"
खैर, "यह निर्भर करता है ..." (टीएम)
कुछ संगठन वास्तव में सोचते हैं कि यह एक अच्छा विचार है और उनके ईमेल सर्वर केस संवेदनशीलता को लागू करते हैं।
तो, उन पागल स्थानों के लिए, "हां, ईमेल संवेदनशील हैं।"
नोट: सिर्फ इसलिए कि एक विनिर्देशन कहता है कि आप कुछ कर सकते हैं इसका मतलब यह नहीं है कि ऐसा करना एक अच्छा विचार है।
KISS के सिद्धांत पता चलता है कि हमारे सिस्टम केस संवेदी ईमेल का उपयोग करें।
जबकि Robustness सिद्धांत बताता है कि हम केस संवेदनशील ईमेल स्वीकार करते हैं।
समाधान:
- केस संवेदनशीलता के साथ ईमेल स्टोर करें
- केस संवेदनशीलता के साथ ईमेल भेजें
- केस असंवेदनशीलता के साथ आंतरिक खोजें करें
इसका अर्थ यह होगा कि यदि यह ईमेल पहले से मौजूद है: user@x.com
... और एक अन्य उपयोगकर्ता आता है और इस ईमेल का उपयोग करना चाहता है: USER@x.com
... कि हमारा मामला असंवेदनशील खोज तर्क "एक ईमेल पहले से मौजूद है" त्रुटि संदेश लौटाएगा।
अब, आपके पास एक निर्णय करना है: क्या वह समाधान आपके मामले में पर्याप्त है?
यदि नहीं, तो आप उन क्लाइंट से सुविधा शुल्क ले सकते हैं जो अपने केस संवेदनशील ईमेल के लिए समर्थन की मांग करते हैं और कस्टम लॉजिक को लागू करते हैं जो USER@x.com को आपके सिस्टम में अनुमति देता है, भले ही user@x.com पहले से मौजूद हो।
किस मामले में आपकी ईमेल खोज / सत्यापन तर्क कुछ इस तरह दिख सकता है:
if (user.paidEmailFee) {
// case sensitive email
query = "select * from users where email LIKE ' + user.email + '"
} else {
// case insensitive email
query = "select * from users where email ILIKE ' + user.email + '"
}
इस तरह, आप ज्यादातर केस असंवेदनशीलता को लागू कर रहे हैं, लेकिन ग्राहकों को इस समर्थन के लिए भुगतान करने की अनुमति देते हैं यदि वे ईमेल सिस्टम का उपयोग कर रहे हैं जो इस तरह के बकवास का समर्थन करते हैं।
ps ILIKE एक PostgreSQL कीवर्ड है: http://www.postgresql.org/docs/9.2/static/functions-matching.html