Delphi Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
DKIM / DomainKey
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
NTLM
POP3
RSA
S/MIME
SMTP
Socket
Spider
SFTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Amazon S3
Byte Array
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

Type Conversion

 

Article: Understanding COM References in Delphi

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.

Download Chilkat Email ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATMAILLib2_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
mailman: TChilkatMailMan2;
success: Integer;
sshHostname: String;
sshPort: Integer;
bForSmtp: Integer;
bundle: CHILKATMAILLib2_TLB.IChilkatEmailBundle2;
i: Integer;
email: CHILKATMAILLib2_TLB.IChilkatEmail2;

begin
//  The mailman object is used for receiving (POP3)
//  and sending (SMTP) email.
mailman := TChilkatMailMan2.Create(Self);

//  Any string argument automatically begins the 30-day trial.
success := mailman.UnlockComponent('30-day trial');
if (success <> 1) then
  begin
    ShowMessage('Component unlock failed');
    Exit;
  end;

//  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) then
  begin
    ShowMessage(mailman.LastErrorText);
    Exit;
  end;

//  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) then
  begin
    ShowMessage(mailman.LastErrorText);
    Exit;
  end;

//  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.MailHost := 'mail.chilkatsoft.com';

//  Set the POP3 login/password.
mailman.PopUsername := 'pop3_login';
mailman.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.MaxCount := 5;

//  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.
ShowMessage(mailman.LastErrorText);

if (bundle = nil ) then
  begin
    ShowMessage(mailman.LastErrorText);
    Exit;
  end;

for i := 0 to bundle.MessageCount - 1 do
  begin
    email := bundle.GetEmail(i) As CHILKATMAILLib2_TLB.IChilkatEmail2;
    Memo1.Lines.Add(email.From);
    Memo1.Lines.Add(email.Subject + #13#10);

  end;

//  Close the connection (with both SSH server and POP3 server)
mailman.Pop3EndSession();
end;

 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · XML Parser