我該如何檢查郵件是否存在? 不能理解的網站怎麼做纔能有一個獨特的鏈接發送郵件的用戶點擊來驗證自己是電子郵件的所有者=/發送激活郵件給用戶
做一個2個新列名爲激活密鑰並激活和存儲一些隨機字符串,請發送電子郵件與激活密鑰,並更新激活的用戶= 1匹配激活鏈接
register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15
有什麼更好的想法?
我該如何檢查郵件是否存在? 不能理解的網站怎麼做纔能有一個獨特的鏈接發送郵件的用戶點擊來驗證自己是電子郵件的所有者=/發送激活郵件給用戶
做一個2個新列名爲激活密鑰並激活和存儲一些隨機字符串,請發送電子郵件與激活密鑰,並更新激活的用戶= 1匹配激活鏈接
register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15
有什麼更好的想法?
我通常會發送一個包含用戶標識和激活碼的鏈接。當他們訪問我的激活腳本時,如果我找到一個匹配,我激活它們。
當他們註冊時,我會生成大概32個字母的大寫/小寫字母數字字符並將其設置爲激活密鑰。此時,您可以創建一個名爲「激活」的字段,或者您可以假設用戶在激活密鑰的情況下未被激活。
uid | email | key ------------------------------------------------------------ 001 | [email protected] | e09141f3f5a17fed6222fc0279b9afdf ------------------------------------------------------------ 002 | [email protected] | ------------------------------------------------------------
當用戶訪問激活腳本,只需檢查所提供的密鑰與所提供的ID一起,如果找到匹配,刪除從文件的用戶記錄的鍵(或更新您的布爾「激活」領域)並打開門。
如果提供的電子郵件地址不存在,則不會丟失。閒置一個月後,您可以定期使用按鍵刪除所有行。
有沒有簡單的方法來檢查電子郵件是否實際上以編程方式存在。有一些方法(ping郵件服務器等),但沒有證明可以與每個郵件服務器的設置一起工作。強制用戶通過您描述的鏈接激活他們的帳戶是最好的方式。此外,您可能希望有一些類似cron-job的循環腳本,可以在一段時間後刪除未激活的成員(這將需要表中的另一列,時間戳)。
這很有用,因爲如果用戶註冊但不會激活他們的帳戶並刪除電子郵件,並且您將他們的電子郵件用作id(僅舉例),他們將永遠無法完成激活。或者,如果他們嘗試登錄,則可以重新將激活電子郵件重新發送到該地址。
只要確保在電子郵件中指定了所有標題(回覆來自等),這樣您的電子郵件就不會被標記爲垃圾郵件。
這種檢查郵件是否存在的方法並非萬無一失。它不能確保電子郵件屬於用戶。 存在一次性郵件服務,您可以在其中獲得臨時電子郵件地址。用戶可能會使用其中一項服務,激活其帳戶並登錄系統。過了一會兒,臨時地址被禁用。 – 2010-01-07 00:23:12
激活密鑰的一種替代方法是僅將生成的密碼發送到用戶電子郵件,如果用戶登錄,他被激活(當然,應該能夠將密碼更改爲他喜歡的密碼)。
不錯!非常感謝!順便說一句,生成一個關鍵你認爲md5(uniqid());會好的?不想要2個用戶使用相同的密鑰:P – Martin 2010-01-06 22:31:21
同一個uniqid的md5仍然是相同的 - 您可以使用uniqid的前綴(也許是他們的電子郵件的md5),或使用uniq id的'更多熵'標誌 – eCaroth 2010-01-06 22:38:17
smart 。以爲我會用md5(電子郵件); thx – Martin 2010-01-06 22:41:21