Saya sudah membaca bahwa menurut standar bagian pertama dari email adalah case-sensitive, namun saya sudah mencoba mengirim email ke [email protected]
, [email protected]
dan [email protected]
- sudah tiba di setiap case.
Bagaimana server email menangani nama pengguna? Apakah mungkin ketinggalan dengan case dan pesan itu tidak terkirim? Apakah benar-benar sangat penting untuk menggunakan case letter yang persis sama, seperti yang ditulis saat mendaftar ketika memberikan alamat email Anda?
Jawaban:
Dari RFC 5321, bagian 2.3.11 :
Jadi ya, bagian sebelum "@" bisa peka huruf besar-kecil, karena sepenuhnya di bawah kendali sistem host. Namun dalam praktiknya, tidak ada sistem email yang digunakan secara luas yang membedakan berbagai alamat berdasarkan kasus.
Bagian setelah tanda @ adalah domain dan menurut RFC 1035 , bagian 3.1,
Singkatnya, Anda aman untuk memperlakukan alamat email sebagai tidak sensitif huruf besar / kecil.
sumber
Saya tahu ini adalah pertanyaan lama tetapi saya hanya ingin berkomentar di sini: Sejauh mana alamat email sensitif huruf besar, sebagian besar pengguna akan "sangat tidak bijaksana" untuk secara aktif menggunakan alamat email yang membutuhkan modal. Mereka akan segera berhenti menggunakan alamat itu karena mereka kehilangan banyak surat. (Kecuali jika mereka memiliki alasan khusus untuk mempersulit, dan mereka hanya mengharapkan surat dari pengirim tertentu yang mereka kenal.)
Itu karena manusia yang tidak sempurna serta perangkat lunak yang tidak sempurna ada, (Kejutan!) Yang akan menganggap semua email adalah huruf kecil, dan untuk alasan ini manusia dan perangkat lunak ini akan mengirim pesan menggunakan "versi versi yang lebih rendah" dari alamat terlepas dari bagaimana itu diberikan ke mereka. Jika penerima tidak dapat menerima pesan seperti itu, tidak akan lama sebelum mereka melihat mereka kehilangan banyak, dan beralih ke alamat email hanya huruf kecil, atau mengatur server mereka menjadi tidak sensitif huruf besar-kecil.
sumber
Jauh terlambat ke posting ini, tapi aku punya sesuatu yang sedikit berbeda untuk dikatakan ...
Baiklah, "Itu Tergantung ..." (TM)
Beberapa organisasi sebenarnya berpikir itu adalah ide yang bagus dan server email mereka memberlakukan sensitivitas kasus.
Jadi, untuk tempat-tempat gila itu, "Ya, Email sensitif terhadap huruf besar-kecil."
Prinsip KISS menunjukkan bahwa sistem kami menggunakan email yang tidak sensitif terhadap huruf besar-kecil.
Sedangkan prinsip Robustness menyarankan agar kami menerima email sensitif huruf.
Larutan:
Ini berarti bahwa jika email ini sudah ada: [email protected]
... dan pengguna lain datang dan ingin menggunakan email ini: [email protected]
... bahwa logika pencarian case-sensitive kami akan mengembalikan pesan kesalahan "Bahwa email sudah ada".
Sekarang, Anda harus membuat keputusan: Apakah solusi itu memadai untuk kasus Anda?
Jika tidak, Anda dapat membebankan biaya kenyamanan kepada klien yang meminta dukungan untuk email case sensitif mereka dan menerapkan logika khusus yang memungkinkan [email protected] ke dalam sistem Anda, bahkan jika [email protected] sudah ada.
Dalam hal ini logika pencarian / validasi email Anda mungkin terlihat seperti sesuatu pseudocode ini:
Dengan cara ini, Anda sebagian besar menegakkan kepekaan kasus tetapi memungkinkan pelanggan membayar untuk dukungan ini jika mereka menggunakan sistem email yang mendukung omong kosong seperti itu.
ps ILIKE adalah kata kunci PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html
sumber
%
atau lebih mungkin_
query = ...
baris Anda denganquery = // Insert case-sensitive/insensitive search here
komentar sederhana seperti itu menjauhkan percakapan dari topik injeksi SQL dan berfokus pada apa yang Anda coba tampilkan. Dengan kata lain, simpan di logika, bukan implementasinya. Itu akan membungkam kritik.Standar Terbuka IETF RFC 5321 2.4. Prinsip Sintaksis Umum dan Model Transaksi
sumber
Per @ l3x, itu tergantung.
Jelas ada dua set situasi umum di mana jawaban yang benar dapat berbeda, bersama dengan yang ketiga yang tidak umum:
a) Anda adalah pengguna yang mengirim surat pribadi :
Sangat sedikit sistem email modern yang menerapkan sensitivitas huruf besar, jadi Anda mungkin baik-baik saja untuk mengabaikan huruf besar-kecil dan memilih huruf apa saja yang ingin Anda gunakan. Tidak ada jaminan bahwa semua surat Anda akan terkirim - tetapi begitu sedikit surat akan terpengaruh secara negatif sehingga Anda tidak perlu khawatir.
b) Anda sedang mengembangkan perangkat lunak surat :
Lihat kutipan RFC5321 2.4 di bagian bawah.
Saat Anda sedang mengembangkan perangkat lunak surat, Anda ingin menjadi yang sesuai dengan RFC. Anda dapat membuat case alamat email pengguna Anda sendiri tidak sensitif jika Anda mau (dan Anda harus melakukannya). Tetapi agar sesuai dengan RFC, Anda HARUS memperlakukan alamat luar sebagai case-sensitive .
c) Mengelola daftar alamat email milik bisnis sebagai karyawan :
Ada kemungkinan bahwa penerima email yang sama ditambahkan ke daftar lebih dari sekali - tetapi menggunakan kasus yang berbeda. Dalam situasi ini meskipun alamatnya berbeda secara teknis, itu mungkin mengakibatkan penerima menerima email duplikat. Cara Anda menangani situasi ini mirip dengan situasi a) karena Anda mungkin diperlakukan sebagai duplikat dan menghapus entri duplikat. Akan tetapi, lebih baik memperlakukan ini sebagai kasus khusus, dengan mengirim email "pengingat" ke kedua alamat untuk menanyakan apakah keduanya merupakan duplikat satu sama lain dan, jika demikian, alamat email mana yang diinginkan oleh penerima yang akan Anda gunakan.
Dari sudut pandang hukum, jika Anda menghapus duplikat tanpa pengakuan / izin dari kedua alamat, Anda dapat bertanggung jawab untuk membocorkan informasi pribadi / otentikasi ke alamat yang tidak sah hanya karena dua penerima sebenarnya terpisah memiliki alamat yang sama dengan kasus yang berbeda .
Kutipan dari RFC5321 2.4:
sumber