Aspose.Email  voor C++

Genereer een Gmail-adres met C ++

Maak je eigen tijdelijke Gmail-generator met wachtwoord met behulp van C ++

  Gratis proefversie downloaden
 

De Gmail-generator is een vrij gebruikelijke manier om e-mailabonnementen te beheren. In wezen is dit een analogie van een aanbieder van tijdelijke e-mailadressen, maar veel flexibeler, betrouwbaarder en veiliger.

De essentie van de generator is om extra Gmail-adressen aan te maken. Je kunt deze extra adressen gebruiken bij het registreren op verschillende websites. Deze websites sturen waarschijnlijk e-mails naar de adressen die u opgeeft. Aangezien de adressen extra zijn, gaan alle brieven naar uw hoofdadres. Maar tegelijkertijd wordt een extra adres dat door de toepassing is gegenereerd of handmatig is opgesteld, als ontvanger van de brief aangegeven.

Als u naar e-mails zoekt op het adres van de ontvanger, kunt u e-mails uitfilteren en er automatische acties op uitvoeren. Eenmalig of permanent. U kunt ook websites zien die uw adres delen met derden zonder uw toestemming.

Stel dat u bijvoorbeeld een extra adresgebruikersnaam+ for.spam.sender@gmail.com hebt gegenereerd. Je hebt het vervolgens doorgegeven aan de website spam-sender.com. Na enige tijd kunt u een e-mail ontvangen van een andere website, zoals other-sender.com, maar de ontvanger is gebruikersnaam+ for.spam.sender@gmail.com . In elke andere situatie zou je er niet achter kunnen komen waarom other-sender.com je promotionele e-mails stuurt, maar aangezien je een alternatief adres hebt gebruikt, is het gemakkelijk te zien dat spam-sender.com je adres met derden heeft gedeeld. En zo ja, dan heeft het geen zin om je af te melden voor de mailinglijsten van deze sites. Uw extra adres is waarschijnlijk al opgenomen in een openbare database voor het verzenden van ongewenste e-mails. Het zal veel eenvoudiger zijn als u gewoon alle post blokkeert die naar dit extra adres komt. Het zou nog beter zijn als u de automatische verplaatsing van dergelijke e-mails naar de spammap instelt. Deze configuratie zal het leven van deze sites erg moeilijk maken, omdat Gmail weet dat deze sites spam verzenden.

Laten we dus eens kijken hoe we zo’n generator kunnen implementeren met Aspose.Email voor C++.

Genereer tijdelijke Gmail en werk ermee

Om een extra Gmail-adres te genereren, hebben we eigenlijk geen Aspose.Email nodig, we hoeven op geen enkele manier met de Gmail-service te communiceren. Elk extra adres dat u handmatig of willekeurig verzint, met inachtneming van bepaalde regels, zal werken.

Dus wat zijn deze regels?

De punten zijn niet belangrijk. Dat wil zeggen dat u in uw adres vóór het ‘@’ -symbool zowel punten kunt verwijderen als nieuwe punten kunt toevoegen tussen willekeurige letterparen.

Voor het teken ‘@’ kunt u een ‘+’ teken toevoegen met een willekeurige reeks letters en cijfers erachter. Voorbeelden voor het adres „username@gmail.com”:

Al deze adressen kunnen al worden gebruikt bij registratie op websites. Maar op zichzelf hebben ze weinig zin, want alle berichten die naar deze adressen komen, komen terecht in je hoofdmailbox. Daarom is het de moeite waard om onze instructies voor het werken met deze adressen te gebruiken.

Eenvoudige tijdelijke Gmail-generator

Laten we dus een eenvoudige generator voor willekeurige subadressen maken. Om dit te doen, voegen we een willekeurige tekenreeks toe tussen de tekens ‘+’ en ‘@’. Allereerst moeten we een willekeurige reeks van een bepaalde lengte genereren, bestaande uit een bepaalde set tekens:

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

Nu moeten we het e-mailadres ophalen en de gegenereerde willekeurige tekenreeks eraan toevoegen. Om dit te doen, gebruiken we de MailAdress klasse uit de Aspose.Email voor C++-bibliotheek:

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

Klaar! Het ontvangen adres kan al worden gebruikt bij de registratie op websites. Websites zullen binnenkort beginnen met het verzenden van berichten naar dit adres. Laten we eens kijken wat we met deze berichten kunnen doen.

Gebruik de IMAP-client om te werken met berichten die zijn ontvangen op de gegenereerde Gmail

