Homepage Inspire-world | Forum
CGI/Perl Workshops Mailversand Teil 2, mit Autoresponder

 Inhaltsverzeichnis/Workshops Übersichtsseite/Mailversand Teil 2, mit Autoresponder
Die Fortsetzung des ersten Workshops zum Mailversand beinhaltet nun das versenden einer automatischen Antwortmail und das einbinden eines vom Absender auszuwählenden Infotextes. Dieses einbinden eines Infotextes in die Antwortmail kann einem bei hohem Mailaufkommen viel Arbeit einsparen helfen. So kann man dort z.B. häufige Fragen schon im vorab erklären, neueste Informationen zu Produkten mitsenden, Werbung einbinden uvam.

1. Das Formular zum eintragen der Daten

<tr>
<td colspan="2"><font face="Verdana, Arial" size="1">
Weitere Informationen zusenden lassen?<br>
Hier können Sie sich weitere, ergänzende Infos zu 
Ihrer Anfrage mitsenden lassen. Diese Infos erhalten sie zuerst
durch den Autoresponder.</font>
</td>
</tr>

<tr>
<td align="right"> </td>
<td>

<select name="autoresponder" size="1">
<option value="0"></option>
<option value="1">Tipps zu HTML</option>
<option value="2">Tipps zu CGI</option>
<option value="3">Tipps zu PHP</option>
</select>
</td>
</tr>
Hinweise zum Formular

Dieser Code muss zusätzlich in das Formular des ersten Workshopteiles eingebunden werden. Hier kann der Absender dann einen Infotext auswählen, oder auch nicht...




1. Das Script zum versenden der Daten

Hinweis:
Das sich die Scripte, bis auf die zu ändernden Details gleichen, werde ich hier nur die zu ändernden Codeteile und deren Position im Script angeben.
# E-Mail des Empfängers UNBEDINGT den \ vor dem @ notieren
@email_liste = ("webmaster\@ihredomain.de","privat\@mailadresse.de");
Hier unterhalb wird nun eine Liste definiert der vorhandenen Infotexte
# Autoresponder, hier die Dateien angeben die vorhanden sind
@mail_texte = ("keintext","html.txt","cgi.txt","php.txt");
Nun das Formularfeld autoresponder in der Liste eintragen:
$empfaenger = $FORM{'empfaenger'};
$subject = $FORM{'subject'};
$name = $FORM{'name'};
$vorname = $FORM{'vorname'};
$mailadresse = $FORM{'mailadresse'};
$anfragetext = $FORM{'anfragetext'};
$autoresponder = $FORM{'autoresponder'};
Jetzt kommt der Teil der die TXT Datei öffnen die der Absender haben möchte. Da es auch sein kann das der Absender keinen Infotext haben möchte ist das ganze hier in einer if Abfrage eingebunden.
if ($mail_texte[$autoresponder] ne '0') {
open (FILE, "/pfad/zu/infotexten/$mail_texte[$autoresponder]");
while (<FILE> ) {push (@file,$_);}
close(FILE);
}
ne '0' heist das die Datei nur geöffnet werden braucht wenn der Wert nicht 0 ist. Der Vorgang der hier innerhalb der IF Abfrage abläuft ist folgender:

  1. open [FILE... öffent die angegebene Datei zum lesen
  2. while (<FILE> ) liest die ganze Datei und "pusht" den Inhalt aller Zeilen in die Variable $_
  3. Datei wird wieder geschlossen mittels close(FILE);
sub mailsenden {
open (MAIL, "|$mailprog -t") || die $!;
print MAIL "To: $email_liste[$empfaenger]\n";
....
....
....
print MAIL "Gesendet um: $datum\n";

close(MAIL);
Unterhalb dieses Abschnittes der die Mail an den Empfänger sendet kommt nun ein weiterer Mailversandcode.
open (MAIL, "|$mailprog -t") || die $!;
print MAIL "To: $mailadresse\n";
print MAIL "From: $email_liste[$empfaenger]\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Hallo $vorname $name\n\n";
print MAIL "Wir haben Ihre Nachricht erhalten und\n"; 
print MAIL "werden diese so schnell wie möglich bearbeiten.\n";
print MAIL "==================================\n";
if ($autoresponder ne '0') {
print MAIL "Hier der zusätzlich angeforderte Text zur Mail:\n\n";
print MAIL "@file\n\n";
print MAIL "==================================\n\n";
}
print MAIL "Viele Grüße\n";
print MAIL "Webmaster\n";
print MAIL "Gesendet um: $datum\n";

close(MAIL);
Hier gilt es zu beachten das bei To: und From: die Werte angepasst werden müssen!

Weiterhin habe ich hier eine andere IF Abfrage eingebaut die den eingeschlossenen Abschnitt, speziell den Text
print MAIL "Hier der zusätzlich angeforderte Text zur Mail:\n\n";
bis zu
print MAIL "==================================\n\n";
garnicht erst mitsendet wenn keine Anforderung vorliegt.

Bei @file wird das was oberhalb in dem while Abschnitt ausgelesen wurde in die Mail eingefügt.

Weitere Hinweise:
  1. Nun noch die entsprechenden Infotexte vorbereiten und auf den Server laden.
  2. Die Dateien die mitgesendet werden sollen können natürlich auch andere Dateiendungen haben .dat z.B.
  3. Man sollte mit dieser Methode Infotexte, keine "Romane" versenden.
  4. Es ist nicht möglich hier ZIP Dateien, Bilder oder sonstige Atachements an die Mail anzuhängen.


 Zum Inhaltsverzeichnis/Workshops Übersichtsseite/Mailversand Teil 2, mit Autoresponder
Autor: Helmut Walter Homepage Inspire-world Fragen, Anregungen und Hinweise bitte in das Forum

Valid HTML 4.0! Valid CSS!