Warum bei Mailversand redundante Angabe nötig?
Kurti
- perl
Hallo,
beim nachstehenden Programm erhalte ich kein mail zugestellt.
if (!open (MAIL, "|$mail_Prog"))
{
# Abbruch
}
print MAIL <<EOT1;
From: $mail_from
To: $mail_to
Subject: Neuer Eintrag im Gästebuch
Content-type: text/html
.....
EOT
Wenn ich aber im open zusätzlich "$mail_from" angebe, also
if (!open (MAIL, "|$mail_Prog $mail_from"))
so kommt das mail an.
Warum muss "$mail_from" doppelt angegeben werden?
Warum muss "$mail_from" doppelt angegeben werden?
Ich vermute mal, das liegt an der Konfiguration des Mailprogramms.
Struppi.
Hallo,
beim nachstehenden Programm erhalte ich kein mail zugestellt.
if (!open (MAIL, "|$mail_Prog"))
{
# Abbruch
}
print MAIL <<EOT1;
From: $mail_from
To: $mail_to
Subject: Neuer Eintrag im Gästebuch
Hier solltest du das Modul Encode verwenden.
use Encode qw/encode decode/;
$header = encode('MIME-Header', "Neuer Eintrag im Gästebuch");
Es wird erwartet, dass der Text bereits in UTF-8 oder iso 8859-1 vorliegt.
Wenn nicht, muss die Angabe vorher noch zusätzlich kodiert werden.
Content-type: text/html
Nein. Bei einer normalen Mail sollte das Format text/plain sein.
Zudem sollte das Encoding angegeben werden.
.....
EOT
>
> Wenn ich aber im open zusätzlich "$mail\_from" angebe, also
> ~~~perl
> if (!open (MAIL, "|$mail_Prog $mail_from"))
>
so kommt das mail an.
Warum muss "$mail_from" doppelt angegeben werden?
Würdest du mich bitte zuerst aufklären, was in $mail_Prog steht?
Meine Glaskugel ist etwas taub
bei Sendmail hat man typischerweise
open(MAIL, "|usr/sbin/sendmail -oi -t")
or die("Sendmail unerreichbar $!");
-t besagt, das from wird aus dem folgenden print MAIL entnommen.
mfg Beat
Hallo,
danke für die Hilfe.
Subject: Neuer Eintrag im Gästebuch
Hier solltest du das Modul Encode verwenden.
Zu meinem Verständnis:
Warum das Encode? Wegen dem Umlaut?
Content-type: text/html
Nein. Bei einer normalen Mail sollte das Format text/plain sein.
Zudem sollte das Encoding angegeben werden.
Du meinst den mail-Text auch codieren? Grund, wie oben?
Würdest du mich bitte zuerst aufklären, was in $mail_Prog steht?
Dort steht in der Internet-Version
open(MAIL, "|usr/sbin/sendmail")
-t besagt, das from wird aus dem folgenden print MAIL entnommen.
Damit ist meine ursprüngliche Frage geklärt!
Ich habe jetzt nochmals in Selfhtml nachgeschaut
(http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=sendmail). Da ist kein Encoding
angegeben. Und leider sind auch die Parameter oi und t nicht beschrieben.
Hast Du zufällig eine deutsche (einfache) Quelle, wo dies beschrieben ist?
Danke im voraus
Kurti
Zu meinem Verständnis:
Warum das Encode? Wegen dem Umlaut?
Mailheader dürfen nur ASCII-Zeichen enthalten.
Content-type: text/html
Nein. Bei einer normalen Mail sollte das Format text/plain sein.
Zudem sollte das Encoding angegeben werden.
Du meinst den mail-Text auch codieren? Grund, wie oben?
Ein Encoding ist immer präsent.
Du musst ja bei HTML Output auch das Encoding angeben.
Formularinhalt wird dir entsprechend des Encodings angegeben.
Dieses Encoding musst du als charset angabe im Content-Type der als Mailheader angeben.
Würdest du mich bitte zuerst aufklären, was in $mail_Prog steht?
Dort steht in der Internet-Version
open(MAIL, "|usr/sbin/sendmail")-t besagt, das from wird aus dem folgenden print MAIL entnommen.
Damit ist meine ursprüngliche Frage geklärt!Ich habe jetzt nochmals in Selfhtml nachgeschaut
(http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=sendmail). Da ist kein Encoding
angegeben. Und leider sind auch die Parameter oi und t nicht beschrieben.
Schmeiss das weg. Das ist ein Programm zum abgwöhnen.
Dummerweise habe ich meine eigene Demo vom Netz genommen, weil eine Server-Migration ansteht.
In der Demo ist alles geklärt, inklusive dem Versand ohne verfügbares sendmail.
Aber das hilft dir jetzt nicht.
Hast Du zufällig eine deutsche (einfache) Quelle, wo dies beschrieben ist?
google sendmail
Ansonsten:
http://www.faqs.org/rfcs/rfc2045.html
Hier wird der Aufbau einer Mail nach dem MIME Protokoll beschreiben.
Solltest dir mal die Abschnitte zum Content-type und Content-Transfer-Encoding durchlesen.
Je korrekter deine Mail, um so grösser die Wahrscheinlichkeit, dass sie auch ankommt.
mfg Beat
Ich habe jetzt nochmals in Selfhtml nachgeschaut
(http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=sendmail). Da ist kein Encoding
Ich empfehle dir diesen Formmailer für reine Textmails
TestDemo http://www.elcappuccino.ch/cgi/mail/sfm_wrapper.pl
Usage: http://www.elcappuccino.ch/cgi/mail/docserv.pl
Die Demo beruht auf langer Recherche und Tests und beinhaltet einen Formularserver.
Das heisst, solche Dinge wie Vorschau und Archivversion wie Spamtest sind implementiert.
Es ist als Perlmodul geschrieben, und lässt sich somit in eine beliebige Perlanwendung einbinden.
mfg Beat
Hallo,
Content-type: text/html
Nein. Bei einer normalen Mail sollte das Format text/plain sein.
Mit text/plain kommen jetzt keine Zeilenvorschübe (\n im Text) mehr.
Gruß
Kurti
Hallo,
Content-type: text/html
Nein. Bei einer normalen Mail sollte das Format text/plain sein.
Mit text/plain kommen jetzt keine Zeilenvorschübe (\n im Text) mehr.
Gruß
Kurti
Warum?
Content-type: text/html
Nein. Bei einer normalen Mail sollte das Format text/plain sein.
Mit text/plain kommen jetzt keine Zeilenvorschübe (\n im Text) mehr.
Warum?
Zeilenumbrüche in deinem Mailbody werden unverändert an dein Mailprogramm weiter gereicht.
Wenn du sie in deinem Mailprgramm nicht siehst, dann hat das mit deinem Mailagent zu tun.
Im Mailhead solltest du beachten, dass du Zeilenumbrüche nach dem Netzwerk Format senden musst.
Ich verwende im Script zum Beispiel
use constant { NL => "\n", CRLF => "\015\012"};
und schreibe dann z.B.
print MAIL "Content-type:text/plain; charset=UTF-8", CRLF;
mfg Beat