Aspose.Email  para .NET

Gerar endereço Gmail usando .NET

Crie seu próprio gerador de Gmail temporário com senha usando C#

  Download grátis julgamento
 

O gerador de Gmail é uma forma bastante comum de gerenciar inscrições de e‑mail. Em essência, é um análogo a um provedor de endereços de e‑mail temporários, porém muito mais flexível, confiável e seguro.

A essência do gerador é criar endereços Gmail adicionais. Você pode usar esses endereços adicionais ao se registrar em vários sites. Esses sites provavelmente enviarão e‑mails para os endereços que você fornecer. Como os endereços são adicionais, todas as mensagens chegarão ao seu endereço principal. Mas, simultaneamente, um endereço adicional gerado pelo aplicativo ou preparado manualmente será indicado como destinatário da mensagem.

Pesquisar e‑mails pelo endereço do destinatário permitirá filtrar mensagens e executar ações automáticas sobre elas. Uma única vez ou de forma permanente. Você também pode detectar sites que compartilham seu endereço com terceiros sem sua permissão.

Por exemplo, suponha que você gerou um endereço adicional username+for.spam.sender@gmail.com . Você então o passou para o site spam-sender.com. Depois de algum tempo, pode receber um e‑mail de outro site, como other-sender.com, mas o destinatário será username+for.spam.sender@gmail.com . Em qualquer outra situação, você não conseguiria descobrir por que other-sender.com está enviando e‑mails promocionais, mas como você usou um endereço alternativo, fica fácil perceber que spam-sender.com compartilhou seu endereço com terceiros. E, nesse caso, não faz sentido cancelar a inscrição das listas de e‑mail desses sites. Seu endereço adicional provavelmente já foi incluído em alguma base pública para envio de e‑mails indesejados. Será muito mais fácil simplesmente bloquear todo o correio que chegar a esse endereço adicional. Seria ainda melhor configurar o movimento automático desses e‑mails para a pasta de spam. Essa configuração dificultará muito a vida desses sites, pois o Gmail saberá que eles estão enviando spam.

Então vamos descobrir como implementar esse gerador usando Aspose.Email para .NET.

Gerar Gmail temporário e operá‑lo

Para gerar um endereço Gmail adicional, na verdade não precisamos do Aspose.Email, nem precisamos interagir com o serviço Gmail de forma alguma. Qualquer endereço adicional que você criar manualmente ou aleatoriamente, obedecendo a certas regras, funcionará.

Quais são essas regras então?

Os pontos não são importantes. Ou seja, no seu endereço, antes do símbolo ‘@’, você pode tanto remover pontos quanto acrescentar novos entre quaisquer pares de letras.

Antes do caractere ‘@’, você pode adicionar um ‘+’ seguido de qualquer conjunto de letras e números. Exemplos para o endereço “username@gmail.com”:

Todos esses endereços já podem ser usados ao se registrar em sites. Mas, por si só, fazem pouco sentido, pois todas as mensagens enviadas a esses endereços acabarão na sua caixa de entrada principal. Portanto, vale a pena seguir nossas instruções para trabalhar com esses endereços.

Gerador simples de Gmail temporário

Então vamos criar um gerador simples de sub‑endereços aleatórios. Para isso, adicionaremos uma string aleatória entre os caracteres ‘+’ e ‘@’. Primeiro, precisamos gerar uma string aleatória de determinado comprimento, composta por um conjunto específico de caracteres:

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();

Agora precisamos obter o endereço de e‑mail e acrescentar a string aleatória gerada a ele. Para isso, usaremos a classe <a href="https://reference.aspose.com/email/net/aspose.email/mailaddress/" rel="nofollow noopener" target="_blank">MailAdress da biblioteca Aspose.Email para .NET:

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

Pronto! O endereço recebido já pode ser usado ao se registrar em sites. Os sites começarão em breve a enviar mensagens para esse endereço. Vamos ver o que podemos fazer com essas mensagens.

