You are on page 1of 3

Indy SSL https://62.48.92.8/index.php?view=article&catid=57:tipps-delphi&i...

Indy SSL
Geschrieben von: Markus Flingelli
Sonntag, den 19. Oktober 2008 um 19:02 Uhr

SSL mit Indy 10


Dieser Artikel beschreibt, wie mit Borland Delphi 2006 und Indy 10 eine mit SSL-verschlüsselte
Verbindung zu einem POP3-Server aufgebaut werden kann.

Die folgende Unit baut über SSL eine Verbindung mit einem POP3-Server auf. Damit der
Verbindungsaufbau funktioniert, müssen die Dateien libeay32.dll und ssleay32.dll im selben
Verzeichnis wie die Anwendung oder im System32-Verzeichnis von Windows liegen (Die beiden
DLL-Dateien stammen aus dem Projekt OpenSSL).

unit uMain;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
IdSSLOpenSSL, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdPOP3, StdCtrls;

type
TMain = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;

var
Main: TMain;

implementation

{$R *.dfm}

procedure TMain.Button1Click(Sender: TObject);


var
IdPop3 : TIdPOP3;
Handler : TIdSSLIOHandlerSocketOpenSSL;
begin
IdPOP3 := TIdPOP3.Create(nil);
Handler := TIdSSLIOHandlerSocketOpenSSL.Create(IdPop3);

with Handler do
begin
Destination := 'pop.gmx.net:995';
Host := 'pop.gmx.net';
Port := 995;
DefaultPort := 0;
SSLOptions.Method := sslvSSLv2;
SSLOptions.Mode := sslmUnassigned;
SSLOptions.VerifyMode := [];
SSLOptions.VerifyDepth := 0;
end;

with IdPop3 do
begin

1 de 3 22/08/2009 14:03
Indy SSL https://62.48.92.8/index.php?view=article&catid=57:tipps-delphi&i...

AutoLogin := true;
Host := 'pop.gmx.net';
Port := 995;
Username := '';
Password := '';
IOHandler := Handler;
UseTLS := utUseImplicitTLS;
end;

IdPOP3.Connect;
ShowMessage('Anzahl neuer Nachrichten: ' + IntToStr(IdPOP3.CheckMessages));
IdPOP3.Disconnect;
end;

end.

Soll statt SSL TLS verwendet werden, müssen die Zeilen


SSLOptions.Method := sslvSSLv2;

durch
SSLOptions.Method := sslvTLSv1;

und
UseTLS := utUseImplicitTLS;

durch
UseTLS := utUseExplicitTLS;

ersetzt werden.

Formular
Hier sehen Sie den Inhalt der zugehörigen dfm-Datei:

object Main: TMain


Left = 385
Top = 108
Caption = 'Form1'
ClientHeight = 58
ClientWidth = 412
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 152
Top = 25
Width = 75
Height = 25
Caption = 'Ok'
TabOrder = 0
OnClick = Button1Click

2 de 3 22/08/2009 14:03
Indy SSL https://62.48.92.8/index.php?view=article&catid=57:tipps-delphi&i...

end
end

Zuletzt aktualisiert am Dienstag, den 21. Oktober 2008 um 19:30 Uhr

3 de 3 22/08/2009 14:03