Как отфильтровать/удалить ПСЕВДОНИМ электронной почты Google с помощью PHP?
Я могу создать неограниченный псевдоним электронной почты в учетных записях Google (Gmail), ссылка: http://www.gizmodo.com.au/2014/09/how-to-use-the-infinite-number-of-email-addresses-gmail-gives-you/
Но мне нужно отфильтровать адрес электронной почты, чтобы пользователь не использовал один и тот же исходный адрес электронной почты для регистрации в моем приложении.
Я хотел бы знать, есть ли что-нибудь, чтобы решить эту проблему? или мой уникальный вариант - фильтрация с помощью регулярного выражения?
1 answers
Я не согласен с комментарием, прямо заявляющим, что вы не должны удалять "фильтры" (например, user_email+some_filter_to_flag_incoming_messages
@example.org). "Ваши варианты использования не совпадают с моими вариантами использования" и так далее.[0]
Tl;dr: Шаблон регулярного выражения, который вы ищете, это: '(\+.*)(?=\@)'
Объяснение:
Для начала напишите регулярное выражение, которое соответствует буквальному знаку "+" и любому отдельному символу, любое количество раз:
'(\+.*)'
При замене этого шаблона пустым строка, это превратит [email protected]
в tristan
. Если вы решите разделить символ @, поздравляю, соедините полученную строку с '@' + доменом.Перейдите к этому, и все готово. Я упоминаю об этом на случай, если вы уже разделили адрес электронной почты, и он все равно болтается где-то поблизости.
Если вы не разделяете адрес электронной почты пользователя на символ @, вам нужно использовать "позитивный прогноз" (соответствует этому шаблону, если он выполняется эта вещь, которую я указываю), чтобы сообщить вашему совпадению, когда нужно стоп (чтобы мы не забирали слишком много):
'(\+.*)(?=\@)'
Имея это на месте, мы получаем [email protected]
. Ура, на самом деле это было не так уж и грубо.
[0]: В одном из моих приложений я сохраняю исходный адрес электронной почты, содержащий фильтр, который пользователи дают мне для связи, но отслеживаю использование фильтра и считаю, что каноническая учетная запись (на которую есть внутренняя ссылка) является версией без фильтра (например, [email protected]). Я делаю это, чтобы облегчить пользователям, которые регистрируются, поиск по электронной почте адрес для поиска друг друга.
Я понимаю, почему люди используют псевдонимы/фильтры:
- они создают иллюзию, что их можно использовать для отслеживания спамеров (как если бы сборщик электронной почты не удалял фильтр перед продажей списка)
- они полезны для маршрутизации электронных писем или запуска событий (например, отправка текста, когда вы получаете от меня электронное письмо[email protected])
- фактор "боже, я могу это сделать?"
Это все, чтобы сказать: "Я понимаю, люди как фильтры", но у автора приложения или компании есть веские причины обратить на них внимание.