Wie schreibe ich HTML-Mails?
Sascha Müller
- perl
Hallo,
Text-Mails werden einfach folgendermaßen geschrieben:
open (MAIL, "|$mail $DATA{'email'}");
print MAIL "From: $from\n";
print MAIL "To: $DATA{'email'}\n";
print MAIL "Subject: Dein Gaestebuch-Eintrag!\n\n";
print MAIL "Hallo $DATA{'name'},\n\n";
print MAIL "vielen Dank fuer deinen Gaestebucheintrag\n";
print MAIL "mailto:$homemail";
close (MAIL);
in $mail steht der volle Unix-Pfad zum SendMail Programm. In $DATA{'email'} die E-Mail Adresse. Die restlichen Variabeln sind sprechend genug meine ich. ;-)
Das wird aber eine reine Text-Mail. Wie kann ich jetzt eine HTML-Mail drucken?
Danke für alle Tipps.
Ciao
Sascha
Hallo Sascha,
open (MAIL, "|$mail -t -i");
print MAIL "From: $from\n";
print MAIL "To: $DATA{'email'}\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-Type: text/html\n";
print MAIL "Subject: Dein Gaestebuch-Eintrag!\n\n";
print MAIL "<h1>Hallo $DATA{'name'},</h1>\n\n";
print MAIL "<p>vielen Dank fuer deinen Gaestebucheintrag</p>\n";
print MAIL "<a href="mailto:$homemail">$homemail</a>";
close (MAIL);
Das wird aber eine reine Text-Mail. Wie kann ich jetzt eine HTML-Mail drucken?
s.o.
CYa
GONZO
Hi,
-t -i ist sicherer, dann kann dir keiner was mit der Emailadresse antun:
sicherer ist es, _nicht_ sendmail zu verwenden, sondern den Versand einem Modul zu überlassen - beispielsweise Net::SMTP oder MIME::Lite.
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-Type: text/html\n";
print MAIL "<h1>Hallo $DATA{'name'},</h1>\n\n";
Sicherer ist, die gesamte Kodierung einem Modul zu überlassen, welches die Feinheiten von MIME kennt und in _allen_ Fällen richtig reagiert, nicht nur in denen, die Du zufällig auch kennst. Beispielsweise MIME::Lite.
Btw: Dieses %DATA riecht _verdammt_ danach, dass CGI.pm nicht verwendet wurde, was ebenfalls nicht empfehlenswert ist. Wozu gibt es denn solche Module?
Perl-Module gibt es bei http://www.cpan.org/. Doku ist selbstverständlich immer dabei.
Cheatah