Aspose.Email  a C ++ számára

Gmail-cím létrehozása C ++ használatával

Hozza létre saját ideiglenes Gmail generátorát jelszóval a C ++ használatával

  Letöltés ingyenes próbaverzió
 

A Gmail generátor meglehetősen gyakori módszer az e-mail előfizetések kezelésére. Lényegében ez az ideiglenes e-mail címek szolgáltatójának analógja, de sokkal rugalmasabb, megbízhatóbb és biztonságosabb.

A generátor lényege további Gmail-címek létrehozása. Ezeket a további címeket különböző webhelyeken történő regisztráció során használhatja. Ezek a webhelyek valószínűleg e-maileket küldenek az Ön által megadott címekre. Mivel a címek kiegészítőek, minden levél a fő címre kerül. Ugyanakkor az alkalmazás által generált vagy manuálisan elkészített további cím kerül feltüntetésre a levél címzettjeként.

Az e-mailek keresése a címzett címe alapján lehetővé teszi az e-mailek kiszűrését és automatikus műveletek végrehajtását rajtuk. Egyszeri vagy állandó. Azt is észreveheti, hogy a webhelyeket megosztják címét harmadik felekkel az Ön beleegyezése nélkül.

Tegyük fel például, hogy létrehozott egy további felhasználónév+ for.spam.sender@gmail.com címet. Ezután továbbítottad a spam-sender.com webhelyre. Egy idő elteltével e-mailt kaphat más webhelyről, például other-sender.com webhelyről, de a címzett a felhasználónév+ for.spam.sender@gmail.com lesz. Bármilyen más helyzetben nem tudná rájönni, miért küld Önnek az other-sender.com promóciós e-maileket, de mivel alternatív címet használtál, könnyen láthatja, hogy a spam-sender.com megosztotta a címét harmadik felekkel. És ha igen, akkor nincs értelme leiratkozni ezen webhelyek levelezőlistájáról. További címét valószínűleg már felvették valamilyen nyilvános bázisban a nem kívánt e-mailek küldéséhez. Sokkal könnyebb lesz, ha csak blokkolja az összes e-mailt, amely erre a kiegészítő címre érkezik. Még jobb lenne, ha beállítaná az ilyen e-mailek automatikus mozgását a spam mappába. Ez a beállítás nagyon megnehezíti ezeknek a webhelyeknek az életét, mert a Gmail tudni fogja, hogy ezek a webhelyek spamet küldenek.

Tehát kitaláljuk, hogyan lehet egy ilyen generátort megvalósítani az Aspose.Email for C ++ használatával.

Hozzon létre ideiglenes Gmail szolgáltatást, és működjön vele

További Gmail-cím létrehozásához valójában nincs szükségünk Aspose.E-mailre, semmilyen módon nem kell interakcióba lépnünk a Gmail szolgáltatással. Bármely további cím, amelyet manuálisan vagy véletlenszerűen állít fel, bizonyos szabályok betartásával, működni fog.

Tehát mik ezek a szabályok?

A pontok nem fontosak. Vagyis a címében, a ‘@’ szimbólum előtt mind eltávolíthat pontokat, mind újakat adhat hozzá bármilyen betűpár között.

A ‘@’ karakter előtt hozzáadhat egy ‘+’ karaktert, utána bármilyen betű- és számkészlettel. Példák az „username@gmail.com” címre:

Mindezek a címek már használhatók a weboldalakon történő regisztrációkor. De önmagukban nincs értelme, mert az ezekre a címekre érkező összes üzenet a fő postaládába kerül. Ezért érdemes használni az utasításainkat ezekkel a címekkel való munkavégzéshez.

Egyszerű ideiglenes Gmail generátor

Tehát hozzunk létre egy egyszerű véletlenszerű alcímgenerátort. Ehhez véletlenszerű karakterláncot adunk hozzá a ‘+’ és a ‘@’ karakterek között. Először is létre kell hoznunk egy bizonyos hosszúságú véletlenszerű karakterláncot, amely egy bizonyos karakterkészletből áll:

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

Most meg kell kapnunk az e-mail címet, és hozzá kell adnunk a generált véletlenszerű karakterláncot. Ehhez használjuk a MailAdress osztály az Aspose.Email for C ++ könyvtárból:

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

Kész! A kapott cím már felhasználható a weboldalakon történő regisztrációkor. A webhelyek hamarosan elkezdenek üzeneteket küldeni erre a címre. Lássuk, mit tehetünk ezekkel az üzenetekkel.

