Aspose.Email  cho C++

Tạo địa chỉ Gmail bằng C ++

Tạo trình tạo Gmail tạm thời của riêng bạn với mật khẩu bằng C ++

  Tải về Miễn Phí Thử Nghiệm
 

Trình tạo Gmail là một cách khá phổ biến để quản lý đăng ký email. Về bản chất, đây là một chất tương tự của nhà cung cấp địa chỉ email tạm thời, nhưng linh hoạt, đáng tin cậy và an toàn hơn nhiều.

Bản chất của trình tạo là tạo thêm địa chỉ Gmail. Bạn có thể sử dụng các địa chỉ bổ sung này khi đăng ký trên các trang web khác nhau. Các trang web này rất có thể sẽ gửi email đến địa chỉ bạn cung cấp. Vì các địa chỉ là bổ sung, tất cả các chữ cái sẽ đi đến địa chỉ chính của bạn. Nhưng đồng thời, một địa chỉ bổ sung được tạo bởi ứng dụng hoặc được chuẩn bị thủ công sẽ được chỉ định là người nhận thư.

Tìm kiếm email theo địa chỉ của người nhận sẽ cho phép bạn lọc email và thực hiện các hành động tự động trên chúng. Một lần hoặc vĩnh viễn. Bạn cũng có thể bắt các trang web chia sẻ địa chỉ của bạn với bên thứ ba mà không có sự đồng ý của bạn.

Ví dụ: giả sử bạn đã tạo thêm một địa chỉ username+ for.spam.sender@gmail.com . Sau đó, bạn chuyển nó đến trang web spam-sender.com. Sau một thời gian, bạn có thể nhận được email từ một số trang web khác, chẳng hạn như other-sender.com, nhưng người nhận sẽ là username+ for.spam.sender@gmail.com . Trong bất kỳ tình huống nào khác, bạn sẽ không thể tìm ra lý do tại sao other-sender.com gửi email quảng cáo cho bạn, nhưng vì bạn đã sử dụng một địa chỉ thay thế, thật dễ dàng để thấy rằng spam-sender.com đã chia sẻ địa chỉ của bạn với bên thứ ba. Và nếu vậy, không có ý nghĩa gì khi hủy đăng ký khỏi danh sách gửi thư của các trang web này. Địa chỉ bổ sung của bạn có thể đã được đưa vào một số cơ sở công cộng để gửi email không mong muốn. Sẽ dễ dàng hơn nhiều nếu bạn chỉ chặn tất cả thư đến địa chỉ bổ sung này. Sẽ tốt hơn nữa nếu bạn thiết lập di chuyển tự động các email như vậy vào thư mục thư rác. Thiết lập này sẽ làm cho cuộc sống rất khó khăn cho các trang web này vì Gmail sẽ biết rằng các trang web này đang gửi thư rác.

Vì vậy, hãy tìm hiểu làm thế nào để triển khai một trình tạo như vậy bằng cách sử dụng Aspose.Email cho C ++.

Tạo Gmail tạm thời và vận hành với nó

Để tạo địa chỉ Gmail bổ sung, chúng tôi thực sự không cần Aspose.Email, chúng tôi không cần tương tác với dịch vụ Gmail theo bất kỳ cách nào. Bất kỳ địa chỉ bổ sung nào mà bạn tạo theo cách thủ công hoặc ngẫu nhiên, theo các quy tắc nhất định, sẽ hoạt động.

Vậy những quy tắc này là gì?

Các điểm không quan trọng. Đó là, trong địa chỉ của bạn, trước biểu tượng ‘@’, bạn có thể xóa dấu chấm và thêm dấu chấm mới giữa bất kỳ cặp chữ cái nào.

Trước ký tự ‘@’, bạn có thể thêm ký tự ‘+’ với bất kỳ bộ chữ cái và số nào sau nó. Ví dụ cho địa chỉ “username@gmail.com”:

