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.
use chilkat(); # The mailman object is used for receiving (POP3) # and sending (SMTP) email. $mailman = new chilkat::CkMailMan(); # Any string argument automatically begins the 30-day trial. $success = $mailman->UnlockComponent("30-day trial"); if ($success != 1) { print "Component unlock failed" . "\n"; exit; } # Connect to an SSH server and establish the SSH tunnel: # 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 0 $bForSmtp = 0; # 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 != 1) { print $mailman->lastErrorText() . "\n"; exit; } # 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 != 1) { print $mailman->lastErrorText() . "\n"; exit; } # 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); # Copy the all email from the user's POP3 mailbox # into a bundle object. The email remains on the server. # bundle is a CkEmailBundle $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. print $mailman->lastErrorText() . "\n"; if ($bundle eq null ) { print $mailman->lastErrorText() . "\n"; exit; } for ($i = 0; $i <= $bundle->get_MessageCount() - 1; $i++) { # email is a CkEmail $email = $bundle->GetEmail($i); print $email->ck_from() . "\r\n"; print $email->subject() . "\r\n" . "\r\n"; } # Close the connection (with both SSH server and POP3 server) $mailman->Pop3EndSession(); |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.