22. Konfiguration GeoShop Mail

22.1. Konfiguration GeoShop Mail Templates

Für die diversen EMails, die der GeoShop versendet, können EMail Templates erstellt werden. Diese EMail Templates können Variablen enthalten, die während Anwendung mit den effektiven Werten ersetzt werden.

Die EMail Templates werden pro Sprache wie folgt abgelegt:

GEOSHOP_DIR\user\template\<language>\*.*

Als <language> werden die ISO Codes de,en,it,fr verwendet.

Als Files für die EMail Templates können Textfiles oder HTML Files verwendet werden.

Textfiles dürfen keine Extension aufweisen.

HMTL Files müssen die Extension html aufweisen.

EMail Templates sind folgende.

EMail TemplateBeschreibung
confirm_emailEMail zur Bestätigung Bestellung.
deliver_emailEMail zur Lieferung Bestellung.
upload_errorEMail zur Meldung Upload Daten mit Fehler.
confirm_emailEMail zur Meldung Upload Daten erfolgreich.

Beispiel eines EMailTemplates confirm_email als Textfile.

Sehr geehrter GeoShop Kunde

Danke fuer Ihre Bestellung. Ihre Bestellung wurde wie folgt registriert:

   Bestellungsnummer: %orderno% 
   Produkt:           %product%
   Ebenen:            %topics%
   Bereich:           %OPT.selection_image%
   Lieferart:         %shipping%

Sobald die bestellten Daten zum Download bereit sind, werden Sie ueber
eine zweite E-Mail benachrichtigt.

Mit freundlichen Gruessen

infoGrips GmbH

E-Mail : info@infogrips.ch
Telefon: 01 350 10 10

Templates in HTML werden am besten mit einem HTML Editor erstellt.

Variable in den Templates werden mit dem Prozentzeichen umfasst.

Je nach Prozessart Upload oder Downlaod und Prozesszustand stehen diverse Variablen zur Verfügung. Im Ablauf des Prozesses können zum Teil auch zusätzliche Variablen definiert werden, zum Beispiel in der Preisberechnung.

22.2. Konfiguration GeoShop Mail Skript

22.2.1. Allgemeines

Der GeoShop und die Konfigurationen senden diverse Mails bei Uploads, Downloads, Checks etc. Die Mails beinhalten Standard-Betreffs und -Inhalte. Alle Mails können über eine zentrale Konfiguration bei Bedarf bearbeitet werden, bevor diese endgültig versendet werden. Angepasst werden können Betreff, Inhalt, Empfänger, Absender, Anhänge etc.

Dieses Kapitel beschreibt wie die Mail-Konfiguration aufgerufen werden kann und wie der Input und Output aussieht.

22.2.2. Definition des Mail Skript

GEOSHOP_DIR\user\options\appserver.opt

MAP
   AppServer MAP
      :
      SEND_EMAIL_SCRIPT STRING \script\email\email.cfg
      DEBUG_EMAIL STRING OFF
      :
   }
   :
SEND_EMAIL_SCRIPT

Definiert das Skript, dass die Mails bearbeiten kann.

DEBUG_EMAIL

Mit den Werten ON|OFF definiert den Debug-Modus für den Skript. Mit dem Debug-Modus ONwerden die Anteile Log, Input und Output im Verzeichnis geoshop\data\temp abgelegt.

22.2.3. Input des Mail Skripts

Das Skript erhält in der Option OPT.input ein File, das die Parameter des Mails beinhaltet. Die OPT.input Datei ist im Serial-Format und kann mit der Methode SERIAL.LOAD_OBJECT geladen werden.

OPT.input Input-Parameter:

Parameterreq/optBeschreibung
destrSTRING Mail Zieldresse.
subjectrSTRING Betreff der Mail.
contentrSTRING Inhalt der Mail in einer Datei abgelegt.
ccoSTRING kommaseparierte Liste von cc-Mailadressen.
attachoLIST mit STRINGS's Liste mit Mail-Anhängen.
joboSTRING Job-Nummer eines eventuelles Upload- oder Download Prozesses. Über die Job-Nummer können bei Bedarf weitere Optionen des Prozesses gelesen werden aus geoshop\data\temp\<job>\ics.opt .

Beispiel:

 MAP
    dest STRING info@infogrips.ch
    subject STRING 'dies ist ein Test'
    content STRING c:\geoshop\data\temp\3456\email.txt
    attach LIST
       STRING c:\geoshop\data\temp\3456\email.zip
    }
    job STRING 3456
 } 

22.2.4. Output des Mail Skript

Der Skript erhält in der Option OPT.output eine Datei, in die veränderte Parameter der Mail geschrieben werden können. Die Datei ist im Serial-Format und kann mit der Methode SERIAL.WRITE_OBJECT geschrieben werden. Die Output-Datei ist optional. Wird die Output-Datei nicht geschrieben, entspricht die Mail dem Input.

OPT.output Output-Parameter:

Parameterreq/optBeschreibung
destrSTRING Mail Zieladresse.
subjectrSTRING Betreff der Mail.
contentrSTRING Inhalt der Mail in einer Datei abgelegt.
ccoSTRING kommaseparierte Liste von cc-Mailadressen.
attachoLIST mit STRING's Liste mit Mail-Anhängen.
abort_emailoSTRING Ist dieser Parameter gesetzt, wird die Mail nicht gesendet.

Beispiel:

 MAP
    dest STRING info@infogrips.ch
    subject STRING 'Updated: dies ist ein Test'
    content STRING c:\geoshop\data\temp\3456\email.txt
    attach LIST
       STRING c:\geoshop\data\temp\3456\email.zip
    }
 } 

22.2.5. Beispiel eines Mail Skript

Soll eine Mail verändert werden, so liest man am einfachesten die Datei OPT.input in eine Map, verändert die Parameter in der Map und schreibt die Map in die Datei OPT.output.

Beispiel geoshop\user\script\email\email.cfg:

! mail input get
!---------------
IF OPT.input SERIAL.LOAD_OBJECT NOT THEN
   'input not there: ' . OPT.input  
   EXIT
END_IF
=> VAR.MAIL_MAP

! job service read 
!----------------
'' => VAR.SERVICE
IF 'VAR.MAIL_MAP.job' EXISTS THEN 
   OPT.data_dir . '\temp\' . VAR.MAIL_MAP.job . '\ics.opt' => VAR.OPT_FILE

   IF VAR.OPT_FILE TEXTFILE.OPEN THEN
       => VAR.FID

       WHILE VAR.FID TEXTFILE.READLN DO
           EXTRL
           => VAR.NAME
           => VAR.VALUE

           IF VAR.NAME = 'service' THEN
              VAR.VALUE => VAR.SERVICE
              BREAK
           END_IF
       END_WHILE 

       VAR.FID TEXTFILE.CLOSE
   END_IF
END_IF

! subject change
!---------------
'my edited subject from service ' . VAR.SERVICE => VAR.MAIL_MAP.subject

IF  OPT.output &VAR.MAIL_MAP SERIAL.SAVE_OBJECT NOT THEN
   'output can not be written: ' . OPT.output  
    EXIT
END_IF