Aspose.Email  для .NET

Сгенерируйте адрес Gmail с помощью .NET

Создайте свой собственный временный генератор Gmail с паролем, используя C#

  Скачать бесплатную пробную версию
 

Генератор Gmail — довольно распространенный способ управления подписками по электронной почте. По сути, это аналог поставщика временных адресов электронной почты, но гораздо более гибкий, надежный и безопасный.

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

Поиск писем по адресу получателя позволит вам отфильтровывать письма и выполнять с ними автоматические действия. Одноразовый или постоянный. Вы также можете обнаружить, что веб-сайты передают ваш адрес третьим лицам без вашего согласия.

Например, предположим, что вы создали дополнительный адрес username+ for.spam.sender@gmail.com . Затем вы передали его на веб-сайт spam-sender.com. Через некоторое время вы можете получить электронное письмо с другого веб-сайта, например other-sender.com, но получателем будет имя пользователя+ for.spam.sender@gmail.com . В любой другой ситуации вы не сможете понять, почему other-sender.com рассылает вам рекламные письма, но поскольку вы использовали альтернативный адрес, легко увидеть, что spam-sender.com передал ваш адрес третьим лицам. И если это так, нет смысла отписываться от списков рассылки этих сайтов. Ваш дополнительный адрес, вероятно, уже включен в какую-то общедоступную базу для отправки нежелательных писем. Будет намного проще, если вы просто заблокируете всю почту, поступающую на этот дополнительный адрес. Будет еще лучше, если вы настроите автоматическое перемещение таких писем в папку со спамом. Такая настройка очень усложнит жизнь этим сайтам, потому что Gmail будет знать, что эти сайты рассылают спам.

Итак, давайте разберемся, как реализовать такой генератор с помощью Aspose.Email для .NET.

Создайте временный Gmail и работайте с ним

Чтобы создать дополнительный адрес Gmail, нам на самом деле не нужен Aspose.Email, нам не нужно каким-либо образом взаимодействовать со службой Gmail. Подойдет любой дополнительный адрес, который вы создадите вручную или случайным образом при соблюдении определенных правил.

Итак, каковы эти правила?

Очки не важны. То есть в своем адресе перед символом «@» вы можете как удалять точки, так и добавлять новые точки между любыми парами букв.

Перед символом «@» можно добавить символ «+» с любым набором букв и цифр после него. Примеры адреса «username@gmail.com»:

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

Простой временный генератор Gmail

Итак, давайте создадим простой генератор случайных субадресов. Для этого мы добавим случайную строку между символами «+» и «@». Прежде всего, нам нужно сгенерировать случайную строку определенной длины, состоящую из определенного набора символов:

const string pattern = "abcdefghijklmnopqrstuvwxyz0123456789";
var patternLength = pattern.Length;
const int suffixLength = 10;
var random = new Random();
var generatedSuffix = Enumerable.Range(0, suffixLength)
    .Aggregate(
        new StringBuilder(),
        (builder, _) => builder.Append(pattern[random.Next(patternLength)]))
    .ToString();

Теперь нам нужно получить адрес электронной почты и добавить к нему сгенерированную случайную строку. Для этого мы воспользуемся MailAdress класс из библиотеки Aspose.Email для .NET:

var originalAddress = new MailAddress("some.address@gmail.com");
var generatedAddress = new MailAddress(
    $"{originalAddress.User}+{generatedSuffix}@{originalAddress.Host}");
Console.WriteLine(generatedAddress);

Готово! Полученный адрес уже можно использовать при регистрации на сайтах. Вскоре веб-сайты начнут отправлять сообщения на этот адрес. Давайте посмотрим, что можно сделать с этими сообщениями.

Используйте клиент IMAP для работы с сообщениями, полученными в сгенерированный Gmail

Во-первых, чтобы работать с сообщениями, полученными на дополнительный адрес, нам необходимо подключиться к Gmail. Для этого хорошо подходит IMAP. Чтобы подключиться по этому протоколу, не забудьте настроить учетную запись, чтобы разрешить подключение к ней по этому протоколу. Кроме того, вы можете упростить соединение по протоколу IMAP с помощью специального пароля приложения. Это позволит вам избежать необходимости выполнять авторизацию OAuth, если вы не хотите внедрять ее в своем приложении. Просто зайдите в настройки своей учетной записи Google, откройте раздел «Безопасность» и добавьте пароль приложения. Не забудьте сохранить сгенерированный пароль в безопасном хранилище и постарайтесь не потерять его, ведь он дает вам полный доступ к вашей почте!

Итак, давайте воспользуемся ImapClient класс и подключитесь к своей учетной записи Gmail по протоколу IMAP:

var imapClient = new ImapClient("imap.gmail.com", 993, originalAddress.User, "password",
    SecurityOptions.SSLAuto);

Готово, теперь мы можем, например, получить все сообщения, полученные на сгенерированный адрес Gmail:

await imapClient.SelectFolderAsync("INBOX");
var queryBuilder = new ImapQueryBuilder();
queryBuilder.To.Contains(generatedAddress.Address);

var list = await imapClient.ListMessagesAsync(queryBuilder.GetQuery());

И вы получите абсолютно все такие письма. Неважно, с какого сайта они пришли к вам. Они могли прийти с сайта, которому вы указали сгенерированный адрес электронной почты. Возможно, пришло с другого сайта. С любого адреса. Мы проверяем электронные письма не по отправителю, а по получателю. И это очень удобно.

Отмечайте, удаляйте, перемещайте полученные сообщения во временный Gmail

Получив список писем, мы уже можем выполнять с ним различные операции. Прежде всего, сразу. Вам не нужно искать их в почтовом ящике по очереди. Буквально пара команд и все буквы помечаются как прочитанные, перемещаются в другую папку или просто удаляются. Только не забудьте заранее убедиться, что список писем не пуст. Возможно, вы уже все удалили.

