Automatische Benachrichtigung bei Änderungen an Datenbanken
Mit den Parametern
mail_put,
mail_mod und
mail_del beim
<do action=all> können Sie automatisch Mails bei Neueinträgen, Änderungen oder Löschungen in einer Datenbank verschicken lassen. Diesen Parametern können Sie drei "Typen" zuweisen:
Text Beschreibung |
---|
* schickt eine Email an Ihre eigene EMail-Adresse, also info@ihredomain.de |
Feldname schickt eine EMail an die Adresse, die im bezeichneten Feld steht |
xxx@yyy.zzz schickt eine Email an die angegebene Adresse |
Sie können mehrere Angaben durch Kommas
, getrennt machen.
 | Know-How |
Die Unterscheidung zwischen Feldname und EMail-Adresse geschieht aufgrund des @-Zeichens. Wenn Sie nun einen Feldnamen ansprechen wollen, der selbst ein @-Zeichen enthält, müssen Sie das @-Zeichen mit einem vorangehenden \ "escapen". Da Sie keiner dazu zwingt, genau diese Felder mit darin enthaltenen @-Zeichen zu benennen, sollten Sie das einfach nicht tun ;-)
|
|
Die Anweisung
<do action=all mail_put=redakteur@meineseite.de mail_mod=EMail mail_del=*,EMail>
|
verschickt eine EMail an "redakteur@meineseite.de", wenn ein Eintrag hinzugefügt, eine EMail an die Adresse, die im Feld "EMail" steht, wenn der Eintrag geändert oder gelöscht und eine EMail an den Eigner des Templates, wenn ein Eintrag gelöscht wird.
"mail"-Befehl
Ein Perl-Befehl erlaubt direktes Versenden von EMails aus Perl:
mail "Empfänger", "Thema", "Text", "Sender", "Empfänger-Name", "Sender-Name", "Kopien", "Blinde Kopien", "Header-Angaben";
Thema und
Text sollten klar sein.
Empfänger ist die EMail-Adresse, an die die Email geschickt werden soll. Wird der
Sender weggelassen, wird automatisch die bei der baseportal-Registrierung angegebene EMail-Adresse benutzt. Werden
Empfänger-Name oder
Sender-Name angegeben, so werden diese bei der Empfänger-, bzw. Sender-Adresse in der Form
Name <EMail-Adresse> hinzugefügt. Bei
Kopien können Sie weitere Empfänger, die Kopien der EMail erhalten sollen, angeben. Ebenso bei
Blinde Kopien, allerdings sind diese zusätzlichen Empfänger für die anderen nicht sichtbar. Bei
Header-Angaben können Sie beliebige weitere Angaben machen, die im "Kopfbereich" einer Mail mitgeschickt werden sollen.
 | Beachten Sie |
Das @-Zeichen steht in Perl für eine Listenvariable. Schreiben Sie eine EMail-Adresse einfach in (normale) doppelte Anführungsstriche (z.B. "info@server.de") so erzeugt dies eine Fehlermeldung, ausser die Liste @server würde existieren. Selbst dann ist das natürlich nicht das, was Sie damit bezwecken. Sie müssen deshalb das @-Zeichen "escapen": "info\@server.de"
Oder Sie verwenden einfache Anführungsstriche bei den jeweiligen Angaben, denn darin befindliche Variablen werden nicht ersetzt: 'info@server.de'
|
|
Die meisten Angaben können weggelassen werden:
mail 'hans@gmx.de', "Na, wie gehts?", "Hallo Hans!!\n\nWollte nur mal fragen, wie es Dir so geht...\n\nGruesse, Christoph...";
|
Die
\n im Text sind "Return-Zeichen", an dieser Stelle wird also eine neue Zeile eingefügt.
Hier ein Beispiel mit allen möglichen Parametern:
mail 'kingofpop@jackson.com', "Happy birthday, Jacko!", "<b>Hi Michael!</b>Again one year has passed! Best wishes all around the world and a happy next year!<p>Bla, schwafel...<p><i>Yours, sincerely, Herbie</i>", 'hgroeni@firemail.de', "Michael Jackson", "Herbert Groenemeyer", 'robbie@williams.de, info@madonna.com, matthias@reim.de', 'redaktion@bild.de, info@bunte.de', "Content-type: text/html\n";
|
Dies würde zu folgender EMail führen:
To: Michael Jackson
Reply-to: hgroeni@firemail.de
Cc: robbie@williams.de, info@madonna.com, matthias@reim.de
Bcc: redaktion@bild.de, info@bunte.de
From: Herbert Groenemeyer
Subject: Happy birthday, Jacko!
Hi Michael!
Again one year has passed! Best wishes all around the world and a happy next year!
Bla, schwafel...
Yours, sincerely, Herbie
Durch die Angabe
Content-type: text/html wird die EMail als HTML versandt. Bedenken sollten Sie dabei, dass HTML-Mails von vielen nicht gerne empfangen werden. Sie können mehrere
Header-Angaben machen, diese müssen durch
\n getrennt werden. Auch eine einzelne Angabe benötigt ein
\n am Ende.