Az IMAP-kliens használata a generált Gmailhez kapott üzenetek kezeléséhez

Először is, ahhoz, hogy egy további címre kapott üzenetekkel működhessünk, csatlakoznunk kell a Gmailhez. Az IMAP kiválóan alkalmas erre. Ha ezzel a protokoll használatával szeretne csatlakozni, ne felejtse el beállítani a fiókját úgy, hogy engedélyezze a csatlakozást a protokoll használatával. Ezenkívül egyszerűsítheti az IMAP-kapcsolatot egy dedikált alkalmazásjelszóval. Ez lehetővé teszi, hogy elkerülje az OAuth engedélyezés végrehajtásának szükségességét, ha nem akarja megvalósítani az alkalmazásában. Csak lépjen a Google-fiók beállításaira, nyissa meg a Biztonság részt, és adjon hozzá egy alkalmazásjelszót. Ne felejtse el menteni a generált jelszót biztonságos tárhelybe, és próbálja meg nem veszíteni, mert ez teljes hozzáférést biztosít a levelekhez!

Szóval, használjuk a ImapClient osztályozzon és csatlakozzon Gmail-fiókjához az IMAP protokoll használatával:

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

Kész, most például megkaphatjuk az összes üzenetet, amelyet a generált Gmail címre kaphatunk:

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

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

És abszolút minden ilyen levelet fog kapni. Nem számít, milyen webhelyről jöttek hozzád. Arról a webhelyről származhattak, amelyre megadta a generált e-mail címet. Lehet, hogy egy másik oldalról jöhetett volna. Bármelyik címről. Az e-maileket nem a feladó, hanem a címzett alapján vizsgáljuk meg. És ez nagyon kényelmes.

A kapott üzenetek megjelölése, eltávolítása és áthelyezése az ideiglenes Gmailbe

Miután megkaptuk a levelek listáját, már különféle műveleteket végezhetünk rajta. Mindenekelőtt egyszerre. Nem kell egyenként megtalálnia őket a postaládájában. Szó szerint néhány parancsot és minden betűt olvastként jelölnek meg, áthelyezik egy másik mappába vagy egyszerűen törölnek. Csak ne felejtse el előzetesen ellenőrizni, hogy a betűk listája nem üres-e. Lehet, hogy már mindent töröltél.

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

Kész, a beérkező levelek eltávolításra kerültek a spamtől.

Feliratkozás az ideiglenes Gmail címre

Tehát mi van, ha nem akarja folyamatosan törölni vagy megjelölni az e-maileket a fenti kód manuális hívásával? Mi van, ha törölni szeretné az e-maileket, amint megkapták őket? Ehhez például feliratkozhat új üzenetekre, és olyan funkciót írhat, amely törli az üzeneteket, amint megérkeznek az e-mail címére.

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

Ez az algoritmus kissé leegyszerűsödik, mert hiba esetén az új üzenetek előfizetése megszakad. Nagymértékben javíthatja az algoritmust. Ehhez finomítania kell az algoritmust a hibakezelés javításával. Például beállíthatja a figyelés újraindítását hiba esetén, ehhez használhatja az IMAPClient.ResumeMonitoring funkciót. Ez a funkció visszaállítja a kapcsolatot az IMAP-kiszolgálóval, és folytatja az új üzenetek felügyeletét.

Sajnos ennek az algoritmusnak a használatához amúgy is folyamatosan futtatnia kell a programot. Amint megszakítja a program végrehajtását, az új betűk már nem törlődnek automatikusan. De ebben az esetben van egy másik megoldás.

Állítsa le az üzenetek fogadását a generált Gmail-címre

A Gmail algoritmusokat biztosít a bejövő üzenetek szűréséhez. Ezek az algoritmusok a szolgáltatási oldalon működnek, és soha nem engedik át a nem kívánt leveleket, ha természetesen helyesen konfigurálja őket. Jelenleg sajnos nem tudjuk biztosítani Önnek a funkciót az ilyen szűrők távoli konfigurálásához a C++ használatával, de tervezzük, hogy a közeljövőben ilyen lehetőséget adunk hozzá. Kérjük, kövesse frissítéseinket!

Tehát, ha szűrni szeretné a generált Gmailbe érkező üzeneteket, először létre kell hoznia egy keresési sablont a szűrőhöz. Itt van a legegyszerűbb kód a sablon megszerzéséhez:

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

