Modul Web

Aus bafbal.de
Zur Navigation springen Zur Suche springen

E-Mail

Das BAF-Framework kann E-Mails (über einen Mailserver) versenden, auch mit Anhängen, auch mit TLS.

Siehe Beispiel E-Mail versenden

#email_init

Setzt die Parameter zur Verbindung mit dem Mail-Server.

Parameter

  • at - AuthenticationType, Default ist default
    • default
    • none
    • saslmechanism
  • host - Hostname des Mailservers; Funktionen werden ersetzt.
  • isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf Mail-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt.
  • port - Port der Verbindung; Funktionen werden ersetzt, default ist der nach tls voreingestellte Port
  • pw ("PassWord") - Password des Users auf dem Mailserver; Funktionen werden ersetzt.
  • pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt).
  • tls - Transport Layer Security; default itls
    • aetls - Allow Explicit TLS
    • dtls - Disable TLS
    • itls - Implicit TLS
    • retls - Require Explicit TLS
  • to - TimeOut in Sekunden, Funktionen werden ersetzt, default 15
  • usr ("user") - User auf dem Mailserver; Funktionen werden ersetzt.

Beispiele

#email_init   host=mailhost.my   usr=myusername   pw=mypassword
#email_init   host=mailhost.my   usr=myusername   pwc=Y   pw=333w6t7wqDClip4eB02wrE=

siehe auch E-Mail versenden

#email_send

Versendet eine E-Mail.

Parameter

  • bcc ("blind carbon copy") - E-Mail-Adresse(n), die als zusätzliche verdeckte Empfänger eingetragen wird; Funktionen werden ersetzt.
  • cc ("carbon copy") - E-Mail-Adresse(n), die als zusätzliche Empfänger eingetragen wird; Funktionen werden ersetzt.
  • ccs ("content charset") - Zeichensatz, zum Beispiel us-ascii, utf-8 oder utf-16; default ist us-ascii; Funktionen werden ersetzt; bei utf-8 und utf-16 sollte cte=base64 verwendet werden
  • cnt ("count") - Anzahl der Anhänge
  • cte ("content transfer encoding") - Übertragungsencoding (7bit, 8bit, binary, base64, binhex40, quoted-printable, xxe, uue); Funktionen werden ersetzt
  • fn1, fn2... ("FileName") - Dateinamen der Dateien, die als Anhang mitgeschickt werden sollen.
  • from - E-Mail-Adresse, die als Absender eingetragen wird; Funktionen werden ersetzt.
  • headers2clipboard - Wenn Y, werden direkt vor dem Versand die Headers in die Zwischenanblage geschrieben; kann zum debuggen helfen. Default N, Funktionen werden ersetzt.
  • reply - E-Mail-Adresse(n), die als Antwort-Adresse eingetragen wird; Funktionen werden ersetzt.
  • subject - Betreff der E-Mail
  • text - Text des Mail-Bodys; Funktionen werden ersetzt.
  • to - E-Mail-Adresse(n), die als Empfänger eingetragen wird; Funktionen werden ersetzt.

Hinweis: Sollen bei einem Parameter mehrere E-Mail-Adressen angegeben werden, so sind diese durch Semikola zu trennen, siehe Beispiel (to).

Beispiel

#email_send   from=test@host.my   to=info@adr1.de;info@adr3.de   bcc=info@adr2.de   subject=Testmail   text=$TEXT(1)   ccs=utf-16   cte=base64


siehe auch E-Mail versenden

#email_disconnect

Trennt die Verbindung zum Mailserver. Sollte nach dem Versenden der E-Mail (beim Versenden mehrerer E-Mails nach dem Versenden der letzten E-Mail) aufgerufen werden.

Parameter

(keine)

Beispiel

siehe E-Mail versenden

FTP / SFTP

Die Befehle für die Verbindung zu FTP- und SFTP-Server gleichen sich weitgehend, so dass sie gemeinsam besprochen werden.

#ftp_connect/#sftp_connect

Stellt die Verbindung zu einem FTP-Server her.

Parameter

  • host - Hostname des Servers; Funktionen werden ersetzt.
  • pw ("PassWord") - Password des Users auf dem Server; Funktionen werden ersetzt.
  • pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt).
  • prt ("Port") - Funktionen werden ersetzt. Bei #ftp_connect default 21, bei #sftp_connect default 22
  • usr ("user") - User auf dem Server; Funktionen werden ersetzt.

