Сгенерируйте адрес Gmail с помощью C++
Создайте свой собственный временный генератор Gmail с паролем с помощью C++
Скачать бесплатную пробную версиюГенератор Gmail — это довольно распространенный способ управления подписками на электронную почту. По сути, это аналог провайдера временных адресов электронной почты, но гораздо более гибкий, надежный и безопасный.
Суть генератора заключается в создании дополнительных адресов Gmail. Вы можете использовать эти дополнительные адреса при регистрации на различных веб-сайтах. Эти веб-сайты, вероятнее всего, будут отправлять электронные письма на указанные вами адреса. Поскольку адреса дополнительные, все письма будут приходить на ваш основной адрес. Но при этом дополнительный адрес, созданный приложением или подготовленный вручную, будет указан как получатель письма.
Поиск электронных писем по адресу получателя позволит вам фильтровать письма и выполнять автоматические действия над ними. Один раз или постоянно. Вы также можете поймать сайты, которые делятся вашим адресом с третьими лицами без вашего согласия.
Например, представьте, вы сгенерировали дополнительный адрес username+for.spam.sender@gmail.com . Затем вы передали его сайту spam-sender.com. Спустя некоторое время вы можете получить email с другого сайта, такого как other-sender.com, но получателем будет адрес username+for.spam.sender@gmail.com . В любой другой ситуации вы не смогли бы разобраться, почему other-sender.com отправляет вам рекламные письма, но поскольку вы использовали альтернативный адрес, легко увидеть, что spam-sender.com поделился вашим адресом с третьими лицами. И если это так, то нет смысла отписываться от рассылок этих сайтов. Ваш дополнительный адрес, вероятно, уже был включен в какую-то публичную базу для отправки нежелательных писем. Будет гораздо проще, если вы просто заблокируете всю почту, приходящую на этот дополнительный адрес. Было бы еще лучше, если бы вы настроили автоматическое перемещение таких писем в папку спама. Эта настройка очень усложнит жизнь этим сайтам, потому что Gmail будет знать, что эти сайты отправляют спам.
Итак, давайте разберемся, как реализовать такой генератор с помощью Aspose.Email для C++.
Сгенерируйте временный Gmail и работайте с ним
Чтобы сгенерировать дополнительный адрес Gmail, нам на самом деле не нужен Aspose.Email, нам не нужно взаимодействовать с сервисом Gmail никаким образом. Любой дополнительный адрес, который вы придумаете вручную или случайно, при соблюдении определенных правил, будет работать.
Итак, какие же это правила?
Пункты не имеют значения. То есть в вашем адресе, перед символом ‘@’, вы можете как удалять точки, так и добавлять новые между любыми парами букв.
Перед символом ‘@’ вы можете добавить символ ‘+’ с любым набором букв и цифр после него. Примеры для адреса “username@gmail.com”:
Все эти адреса уже могут использоваться при регистрации на веб-сайтах. Но сами по себе они имеют мало смысла, потому что все сообщения, приходящие на эти адреса, окажутся в вашем основном почтовом ящике. Поэтому стоит воспользоваться нашими инструкциями по работе с этими адресами.
Простой временный генератор Gmail
Итак, давайте создадим простой генератор случайных подпись адресов. Для этого мы добавим случайную строку между символами ‘+’ и ‘@’. Прежде всего, нам нужно сгенерировать случайную строку заданной длины, состоящую из определенного набора символов:
const char16_t pattern[] = u"abcdefghijklmnopqrstuvwxyz0123456789";
auto patternLength = std::char_traits<char16_t>::length(pattern);
const int suffixLength = 10;
std::string generatedSuffix;
generatedSuffix.reserve(suffixLength);
srand(time(NULL));
for (int i = 0; i < suffixLength; i++)
{
generatedSuffix += pattern[rand() % (patternLength - 1)];
}
Теперь нам нужно взять адрес электронной почты и добавить к нему сгенерированную случайную строку. Для этого мы будем использовать класс MailAdress из библиотеки Aspose.Email для C++:
auto originalAddress = System::MakeObject<MailAddress>(System::String(u"some.address@gmail.com"));
auto generatedAddress = System::MakeObject<MailAddress>(
originalAddress->get_User() + u"+" + generatedSuffix + u"@" + originalAddress->get_Host());
Console::WriteLine(generatedAddress);
Готово! Полученный адрес уже можно использовать при регистрации на веб-сайтах. Веб-сайты вскоре начнут отправлять сообщения на этот адрес. Давайте посмотрим, что мы можем сделать с этими сообщениями.
Используйте клиента IMAP для работы с сообщениями, полученными на сгенерированный Gmail
Сначала, чтобы работать с сообщениями, полученными на дополнительный адрес, нам нужно подключиться к Gmail. IMAP отлично подходит для этого. Чтобы подключиться с использованием этого протокола, не забудьте настроить свою учетную запись, чтобы разрешить подключение к ней с помощью этого протокола. Кроме того, вы можете упростить подключение IMAP с помощью специального пароля приложения. Это позволит вам избежать необходимости выполнять авторизацию OAuth, если вы не хотите реализовывать ее в своем приложении. Просто перейдите в настройки своей учетной записи Google, откройте раздел Безопасность и добавьте пароль приложения. Не забудьте сохранить сгенерированный пароль в безопасном хранилище и старайтесь не терять его, потому что он дает вам полный доступ к вашей почте!
Итак, давайте используем класс ImapClient и подключимся к учетной записи Gmail с помощью протокола IMAP:
auto imapClient = System::MakeObject<Clients::Imap::ImapClient>(
u"imap.gmail.com", 993, originalAddress->get_User(), u"password",
SecurityOptions::SSLAuto);
Готово, теперь мы можем, например, получить все сообщения, полученные по сгенерированному адресу Gmail:
imapClient->SelectFolder(u"INBOX");
auto queryBuilder = System::MakeObject<ImapQueryBuilder>();
queryBuilder->get_To()->Contains(generatedAddress->get_Address());
auto list = imapClient->ListMessages(queryBuilder->GetQuery());
И вы получите абсолютно все такие письма. Не имеет значения, с какого сайта они к вам пришли. Они могли прийти с сайта, которому вы дали сгенерированный адрес электронной почты. Могли прийти с другого сайта. С любого адреса. Мы фильтруем электронные письма не по отправителю, а по получателю. И это очень удобно.
Пометьте, удалите, переместите сообщения, полученные на временный Gmail
Получив список писем, мы уже можем выполнять различные операции с ним. Все сразу. Вам не нужно находить их в своем почтовом ящике по одному. Литерал, пара команд, и все письма помечаются как прочитанные, перемещаются в другую папку или просто удаляются. Просто не забудьте предварительно проверить, что список писем не пуст. Вы могли уже все удалить.
if (list->get_Count() > 0)
{
//Пометить как прочитанное
imapClient->AddMessageFlags(list, ImapMessageFlags::get_IsRead());
//Переместить
imapClient->MoveMessages(list, u"DestinationFolder");
//Удалить
imapClient->DeleteMessages(list, true);
}
Готово, ваш почтовый ящик был очищен от спама.
Подписка на временный адрес Gmail
Итак, что если вы не хотите постоянно удалять или помечать письма, вручную вызывая вышеуказанный код? Что если вы хотите удалять письма, как только они поступают? Для этого, например, вы можете подписаться на новые сообщения и написать функцию, которая удаляет сообщения, как только они приходят на ваш адрес электронной почты.
std::function<void(System::SharedPtr<System::Object> sender, System::SharedPtr<Clients::Imap::ImapMonitoringEventArgs> eventArgs)> subscribeCallback =
[&generatedAddress, &imapClient](System::SharedPtr<System::Object> sender, System::SharedPtr<ImapMonitoringEventArgs> eventArgs)
{
auto newMessages = eventArgs->get_NewMessages();
auto generated = System::MakeObject<ImapMessageInfoCollection>();
for each (auto newMessage in newMessages)
{
for each (auto address in newMessage->get_To())
{
if (address->get_Address() == generatedAddress->get_Address())
{
generated->Add(newMessage);
break;
}
}
}
if (generated->get_Count() == 0) return;
imapClient->SelectFolder(u"INBOX");
//Сделать что-то с полученными сообщениями. Например, пометить их как прочитанные:
imapClient->AddMessageFlags(generated, ImapMessageFlags::get_IsRead());
//или удалить их
imapClient->DeleteMessages(generated, true);
};
std::function<void(System::SharedPtr<System::Object> sender, System::SharedPtr<Clients::Imap::ImapMonitoringErrorEventArgs> eventArgs)> errorCallback =
[](System::SharedPtr<System::Object> _, System::SharedPtr<ImapMonitoringErrorEventArgs> errorEventArgs)
{
Console::WriteLine(errorEventArgs->get_Error()->get_Message());
};
imapClient->StartMonitoring(subscribeCallback, errorCallback, u"INBOX");
Этот алгоритм немного упрощен, потому что в случае ошибки подписка на новые сообщения будет прервана. Вы можете значительно улучшить алгоритм. Для этого вы можете доработать алгоритм, усовершенствовав обработку ошибок. Например, вы можете настроить возобновление мониторинга в случае ошибки, для этого можно использовать функцию ImapClient.ResumeMonitoring. Эта функция снова установит соединение с IMAP-сервером и возобновит мониторинг новых сообщений.
К сожалению, чтобы использовать этот алгоритм, вам все равно нужно поддерживать постоянную работу программы. Как только вы прервете выполнение программы, новые письма больше не будут автоматически удаляться. Но в этом случае есть иное решение.
Остановить получение сообщений на сгенерированный адрес Gmail
Gmail предоставляет алгоритмы для фильтрации входящих сообщений. Эти алгоритмы работают на стороне сервиса и никогда не пропустят нежелательную почту, если вы, конечно, правильно их настроите. На данный момент, к сожалению, мы не можем предоставить вам функциональность для удаленной настройки таких фильтров с помощью C++, но мы планируем добавить такую возможность в ближайшем будущем. Пожалуйста, следите за нашими обновлениями!
Итак, если вы хотите фильтровать сообщения, поступающие на сгенерированный Gmail, вам сначала нужно создать шаблон поиска для фильтра. Вот самый простой код для получения шаблона:
//Сгенерировать шаблон поиска Gmail
auto searchPattern = System::String(u"to:(") + generatedAddress->get_Address() + u")";
Console::WriteLine(searchPattern);
Здесь переменная generatedAddress
содержит сгенерированный Gmail, который был создан ранее в этой статье. Указанный выше код создаст шаблон поиска и выведет его в терминал. Скопируйте этот шаблон, потому что он вам понадобится при создании фильтра.
Теперь давайте опишем шаг за шагом, как вы можете создать фильтр. Для начала откройте веб-интерфейс Gmail, он доступен по ссылке. В этом интерфейсе найдите строку поиска:
В этой строке поиска вам нужно вставить ранее сгенерированный шаблон. Далее необходимо нажать на кнопку “Показать параметры поиска”, которая указана на скриншоте ниже:
В открывшемся окне параметров поиска вам не нужно вводить никаких дополнительных данных, сгенерированный шаблон уже настроил поиск. Просто нажмите на кнопку “Создать фильтр”.
В результате откроется окно настроек фильтра:
Здесь вы можете выбрать, что фильтр должен делать с электронными письмами, полученными на сгенерированный адрес Gmail. Вы можете автоматически архивировать их, помечать как прочитанные, удалять и так далее. Обычно лучшим вариантом является удаление писем. Объем почтового ящика ограничен, нет смысла тратить его на хранение мусора. После того, как вы выберете подходящие вам действия, снова нажмите на кнопку “Создать фильтр”.
Готово! Фильтр полностью настроен, поэтому больше никакая спам почта вас не побеспокоит.
Управление фильтрами временного Gmail
Иногда сообщения, которые вы получаете с определенного веб-сайта, становятся нежелательными. Они просто превращаются в мусор в вашем почтовом ящике и мешают вам находить в нем то, что действительно важно и интересно для вас. В результате вы создаете фильтр, который блокирует нежелательные сообщения с этого веб-сайта. Но что если сообщения с сайта больше не являются спамом? Например, вы хотите восстановить свой пароль. Веб-сайт отправляет вам электронное письмо со ссылкой на форму сброса пароля, но вы не можете его получить, потому что фильтр сразу удаляет письмо.
К счастью, есть элегантный выход из этой ситуации. Вы можете временно перенастроить фильтр так, чтобы он не удалял эти электронные письма. Или вы можете вовсе удалить фильтр. Давайте посмотрим, как это можно сделать.
Сначала откройте веб-интерфейс Gmail. На открывшейся странице нажмите на кнопку “Настройки”:
В открывшемся окне нажмите на кнопку “Посмотреть все настройки”:
Откроется окно настроек учетной записи Gmail. В нем содержится много вкладок для тонкой настройки вашего почтового опыта. Нас интересует вкладка “Фильтры и заблокированные адреса”. Откройте эту вкладку:
На открывшейся вкладке вы увидите список фильтров для сгенерированных Gmail, которые вы создали ранее, а также, возможно, другие фильтры:
По описанию фильтров вы легко сможете определить, какой из них отвечает за адрес, который вы хотите разблокировать. Нажав на кнопку “удалить”, вы можете навсегда отключить фильтр. Если вы нажмете на кнопку “редактировать”, вы сможете перенастроить фильтр. Например, вместо удаления писем вы можете пометить их. Таким образом, вы сможете сохранить фильтр и упростить его повторное включение в будущем. Изменив фильтр, вы сможете получать необходимые электронные письма с веб-сайта. Как только вы захотите снова заблокировать сгенерированный Gmail, снова откройте фильтр с помощью кнопки “редактировать” и перенастройте действия.
На этом все. Теперь вы профессионал в работе с сгенерированными адресами Gmail. Вы можете создавать огромное количество адресов и мастерски управлять потоком электронных писем, поступающих на ваш Gmail. Используя дополнительные адреса, вы сможете отслеживать сайты, которые передают ваши данные третьим лицам без вашего согласия. Вы сможете блокировать спам, не перенастраивая свою антиспам-систему или не нажимая кнопки “Отписаться” множество раз. Вы можете автоматизировать удаление спама с помощью Aspose.Email .NET или вручную через настройки и интерфейс Gmail.