Itt a változó generatedAddress tartalmazza a generált Gmail-t, amelyet ebben a cikkben korábban hoztak létre. A fenti kód létrehoz egy keresési sablont, és kinyomtatja a terminálra. Másolja ezt a sablont, mert szüksége lesz rá a szűrő létrehozásakor.

Most írjuk le lépésről lépésre, hogyan hozhat létre szűrőt. A kezdéshez nyissa meg a Gmail e-mail webes felületét, amely elérhető a következő címen a link. Ebben a felületen keresse meg a keresősávot:

step1

Ebben a keresősávba be kell illesztenie az ebben az utasításban korábban létrehozott sablont. Ezután kattintson a „Keresési lehetőségek megjelenítése” gombra, amely az alábbi képernyőképen látható:

step2

A megnyíló keresési lehetőségek ablakban nem kell további adatokat megadnia, a létrehozott sablon már konfigurálta a keresést. Csak kattintson a „Szűrő létrehozása” gombra.

step3

Ennek eredményeként megnyílik a szűrőbeállítások ablak:

step4

Itt kiválaszthatja, hogy a szűrőnek mit kell tennie a generált Gmail címre kapott e-mailekkel. Automatikusan archiválhatja őket, megjelölheti olvasottként, törölheti stb. Általában a legjobb megoldás az e-mailek törlése. A postaláda mennyisége korlátozott, nincs értelme szeméttárolásra költeni. Miután kiválasztotta az Önnek megfelelő műveleteket, kattintson ismét a „Szűrő létrehozása” gombra.

Kész! A szűrő teljesen konfigurálva van, így több levélszemét sem zavarja Önt.

Az ideiglenes Gmail szűrők kezelése

Néha egy adott webhelyről kapott üzenetek kéretlenné válnak. Csak szemétré válnak a postaládádban, és megakadályozzák, hogy megtalálja benne azt, ami igazán fontos és érdekes az Ön számára. Ennek eredményeként létrehoz egy szűrőt, amely blokkolja a nem kívánt üzeneteket erről a webhelyről. De mi van, ha a webhelyről érkező üzenetek már nem spamek? Például vissza szeretné állítani a jelszavát. Egy webhely e-mailt küld Önnek egy jelszó-visszaállítási űrlapra mutató hivatkozással, de nem kaphatja meg, mert a szűrő azonnal törli az e-mailt.

Szerencsére van egy elegáns kiút ebből a helyzetből. Ideiglenesen újrakonfigurálhatja a szűrőt úgy, hogy ne törölje ezeket az e-maileket. Vagy teljesen eltávolíthatja a szűrőt. Lássuk, hogyan lehet ezt megtenni.

Először nyissa meg a Gmail webes felületét. A megnyíló oldalon kattintson a „Beállítások” gombra:

step1

A megnyíló ablakban kattintson az „Összes beállítás megtekintése” gombra:

step2

Megnyílik a Gmail-fiók beállításai ablak. Számos fület tartalmaz az e-mail élmény finomhangolásához. Érdekel bennünket a „Szűrők és blokkolt címek” lap. Nyissa meg ezt a fület:

step3

A megnyíló lapon megjelenik a korábban létrehozott Gmail-ek szűrőinek listája, valamint esetleg más szűrők:

step4

A szűrők leírása alapján könnyen meghatározhatja, hogy melyik felelős a feloldani kívánt címért. A „törlés” gombra kattintva véglegesen letilthatja a szűrőt. Ha rákattint a „szerkesztés” gombra, újrakonfigurálhatja a szűrőt. Például az e-mailek törlése helyett megjelölheti őket. Így mentheti a szűrőt, és megkönnyítheti annak bekapcsolását a jövőben. A szűrő szerkesztésével megkaphatja a szükséges e-maileket a webhelyről. Amint vissza szeretné blokkolni a generált Gmail-t, nyissa meg újra a szűrőt a „szerkesztés” gombbal, és konfigurálja újra a műveleteket.

Ennyi az egész. Most profi vagy a generált Gmail-címekkel. Hatalmas számú címet hozhat létre, és mesterségesen kezelheti a Gmailbe érkező e-mailek áramlását. További címek használatával nyomon követheti azokat a webhelyeket, amelyek az Ön beleegyezése nélkül továbbítják adatait harmadik feleknek. Letilthatja a spamet anélkül, hogy át kellene képznie a spamellenes rendszerét, vagy anélkül, hogy többször kellene megnyomnia a Leiratkozás gombot. Automatizálhatja a spam eltávolítását az Aspose.Email .NET használatával vagy manuálisan a beállításokon és a Gmail felületen keresztül.