Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich bin gerade dabei zu versuchen mir ein kleines Mailscript zu schreiben, was mir Mails anzeigt. Nun habe ich zwei sehr merkwürdige Phänomene. Hier erstmal das Script:


#!/usr/bin/perl -w

use CGI::Carp qw(fatalsToBrowser);

use CGI qw(:standard);

use strict;


use vars qw($destination_mail $file $mail $path $q $source_mail $subject

			@filelist @maillist);


# Path to the maildirectory

$path = "/home/benutzer/Maildir/new";


# open directory and read filenames

opendir(DIR, $path);

while($file = readdir(DIR)) {

	next if($file eq '.' || $file eq '..');

	push(@filelist,$file);

}

closedir(DIR);


# open and save mailfiles in array

for (@filelist) {

	open MAIL, "<$path/$_"

		or die "Kann Mailfile $_ nicht öffnen: $!";

	while (<MAIL>) {

		$mail .= $_;

	}

	close MAIL;

	push(@maillist,$mail);

}


# HTML Output

print header;

      start_html('Mailtest');


if(@maillist) {

	for (@maillist) {

		($source_mail) = /From:\s(.*)/;

		($destination_mail) = /To:\s(.*)/;

		($subject) = /Subject:\s(.*)/;

	}

	print

		"<b>Von: </b>$source_mail<br>\n",

		"<b>An: </b>$destination_mail<br>\n",

		"<b>Betreff: </b>$subject<br>\n",

		"<br><br>\n";

} else {

	print "Keine neuen Mails vorhanden!<br>";

}


print end_html;

Nun das 1. komische Ding:

Wenn ich das Script so im Browser abrufe "funktioniert" es (also nicht korrekt aber das siehe 2. Problem). Wenn ich allerdings statt perl -w nur perl mache, dann bekomme ich im Browser nen Internal Error und auf der Konsole sagt er mir ..:Command not found. Ich habe solch ein Problem noch nie gehabt, zumal andere Scripte ganz normal nur mir #!/usr/bin/perl ja auch laufen. Hat jemand eine Idee woran das liegen kann?

Das 2. komische Ding:

Wenn ich die CGI Sachen wie header, start_html usw. aus dem Script entferne (weil mit ihnen ja immer: (offline mode: enter name=value pairs on standard input) auf der Konsole kommt) und auf der Konsole starte, dann funktioniert es einwandfrei. Es stehen also in Felder "Von.." usw. die richtigen Sachen und er hat damit die Mail auch eingelesen. Wenn ich es aber im Browser aufrufe geht er in den elsezweig und zeigt mir an "Keine neuen Mails vorhanden!", obwohl ja nachweislich welche da sind. Er dreht es irgendwie genau um. Woran kann das liegen?

Ich bin für jeglichen Tip dankbar (auch Anregungen, wie ich es einfacher oder besser programmieren kann nehme ich gern an!)!

mfg

Geschrieben

Das Problem mit dem perl und dem perl -w hat sich erledigt. Leider hat das FTP Programm scheinbar falsch übertragen und die ganzen DOS ^M an jede Zeile gehängt. Damit kam perl dann scheinbar nicht mehr klar.

Nun funktioniert es auch mit #!/usr/bin/perl. Das Problem mit den ansyncronen Ausgaben besteht aber weiterhin. :(

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...