Use o cliente IMAP para operar com mensagens recebidas no Gmail gerado

Primeiro, para operar nas mensagens recebidas em um endereço adicional, precisamos conectar ao Gmail. O IMAP é muito adequado para isso. Para conectar usando esse protocolo, não se esqueça de configurar sua conta para permitir conexões via IMAP. Além disso, você pode simplificar a conexão IMAP com uma senha de aplicativo dedicada. Isso evita a necessidade de realizar autorização OAuth caso você não queira implementá‑la em sua aplicação. Basta ir às configurações da sua conta Google, abrir a seção Segurança e adicionar uma senha de aplicativo. Não se esqueça de armazenar a senha gerada em local seguro e tente não perdê‑la, pois ela concede acesso total ao seu correio!

Então, vamos usar a classe <a rel="nofollow noopener" target="_blank" href="https://reference.aspose.com/email/net/aspose.email.clients.imap/imapclient/">ImapClient e conectar à sua conta Gmail usando o protocolo IMAP:

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

Pronto, agora podemos, por exemplo, obter todas as mensagens recebidas no endereço Gmail gerado:

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

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

E você receberá absolutamente todas essas mensagens. Não importa de qual site elas vieram. Podem ter vindo do site ao qual você forneceu o endereço de e‑mail gerado. Podem ter vindo de outro site. De qualquer endereço. Nós filtramos os e‑mails não pelo remetente, mas pelo destinatário. E isso é muito conveniente.

Marcar, remover, mover mensagens recebidas para o Gmail temporário

Com a lista de mensagens em mãos, já podemos executar várias operações sobre ela. Principalmente de forma coletiva. Você não precisa encontrá‑las na caixa de entrada uma a uma. Literalmente, alguns comandos e todas as mensagens são marcadas como lidas, movidas para outra pasta ou simplesmente excluídas. Apenas não se esqueça de verificar antes que a lista de mensagens não esteja vazia. Você pode já ter excluído tudo.

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);
}

Concluído, sua caixa de entrada foi limpa de spam.

Assinar endereço Gmail temporário

E se você não quiser excluir ou marcar e‑mails constantemente chamando manualmente o código acima? E se quiser excluir e‑mails assim que são recebidos? Para isso, por exemplo, você pode assinar novas mensagens e escrever uma função que exclua as mensagens assim que chegam ao seu endereço de e‑mail.

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");

Este algoritmo está um pouco simplificado porque, em caso de erro, a assinatura de novas mensagens será interrompida. Você pode melhorar significativamente o algoritmo. Para isso, é necessário refinar o algoritmo aprimorando o tratamento de erros. Por exemplo, pode configurar a retomada da monitorização em caso de erro; para isso, pode usar a função ImapClient.ResumeMonitoring. Essa função restabelecerá a conexão com o servidor IMAP e retomará a monitorização de novas mensagens.

Infelizmente, para usar este algoritmo, você precisa manter o programa em execução constante de qualquer forma. Assim que interromper a execução do programa, novas mensagens não serão mais excluídas automaticamente. Mas, nesse caso, há outra solução.

Pare de receber mensagens no endereço Gmail gerado

O Gmail fornece algoritmos para filtrar mensagens recebidas. Esses algoritmos funcionam no lado do serviço e nunca deixarão passar e‑mails indesejados, se você, é claro, configurá‑los corretamente. No momento, infelizmente, não podemos oferecer a funcionalidade de configurar esses filtros remotamente usando C#, mas planejamos adicionar essa possibilidade em breve. Por favor, acompanhe nossas atualizações!

Então, se você quiser filtrar mensagens que chegam ao Gmail gerado, primeiro precisa criar um modelo de busca para o filtro. Aqui está o código mais simples para obter o modelo:

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

Aqui, a variável generatedAddress contém o Gmail gerado que foi criado anteriormente neste artigo. O código acima criará um modelo de pesquisa e o imprimirá no terminal. Copie este modelo, pois você precisará dele ao criar o filtro.