Parameter nur ftp_connect

  • crpt ("crypt") - Wenn Y, wird der Datenkanal verschlüssel; default N, Funktionen werden ersetzt
  • isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf FTP-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt.
  • up ("use passive") - Wenn Y, wird der Passiv-Modus genutzt; default N, Funktionen werden ersetzt
  • y - TLS-Modus; Funktionen werden ersetzt; default allow
    • allow
    • disable
    • implicit
    • require

Parameter nur sftp_connect

  • av ("Always validate") - Wenn Y, wird der Server key immer validiert; Funktionen werden ersetzt; Default N
  • private - Name des privaten Schlüssels bei der Authentifizierungsmethode pk
  • y - Authentifizierungsmethode; default pw
    • pk - Private key
    • pw - Passwort

Beispiele

#ftp_connect   host=w0012345.kasserver.com   usr=w0012345   pw=cWLS12345NhVEcll
#sftp_connect   host=w0012345.kasserver.com   usr=w0012345   pw=cWLS12345NhVEcll

#ftp_disconnect/#sftp_disconnect

Trennt die Verbindung zum FTP-Server. Sollte dann als letzte Prozedur aufgerufen werden.

Parameter

(keine)

Beispiele

#ftp_connect   host=w0012345.kasserver.com   usr=w0012345   pw=cWLS12345NhVEcll
#ftp_upload   src=c:\temp\test.csv   dst=test.csv
#ftp_disconnect

#sftp_connect   host=w0012345.kasserver.com   usr=w0012345   pw=cWLS12345NhVEcll
#sftp_upload   src=c:\temp\test.csv   dst=test.csv
#sftp_disconnect

#ftp_download/#sftp_download

Lädt eine Datei vom Server herunter

Parameter

  • dst ("destination") - Dateiname auf dem lokalen Rechner; Funktionen werden ersetzt
  • ie ("is empty") - Wenn Y, dann wird die Datei nur auf den lokalen Rechner herunter geladen, wenn sie dort noch nicht vorhanden ist
  • src ("source") - Dateiname auf dem Server; Funktionen werden ersetzt

Beispiel

#ftp_connect   host=w0012345.kasserver.com   usr=w0012345   pw=cWLS12345NhVEcll
#ftp_download   src=test.pdf   dst=c:\temp\hallo.pdf
#ftp_disconnect

#ftp_upload/#sftp_upload

Lädt eine Datei auf den Server hoch

Parameter

  • dst ("destination") - Dateiname auf dem Server; Funktionen werden ersetzt
  • ie ("is empty") - Wenn Y, dann wird die Datei nur auf den Server hoch geladen, wenn sie dort noch nicht vorhanden ist
  • src ("source") - Dateiname auf dem lokalen Rechner; Funktionen werden ersetzt

Beispiel

#ftp_upload   src=c:\temp\test.csv   dst=test.csv

#ftp_rename/#sftp_rename

Benennt eine Datei auf dem Server um.

Parameter

  • dest ("destination") - Neuer Name der Datei
  • src ("source") - Bestehender Name der Datei

Beispiel

#ftp_rename   src=test.csv   dst=hallo.csv

#ftp_delete/#sftp_delete

Löscht eine Datei auf dem Server

Parameter

  • fn ("FileName") - Dateiname der Datei, die gelöscht werden soll.

Beispiel

#ftp_delete   fn=hallo.csv

#ftp_mkdir/#sftp_mkdir

Legt ein Verzeichnis auf dem Server an ("make directory").

Parameter

  • n ("name") - Name des neuen Verzeichnisses

Beispiel

#ftp_mkdir   n=testdir

#ftp_remdir/#sftp_remdir

Entfernt ein Verzeichnis auf dem Server ("remove directory").

Parameter

  • n ("Name") - Name des Verzeichnisses


Beispiel

#ftp_remdir   n=testdir

#ftp_chgdir

Ändert das aktuelle Verzeichnis ("change directory").

Hinweis: Diese Prozedur ist für SFTP nicht verfügbar.

Parameter

  • n ("name") - Name des neuen Verzeichnisses

Beispiel

#ftp_chgdir   n=testdir

$FTP_SIZE()/$SFTP_SIZE()

Ermittelt die Größe einer Datei auf dem Server in Bytes.

Parameter

  1. Name der Datei

Beispiel

