Gmail мыло

RTFM – Read The Fucking Manual
Словарь IT аббревиатур

Не знаю, общее ли это свойство человечества или присуще только жителям 1/6 части суши, но читать доки мы не любим, предпочитая до всего дойти своей кумекалкой. Скорее это все же общая черта принадлежности к Homo Sapiens. Недаром же аббревиатура из цитаты имеет оригинальное американское происхождение.

Вся эта лирика связана с нахождением в Gmail описания одной документированной фичи этой бесплатной почты (цитирую):

Поскольку Gmail не распознает точки в именах пользователей как символы, их добавление в адрес Gmail или удаление из него не изменит действительного адреса назначения. Письма, отправленные по адресам imyapolzovatelya@gmail.com, imya.polzovatelya@gmail.com и i.m.y.a.p.o.l.z.o.v.a.t.e.l.y.a@gmail.com, будут доставлены только вам.

Просекаете фишку? Зарегистрировав один раз достаточно длинный почтовый адрес в Gmail вы получите очень много уникальных email адресов, которые автоматически будут падать в один и тот же почтовый ящик. Согласно RFC 3696 “точка может употребляться в локальной части (до знака @) email адреса, если она не является первым или последним символом и не соседствует с другой точкой”. Так что мы имеем набор адресов, удовлетворяющих всем стандартам и являющихся уникальными для всех, кроме самого Gmail, скидывающего всю почту с таких адресов в один почтовый ящик.

В жизни манимейкера периодически встречаются ситуации, когда бывает полезным иметь много почтовых адресов. Сходу я подумал, что такая особенность Gmail будет полезна, например:

  • Для уникализации контактов в Whois – если вы работаете над сетками доменов или у вас просто много проектов (хотя бы в перспективе), то вы наверняка слышали разговоры о том, что и Google и Яндекс при ранжировании и индексации учитывают информацию из whois. Недаром же Google получил прямой доступ к регистру доменов после официальной аккредитации в ICAAN (его номер 895 официальном списке регистраторов) в качестве регистратора доменов. Используя для каждого домена уникальный контактный email адрес, вы сможете скрыть связанность своих доменов от поисковиков, сохранив полный контроль без необходимости просматривать множество отдельных почтовых ящиков.
  • Регистрация в социальных сетях – о продвижении в сетях типа Одноклассники и Вконтакте поговорим отдельно в следующий раз, но для добычи трафика иногда бывает полезным иметь много-много аккаунтов в этих сетях. Очень удобно все их контролировать из одного места.
  • Регистрация аккаунтов на фришных хостингах – такие аккаунты бывают нужны для разных целей, но основное, конечно, это хостинг дорвеев. Тема дорвеев жить будет еще долго, значит и необходимость в большом количестве почтовых ящиков тоже есть.

Возможно, у вас тоже есть пример или воспоминание о ситуации, когда нужно было иметь несколько сотен (тысяч?) уникальных email адресов. Ну вот, теперь вы знаете, как получить нужное количество email адресов. Кстати, не забудьте написать о своих примерах в комментариях, многим будет интересно узнать, для чего еще надо много почтовых адресов.

Теперь, собственно, немного цифр. Сколько же уникальных адресов получается путем расстановки точек в email адресе? Если я правильно помню, комбинaторику изучают уже на втором курсе, так что вы и сами можете посчитать, но если лень, то вот формула:

Формула подсчета числа уникальных комбинаций

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

На практике это означает, что при использовании максимально длинного из доступных адреса в почте Gmail в 40 символов, мы получим 240 уникальных email адресов, или, говоря по-русски, 1,099,511,627,776 комбинаций. Это чуть больше триллиона адресов. Вам хватит!

Напоследок – вот вам алгоритм для генерации списка уникальных адресов – не руками же точки расставлять:

var s1:string; i,j,k:integer;
begin
for i:=0 to 1 shl (length(s)-1)-1 do begin
s1:=Copy(s,1,1); k:=i;
for j:=1 to length(s)-1 do begin
if (k and 1)=1 then s1:=s1+'.';
s1:=s1+Copy(s,j+1,1);
k:=k shr 1;
end;
writeln(s1);
end;end.

Алгоритм простой – без труда перепишите на удобном вам языке программирования. Удачи!

________________

Интересно почитать (как сюда попась):

Пользуетесь электронной валютой? Чтобы не переплачивать на конвертации, используйте мониторинг обменных пунктов.

Обналичили деньги и не знаете, куда их потратить? Московский сайт знакомств поможет вам найти себе подходящую пару. Вход бесплатный.

Если же денег совсем много, и на девушек не растратить – регистрация оффшоров это предложение для вас. Ведите бизнес по-серьезному.