![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(C++) POP3 to SMTP ForwarderRead a POP3 mailbox and forwards the email to another email address, keeping the recipients in the original email the same. Note: This example requires Chilkat v11.0.0 or greater.
#include <CkMailMan.h> #include <CkStringTable.h> #include <CkBinData.h> void ChilkatSample(void) { bool success = false; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkMailMan mailman; // Set the POP3 server's hostname mailman.put_MailHost("pop.example.com"); // Set the POP3 login/password. mailman.put_PopUsername("MY_POP3_LOGIN"); mailman.put_PopPassword("MY_POP3_PASSWORD"); // Set the SMTP hostname for sending. mailman.put_SmtpHost("smtp.example.com"); mailman.put_SmtpUsername("MY_SMTP_LOGIN"); mailman.put_SmtpPassword("MY_SMTP_PASSWORD"); const char *fromAddr = "me@example.com"; const char *toAddr = "recipient@somewhere.com"; // The the UIDLs for all email in the POP3 mailbox. CkStringTable stUidls; success = mailman.FetchUidls(stUidls); if (success == false) { std::cout << mailman.lastErrorText() << "\r\n"; return; } // Just mark messages for delete, then delete at the end. mailman.put_ImmediateDelete(false); // Download the email from the server. Call FetchMimeBd // because we don't want to load the emails into email objects. // (We'll delete the emails that are forwarded without error.) CkBinData bdMime; int count = stUidls.get_Count(); int i = 0; while (i < count) { const char *uidl = stUidls.stringAt(i); std::cout << "UIDL: " << uidl << "\r\n"; success = mailman.FetchMimeBd(uidl,bdMime); if (success == false) { std::cout << mailman.lastErrorText() << "\r\n"; return; } success = mailman.SendMimeBd(fromAddr,toAddr,bdMime); if (success == false) { std::cout << mailman.lastErrorText() << "\r\n"; return; } success = mailman.DeleteByUidl(uidl); if (success == false) { std::cout << mailman.lastErrorText() << "\r\n"; return; } i = i + 1; } // Delete messages marked for delete. mailman.put_ImmediateDelete(true); success = mailman.Pop3EndSession(); if (success == false) { std::cout << mailman.lastErrorText() << "\r\n"; return; } std::cout << "Success." << "\r\n"; } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.