Managed C++ - Retrieve Email from POP3 Server

The following example codes demonstrate how to retrieve email from POP3 server. This sample downloads emails from POP3 server and deletes the email after the email is retrieved.

Installation

Before you can use the following sample codes, you should download the EAGetMail Installer and install it on your machine at first.

Add Reference of EAGetMail to Managed C++ Project

To use EAGetMail POP3 & IMAP Component in your project, the first step is "Add reference of EAGetMail to your project". Please create/open your project with Visual Studio.NET, then choose menu->"Project"->"Add Reference"->".NET"->"Browse...", and choose the EAGetMail{version}.dll from your disk, click "Open"->"OK", the reference of EAGetMail will be added to your project, and you can start to use EAGetMail to retrieve email and parse email in your project.

add reference in managed c++

Because EAGetMail has separate builds for .Net Framework, please refer to the following table and choose the correct dll.

Separate builds of run-time assembly for .Net Framework 1.1, 2.0, 3.5, 4.0 and .Net Compact Framework 2.0, 3.5.

File .NET Framework Version
EAGetMail.dll Built with .NET Framework 1.1
It requires .NET Framework 1.1, 2.0, 3.5 or later version.
EAGetMail20.dll Built with .NET Framework 2.0
It requires .NET Framework 2.0, 3.5 or later version.
EAGetMail35.dll Built with .NET Framework 3.5
It requires .NET Framework 3.5 or later version.
EAGetMail40.dll Built with .NET Framework 4.0
It requires .NET Framework 4.0 or later version.
EAGetMailCF20.dll Built with .NET Compact Framework 2.0
It requires .NET Compact Framework 2.0, 3.5 or later version.
EAGetMailCF35.dll Built with .NET Compact Framework 3.5
It requires .NET Compact Framework 3.5 or later version.

C# | VB6 | Visual Basic.NET | Managed C++ | Visual C++ | Delphi

// The following example codes demonstrate retrieving email from POP3 server
// To get full sample projects, please download and install EAGetMail on your machine.
// To run it correctly, please change email server, user, password, folder, file name value to yours

#include "stdafx.h"

using namespace System;
using namespace System::IO;

// Add EAGetMail namespace
using namespace EAGetMail;

int main(array<System::String ^> ^args)
{
    // Create a folder named "inbox" under current directory
    // to save the email retrieved.
    String ^curpath = Directory::GetCurrentDirectory();
    String ^mailbox = String::Format("{0}\\inbox", curpath);

    // If the folder is not existed, create it.
    if (!Directory::Exists(mailbox))
    {
        Directory::CreateDirectory(mailbox);
    }

    MailServer ^oServer = gcnew MailServer("pop3.emailarchitect.net",
        "test@emailarchitect.net", "testpassword", ServerProtocol::Pop3 );
    MailClient ^oClient = gcnew MailClient("TryIt");

    // If your POP3 server requires SSL connection,
    // Please add the following codes:
    // oServer->SSLConnection = true;
    // oServer->Port = 995;

    try
    {
        oClient->Connect(oServer);
        array<MailInfo^> ^infos = oClient->GetMailInfos();
        for (int i = 0; i < infos->Length; i++)
        {
            MailInfo ^info = infos[i];
            Console::WriteLine("Index: {0}; Size: {1}; UIDL: {2}",
                info->Index, info->Size, info->UIDL);

            // Receive email from POP3 server
            Mail ^oMail = oClient->GetMail(info);

            Console::WriteLine("From: {0}", oMail->From->ToString());
            Console::WriteLine("Subject: {0}\r\n", oMail->Subject);

            // Generate an email file name based on date time.
            System::DateTime d = System::DateTime::Now;
            System::Globalization::CultureInfo ^cur = gcnew
                System::Globalization::CultureInfo("en-US");
            String ^sdate = d.ToString("yyyyMMddHHmmss", cur);
            String ^fileName = String::Format("{0}\\{1}{2}{3}.eml",
                mailbox, sdate, d.Millisecond.ToString("d3"), i);

            // Save email to local disk
            oMail->SaveAs(fileName, true);

            // Mark email as deleted from POP3 server.
            oClient->Delete(info);
        }

        // Quit and pure emails marked as deleted from POP3 server.
        oClient->Quit();
    }
    catch (Exception ^ep)
    {
        Console::WriteLine(ep->Message);
    }

    return 0;
}

Comments

If you have any comments or questions about above example codes, please click here to add your comments.

Free Email Support

Not enough? Please contact our technical support team.

Support@EmailArchitect.NET

Remarks
We usually reply emails in 24hours. The reason for getting no response is likely that your smtp server bounced our reply. In this case, please try to use another email address to contact us. Your Gmail, Hotmail or Yahoo email account is recommended.

Related Links

Send Email - C# - VB6 - Visual Basic - VC++ - Managed C++ - Delphi

Retrieve Email and Parse Email - C# - VB6 - Visual Basic - VC++ - Managed C++ - Delphi

Email Solution - Email Server - DomainKeys/DKIM - Disclaimer

2003 - 2011 © Copyright AdminSystem Software Limited. All rights reserved.   About us     Follow emailarchitect on Twitter