Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

MAILFIL - Datei per E-Mail versenden

Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form/M-Form) (siehe "Typen von Makroaufrufen")

Der Makro MAILFIL sendet, analog zum Kommando MAIL-FILE, eine Datei als Anhang einer E-Mail. Als Empfänger der E-Mail wird eine Benutzerkennung angegeben. Absender ist die Benutzerkennung der aufrufenden Task. Aus dem EMAIL-ADDRESS-Feld dieser Benutzereinträge übernimmt MAIL-FILE die dort eingetragene E-Mail-Adresse. Die Ermittlung der Empfänger- und Absender-Adresse, insbesondere im Falle einer Adressliste, ist im Abschnitt „Selektion von E-Mail-Adressen über den Jobnamen" beschrieben.

Versendet werden kann ein PLAM-Bibliothekselement, eine SAM- oder ISAM-Datei sowie der Inhalt der Systemdatei SYSLST bzw. SYSOUT. Eine PAM-Datei kann nur versendet werden, wenn der Inhalt im PDF-Format vorliegt.
Die Benutzertask, unter der MAILFIL ausgeführt wird, muss die nötigen Zugriffsrechte besitzen. Bei der automatischen Zeichensatz-Konvertierung wird das Dateiattribut CCS-Name ausgewertet.
Optional kann der Aufrufer vereinbaren, dass die Datei nach dem Versenden automatisch gelöscht werden soll.

Zur Makroausführung muss die Funktion „Mail-Sender“ des Software-Produkts interNet-Services zur Verfügung stehen und im Benutzereintrag der Systemkennung TSOS muss mindestens eine E-Mail-Adresse eingetragen sein.

Der Aufruf wird abgewiesen, wenn im Benutzereintrag des Empfängers keine E-Mail-Adresse eingetragen ist. Wenn für den Aufrufer keine E-Mail-Adresse eingetragen ist. wird als Absender ersatzweise die Adresse des Empfängers oder TSOS eingesetzt.

Falls die E-Mail-Versand nicht zugestellt werden kann (z.B. wegen ungültiger Adresse), wird eine Bounce-Mail an die E-Mail-Adresse von TSOS gesendet um die Systembetreuung zur Überprüfung der fehlerhaften Adresse aufzufordern. Wenn für TSOS mehrere E-Mail-Adressen eingetragen sind, wird für die Bounce-Mail die erste Adresse verwendet.

Die MAIL-FILE-Funktionalität wird auch von anderen Komponenten des BS2000 zum Versenden von Protokolldateien verwendet:

  • bei der Auftragsbeendigung
    In den Kommandos EXIT-JOB (bzw. LOGOFF), CANCEL-JOB und ENTER-PROCEDURE kann statt der Druckausgabe auch das Versenden von SYSLST bzw. SYSOUT bei Auftragsbeendigung angefordert werden. Mit der Voreinstellung *STDOUT erfolgt die Ausgabe über das im Systemparameter SSMOUT festgelegte Ausgabemedium (Drucker oder E-Mail).

  • bei Ausgaben von Dienstprogrammen
    Derzeit unterstützen HSMS ab V9.0 und MAREN ab V12.0 das Versenden von Ausgabeinformationen bzw. Protokollen. 

Format

Operation

Operanden

MAILFIL

,PATHNAM = <c-string 1..54: filename 1..54> / <var: char:54> /

         *SYSOUT / *SYSLST / (*SYSLST,<integer 1..99>)

,LIBELEM = *NONE /

         (<c-string 1..64: composed-name 1..64> with under /

        <var: char:64>

        ,*HIGHEST / *UPPER /

         <c-string 1..24: composed-name 1..24> with under /

        <var: char:24>

        ,<c-string 1..8: alphanum-name 1..8> / <var: char:8>)

,USERID = *OWN / <c-string 1..8: name 1..8> / <var: char:8>

,SUBJECT = *STD / <c-string 1..256 with low> / <var: char:256>

,DELETE = *NO / *YES / *DESTROY

,EQUATES = *YES / *NO

,VERSION = 1 / <integer 1..2>

MF = L

MF = D,PREFIX = D / <pre>

MF = E,PARAM = <name 1..27>

MF = C / M

,PREFIX = D / <pre>

,MACID = MAM / <macid>

Operandenbeschreibung

PATHNAM

Wählt die zu versendende Datei bzw. die PLAM-Bibliothek des zu versendenden Bibliothekselements aus.

