C++/CLI Example// 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;
}
Click here to read original topic - full version ... If you have any comments or questions about above example codes, please add your comments here.