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
POP3 SSH Tunneling (Port Forwarding)Demonstrates how to connect to a POP3 server through an SSH tunnel. Reads a POP3 mailbox and display the FROM and SUBJECT header fields of each email. Downloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries #include <CkMailMan.h> #include <CkEmailBundle.h> #include <CkEmail.h> void ChilkatSample(void) { // The mailman object is used for receiving (POP3) // and sending (SMTP) email. CkMailMan mailman; // Any string argument automatically begins the 30-day trial. bool success; success = mailman.UnlockComponent("30-day trial"); if (success != true) { printf("Component unlock failed\n"); return; } // Connect to an SSH server and establish the SSH tunnel: const char * sshHostname; long sshPort; bool bForSmtp; // The SSH hostname may be a hostname or an // IP address, such as "192.168.1.108". // The port is typically 22 (the standard port for SSH). sshHostname = "www.my-ssh-server.com"; sshPort = 22; // Select POP3 by setting the following variable to false bForSmtp = false; // The 1st argument passed to SshTunnel indicates whether // a tunnel for SMTP or POP3 is being established. success = mailman.SshTunnel(bForSmtp,sshHostname,sshPort); if (success != true) { printf("%s\n",mailman.lastErrorText()); return; } // Authenticate with the SSH server via a login/password // or with a public key. // This example demonstrates SSH password authentication. // Note: This is not authenticating with the POP3 server, it is // for authenticating with the SSH server, which is separate. success = mailman.SshAuthenticatePw(bForSmtp,"ssh_login","ssh_password"); if (success != true) { printf("%s\n",mailman.lastErrorText()); return; } // OK, the SSH tunnel is setup. The mailman may // be used exactly the same as usual, except all communications // are now sent through the SSH tunnel. // Set the POP3 server's hostname mailman.put_MailHost("mail.chilkatsoft.com"); // Set the POP3 login/password. mailman.put_PopUsername("pop3_login"); mailman.put_PopPassword("pop3_password"); // Download a max of 5 messages // To download all email, leave MaxCount unset so it remains at the default value of 0. mailman.put_MaxCount(5); CkEmailBundle *bundle = 0; // Copy the all email from the user's POP3 mailbox // into a bundle object. The email remains on the server. bundle = mailman.CopyMail(); // If you're curious, have a look at LastErrorText after // a successful send. You'll see detailed information that // confirms the SSH tunneling. printf("%s\n",mailman.lastErrorText()); if (bundle == 0 ) { printf("%s\n",mailman.lastErrorText()); return; } long i; CkEmail *email = 0; for (i = 0; i <= bundle->get_MessageCount() - 1; i++) { email = bundle->GetEmail(i); printf("%s\n",email->ck_from()); printf("%s\n\n",email->subject()); delete email; } delete bundle; // Close the connection (with both SSH server and POP3 server) mailman.Pop3EndSession(); } |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.