Tất cả các địa chỉ này đã có thể được sử dụng khi đăng ký trên các trang web. Nhưng bản thân chúng, chúng không có ý nghĩa gì, bởi vì tất cả các tin nhắn đến các địa chỉ này sẽ kết thúc trong hộp thư chính của bạn. Do đó, đáng để sử dụng hướng dẫn của chúng tôi để làm việc với các địa chỉ này.

Trình tạo Gmail tạm thời đơn giản

Vì vậy, hãy tạo một trình tạo địa chỉ phụ ngẫu nhiên đơn giản. Để làm điều này, chúng tôi sẽ thêm một chuỗi ngẫu nhiên giữa các ký tự ‘+’ và ‘@ ‘. Trước hết, chúng ta cần tạo một chuỗi ngẫu nhiên có độ dài nhất định, bao gồm một tập hợp các ký tự nhất định:

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

Bây giờ chúng ta cần lấy địa chỉ email và thêm chuỗi ngẫu nhiên được tạo vào nó. Để làm điều này, chúng tôi sẽ sử dụng MailAdress lớp từ thư viện Aspose.Email cho 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);

Xong rồi! Địa chỉ nhận được đã có thể được sử dụng khi đăng ký trên các trang web. Các trang web sẽ sớm bắt đầu gửi tin nhắn đến địa chỉ này. Hãy xem chúng ta có thể làm gì với những thông điệp này.

Sử dụng ứng dụng khách IMAP để hoạt động với các thư nhận được đến Gmail đã tạo

Đầu tiên, để hoạt động trên các tin nhắn nhận được tại một địa chỉ bổ sung, chúng tôi cần kết nối với Gmail. IMAP rất phù hợp cho việc này. Để kết nối bằng giao thức này, đừng quên đặt tài khoản của bạn để cho phép kết nối với nó bằng giao thức này. Ngoài ra, bạn có thể đơn giản hóa kết nối IMAP bằng mật khẩu ứng dụng chuyên dụng. Điều này sẽ cho phép bạn tránh sự cần thiết phải thực hiện ủy quyền OAuth nếu bạn không muốn triển khai nó trong ứng dụng của mình. Chỉ cần truy cập cài đặt tài khoản Google của bạn, mở phần Bảo mật và thêm mật khẩu ứng dụng. Đừng quên lưu mật khẩu đã tạo trong bộ nhớ an toàn và cố gắng không làm mất nó, vì nó cung cấp cho bạn toàn quyền truy cập vào thư của mình!

Vì vậy, hãy sử dụng ImapClient phân loại và kết nối với tài khoản Gmail của bạn bằng giao thức IMAP:

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

Xong, bây giờ chúng ta có thể, ví dụ, nhận tất cả các tin nhắn nhận được tại địa chỉ Gmail đã tạo:

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

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

Và bạn sẽ nhận được hoàn toàn tất cả các bức thư như vậy. Không quan trọng họ đến với bạn từ trang web nào. Chúng có thể đến từ trang web mà bạn đã cung cấp địa chỉ email đã tạo. Có thể đến từ một trang web khác. Từ bất kỳ địa chỉ nào. Chúng tôi sàng lọc email không phải bởi người gửi, mà bởi người nhận. Và nó rất thuận tiện.

Đánh dấu, xóa, di chuyển thư nhận được vào Gmail tạm thời

Nhận được danh sách các chữ cái, chúng ta đã có thể thực hiện các thao tác khác nhau trên đó. Trên tất cả cùng một lúc. Bạn không cần phải tìm từng cái một trong hộp thư của mình. Theo nghĩa đen, một vài lệnh và tất cả các chữ cái được đánh dấu là đã đọc, di chuyển đến một thư mục khác hoặc đơn giản là xóa. Chỉ cần đừng quên kiểm tra trước rằng danh sách các chữ cái không trống. Bạn có thể đã xóa tất cả mọi thứ.

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

Xong, hộp thư đến của bạn đã được xóa thư rác.