Agora vamos descrever passo a passo como criar um filtro. Para começar, abra a interface web de e‑mail do Gmail, disponível <a href="https://mail.google.com/mail" rel="nofollow noopener" target="_blank">no link. Nesta interface, localize a barra de pesquisa:

etapa1

Nesta barra de pesquisa, você precisa inserir o modelo gerado anteriormente nesta instrução. Em seguida, clique no botão “Mostrar opções de pesquisa”, que está indicado na captura de tela abaixo:

etapa2

Na janela de opções de pesquisa que se abre, você não precisa inserir nenhum dado adicional, o modelo gerado já configurou a pesquisa. Basta clicar no botão "Criar filtro".

etapa3

Como resultado, a janela de configurações do filtro será aberta:

etapa4

Aqui você pode escolher o que o filtro deve fazer com os e‑mails recebidos no endereço Gmail gerado. Você pode arquivá‑los automaticamente, marcá‑los como lidos, excluí‑los, etc. Normalmente, a melhor opção é excluir os e‑mails. O volume da caixa de correio é limitado, não faz sentido gastá‑lo com armazenamento de lixo. Após selecionar as ações que lhe convêm, clique novamente no botão “Criar filtro”.

Pronto! O filtro está totalmente configurado, portanto nenhum spam incomodará você.

Gerenciar filtros de Gmail temporários

Às vezes, mensagens que você recebe de um site específico tornam‑se indesejadas. Elas acabam se tornando lixo na sua caixa de entrada e impedem que você encontre o que realmente é importante e interessante. Como resultado, você cria um filtro que bloqueia mensagens indesejadas desse site. Mas e se as mensagens do site não forem mais spam? Por exemplo, você deseja recuperar sua senha. Um site lhe envia um e‑mail com um link para um formulário de redefinição de senha, mas você não o recebe porque o filtro exclui o e‑mail imediatamente.

Felizmente, há uma solução elegante para essa situação. Você pode reconfigurar temporariamente o filtro para que não exclua esses e‑mails. Ou pode remover o filtro completamente. Vamos ver como isso pode ser feito.

Primeiro, abra a interface web do Gmail. Na página que se abre, clique no botão "Configurações":

etapa1

Na janela que se abre, clique no botão "Ver todas as configurações":

etapa2

A janela de configurações da conta Gmail será aberta. Ela contém várias abas para ajustar sua experiência de e‑mail. Estamos interessados na aba "Filtros e endereços bloqueados". Abra esta aba:

etapa3

Na aba que se abre, você verá uma lista de filtros para os Gmails gerados que você criou anteriormente, bem como possivelmente outros filtros:

etapa4

Com a descrição dos filtros, você pode determinar facilmente qual deles é responsável pelo endereço que deseja desbloquear. Ao clicar no botão "excluir", pode desativar permanentemente o filtro. Se clicar no botão “editar”, pode reconfigurar o filtro. Por exemplo, em vez de excluir e‑mails, pode marcá‑los. Dessa forma, você salva o filtro e facilita ativá‑lo no futuro. Ao editar o filtro, poderá receber os e‑mails necessários do site. Quando quiser bloquear novamente o Gmail gerado, abra o filtro novamente com o botão “editar” e reconfigure as ações.

É isso. Você agora é um especialista em endereços Gmail gerados. Pode criar um grande número de endereços e gerenciar habilidosamente o fluxo de e‑mails que chegam ao seu Gmail. Usando endereços adicionais, você poderá rastrear sites que transferem seus dados a terceiros sem sua permissão. Você será capaz de bloquear spam sem precisar re‑treinar seu sistema anti‑spam ou clicar nos botões de Cancelar inscrição várias vezes. Pode automatizar a remoção de spam usando Aspose.Email .NET ou manualmente através das configurações e da interface do Gmail.