=<c-string 1..54: filename 1..54>
Pfadname bzw. Bibliotheksname.
Für zu versendende Dateien gelten folgende Einschränkungen:

      • Die Datei ist eine SAM- oder ISAM-Datei. Eine PAM-Datei wird nur versandt, wenn der Inhalt PDF-Format hat.

      • Die Datei darf nicht leer sein.

      • Der Name darf eine einzelne Dateigeneration bezeichnen, nicht jedoch eine Dateigenerationsgruppe.

      • Es kann auch eine temporäre Datei sein.
        Ein privilegierter Benutzer (Privileg TSOS) kann auch temporäre Dateien einer anderen Task angeben. Er kann auch temporäre Dateien angeben, die auf einem anderen Pubset als dem Default-Pubset der Benutzerkennung liegen.

      • Es darf keine Datei sein, die nur über eine RFA-Verbindung erreichbar ist.

=<var: char:54>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 54 Byte, in dem der Pfadname der zu sendenden Datei abgelegt ist.

=*SYSOUT
Bezeichnet die Systemdatei SYSOUT. Die Angabe ist nur möglich, wenn der SYSOUT-Datei eine Datei bzw. Dateigeneration auf Platte zugewiesen ist, die mit der Zugriffsmethode SAM erstellt wurde.
Die Angabe wird in folgenden Fällen abgewiesen:

      • Die zugewiesene Datei ist noch leer.

      • Die SYSOUT-Datei hat die Primärzuweisung.

      • Es ist die Pseudodatei DUMMY, eine temporäre Datei, ein PLAM-Bibliothekselement oder eine S-Variable zugewiesen.

=*SYSLST
Bezeichnet die Systemdatei SYSLST. In folgenden Fällen wird die Angabe abgewiesen:

      • SYSLST ist leer.

      • Es ist die Pseudodatei DUMMY, eine temporäre Datei, ein PLAM-Bibliothekselement oder eine S-Variable zugewiesen.

      • Die zugewiesene Datei bzw. Dateigeneration liegt nicht auf Platte oder wurde nicht mit der Zugriffsmethode SAM erstellt.

=(*SYSLST,<integer 1..99>)
Bezeichnet eine SYSLST-Datei aus der Menge SYSLST01 bis SYSLST99. Die Angabe ist nur möglich, wenn der SYSLST-Datei eine Datei bzw. Dateigeneration auf Platte zugewiesen ist, die mit der Zugriffsmethode SAM erstellt wurde.
Die Angabe wird in folgenden Fällen abgewiesen:

      • Die zugewiesene Datei ist noch leer.

      • Die SYSLST-Datei hat die Primärzuweisung.

      • Es ist die Pseudodatei DUMMY, eine temporäre Datei, ein PLAM-Bibliothekselement oder eine S-Variable zugewiesen.

LIBELEM

Zu sendendes PLAM-Bibliothekselement. Zusätzlich muss im Operanden PATHNAM der entsprechende Name der PLAM-Bibliothek angegeben werden.
Es können nur Textelemente und PDF-Dateien versandt werden. Textelemente sind Elemente der Typen S, M, J, P, D, X und davon abgeleiteter Typen, soweit sie keine blockorientierten Sätze enthalten. Ein Element, das blockorientierte Sätze enthält, wird nur versandt, wenn sein Inhalt PDF-Format hat.

=*NONE
Es soll kein Bibliothekselement versendet werden. Der Operand PATHNAM enthält die Angaben über die zu versendenden Datei.

=(<element>,<version>,<typ>)
Gibt Name, Version und Typ eines zu versendenden Elementes der im Operanden PATHNAM angegebenen PLAM-Bibliothek an.

<element>=<c-string 1..64: composed-name 1..64> with under
Name des zu versendenden Bibliothekselementes.

<element>=<var: char:64>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 64 Byte, in dem der Name des zu versendenden Bibliothekselementes abgelegt ist.

<version>=*HIGHEST
Wählt die höchste existierende Version aller Elemente aus, die den angegebenen Namen und den angegebenen Typ haben.

<version>=*UPPER
Wählt die höchste mögliche Version (X'FF') aller Elemente aus, die den angegebenen Namen und den angegebenen Typ haben.

<version>=<c-string 1..24: composed-name 1..24> with under
Version des zu versendenden Bibliothekselementes.

<version>=<var: char:24>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 24 Byte, in dem die Version des zu versendenden Bibliothekselementes abgelegt ist.

<typ>=<c-string 1..8: alphanum-name 1..8>
Typ des zu versendenden Bibliothekselementes.

