Как отфильтровать/удалить ПСЕВДОНИМ электронной почты Google с помощью PHP?


Я могу создать неограниченный псевдоним электронной почты в учетных записях Google (Gmail), ссылка: http://www.gizmodo.com.au/2014/09/how-to-use-the-infinite-number-of-email-addresses-gmail-gives-you/

Но мне нужно отфильтровать адрес электронной почты, чтобы пользователь не использовал один и тот же исходный адрес электронной почты для регистрации в моем приложении.

Я хотел бы знать, есть ли что-нибудь, чтобы решить эту проблему? или мой уникальный вариант - фильтрация с помощью регулярного выражения?

Author: Jonas WebDev, 2014-10-29

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])
  • фактор "боже, я могу это сделать?"

Это все, чтобы сказать: "Я понимаю, люди как фильтры", но у автора приложения или компании есть веские причины обратить на них внимание.

 11
Author: , 2015-01-07 13:53:06