Đăng ký địa chỉ Gmail tạm thời

Vậy điều gì sẽ xảy ra nếu bạn không muốn liên tục xóa hoặc gắn cờ email bằng cách gọi thủ công mã ở trên? Điều gì sẽ xảy ra nếu bạn muốn xóa email ngay khi chúng được nhận? Để thực hiện việc này, ví dụ: bạn có thể đăng ký tin nhắn mới và viết một chức năng xóa tin nhắn ngay khi chúng đến địa chỉ email của bạn.

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

Thuật toán này được đơn giản hóa một chút vì, trong trường hợp có lỗi, việc đăng ký tin nhắn mới sẽ bị gián đoạn. Bạn có thể cải thiện đáng kể thuật toán. Để làm điều này, bạn cần tinh chỉnh thuật toán bằng cách cải thiện xử lý lỗi. Ví dụ: bạn có thể thiết lập việc tiếp tục giám sát trong trường hợp xảy ra lỗi, vì điều này, bạn có thể sử dụng chức năng IMAPClient.ResumeMonitoring. Chức năng này sẽ thiết lập lại kết nối với máy chủ IMAP và tiếp tục giám sát các tin nhắn mới.

Thật không may, để sử dụng thuật toán này, bạn phải giữ cho chương trình luôn chạy liên tục. Ngay sau khi bạn làm gián đoạn việc thực hiện chương trình, các chữ cái mới sẽ không còn tự động bị xóa. Nhưng trong trường hợp này, có một giải pháp khác.

Ngừng nhận thư đến địa chỉ Gmail đã tạo

Gmail cung cấp các thuật toán để lọc tin nhắn đến. Các thuật toán này hoạt động ở phía dịch vụ và sẽ không bao giờ cho qua thư không mong muốn, nếu bạn, tất nhiên, định cấu hình chúng một cách chính xác. Hiện tại, thật không may, chúng tôi không thể cung cấp cho bạn chức năng để định cấu hình từ xa các bộ lọc như vậy bằng C ++, nhưng chúng tôi dự định thêm cơ hội như vậy trong tương lai gần. Vui lòng theo dõi cập nhật của chúng tôi!

Vì vậy, nếu bạn muốn lọc các thư đến vào Gmail đã tạo, trước tiên bạn cần tạo mẫu tìm kiếm cho bộ lọc. Đây là mã đơn giản nhất để lấy mẫu:

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

Ở đây, biến generatedAddress chứa Gmail đã tạo đã được tạo trước đó trong bài viết này. Mã trên sẽ tạo một mẫu tìm kiếm và in nó vào thiết bị đầu cuối. Sao chép mẫu này vì bạn sẽ cần nó khi tạo bộ lọc.

Bây giờ hãy mô tả từng bước cách bạn có thể tạo bộ lọc. Để bắt đầu, hãy mở giao diện web email Gmail, nó có sẵn tại liên kết. Trong giao diện này, tìm thanh tìm kiếm:

step1

Trong thanh tìm kiếm này, bạn cần chèn mẫu được tạo trước đó trong hướng dẫn này. Tiếp theo, bạn cần nhấp vào nút “Hiển thị tùy chọn tìm kiếm”, được chỉ định trong ảnh chụp màn hình bên dưới:

step2

Trong cửa sổ tùy chọn tìm kiếm mở ra, bạn không cần nhập bất kỳ dữ liệu bổ sung nào, mẫu được tạo đã định cấu hình tìm kiếm. Chỉ cần nhấp vào nút “Tạo bộ lọc”.

step3

Do đó, cửa sổ cài đặt bộ lọc sẽ mở ra:

step4

Tại đây, bạn có thể chọn bộ lọc sẽ làm gì với các email nhận được tại địa chỉ Gmail đã tạo. Bạn có thể tự động lưu trữ chúng, đánh dấu chúng là đã đọc, xóa chúng, v.v. Theo quy định, tùy chọn tốt nhất là xóa email. Khối lượng của hộp thư bị hạn chế, không có ý nghĩa gì khi dành nó cho việc lưu trữ rác. Sau khi bạn chọn các hành động phù hợp với bạn, nhấp vào nút “Tạo bộ lọc” một lần nữa.

