S_MAIL_PARAM sMailParam;
S_MAILFROM sMailFrom;
INT a,iErr,iCount;
INT hMemo;
CHAR * pszMessage;
_(sMailParam);
strcpy(sMailParam.szPOP3Server,"pop3.ciccio.com");
strcpy(sMailParam.szPOP3User,"utente@ciccio.com");
strcpy(sMailParam.szPOP3Password,"cicciobello2015");
iErr=ehMail(WS_OPEN,0,sMailParam);
if (iErr==13) ehExit("Password errata");
else if (!iErr) {
iCount=ehMail(WS_COUNT,0,NULL);
printf("Mail presenti: %d " CRLF,iCount);
// -----------------------------------------------
// Loop discendente per prendere la più recente
// -----------------------------------------------
for (a=iCount-1;a>=0;a--)
{
printf("msg %d/%d: ",a+1,iCount);
// ---------------------------------------
// a. Richiedo il messaggio al server
// ---------------------------------------
hMemo=ehMail(WS_REALGET,a,NULL);
if (hMemo<0) {
printf("ehMail(WS_REALGET:%d)",hMemo);
continue;
}
pszMessage=memoLock(hMemo); // Messaggio completo originale
// ---------------------------------------
// b. Processo il messaggio (estraggo oggetto,testo,allegati)
// ---------------------------------------
_(sMailFrom);
sMailFrom.lpMessProcess=pszMessage;
ehMail(WS_PROCESS,0,&sMailFrom); // Processa l'email per decodificarla
printf("%s" CRLF,sMailFrom.pSubjectUtf8?sMailFrom.pSubjectUtf8:"(nessun oggetto)");
// ---------------------------------------
// c. Libero le risorse impegnate
// ---------------------------------------
ehMailFromFree(&sMailFrom);
memoFree(hMemo,"mail");
// ---------------------------------------
// d. Rimuovo il messaggio dal server
// ---------------------------------------
if (bRemoveEverEmail) {
hMemo=ehMail(WS_DEL,a,NULL);
}
}
}
S_MAILFROM
typedef struct {
INT iSize;
CHAR * lpMessProcess; // Puntatore al messaggio originale da processare
INT iType; // 0=US-ASCII , 1=MIME MultiPart
CHAR * pDate; // Data del messaggio
CHAR * pSubjectOriginal; // Soggetto
WCHAR * pwSubject;
CHAR * pSubjectUtf8;
CHAR * pFromOriginal; // Nome di chi manda il messaggio
WCHAR * pwFromName;
CHAR * pFromNameUtf8;
CHAR * pFromEmail; // E-mail di chi manda il messaggio
CHAR * pToOriginal; // Nome a cui va spedito il messaggio
WCHAR *pwToName;
CHAR *pToNameUtf8;
//CHAR *pToNameUtf8; // Nome a cui va spedito il messaggio
CHAR *pToEmail; // E-mail a cui va spedito il messaggio
INT iMessType; // Se in memoria o su disco
CHAR * lpMyServer; // Chi sono
CHAR * lpUSMessage; // Puntatore al messaggio semplice non MIME
CHAR * pszAutoSubmitted;
_DMI *lpMIME; // Puntatore a zona Mime per la lettura delle parti (FMIMEPARTMEMO)
} S_MAILFROM;