Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Solution for Bounced EmailDownloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries Visual C++ sample source code showing how to create a bounced mail handler. #define _CRTDBG_MAP_ALLOC #include "stdafx.h" #include <stdio.h> #include <crtdbg.h> #include "C:/ck2000/components/ChilkatLib/CkString.h" #include "C:/ck2000/components/ChilkatLib/CkMailMan.h" #include "C:/ck2000/components/ChilkatLib/CkEmail.h" #include "C:/ck2000/components/ChilkatLib/CkEmailBundle.h" #include "C:/ck2000/components/ChilkatLib/CkSettings.h" #include "C:/ck2000/components/ChilkatLib/CkBounce.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { freopen("stdout.txt","w",stdout); // Create a mailman for reading mail. CkMailMan *mailman = new CkMailMan; mailman->UnlockComponent("MailUnlockCode"); // Set the POP3 server and login credentials. mailman->put_MailHost("mail.chilkatsoft.com"); mailman->put_PopUsername("login"); mailman->put_PopPassword("password"); CkBounce *bounce = new CkBounce; bounce->UnlockComponent("BounceUnlockCode"); // Download the entire mailbox, leaving it on the POP3 server. CkEmailBundle *bundle = mailman->CopyMail(); if (bundle) { // Loop over the messages. int i; int n = bundle->get_MessageCount(); for (i=0; i<n; i++) { CkEmail *email = bundle->GetEmail(i); int bounceType; CkString bounceAddr; CkString bounceData; bounce->CheckEmail(*email,bounceAddr,bounceData,bounceType); if (bounceType == 0) { // Not a bounce, do nothing. mailman->DeleteEmail(email); } else if (bounceType == 1) { printf("Hard Bounce (%s)\n",bounceAddr.getString()); } else if (bounceType == 2) { printf("Soft Bounce (%s)\n",bounceAddr.getString()); } else if (bounceType == 3) { printf("General Bounce, no email address available\n"); } else if (bounceType == 4) { printf("General Bounce (%s)\n",bounceAddr.getString()); } else if (bounceType == 5) { printf("Mail Blocked (%s)\n",bounceAddr.getString()); } else if (bounceType == 6) { printf("Auto-Reply (%s)\n",bounceAddr.getString()); } else if (bounceType == 7) { printf("Transient Message (%s)\n",bounceAddr.getString()); } else if (bounceType == 8) { printf("Subscribe Request (%s)\n",bounceAddr.getString()); } else if (bounceType == 9) { printf("Unsubscribe Request (%s)\n",bounceAddr.getString()); } else if (bounceType == 10) { printf("Virus Notification (%s)\n",bounceAddr.getString()); } else if (bounceType == 11) { printf("Suspected Bounce!\n"); } delete email; } // Save the entire bundle of emails as XML. bundle->SaveXml("bundle.xml"); } delete bounce; delete bundle; delete mailman; // Only necessary if checking for memory leaks. // Only call just before exiting the program. CkSettings::cleanupMemory(); _CrtDumpMemoryLeaks(); return 0; }
|
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.