Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Read IMAP Email This is a sample C++ program that reads email from an IMAP server.
#define _CRTDBG_MAP_ALLOC
#include <windows.h>
#include <stdio.h>
#include <crtdbg.h>
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkSettings.h"
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkCert.h"
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkEmail.h"
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkEmailBundle.h"
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkImap.h"
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkMessageSet.h"
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkString.h"
#include "C:/ck2000/components/ChilkatLib/Package/Include/CkByteData.h"
// The Chilkat IMAP library is also available as an ActiveX component
// or .NET class with the identical set of methods and properties.
// Read IMAP email and print the "From" and "Subject" of each email in the Inbox.
void ImapExample(void)
{
CkImap imap;
if (!imap.UnlockComponent("UnlockCode"))
{
printf("Failed to unlock component\n");
imap.SaveLastError("errorLog.xml");
return;
}
// Connect to the IMAP server.
if (!imap.Connect("localhost"))
{
printf("Failed to connect to IMAP server\n");
imap.SaveLastError("errorLog.xml");
return;
}
// Login to the IMAP server.
if (!imap.Login("chilkat", "chilkat"))
{
printf("Failed to login to IMAP server\n");
imap.SaveLastError("errorLog.xml");
return;
}
imap.SelectMailbox("Inbox");
// Get a message set containing all the message IDs
// in the selected mailbox.
CkMessageSet *msgSet = 0;
msgSet = imap.Search("ALL",true);
// Fetch all the mail into a bundle object.
CkEmailBundle *bundle = 0;
bundle = imap.FetchBundle(*msgSet);
if (!bundle)
{
printf("Failed to fetch bundle\n");
imap.SaveLastError("errorLog.xml");
return;
}
delete msgSet;
// Loop over the bundle and display the From and Subject.
CkEmail *email = 0;
int i;
CkString strFrom;
CkString strSubject;
printf("Number of messages = %d\n",bundle->get_MessageCount());
for (i=0; i<bundle->get_MessageCount(); i++)
{
email = bundle->GetEmail(i);
if (!email) continue;
email->get_From(strFrom);
email->get_Subject(strSubject);
printf("%s: %s\n",strFrom.getString(),strSubject.getString());
delete email;
}
delete bundle;
// Disconnect from the IMAP server.
imap.Disconnect();
return;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
freopen("stdout.txt","w",stdout);
ImapExample();
CkSettings::cleanupMemory();
_CrtDumpMemoryLeaks();
return 0;
}
|
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.