Xong rồi! Bộ lọc được cấu hình đầy đủ, vì vậy không còn thư rác nào làm phiền bạn.

Quản lý bộ lọc Gmail tạm thời

Đôi khi các tin nhắn bạn nhận được từ một trang web cụ thể trở nên không được yêu cầu. Chúng chỉ trở thành rác trong hộp thư của bạn và ngăn bạn tìm thấy trong đó những gì thực sự quan trọng và thú vị với bạn. Kết quả là, bạn tạo một bộ lọc chặn các tin nhắn không mong muốn từ trang web này. Nhưng điều gì sẽ xảy ra nếu các tin nhắn từ trang web không còn là spam? Ví dụ: bạn muốn khôi phục mật khẩu của mình. Một trang web gửi cho bạn một email có liên kết đến biểu mẫu đặt lại mật khẩu, nhưng bạn không thể nhận được nó vì bộ lọc ngay lập tức xóa email.

May mắn thay, có một cách thanh lịch để thoát khỏi tình huống này. Bạn có thể tạm thời cấu hình lại bộ lọc để nó không xóa các email này. Hoặc bạn có thể loại bỏ bộ lọc hoàn toàn. Hãy xem làm thế nào điều này có thể được thực hiện.

Đầu tiên, mở giao diện web Gmail. Trên trang mở ra, nhấp vào nút “Cài đặt”:

step1

Trong cửa sổ mở ra, nhấp vào nút “Xem tất cả cài đặt”:

step2

Cửa sổ cài đặt tài khoản Gmail sẽ mở ra. Nó chứa nhiều tab để tinh chỉnh trải nghiệm email của bạn. Chúng tôi quan tâm đến tab “Bộ lọc và địa chỉ bị chặn”. Mở tab này:

step3

Trong tab mở ra, bạn sẽ thấy một danh sách các bộ lọc cho Gmail được tạo mà bạn đã tạo trước đó, cũng như các bộ lọc khác:

step4

Bằng mô tả của các bộ lọc, bạn có thể dễ dàng xác định bộ lọc nào chịu trách nhiệm cho địa chỉ bạn muốn bỏ chặn. Bằng cách nhấp vào nút “xóa”, bạn có thể vô hiệu hóa bộ lọc vĩnh viễn. Nếu bạn nhấp vào nút “chỉnh sửa”, bạn có thể cấu hình lại bộ lọc. Ví dụ: thay vì xóa email, bạn có thể đánh dấu chúng. Bằng cách này, bạn có thể lưu bộ lọc và giúp bật bộ lọc dễ dàng hơn trong tương lai. Bằng cách chỉnh sửa bộ lọc, bạn sẽ có thể nhận được các email cần thiết từ trang web. Ngay khi bạn muốn chặn Gmail đã tạo trở lại, hãy mở lại bộ lọc bằng nút “chỉnh sửa” và cấu hình lại các hành động.

Đó là tất cả. Bây giờ bạn là một chuyên gia với các địa chỉ Gmail được tạo. Bạn có thể tạo một số lượng lớn địa chỉ và quản lý thành thạo luồng email đến Gmail của bạn. Sử dụng các địa chỉ bổ sung, bạn sẽ có thể theo dõi các trang web chuyển dữ liệu của bạn cho bên thứ ba mà không có sự đồng ý của bạn. Bạn sẽ có thể chặn thư rác mà không cần phải đào tạo lại hệ thống chống thư rác của mình hoặc không cần phải nhấn nút Hủy đăng ký nhiều lần. Bạn có thể tự động loại bỏ thư rác bằng cách sử dụng Aspose.Email .NET hoặc thủ công thông qua cài đặt và giao diện Gmail.