if (list.Count > 0)
{
    //Mark as read
    await imapClient.AddMessageFlagsAsync(list, ImapMessageFlags.IsRead);
    //Move
    await imapClient.MoveMessagesAsync(list, "DestinationFolder");
    //Remove
    await imapClient.DeleteMessagesAsync(list, commitNow: true);
}

Готово, ваш почтовый ящик очищен от спама.

Подпишитесь на временный адрес Gmail

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

await imapClient.StartMonitoringAsync((_, eventArgs) =>
    {
        var generated = eventArgs.NewMessages
            .Where(message => message.To
                .Any(address => address.Equals(generatedAddress)))
            .ToList();
        if (generated.Count == 0) return;

        imapClient.SelectFolder("INBOX");

        //Do something with the received messages. For example, mark them as read:
        imapClient.AddMessageFlags(generated, ImapMessageFlags.IsRead);

        //or delete them
        imapClient.DeleteMessages(generated, commitNow: true);
    },
    (_, errorEventArgs) => Console.WriteLine(errorEventArgs.Error.Message),
    "INBOX");

Этот алгоритм немного упрощен, потому что в случае ошибки подписка на новые сообщения будет прервана. Вы можете значительно улучшить алгоритм. Для этого вам необходимо усовершенствовать алгоритм, улучшив обработку ошибок. Например, можно настроить возобновление мониторинга в случае ошибки, для этого можно использовать функцию IMAPClient.ResumeMonitoring. Эта функция восстановит соединение с сервером IMAP и возобновит мониторинг новых сообщений.

К сожалению, чтобы использовать этот алгоритм, вы все равно должны поддерживать постоянную работу программы. Как только вы прервете выполнение программы, новые письма больше не будут автоматически удаляться. Но в этом случае есть другое решение.

Прекратите получать сообщения на сгенерированный адрес Gmail

Gmail предоставляет алгоритмы фильтрации входящих сообщений. Эти алгоритмы работают на стороне сервиса и никогда не пропустят нежелательную почту, если вы, конечно, правильно их настроите. На данный момент, к сожалению, мы не можем предоставить вам возможность удаленной настройки таких фильтров с помощью языка C#, но планируем добавить такую возможность в ближайшем будущем. Пожалуйста, следите за нашими обновлениями!

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

//Generate Gmail search pattern
var searchPattern = $"to:({generatedAddress.Address})";
Console.WriteLine(searchPattern);

Здесь переменная generatedAddress содержит созданный Gmail, созданный ранее в этой статье. Приведенный выше код создаст шаблон поиска и распечатает его в терминале. Скопируйте этот шаблон, потому что он понадобится вам при создании фильтра.

Теперь давайте шаг за шагом опишем, как можно создать фильтр. Для начала откройте веб-интерфейс электронной почты Gmail, он доступен по адресу ссылка. В этом интерфейсе найдите панель поиска:

step1

В эту строку поиска нужно вставить шаблон, сгенерированный ранее в этой инструкции. Далее нужно нажать на кнопку «Показать параметры поиска», которая указана на скриншоте ниже:

step2

В открывшемся окне параметров поиска не нужно вводить никаких дополнительных данных, в сгенерированном шаблоне уже настроен поиск. Просто нажмите на кнопку «Создать фильтр».

step3

В результате откроется окно настроек фильтра:

step4

Здесь вы можете выбрать, что фильтр должен делать с электронными письмами, полученными на сгенерированный адрес Gmail. Вы можете автоматически архивировать их, отмечать как прочитанные, удалять и так далее. Как правило, лучшим вариантом является удаление писем. Объем почтового ящика ограничен, нет смысла тратить его на хранение мусора. После того как вы выберете подходящие вам действия, снова нажмите на кнопку «Создать фильтр».

Готово! Фильтр полностью настроен, поэтому нежелательная почта больше не будет вас беспокоить.

Управление временными фильтрами Gmail

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

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

Сначала откройте веб-интерфейс Gmail. На открывшейся странице нажмите на кнопку «Настройки»:

step1

В открывшемся окне нажмите на кнопку «Показать все настройки»:

step2

Откроется окно настроек учетной записи Gmail. Оно содержит множество вкладок для тонкой настройки работы с электронной почтой. Нас интересует вкладка «Фильтры и заблокированные адреса». Откройте эту вкладку:

step3

В открывшейся вкладке вы увидите список фильтров для созданных вами Gmails, которые вы создали ранее, а также, возможно, другие фильтры:

step4

По описанию фильтров вы можете легко определить, какой из них отвечает за адрес, который вы хотите разблокировать. Нажав на кнопку «удалить», вы можете навсегда отключить фильтр. Если вы нажмете кнопку «изменить», вы сможете перенастроить фильтр. Например, вместо удаления писем вы можете пометить их. Таким образом вы сможете сохранить фильтр и упростить его включение в будущем. Отредактировав фильтр, вы сможете получать необходимые электронные письма с веб-сайта. Как только вы захотите снова заблокировать сгенерированный Gmail, снова откройте фильтр с помощью кнопки «изменить» и перенастройте действия.

Вот и все. Теперь вы профессионал в области сгенерированных адресов Gmail. Вы можете создать огромное количество адресов и мастерски управлять потоком писем, поступающих на ваш Gmail. Используя дополнительные адреса, вы сможете отслеживать сайты, которые передают ваши данные третьим лицам без вашего согласия. Вы сможете блокировать спам, не переобучая систему защиты от спама или не нажимая несколько раз кнопки «Отказаться от подписки». Вы можете автоматизировать удаление спама с помощью Aspose.Email.NET или вручную через настройки и интерфейс Gmail.