Sascha Müller: Wie schreibe ich HTML-Mails?

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

  1. Hallo Sascha,

    -t -i ist sicherer, dann kann dir keiner was mit der Emailadresse antun:

    open (MAIL, "|$mail -t -i");
    print MAIL "From: $from\n";
    print MAIL "To: $DATA{'email'}\n";

    Das ist eine MIME Mail:

    print MAIL "MIME-Version: 1.0\n";

    MIME Type:

    print MAIL "Content-Type: text/html\n";
    print MAIL "Subject: Dein Gaestebuch-Eintrag!\n\n";

    Normaler HTML Quellcode:

    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

    1. 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