C
C
POP3 FetchAll Example
See more POP3 Examples
Demonstrates downloading email from a POP3 server via FetchAll (using pop3.live.com). Make sure to enable POP3 access for your HotMail account (or any other type of account if POP3 access is not enabled by default).Chilkat C Downloads
#include <C_CkMailMan.h>
#include <C_CkEmailBundle.h>
#include <C_CkEmail.h>
void ChilkatSample(void)
{
BOOL success;
HCkMailMan mailman;
HCkEmailBundle bundle;
BOOL keepOnServer;
BOOL headersOnly;
int numBodyLines;
int numEmails;
int i;
HCkEmail email;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mailman = CkMailMan_Create();
// Connection settings for pop3.live.com (or pop-mail.outlook.com, both should work)
CkMailMan_putMailHost(mailman,"pop3.live.com");
CkMailMan_putPopUsername(mailman,"my_account@live.com");
CkMailMan_putPopPassword(mailman,"my_live.com_password");
CkMailMan_putMailPort(mailman,995);
CkMailMan_putPopSsl(mailman,TRUE);
// WARNING: FetchAll is only a reasonable choice if it is already know that not
// to many emails are present on the server. FetchAll is a poor choice if a huge number
// of emails exist. It is better to download individually or in batches.
bundle = CkEmailBundle_Create();
keepOnServer = TRUE;
headersOnly = FALSE;
// Irrelevent because we are not downloading headers-only
numBodyLines = 0;
success = CkMailMan_FetchAll(mailman,keepOnServer,headersOnly,numBodyLines,bundle);
if (success == FALSE) {
printf("%s\n",CkMailMan_lastErrorText(mailman));
CkMailMan_Dispose(mailman);
CkEmailBundle_Dispose(bundle);
return;
}
// Iterate over the bundle and examine each email..
numEmails = CkEmailBundle_getMessageCount(bundle);
i = 0;
email = CkEmail_Create();
while (i < numEmails) {
CkEmailBundle_EmailAt(bundle,i,email);
printf("From: %s\n",CkEmail_ck_from(email));
printf("Subject: %s\n",CkEmail_subject(email));
printf("--\n");
i = i + 1;
}
// Examine the POP3 session log:
printf("%s\n",CkMailMan_pop3SessionLog(mailman));
// End the POP3 session and close the connection to the POP3 server.
CkMailMan_Pop3EndSession(mailman);
printf("-- Finished.\n");
// The output of this program:
// **** Connected to pop3.live.com:995
// < +OK DUB006-POP62 POP3 server ready
// > USER chilkat@live.com
// < +OK password required
// > PASS ****
// < +OK User successfully authenticated. [AuthResult=0 Proxy=CY1PR17MB0630.namprd17.prod.outlook.com:1995:SSL]
// > STAT
// < +OK 23 914026
// > LIST
// < +OK 23 914026
// 1 50828
// 2 49862
// 3 142837
// 4 61466
// 5 40805
// 6 39992
// 7 61358
// 8 18431
// 9 122577
// 10 20322
// 11 24274
// 12 24367
// 13 22860
// 14 10136
// 15 35379
// 16 30916
// 17 19800
// 18 14941
// 19 16883
// 20 15151
// 21 20198
// 22 28108
// 23 42535
// .
// > UIDL
// < +OK
// < +OK
// 1 2291
// 2 2591
// 3 3062
// 4 3063
// 5 3064
// 6 3065
// 7 3066
// 8 3067
// 9 3068
// 10 3069
// 11 3070
// 12 3071
// 13 3072
// 14 3073
// 15 3074
// 16 3075
// 17 3076
// 18 3077
// 19 3078
// 20 3079
// 21 3080
// 22 3081
// 23 3405
// .
// > RETR 1
// < +OK
// > RETR 2
// < +OK
// > RETR 3
// < +OK
// > RETR 4
// < +OK
// > RETR 5
// < +OK
// > RETR 6
// < +OK
// > RETR 7
// < +OK
// > RETR 8
// < +OK
// > RETR 9
// < +OK
// > RETR 10
// < +OK
// > RETR 11
// < +OK
// > RETR 12
// < +OK
// > RETR 13
// < +OK
// > RETR 14
// < +OK
// > RETR 15
// < +OK
// > RETR 16
// < +OK
// > RETR 17
// < +OK
// > RETR 18
// < +OK
// > RETR 19
// < +OK
// > RETR 20
// < +OK
// > RETR 21
// < +OK
// > RETR 22
// < +OK
// > RETR 23
// < +OK
//
// -- Finished.
//
CkMailMan_Dispose(mailman);
CkEmailBundle_Dispose(bundle);
CkEmail_Dispose(email);
}