summaryrefslogtreecommitdiff
path: root/unit1.pas
diff options
context:
space:
mode:
Diffstat (limited to 'unit1.pas')
-rw-r--r--unit1.pas163
1 files changed, 105 insertions, 58 deletions
diff --git a/unit1.pas b/unit1.pas
index 12bddaf..fe3236a 100644
--- a/unit1.pas
+++ b/unit1.pas
@@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
- ExtCtrls, popunit, gitUpdateUnit;
+ ExtCtrls, popimapunit, gitUpdateUnit;
type
@@ -36,7 +36,7 @@ type
lb: tMouseButton;
public
{ public declarations }
- pc: tPopClient;
+ pc: tPopImapClient;
procedure neueNachrichten(sender: tObject);
end;
@@ -53,68 +53,99 @@ uses myStringListUnit, lowLevelUnit, process;
procedure TForm1.FormCreate(Sender: TObject);
var
- sl: tMyStringList;
- s,ga: string;
+ sl: tMyStringList;
+ s,ga: string;
+ found: boolean;
begin
__ausgabenMaske:=1;
- ga:='.*@eckner\.net' +'|'+
- '(ee|intern|vorstand)@wurzel\.org' +'|'+
- 'erich\.eckner@uni-jena\.de' +'|'+
- 'erich\.eckner@gmx\.de' +'|'+
- '(ioq_(nlo|staff)|alle_mitarbeiter|fsr-physik-newsletter)@listserv\.uni-jena\.de' +'|'+
- '(sox-users|logwatch-devel)@lists\.sourceforge\.net' +'|'+
- 'gmp-discuss@gmplib\.org' +'|'+
- 'hashcash@freelists\.org' +'|'+
- 'crux(-commits)?@lists\.crux\.nu' +'|'+
- 'radvd-devel-l@lists\.litech\.org' +'|'+
- 'arch-general-request@archlinux\.org';
- if fileexists(extractfilepath(application.exename)+'optionen.konf') then begin
- sl:=tMyStringList.create;
- sl.loadFromFile(extractfilepath(application.exename)+'optionen.konf');
-
- s:=sl.grepFirst('^aufploppen\s*=');
- erstesArgument(s,'=');
- if uppercase(s)='JA' then
- checkBox1.checked:=true
- else if uppercase(s)='NEIN' then
- checkBox1.checked:=false
- else if s<>'' then
- raise exception.create(''''+s+''' ist kein gültiger Wert für ''aufploppen'' (ja|nein)!');
-
- s:=sl.grepFirst('^Ton\s+geben\s*=');
- erstesArgument(s,'=');
- if uppercase(s)='JA' then
- checkBox2.checked:=true
- else if uppercase(s)='NEIN' then
- checkBox2.checked:=false
- else if s<>'' then
- raise exception.create(''''+s+''' ist kein gültiger Wert für ''Ton geben'' (ja|nein)!');
-
- sl.grep('^gültiger\s+Adressat\s*=');
- if sl.count>0 then begin
- ga:='';
- sl.rewind;
- while sl.readln(s) do begin
- erstesArgument(s,'=');
- ga:=ga+'|'+s;
- end;
- delete(ga,1,1);
- end;
- sl.free;
- end;
+ if not fileexists(extractfilepath(application.exename)+'optionen.konf') then
+ raise exception.create('Kann Optionendatei ''' + extractfilepath(application.exename) + 'optionen.konf' + ''' nicht finden!');
- writeln(ga);
-
- pc:=tPopClient.create;
- pc.timeout:=10;
+ sl:=tMyStringList.create;
+ sl.loadFromFile(extractfilepath(application.exename)+'optionen.konf');
+
+ s:=sl.grepFirst('^aufploppen\s*=');
+ erstesArgument(s,'=');
+ if uppercase(s)='JA' then
+ checkBox1.checked:=true
+ else if uppercase(s)='NEIN' then
+ checkBox1.checked:=false
+ else if s<>'' then
+ raise exception.create(''''+s+''' ist kein gültiger Wert für ''aufploppen'' (ja|nein)!');
+
+ s:=sl.grepFirst('^Ton\s+geben\s*=');
+ erstesArgument(s,'=');
+ if uppercase(s)='JA' then
+ checkBox2.checked:=true
+ else if uppercase(s)='NEIN' then
+ checkBox2.checked:=false
+ else if s<>'' then
+ raise exception.create(''''+s+''' ist kein gültiger Wert für ''Ton geben'' (ja|nein)!');
+
+ pc:=tPopImapClient.create;
+ s:=sl.grepFirst('^Timeout\s*=');
+ if erstesArgument(s,'=')<>'' then
+ pc.timeout:=strToFloat(s);
pc.neueNachrichten:=@neueNachrichten;
-// pc.sshUser:='erich';
- pc.host:='eckner.net';
- pc.user:='notify@eckner.net';
- pc.pass:='C7sd7k8*';
+ s:=sl.grepFirst('^ssh-User\s*=');
+ if erstesArgument(s,'=')<>'' then
+ pc.sshUser:=s;
+ s:=sl.grepFirst('^Host\s*=');
+ if erstesArgument(s,'=')<>'' then
+ pc.host:=s
+ else
+ raise exception.create('Kein Host in '''+extractfilepath(application.exename)+'optionen.konf'' angegeben!');
+ s:=sl.grepFirst('^User\s*=');
+ if erstesArgument(s,'=')<>'' then
+ pc.user:=s
+ else
+ raise exception.create('Kein User in '''+extractfilepath(application.exename)+'optionen.konf'' angegeben!');
+ s:=sl.grepFirst('^Pass\s*=');
+ if erstesArgument(s,'=')<>'' then
+ pc.pass:=s
+ else
+ raise exception.create('Kein Pass in '''+extractfilepath(application.exename)+'optionen.konf'' angegeben!');
+ found:=false;
+ s:=sl.grepFirst('^Port\s*=');
+ if erstesArgument(s,'=')<>'' then begin
+ pc.port:=strToInt(s);
+ found:=true;
+ end;
+ s:=sl.grepFirst('^Protocol\s*=');
+ erstesArgument(s,'=');
+ if s='pop' then begin
+ pc.mailProtocol:=mpPop;
+ if not found then
+ pc.port:=995;
+ end
+ else if s='imap' then begin
+ pc.mailProtocol:=mpImap;
+ if not found then
+ pc.port:=993;
+ end
+ else begin
+ if not found then
+ raise exception.create('Kein Port und kein Protocol in '''+extractfilepath(application.exename)+'optionen.konf'' angegeben!');
+ if pc.port=993 then
+ pc.mailProtocol:=mpImap
+ else if pc.port=995 then
+ pc.mailProtocol:=mpPop
+ else
+ raise exception.create('Ungültiges/unbekanntes Mail-Protokoll '''+s+'''!');
+ end;
+
+ sl.grep('^gültiger\s+Adressat\s*=');
+ if sl.count>0 then begin
+ ga:='';
+ sl.rewind;
+ while sl.readln(s) do begin
+ erstesArgument(s,'=');
+ ga:=ga+'|'+s;
+ end;
+ delete(ga,1,1);
+ end;
pc.gueltigerAdressat:='('+ga+')';
- pc.port:=995;
end;
procedure TForm1.FormDestroy(Sender: TObject);
@@ -148,6 +179,22 @@ begin
sl.addWithLineBreaks('gültiger Adressat = '+umbrechen(copy(pc.gueltigerAdressat,2,length(pc.gueltigerAdressat)-2),'|',true,'gültiger Adressat = '));
+ sl.add('Timeout = ' + floatToStr(pc.timeOut));
+ if pc.sshUser<>'' then
+ sl.add('ssh-User = ' + pc.sshUser);
+ sl.add('Host = ' + pc.host);
+ sl.add('User = ' + pc.user);
+ sl.add('Pass = ' + pc.pass);
+ sl.add('Port = ' + intToStr(pc.port));
+ case pc.mailProtocol of
+ mpPop:
+ sl.add('Protocol = pop');
+ mpImap:
+ sl.add('Protocol = pop');
+ else
+ raise exception.create('unbekanntes Mail-Protokoll!');
+ end{of Case};
+
sl.saveToFile(extractfilepath(application.exename)+'optionen.konf');
sl.free;
end;