我可以創建谷歌帳戶(Gmail的)無限的電子郵件別名,REF:http://www.gizmodo.com.au/2014/09/how-to-use-the-infinite-number-of-email-addresses-gmail-gives-you/如何使用PHP過濾/刪除Google電子郵件ALIAS?
但我需要過濾的電子郵件地址,以避免用戶使用相同的原始電子郵件寄存器我的應用程序。
我想知道是否有什麼要解決這個問題?或者我將必須過濾正則表達式?
我可以創建谷歌帳戶(Gmail的)無限的電子郵件別名,REF:http://www.gizmodo.com.au/2014/09/how-to-use-the-infinite-number-of-email-addresses-gmail-gives-you/如何使用PHP過濾/刪除Google電子郵件ALIAS?
但我需要過濾的電子郵件地址,以避免用戶使用相同的原始電子郵件寄存器我的應用程序。
我想知道是否有什麼要解決這個問題?或者我將必須過濾正則表達式?
我不同意這個評論,說明你不應該去掉「過濾器」(例如user_email +some_filter_to_flag_incoming_messages
@ example.org)。 「你的用例與我的用例不一樣」等等。
TL;博士:你正在尋找的正則表達式是:'(\+.*)(?=\@)'
說明:
開始,編寫文字「+」號和任何單個字符匹配一個正則表達式, 任何次數:
'(\+.*)'
當與空字符串替換該模式,這會變成[email protected]
成tristan
。如果您決定拆分@符號,恭喜,將結果字符串連接到'@'+ domain.TLD並完成。我提到這一點,以防你已經拆分了電子郵件地址,而且它只是掛在身邊。
如果你不分裂的@符號的用戶電子郵件地址,您需要使用一個「積極前瞻」(如果它是由這個東西進行匹配這個模式我指定)告訴你的對手何時停止(所以我們沒有帶走太多):
'(\+.*)(?=\@)'
與此到位,我們得到[email protected]
。 Hooray,那實際上並不那麼粗糙。
[0]:在我的應用程序之一,我存儲的用戶給我通信原含過濾器的電子郵件地址,但跟蹤過濾器的使用,並考慮規範賬戶(參考-內部)到是沒有過濾器的版本(例如[email protected])。我這樣做是爲了讓通過電子郵件地址定位的用戶更容易搜索對方。
我理解爲什麼人們使用別名/過濾器:
這就是說,「我明白了,像過濾器這樣的人」,但是作爲應用程序作者或公司記下它們的理由是有道理的。
編輯:哇,爲什麼downvote?這是一個正則表達式問題,現在它有一個可行的答案。 – 2015-01-07 13:59:10
關於您的[0]要點:確切地說,操縱電子郵件列表以刪除別名非常簡單。 – 2015-01-08 19:51:47
一個新問題:我可以只過濾Gmail域名的電子郵件,以避免在我的Web應用程序中使用相同電子郵件地址的真正AKA沒有別名(重複的電子郵件),你在想什麼? .... PS:我這樣說,考慮到Gmail的流行 – 2015-01-08 19:57:18
你不應該這樣做。有很多使用Gmail的網域,您不知道使用的是Gmail。還有其他一些原因可能會導致用戶在其用戶名中輸入「+」。 – Brad 2014-10-29 17:57:19
@Brad我可以檢查電子郵件域名是否與Google帳戶相關聯?通過DNS,例如 – 2014-10-29 18:07:44
@Jonas不可靠。一家公司可以使用Google Apps,但在Google之前仍然有一些其他SMTP服務器。這並不罕見。例如,很多公司將在Google Apps和Exchange之間分割他們的郵件用戶。從某件事物遷移到Google Apps時,這是一種非常常見的情況。 – Brad 2014-10-29 18:19:26