Om berichten te kunnen verwerken die op een ander adres zijn ontvangen, moeten we eerst verbinding maken met Gmail. IMAP is hiervoor zeer geschikt. Als u via dit protocol verbinding wilt maken, vergeet dan niet uw account zo in te stellen dat u via dit protocol verbinding kunt maken. U kunt ook de IMAP-verbinding vereenvoudigen met een speciaal toepassingswachtwoord. Zo kunt u voorkomen dat u OAuth-autorisatie hoeft uit te voeren als u deze niet in uw toepassing wilt implementeren. Ga gewoon naar de instellingen van je Google-account, open het gedeelte Beveiliging en voeg een app-wachtwoord toe. Vergeet niet het gegenereerde wachtwoord op te slaan in een beveiligde opslag en probeer het niet te verliezen, want dan heb je volledige toegang tot je e-mail!

Laten we dus gebruik maken van de ImapClient klasse en maak verbinding met je Gmail-account via het IMAP-protocol:

auto imapClient = System::MakeObject<Clients::Imap::ImapClient>(
    u"imap.gmail.com", 993, originalAddress->get_User(), u"password",
    SecurityOptions::SSLAuto);

Klaar, nu kunnen we bijvoorbeeld alle ontvangen berichten ophalen op het gegenereerde Gmail-adres:

imapClient->SelectFolder(u"INBOX");
auto queryBuilder = System::MakeObject<ImapQueryBuilder>();
queryBuilder->get_To()->Contains(generatedAddress->get_Address());

auto list = imapClient->ListMessages(queryBuilder->GetQuery());

En je zult absoluut al deze brieven ontvangen. Het maakt niet uit van welke site ze naar je toe kwamen. Ze kunnen afkomstig zijn van de site waaraan u het gegenereerde e-mailadres hebt gegeven. Had van een andere site kunnen komen. Vanaf elk adres. We screenen e-mails niet op afzender, maar op de ontvanger. En het is erg handig.

Ontvangen berichten markeren, verwijderen en verplaatsen naar de tijdelijke Gmail

Na ontvangst van de brievenlijst kunnen we er al verschillende bewerkingen op uitvoeren. Vooral in één keer. Je hoeft ze niet één voor één in je mailbox te vinden. Letterlijk worden een paar opdrachten en alle letters gemarkeerd als gelezen, verplaatst naar een andere map of gewoon verwijderd. Vergeet niet vooraf te controleren of de lijst met letters niet leeg is. Misschien heb je alles al verwijderd.

if (list->get_Count() > 0)
{
    //Mark as read
    imapClient->AddMessageFlags(list, ImapMessageFlags::get_IsRead());
    //Move
    imapClient->MoveMessages(list, u"DestinationFolder");
    //Remove
    imapClient->DeleteMessages(list, true);
}

Klaar, je inbox is ontdaan van spam.

Abonneer je op een tijdelijk Gmail-adres

Dus wat als u niet voortdurend e-mails wilt verwijderen of markeren door de bovenstaande code handmatig aan te roepen? Wat als u e-mails wilt verwijderen zodra ze zijn ontvangen? Hiervoor kun je je bijvoorbeeld abonneren op nieuwe berichten en een functie schrijven die berichten verwijdert zodra ze op je e-mailadres zijn aangekomen.

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

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

    //or delete them
    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");

Dit algoritme is enigszins vereenvoudigd omdat in geval van een fout het abonnement op nieuwe berichten wordt onderbroken. Je kunt het algoritme enorm verbeteren. Om dit te doen, moet u het algoritme verfijnen door de foutafhandeling te verbeteren. U kunt bijvoorbeeld de hervatting van de monitoring instellen in geval van een fout, hiervoor kunt u de functie IMAPClient.ResumeMonitoring gebruiken. Met deze functie wordt een verbinding met de IMAP-server hersteld en wordt de controle op nieuwe berichten hervat.

Om dit algoritme te kunnen gebruiken, moet je het programma helaas toch constant laten draaien. Zodra u de uitvoering van het programma onderbreekt, worden nieuwe letters niet meer automatisch verwijderd. Maar in dit geval is er een andere oplossing.

Geen berichten meer ontvangen op het gegenereerde Gmail-adres

Gmail biedt algoritmen voor het filteren van binnenkomende berichten. Deze algoritmen werken aan de servicekant en laten nooit ongewenste e-mail door, als u ze natuurlijk correct configureert. Op dit moment kunnen we u helaas niet de functionaliteit bieden om dergelijke filters op afstand te configureren met C++, maar we zijn van plan deze mogelijkheid in de nabije toekomst toe te voegen. Volg onze updates!

Dus als u berichten wilt filteren die in de gegenereerde Gmail komen, moet u eerst een zoeksjabloon voor het filter maken. Hier is de eenvoudigste code om de sjabloon te krijgen:

//Generate Gmail search pattern
auto searchPattern = System::String(u"to:(") + generatedAddress->get_Address() + u")";
Console::WriteLine(searchPattern);

