Zum Inhalt springen

Kleines Perl Skript funzt net


MFBASSIST

Empfohlene Beiträge

Hallo, hab ein kleines Perl Skript geschrieben. Jedoch finde ich den Fehler nicht. Hab ich da irgendwas verfrimelt? :)

Danke schonmal !!!

MFG Martin

#!/usr/bin/perl

# Martin Fandel

# 28.05.02

# Pop3 Protocoll benutzen

use Net::POP3;

# Das Modul muss evtl. Nachinstalliert werden !!!

use Config::IniFiles;

#############

# Variablen #

#############

# Mailoptionen

$von = "pop3skript\@bravo";

$an = "fuchs\@bitburg-pruem.de";

$mta = "/usr/bin/sendmail";

# Ini Datei Variablen

$inifile = "/tmp/fil.ini";

# Pause

$sleep = 60;

#################

# Hauptprogramm #

#################

sub popdaten

{

$cfg = new Config::IniFiles -file => "$inifile" ;

$popuser = $cfg->val('POP3HOST', 'POP3UID') ;

$poppass = $cfg->val('POP3HOST', 'POP3PWD') ;

$popserv = $cfg->val('POP3HOST', 'POP3SERVER') ;

};

popdaten();

$pop3 = Net::POP3->new($popserv, Timeout => 30);

print "Einloggen in $popserv als $popuser ...\n";

$messagenum = $pop3->login($popuser,$poppass) || die "Konnte nicht in $popserv einloggen";

print "Sie haben $messagenum Nachrichten\n\n";

$pop3->quit();

if ($messagenum > 1)

{

open (MAIL, '|$mta -t');

print MAIL "From: $von\n";

print MAIL "To: $an\n";

print MAIL "Subject: Es befinden sich nachrichten auf $popserv\n";

print MAIL "Es befinden sich $messagenum Nachrichten auf $popserv\n";

ENDE

close MAILER;

sleep $sleep;

}

else

sleep $sleep;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du keine Fehlermeldung postest, kann man halt nur fragen:

-kannst du generell perl Scripte ausführen?

-sind die beiden benötigten Module installiert?

-stimmen die Zugangsdaten?

-hast du in der Doku der Module nachgeschaut ob dein Code so stimmt?

Gruß Jaraz

PS: Ein Forum ist dafür da, konkrete Fragen zu beantworten bzw Punkte zu diskutieren. Hier hat keiner Lust deinen Job zu machen bzw deinen debugger zu spielen. Ansonsten kann ich dir meinen Stundensatz mailen du machst mir einen Auftrag und ich löse dann das Problem. :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von jomama

Was habt ihr eigentlich alle für ein Problem. Wer ihm nicht antworten will, soll halt einfach die Klappe halten, das bringt den armen Dau-Abwimmler doch kein Stück weiter.

Furchtbar!

Und wieso hilfst du ihm dann nicht, sondern kritisierst hier einfach Personen die ihm wenigstens Tips geben wie er zu einer Lösung kommt? :confused:

Er postet mittlerweile das dritte mal dieses Skript in leicht abgewandelten Versionen. Jedesmal mit dem Hinweiss, es funktioniert nicht. Anscheinend hat er ein falsches Verständnis von einem Forum. Wir sind hier nun mal keine Support Hotline.

Wenn alle ihn ignorieren, kommt er auch nicht weiter....

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

mei seid ihr fieß ;-)

Also ich kann nur für mich sprechen und ich hab sogar schonmal einen ganzen Arbeitstag für ihn geopfert, um ein Script zu erstellen, weil es mich einfach interessiert hat und ich würd das - wenn die Zeit zur Verfügung steht - jederzeit wieder tun!!

Also ich stell mich gern als Supporter zur Verfügung, da ich dabei auch was lernen kann - wenn etwas nicht so klappt wie es das soll!!

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und wieso hilfst du ihm dann nicht, sondern kritisierst hier einfach Personen die ihm wenigstens Tips geben wie er zu einer Lösung kommt? :confused:

Er postet mittlerweile das dritte mal dieses Skript in leicht abgewandelten Versionen. Jedesmal mit dem Hinweiss, es funktioniert nicht. Anscheinend hat er ein falsches Verständnis von einem Forum. Wir sind hier nun mal keine Support Hotline.

Wenn alle ihn ignorieren, kommt er auch nicht weiter....

Gruß Jaraz

Full ACK

mei seid ihr fieß ;-)

warum ?

Also ich kann nur für mich sprechen und ich hab sogar schonmal einen ganzen Arbeitstag für ihn geopfert, um ein Script zu erstellen, weil es mich einfach interessiert hat und ich würd das - wenn die Zeit zur Verfügung steht - jederzeit wieder tun!!

Also ich stell mich gern als Supporter zur Verfügung, da ich dabei auch was lernen kann - wenn etwas nicht so klappt wie es das soll!!

mfg

ich hab auch keine probleme damit zu helfen aber wenn sich der hilfesuchende so quer stellt informationen raus zurücken und es nicht für nötig hält sich an bestimmte konventionen zu halten, nervt das...

*auf flame vorbereit* ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von MFBASSIST

open (MAIL, '|$mta -t');

print MAIL "From: $von\n";

print MAIL "To: $an\n";

print MAIL "Subject: Es befinden sich nachrichten auf $popserv\n";

print MAIL "Es befinden sich $messagenum Nachrichten auf $popserv\n";

ENDE

close MAILER;

sleep $sleep;

}

else

sleep $sleep;

Du schließt den Handle MAILER - und den gibts nicht...

