2011-03-14 31 views
6

正式的RFC文檔state,我們可以在域(以及許多其他瘋狂的事情)的「本地」的一部分使用both upper and lowercase letters應該在電子郵件地址中使用大寫字母嗎?

但是,什麼是共同在現實世界中 - 什麼規範說的是兩回事。這些額外的字符(! # $ % & ' */= ?^{ | } ~)都不允許來自大型提供商(例如yahoo,google或hotmail)的電子郵件。此外,查看包含大寫字母的電子郵件([email protected])非常非常罕見。

我給自己幾封電子郵件今天使用不同的大寫和小寫的連擊,發現我的電子郵件服務器的所有它們當作同一賬戶忽略了一個事實,這封信外殼是不同的。換句話說,[email protected] = [email protected]到我的電子郵件服務器(包括我的免費電子郵件帳戶)。

我應該採取行動對世界已選擇的格式 - 規範/小寫所有ANSII電子郵件?或者我應該允許用戶以[email protected][email protected][email protected]的身份註冊多個帳戶嗎?

回答

4

也許,正確的妥協是讓他們自己選擇的註冊資本,並表明,在適當情況下(「[email protected]收件箱」)。但是,您應該規定大小寫以進行唯一性檢查,因爲有許多表現不好的電子郵件發件人,例如,在發送前大寫整個電子郵件地址。

+0

那麼大寫是傳遞的標準,而小寫是顯示的標準嗎? – Xeoncross 2011-03-14 04:11:33

+0

不,我不建議大寫(大寫)用於傳遞是正確的,一個好主意,*或*被大多數發件人使用。但它被一個重要的數字錯誤地使用了。正如我所說的,您應該在適當的地方向用戶顯示原始地址。對於標準化,只要你保持一致,下層套管或上層套管都可以。 – 2011-03-14 04:13:54

+2

@Xeoncross不,你應該發送到發件人寫的同一個地址,接收服務器可能區分大小寫。 – stefan 2011-03-14 04:21:46

1

我個人會選擇標準化/小寫所有電子郵件。這可以簡化您的工作,因爲如果用戶在您的系統上發送電子郵件或登錄,輸入電子郵件地址非常簡單 - [email protected] vs [email protected]。而且,正如你所說,大的提供商已經做出了這個決定遵循這種模式。即使你允許使用大寫字母,它會混淆你的一般用戶羣,因爲他們期望有不同的東西(全部都是小寫)。

2

的原因是標準,使非Unix系統可以參加阿帕網,後來上網用最少的麻煩。 (VMS和Tenex在前者中很常見,而BITNET也有代表性,後者至少需要小寫字符3278或升級3270終端。)現在,最好忽略localpart中的情況,因爲每個人都已經知道如何使用小寫字母。

2

在Microsoft SQL Server中,默認情況下,索引不區分大小寫。

如果您在該字段中添加了唯一索引,則用戶可以擁有一個類似於[email protected]的CamelCase名稱,而像[email protected]這樣的副本將被自動拒絕。

+1

我主要使用PostgreSQL,但是,MySQL共享您描述的大小寫不敏感的特性。但是,這不僅僅是存儲 - 我還需要通過電子郵件發送這些帳戶。 – Xeoncross 2011-03-14 04:14:47

相關問題