Hier, de variabele generatedAddress bevat de gegenereerde Gmail die eerder in dit artikel is gemaakt. Met de bovenstaande code wordt een zoeksjabloon gemaakt en naar de terminal afgedrukt. Kopieer dit sjabloon want je hebt het nodig bij het aanmaken van het filter.

Laten we nu stap voor stap beschrijven hoe je een filter kunt maken. Open om te beginnen de e-mailwebinterface van Gmail, deze is beschikbaar op de link. Zoek in deze interface naar de zoekbalk:

step1

In deze zoekbalk moet u de sjabloon invoegen die eerder in deze instructie is gegenereerd. Vervolgens moet u op de knop „Zoekopties weergeven” klikken, die wordt aangegeven in de onderstaande schermafbeelding:

step2

In het venster met zoekopties dat wordt geopend, hoeft u geen aanvullende gegevens in te voeren; de gegenereerde sjabloon heeft de zoekopdracht al geconfigureerd. Klik gewoon op de knop „Filter aanmaken”.

step3

Als gevolg hiervan wordt het venster met filterinstellingen geopend:

step4

Hier kun je kiezen wat het filter moet doen met e-mails die op het gegenereerde Gmail-adres zijn ontvangen. Je kunt ze automatisch archiveren, als gelezen markeren, verwijderen, enzovoort. In de regel is de beste optie om e-mails te verwijderen. Het volume van de brievenbus is beperkt, het heeft geen zin om het te besteden aan afvalopslag. Nadat u de acties hebt geselecteerd die bij u passen, klikt u opnieuw op de knop „Filter maken”.

Klaar! Het filter is volledig geconfigureerd, zodat je geen last meer hebt van ongewenste e-mail.

Tijdelijke Gmail-filters beheren

Soms worden berichten die u van een bepaalde website ontvangt ongevraagd. Ze worden gewoon afval in je brievenbus en voorkomen dat je daarin vindt wat echt belangrijk en interessant voor je is. Als gevolg hiervan maak je een filter dat ongewenste berichten van deze website blokkeert. Maar wat als de berichten van de website niet langer spam zijn? U wilt bijvoorbeeld uw wachtwoord herstellen. Een website stuurt je een e-mail met een link naar een formulier voor het opnieuw instellen van je wachtwoord, maar je kunt deze niet ontvangen omdat het filter de e-mail onmiddellijk verwijdert.

Gelukkig is er een elegante uitweg uit deze situatie. U kunt het filter tijdelijk opnieuw configureren, zodat deze e-mails niet worden verwijderd. Of u kunt het filter helemaal verwijderen. Laten we eens kijken hoe dit kan worden gedaan.

Open eerst de webinterface van Gmail. Klik op de pagina die wordt geopend op de knop „Instellingen”:

step1

Klik in het venster dat wordt geopend op de knop „Alle instellingen bekijken”:

step2

Het venster met instellingen voor het Gmail-account wordt geopend. Het bevat veel tabbladen om je e-mailervaring te verfijnen. We zijn geïnteresseerd in het tabblad „Filters en geblokkeerde adressen”. Open dit tabblad:

step3

Op het tabblad dat wordt geopend, zie je een lijst met filters voor de gegenereerde Gmails die je eerder hebt gemaakt, evenals mogelijk andere filters:

step4

Aan de hand van de beschrijving van de filters kunt u eenvoudig bepalen welke verantwoordelijk is voor het adres dat u wilt deblokkeren. Door op de knop „verwijderen” te klikken, kunt u het filter permanent uitschakelen. Als u op de knop „bewerken” klikt, kunt u het filter opnieuw configureren. In plaats van e-mails te verwijderen, kunt u ze bijvoorbeeld markeren. Op deze manier kunt u het filter opslaan en het in de toekomst gemakkelijker maken om het aan te zetten. Door het filter te bewerken, kunt u de nodige e-mails van de website ontvangen. Zodra je de gegenereerde Gmail terug wilt blokkeren, open je het filter opnieuw met de knop „bewerken” en configureer je de acties opnieuw.

Dat is alles. Je bent nu een professional met gegenereerde Gmail-adressen. Je kunt een groot aantal adressen aanmaken en de stroom e-mails die naar je Gmail komen op meesterlijke wijze beheren. Met behulp van extra adressen kunt u sites volgen die uw gegevens zonder uw toestemming aan derden overdragen. Je kunt spam blokkeren zonder dat je je antispamsysteem opnieuw hoeft te trainen of zonder dat je meerdere keren op de knop Afmelden hoeft te drukken. U kunt het verwijderen van spam automatiseren met Aspose.Email .NET of handmatig via de instellingen en de Gmail-interface.