<version>=<var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 8 Byte, in dem der Typ des zu versendenden Bibliothekselementes abgelegt ist.

USERID

Benutzerkennung, deren Eintrag im Benutzerkatalog die E-Mail-Adresse des Empfängers enthält.

=*OWN
Voreingestellt ist *OWN, d.h. die Logon-Benutzerkennung der aufrufenden Task. Wenn der Benutzereintrag eine Liste mit mehreren E-Mail-Adressen enthält, wird ggf. eine Empfängeradresse in Abhängigkeit vom Jobnamen ausgewählt (siehe „Selektion von E-Mail-Adressen über den Jobnamen").

=<c-string 1..8: name 1..8>
Benutzerkennung, aus deren Benutzereintrag die E-Mail-Adresse des Empfängers ermittelt wird.

=<var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 8 Byte, in dem die Benutzerkennung des Empfängers abgelegt ist.

SUBJECT
Bezeichnet den Betreff der E-Mail.

Hinweis

Da der BCAM-Name des absendenden BS2000-Systems bereits im Text der gesendeten E-Mail enthalten ist, muss er nicht extra in den Betreff aufgenommen werden.

=*STD
Mit *STD erhält die E-Mail einen standardisierten Betreff-Text, der neben dem Hinweis „von BS2000“ auch die Absenderkennung und den Dateinamen enthält.

=<c-string 1..256 with-low>
Betreff der E-Mail. Groß-/Kleinschreibung werden unterschieden. Es wird empfohlen, sich auf den internationalen Zeichensatz zu beschränken.

=<var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 256 Byte, in dem der Betreff der E-Mail abgelegt ist.

DELETE

Gibt an, ob die Datei oder das PLAM-Bibliothekselement nach dem erfolgreichen Versenden automatisch gelöscht werden soll. Dabei ist zu beachten:

  • Wenn die Systemdatei SYSLST zu senden ist und SYSLST die Primärzuweisung besitzt, gilt DELETE=*YES.

  • Wenn die Systemdatei SYSLST bzw. SYSOUT zu senden ist und die Systemdatei einer Datei bzw. Dateigeneration zugewiesen ist, unterbleibt das automatische Löschen.

=*NO
Die Datei oder das PLAM-Bibliothekselement wird nicht gelöscht. Die Datei oder das PLAM-Bibliothekselement ist nach dem Aufruf von MAIL-FILE sofort wieder verfügbar.
=*YES
Die Datei oder das PLAM-Bibliothekselement wird nach erfolgreichem Senden automatisch gelöscht. Die Datei oder das PLAM-Bibliothekselement gilt auch dann als erfolgreich gesendet, wenn sie danach nicht zugestellt werden kann (z.B. wegen unbekannter E-Mail-Adresse).
=*DESTROY
Die Angabe wirkt wie DELETE=*YES. Zusätzlich wird der Datei- oder Elementinhalt beim Löschen mit binär null überschrieben.

EQUATES

Steuerungs-Operand nur für MF=C und MF=D:
Gibt an, ob bei der Expansion des Parameterbereichs auch Equates für die Werte der Felder des Parameterbereichs generiert werden sollen.

= *YES
Bei der Expansion des Parameterbereichs werden auch Equates für die Werte der Felder des Parameterbereichs generiert.

= *NO
Bei der Expansion des Parameterbereichs werden keine Equates für die Werte der Felder des Parameterbereichs generiert.

VERSION

Steuert die Generierung des Parameterbereichs bzw. des Funktionsaufrufs. Der Operand muss bei der Generierung des Funktionsaufrufs denselben Wert haben wie bei der Generierung des zugehörigen Parameterbereichs.

= 1
erzeugt den für BS2000/OSD-BC V8.0 gültigen Parameterbereich bzw. Funktionsaufruf (die Angabe eines Bibliothekselements ist nicht möglich).

= 2
erzeugt den ab BS2000/OSD-BC V9.0 gültigen Parameterbereich bzw. Funktionsaufruf.

Layout des Parameterbereichs

Der Parameterbereich muss auf Wortgrenze ausgerichtet sein. Er beginnt mit einem Standardheader, den MAILFIL wie folgt initialisiert:

Function Unit Number

22

Function Number

32

Interface Version Number

2 bei Angabe von VERSION=2, sonst 1

Returncode

-1

Makroauflösung mit MF=D und Standardwerten für EQUATES, PREFIX und MACID:

         MAILFIL MF=D,VERSION=2                                      
DMAMDEPL DSECT ,                                                     
DMAMHDR  DS    0A                                                    
DMAMFHE  DS    0XL8            0   GENERAL PARAMETER AREA HEADER     
DMAMIFID DS    0A              0   INTERFACE IDENTIFIER              
DMAMFCTU DS    AL2             0   FUNCTION UNIT NUMBER              
DMAMFCT  DS    AL1             2   FUNCTION NUMBER                   
DMAMFCTV DS    AL1             3   FUNCTION INTERFACE VERSION NUMBER 
DMAMRET  DS    0A              4   GENERAL RETURN CODE               
DMAMSRET DS    0AL2            4   SUB RETURN CODE                   
DMAMSR2  DS    AL1             4   SUB RETURN CODE 2                 
DMAMSR1  DS    AL1             5   SUB RETURN CODE 1                 
DMAMMRET DS    0AL2            6   MAIN RETURN CODE                  
DMAMMR2  DS    AL1             6   MAIN RETURN CODE 2                
DMAMMR1  DS    AL1             7   MAIN RETURN CODE 1                
DMAMFHL  EQU   8               8   GENERAL OPERAND LIST HEADER LENGTH
*                                                                    
DMAMPNAM DS    CL54                      Dateiname                   
DMAMUSID DS    CL8                       Benutzerkennung oder Blank  
DMAMSUBJ DS    CL256                     Betreff oder Blank          
DMAMDELE DS    FL1                       automatisches Loeschen      
*   DELETE - values                                                  
DMAMDELN EQU   0                         DELETE = NO                 
DMAMDELY EQU   1                         DELETE = YES                
DMAMDELD EQU   2                         DELETE = DESTROY            
*                                                                    
DMAMPNSP DS    FL1                       Typ der PATHNAM-Angabe      
*   PATHNAM - values                                                 
DMAMBYFN EQU   0                         PATHNAM = fnam 
DMAMSLST EQU   1                         PATHNAM = *SYSLST           
DMAMBYSN EQU   2                         (*SYSLST,n)                 
DMAMSOUT EQU   3                         PATHNAM = *SYSOUT           
*                                                                    
DMAMSYSNUM DS    X                       Syslst number               
DMAMRES  DS    XL3                       Alignment                   
DMAMENAM DS    CL64                      Elementname oder Blank      
DMAMEVER DS    CL24                      Elementversion oder Blank   
DMAMETYP DS    CL8                       Elementtyp oder Blank       
DMAMRES2 DS    XL4                       Alignment                   
DMAM#    EQU   *-DMAMHDR             

Returncode

Der Returncode wird im Standardheader des Parameterbereichs abgelegt. Der Parameterbereich darf dann nicht im Read-only-Bereich liegen, sonst erfolgt Programmterminierung.

Folgende Returncodes werden von Mail-File erzeugt:

X'cc'

X'bb'

X'aaaa'

Erläuterung

X'00'

X'00'

X'0000'

kein Fehler

X'00'

X'01'

X'0554'

Format des Dateinamens unzulässig

X'00'

X'01'

X'0576'

fehlerhafte Operandenkombination oder nicht gelöschte UNUSED-Felder

X'00'

X'20'

X'05C7'

interner Fehler im DMS

X'00'

X'40'

X'05FC'

Benutzerkennung nicht eingetragen

X'00'

X'40'

X'0694'

Senden der Datei nicht erlaubt

X'00'

X'40'

X'0695'

E-Mail-Adresse fehlt

X'00'

X'40'

X'0696'

E-Mail-Adresse von TSOS fehlt

Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle auf "Standardheader" (Standardheader) entnommen werden.

Außerdem können Returncodes von DMS-Schnittstellen (siehe Makro FSTAT bzw. ERASE) sowie von der Mail-Sender-Schnittstelle (Makro YMLSML des Software-Produkts interNet-Services) durchgereicht werden.

Wenn ein PLAM-Bibliothekselement (Operand LIBELEM) angegeben ist, dann können außerdem Returncodes von ILAM-Schnittstellen (siehe Makros PMATCH, PMDTCH, PMOPEN, PMCLOS, PMGETA, PMPOSA, PMDELM der ILAM-Schnittstelle für PLAM) durchgereicht werden. Die Maincodes der ILAM-Schnittstellen entsprechen den dezimalen Meldungsnummern der PLAM-Meldungen (also zum Beispiel Maincode 00CB entspricht der PLAM-Meldung PLA0203).
Nähere Informationen können Sie mit /HELP-MSG <msgid> abfragen.

Beispiel für eine Aufruffolge

         MVC   MLFLMFC(256),MLFLMFL               
         MVC   MLFLMFC+256(XMAM#-256),MLFLMFL+256 
         MAILFIL MF=M,PREFIX=X,DELETE=*DESTROY    
         MAILFIL MF=E,PARAM=MLFLMFC               
             .                                    
             .                                    
MLFLMFC  MAILFIL MF=C,PREFIX=X                    
MLFLMFL  MAILFIL MF=L,PATHNAM='PN0',USERID='UI0'  

Selektion von E-Mail-Adressen über den Jobnamen

MAIL-FILE ermittelt die E-Mail-Adressen von Empfänger und Absender über den Benutzereintrag der jeweiligen Benutzerkennung. Zur Ausführung des Kommandos müssen die Benutzerkennungen des Empfängers und des Absenders jeweils eine E-Mail-Adresse enthalten (siehe Kommando SHOW-USER-ATTRIBUTES, Ausgabefeld EMAIL-ADDRESS). Der Eintrag kann auch eine Adressliste, d.h. mehrere durch Komma getrennte E-Mail-Adressen enthalten.

Bei einer Adressliste im Benutzereintrag des Absenders wird die erste Adresse zur Absenderadresse.

Bei einer Adressliste im Benutzereintrag des Empfängers unterscheidet MAIL-FILE, ob als Empfänger die Benutzerkennung des Aufrufers (*OWN) oder eine „fremde“ Benutzerkennung angegeben wurde. Bei Angabe einer fremden Benutzerkennung verschickt MAIL-FILE die E-Mail an alle Adressen. Bei Angabe der eigenen Benutzerkennung, selektiert MAIL-FILE die Adressen über den Jobnamen der aufrufenden Task:
Es wird eine Adresse gesucht, bei der ein Teilname des lokalen Adressteils (vor dem @) mit dem Jobnamen beginnt (Groß-/Kleinschreibung bleiben unberücksichtigt). Teilnamen sind durch einen Punkt von einander getrennt (z.B. vorname.nachname).

Aus der Adressliste Anna.Huber@xy,Anja.Bauer@xy,Anton.Baumann@xy werden z.B. folgende Adressen selektiert:

  • Anna.Huber@xy mit den Jobnamen: ANN, HU, HUBER

  • Anja.Bauer@xy mit den Jobnamen: ANJ, ANJA, BAUE, BAUER

  • Anton.Baumann@xy mit den Jobnamen: ANT, BAUM, BAUMAN

Zusätzlich kann auch die Möglichkeit genutzt werden, dass den Adressen im Benutzereintrag „Adressnamen“ in runden Klammern vorangestellt werden.
Beispiel: (ANH)Anna.Huber@xy,(ANB)Anja.Bauer@xy,(BMN)Anton.Baumann@xy

Aus dieser Adressliste werden dann z.B. folgende Adressen selektiert:

  • Anna.Huber@xy mit den Jobnamen: ANH sowie ANN, HU, HUBER

  • Anja.Bauer@xy mit den Jobnamen: ANB sowie ANJ, ANJA, BAUE, BAUER

  • Anton.Baumann@xy mit den Jobnamen: BMN sowie ANT, BAUM, BAUMAN

Wenn der Jobname zu mehr als einer Adresse passt, wird diejenige Adresse selektiert, bei der der zum Jobnamen passende Teilname am kürzesten ist. Aus der Adressliste
Beate.Pauli@xy,Pauline.Beck@xy,Paul.Becker@xy werden z.B. folgende Adressen selektiert:

  • Beate.Pauli@xy mit den Jobnamen: PAULI, BEA

  • Pauline.Beck@xy mit den Jobnamen: PAULIN, BE, BECK

  • Paul.Becker@xy mit den Jobnamen: P, PAUL, BECKER

Wenn bei mehreren Adressen der zum Jobnamen passende Teilname am kürzesten ist, wird von diesen Adressen die erste selektiert.

Wenn innerhalb einer Adresse mehrere Teilnamen zum Jobnamen passen, wird nur der erste Teilname berücksichtigt.

Wenn die aufrufende Task keinen Jobnamen besitzt oder der Jobname zu keiner Adresse der Adressliste passt, wird wie folgt vorgegangen:

  • Bei Ermittlung der Empfängeradresse wird die ganze Adressliste verwendet, also die E-Mail an alle Adressen verschickt.

  • Bei Ermittlung der Absenderadresse wird nur die erste Adresse der Adressliste verwendet.