CONTENT-TYPE - immer notwendig???
Peter Dietlein
- perl
Habe heute mal das Mail-Script (aus Goto Perl5 M.Schilli - netter Schmöker BTW) ausprobiert (sieh unten). Funktioniert auch ganz prima, aber erst wenn ich einen Content Type anfüge.
print "Content-type: text/html\n\n";
print "hallo\n";
Mach ich das nicht, erscheint einf Fehlermeldung. Hmh, aber das kann doch nicht angehen, daß ich jedesmal einen Text mit ausgeben muß, wenn ich über eine URL (Browser) ein Perl-Script anstoße. Oder doch? Kann man das umgehen? Auf jedenfall Danke für alle antworten, bin wie immer sehr gespannt.
cu
Peter
#!/usr/bin/perl -w
use Mail::Send;
$mail=Mail::Send->new( # Neues Mail-Objekt
Subject => "Wichtige Nachricht!", # Betreff
To => 'user@remote.host.com', # Empfänger
Cc => 'anotheruser@site.com', # Kopie an (optional)
Bcc => 'yetanotheruse@site.com'); # Blindkopie an (optional)
$mail->set("From", 'me@there.com'); # Absender (optional)
$mail->set("Reply-To", 'me@there.com'); # Rückadresse (optional)
$mailhandle = $mail->open("sendmail"); # Mail-Programm starten
print $mailhandle <<EOT; # Text erstellen
Hier kommt der
Brieftext.
EOT
$mailhandle->close(); # Schließen und senden
hi!
Mach ich das nicht, erscheint einf Fehlermeldung. Hmh, aber das kann doch nicht angehen,
daß ich jedesmal einen Text mit ausgeben muß, wenn ich über eine URL (Browser) ein
Perl-Script anstoße. Oder doch?
Doch. Ohne HTTP-Header erzeugt jedes vom Browser aus aufgerufene CGI-Skript eine Fehlermeldung.
Kann man das umgehen?
Nein.
bye, Frank!
Doch. Ohne HTTP-Header erzeugt jedes vom Browser aus aufgerufene CGI-Skript eine Fehlermeldung.
Kann man das umgehen?
Nein.
bye, Frank!
Frank ja aber, Ausnahmen....
zB # in diesem Fall kein "print content-type"
$dok = "http://homepage";
print "location: $dok";
... bestätigen deine oben aufgestellte Regel oder /**/
Rolf
hi!
Doch. Ohne HTTP-Header erzeugt jedes vom Browser aus aufgerufene CGI-Skript eine
Fehlermeldung.
Frank ja aber, Ausnahmen....
zB # in diesem Fall kein "print content-type"
$dok = "http://homepage";
print "location: $dok";
"Location:" ist ebenfalls ein HTTP-Header. Dieses Beispiel unterstützt also meine Aussage. Abgesehen davon, dass das von dir gepostete Beispiel streng genommen gar kein HTTP-Header ist, da die abschließende Leerzeile fehlt.
bye, Frank!
"Location:" ist ebenfalls ein HTTP-Header. Dieses Beispiel unterstützt also meine Aussage. Abgesehen davon, dass das von dir gepostete Beispiel streng genommen gar kein HTTP-Header ist, da die abschließende Leerzeile fehlt.
bye, Frank!
Hallo Frank, Donnerwetter! Du guckst aber auch genau hin.... Stimmt da muss ne Leerzeile folgen.
Viele Grüße, Rolf
Literatur: http://www.jmarshall.com/easy/cgi/german/cgi_anmerkungen.html#location
"Location:" ist ebenfalls ein HTTP-Header. Dieses Beispiel unterstützt also meine Aussage. Abgesehen davon, dass das von dir gepostete Beispiel streng genommen gar kein HTTP-Header ist, da die abschließende Leerzeile fehlt.
bye, Frank!
Hallo Frank, Donnerwetter! Du guckst aber auch genau hin.... Stimmt da muss ne Leerzeile folgen.
Viele Grüße, Rolf
Literatur: http://www.jmarshall.com/easy/cgi/german/cgi_anmerkungen.html#location
Ich will ja nicht unken, aber eigentlich müssen zwei Leerzeilen folgen..., so in etwa...
$url = "http://www.homepage.de/index.html\n\n";
print "location: $url";
Gruß und Danke für die Antworten
Peter
hi!
Ich will ja nicht unken, aber eigentlich müssen zwei Leerzeilen folgen..., so in etwa...
$url = "http://www.homepage.de/index.html\n\n";
print "location: $url";
Das ist eine Leerzeile. Ein \n steht nicht für eine Leerzeile, sondern für einen Zeilenvorschub ("newline"). Mit dem ersten \n springt er in die nächste Zeile, mit dem zweiten \n nochmal eine Zeile weiter. Diese Zeile bleibt dann leer, also eine Leerzeile.
bye, Frank!