#coutl $FTP_SIZE(test.pdf) Bytes

$FTP_LIST() /$SFTP_LIST()

Erzeugt eine Liste von Dateien im aktuellen Verzeichnis.

Parameter

  1. Pfad-Angabe; kann sich auf Verzeichnisse beziehen, jedoch auch auf die Dateinamen (z.B. *.pdf)
  2. Wenn det oder details, dann wird eine Liste mit erweiterten Datei-Informationen (Größe, UNIX-mode,...) geliefert.

Bitte beachten Sie, dass bei $FTP_LIST() derzeit nur Verzeichnis-Namen im Pfad zulässig sind, sofern erweiterte Datei-Informationen angefordert werden.

Ausgabeformate

Bitte beachten Sie, dass sich die Ausgabeformate von $FTP_LIST() und $SFTP_LIST() unterscheiden:

Beispiel $FTP_LIST()

.
..
test.csv
XL2KeyServer.exe

Beispiel $SFTP_LIST()

test.csv
XL2KeyServer.exe

Beispiel $FTP_LIST(,det)

-r-xr-xrwx   1 owner    group              39 Jan 22 08:51      test.csv
-r-xr-xrwx   1 owner    group         3757056 Jan 21 19:33      XL2KeyServer.exe

Beispiel $SFTP_LIST(,det)

-rw-rw-rw   1     root     root        39 Jan 22 08:51 test.csv
-rw-rw-rw   1     root     root   3757056 Jan 21 20:33 XL2KeyServer.exe

Beispiele

#coutl $FTP_LIST() 
#coutl $FTP_LIST(*.pdf) 
#coutl $FTP_LIST(,det) 
#coutl $FTP_LIST(usage,det)

Web

#http_request

Setzt einen http- oder https-Request ab und schreibt ggf. das Ergebnis in eine Variable oder einen Value. Diese Prozedur eignet sich auch für REST-Aufrufe.

Parameter

  • acc - Akzeptierte Response-Formate
  • cu8 ("convert UTF8") - wenn Y, werden die Zeichen von UTF8 nach ANSI konvertiert; default N, Funktionen werden ersetzt
  • cy - Content-Typ der Anfrage
  • e_req - Encoding des Requests, zulässig sind ansi, ascii, utf7, utf8, unicode und bigendianunicode. Funktionen werden ersetzt, default utf8.
  • e_res - Encoding des Response, zulässig sind ansi, ascii, utf7, utf8, unicode und bigendianunicode. Funktionen werden ersetzt, default utf8.
  • f_ - Prefix für Header-Einträge, zum Beispiel für die Authorisierung; Funktionen werden ersetzt
  • isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf REST-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt.
  • path - Pfad im XML, der zu dem Array führt, durch das geloopt werden soll; Funktionen werden ersetzt
  • pfx ("prefix") - Name der einzelnen Array-Elemente; Funktionen werden ersetzt
  • request - Text der Anfrage bei post und put; Funktionen werden ersetzt
  • response - Nummer des Values oder Name der Variable, in die bzw. den das Ergebnis geschrieben wird
  • scode - Statuscode der Antwort als dreistellige Zahl (404 - not found, etc.)
  • se ("show error") - Wenn Y, wird im Fehlerfall die Fehlermeldung in einer Meldungsbox eingesetzt. Funtkionen werden ersetzt. Sollte im Server-Betrieb auf N gesetzt werden.
  • sep ("separator") - Das Trennzeichen, mit dem die Elemente im Parameter path getrennt sind; Funktionen werden ersetzt, default ist der Punkt
  • status - Status der Antwort als Klartext
  • to ("TimeOut") - Zeit in Sekunden, bis ein Request abgebrochen wird; Funktionen werden ersetzt, default 15
  • url - Webadresse des aufgerufenen Services; Funktionen werden ersetzt
  • wait - Zeit in Millisekunden, die auf die Antwort gewartet wird; Funktionen werden ersetzt; default 1000
  • y - Typ
    • delete
    • get
    • post
    • put


Beispiel

#text_clear 
#text {
#text     "userId": 1
#text }

#code   f_Authorization="Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
#code   url=https://xxxxx.net/sore/printall  
#http_request   y=post    cy="application/json"   request=$TEXT(1)   response=1   scode=2   status = 3   se=Y   acc=application/json     $CODE$
#cout   c="$VAL(2) - VAL(3)"
#cout   c=$VAL(1)