Wenn du das ganze dann in einer Schleife laufen lässt (worauf die sleeps hinweisen - wozu würdest du die sonst brauchen?), kann er das nächste mal den Handle nichtmehr öffnen.

Und was soll das 'ENDE' da drinn? Ist das der komplette Code?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Schlaubi

ja das ist schon klar, aber wenn er wirklich nicht weiter weiß, was soll er denn dann machen? *g

Einfach erzählen was er macht...

-Sind die Module da?

-Funktioniert das einlesen der IniWerte? (kann er durch simples Ausgeben testen)

-wird die Anzahl der Mails im Postfach angezeigt? (Auch Ausgabe posten)

-läuft sendmail? (Versuchen Mail über Console zu senden)

-Benutzt er überhaupt Linux/Unix und nicht Windows? (Windows hat kein Sendmail)

Mir fallen noch duzende solcher Fragen ein.

Hier kann keiner hellsehen ;)

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Schlaubi

ja das ist schon klar, aber wenn er wirklich nicht weiter weiß, was soll er denn dann machen? *g

posten was ihm sein interpreter zu flüstert :)

Original geschrieben von Nachtgeist

Du schließt den Handle MAILER - und den gibts nicht...

Wenn du das ganze dann in einer Schleife laufen lässt (worauf die sleeps hinweisen - wozu würdest du die sonst brauchen?), kann er das nächste mal den Handle nichtmehr öffnen.

Und was soll das 'ENDE' da drinn? Ist das der komplette Code?

er meinte wohl so etwas...

open MAIL, '| /usr/sbin/sendmail -t';

print MAILER << 'ENDE';

From: $from

To: $to

Subject: Es befinden sich nachrichten auf $pop3server

Es befinden sich $messagenum Nachrichten auf $pop3server

ENDE

close MAILER;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich hab jetzt weiter nicht ins Forum geguckt sondern etliche Anleitungen durchgearbeitet und probiert und versucht bis ich es hinbekommen hab. Das Skript funktioniert jetzt. Die libnet module müssen installiert werden und das modul config ini files. :) Es funzt super ;) Jedoch hat mir das Forum nicht weitergeholfen da nur ironie stattfand. Trotzdem danke an die, die mir trotzdem geholfen haben

Hier das jetztige Skript:

#!/usr/bin/perl5.00503

# Name : Martin Fandel

# Datum : 28.05.02

# Art : Ini Files auslesen und POP3 Verbindung mit Benachrichtigung

# geändert : 31.05.02

##########

# Module #

##########

# Netzwerk Module

use Net::POP3;

# Konfiguration Module

use Config::IniFiles;

#############

# Variablen #

#############

# Name des Servers auf dem das Skript läuft

$server = "proxy";

# Mailoptionen bei angabe auf \ achten beim @

$von = "dizskript\@proxy";

$an = "fandel.martin\@bitburg-pruem.de, paas.matthias\@bitburg-pruem.de,

fuchs\@bitburg-pruem.de, fuju\@gmx.de";

$mta = "/usr/sbin/sendmail";

$sub = "POP3 Skript \@ $server";

$inhalt = "Es befinden sich $messagenum Nachrichten auf dem POP3 Server $popserv";

# Ini Datei Variablen

$inifile = "/usr/local/dizmail/inifil.ini";

# Wartezeit nach durchlauf

$pause = 100;

#################

# Hauptprogramm #

#################

##########################################

# Auf Fehler testen

( $von ) || die "Fehler: Es wurde kein Absender eingetragen !!!\n";

( $an ) || die "Fehler: Es wurde kein Adressat eingetragen !!!\n";

( $inifile ) || warn "Fehler: Es wurde kein Pfad zur INI Datei angegeben !!!\n";

##########################################

# Ini Datei auslesen

$cfg = new Config::IniFiles -file => "$inifile" ;

$popuser = $cfg->val('POP3HOST', 'POP3UID') ;

$poppass = $cfg->val('POP3HOST', 'POP3PWD') ;

$popserv = $cfg->val('POP3HOST', 'POP3SERVER') ;

#$sub = "POP3 Skript \@ $popserv";

##########################################

# In POP3 Server einloggen

POP:

$pop3 = Net::POP3->new($popserv, Timeout => 20) || die("Can't connect $popserv");

$messagenum = $pop3->login($popuser,$poppass) || die("Konnte nicht in $popserv einloggen");

$pop3->quit();

#$inhalt = "Es befinden sich $messagenum Mails auf dem POP3 Server $serv";

##########################################

# MTA Block

sub send_mail

{

if (not open(MAIL, "|$mta -t") )

{

print "Kein Mailer vorhanden, Pfad prüfen!!!";

}

else

{

print MAIL "From: $von \n";

print MAIL "To: $an \n";

print MAIL "Subject: $sub \n";

print MAIL "\n";

print MAIL "$inhalt";

close (MAIL);

}

}

#########################################

# If Anweisung ob Mails sich im POP3 Server befinden

if($messagenum>1)

{

print "Mail senden an Administrator\nNächster Ablauf in $pause Sekunden!!!\n";

send_mail();

sleep $pause;

goto POP;

}

else

{

print "Es befinden sich keine Mails auf dem POP3 Server $popserv\nNächster Ablauf in $pause Sekunden!!!\n";

sleep $pause;

goto POP;

}

:D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von MFBASSIST

Die libnet module müssen installiert werden und das modul config ini files. :) Es funzt super ;) Jedoch hat mir das Forum nicht weitergeholfen da nur ironie stattfand

Ich hoffe das da zum Schluss noch ein Smily fehlt, da ich dich in meiner ersten Antwort gefragt habe, ob die Module installiert sind.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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