Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6340[/thread]

problem mit mail senden

Leser: 1


<< >> 10 Einträge, 1 Seite
cc
 2004-06-16 18:34
#83420 #83420
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hi

das ist ein teil von meinem ftp script:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...............................................................................
# prüfen ob file vorhanden ist
my $check= grep /\Q$new\E/, $ftp->ls;
if ($check) { die "achtung file existiert !\n" and next;
{
#nur wenn file vorhanden eine error mail schicken
open(MAIL, "|/usr/sbin/sendmail -t") || die "Cant send mail. Reason:
+$!";
print MAIL "from:$sender\n";
print MAIL "to:$recipient\n";
print MAIL "subject: file existiert !\n";
print MAIL "file existiert ! \n";
close(MAIL);
}
}
#quit FTP
$ftp->quit;
...............................................................................


1.) dieser teil sollte zuerst überprüfen auf dem remote ftp server, ob das file existiert und das funktioniert richtig.
2.) falls das file existiert, sollte "die" und eine error mail senden
3.) falls das file nicht mehr existiert, sollte nicht sterben
und keine mail schicken.

mein problem ist, wenn file existiert, bekomme eben keine mails,
obwohl mail adresse und pfad zu sendmail korrekt sind.
wie kann ich erzwingen, im Fall 2.) damit diese mail geschickt wird ?
renee
 2004-06-16 18:36
#83421 #83421
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
zwischen Header und Body muss eine Leerzeile, also:
Code: (dl )
print MAIL "subject: file existiert !\n\n";
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffenw
 2004-06-16 18:37
#83422 #83422
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
nach die ist Ende
$SIG{USER} = sub {love 'Perl' or die};
renee
 2004-06-16 18:40
#83423 #83423
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
stimmt, habe ich überlesen. Ich würde ein "print" daraus machen!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
cc
 2004-06-16 18:55
#83424 #83424
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
danke !

ihr habt recht.
habe reihenfolge geänder und funktioniert bestens.
Dubu
 2004-06-21 13:11
#83425 #83425
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=cc,16.06.2004, 16:34]
Code: (dl )
1
2
3
...
       my $check= grep /\Q$new\E/, $ftp->ls;
...
[/quote]
Keine gute Idee. Das prueft, ob der neue Dateiname als Teil eines vorhandenen Dateinames auftaucht. Warum kein Test auf Gleichheit? Perl kennt ja mehr als Regexen. :)
Code: (dl )
my $check = grep { $_ eq $new } $ftp->ls;
cc
 2005-07-29 02:01
#83426 #83426
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
herzlichen dank !

habe nur ein problem das ganze script schickt immer diese mail
und soll sie nur schicken, wenn der file dort existiert.
wenn kein file gefunden wird, sollte keine mail geschickt werden
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# prüfen ob file vorhanden ist
my $check = grep { $_ eq $new } $ftp->ls;
if ($check) {

#nur wenn file vorhanden eine error mail schicken
open(MAIL, "|/usr/sbin/sendmail -t") || die "Cant send mail. Reason:
+$!";
print MAIL "from:$sender\n";
print MAIL "to:$recipient\n";
print MAIL "subject: file existiert !\n";
print MAIL "file existiert ! \n";
close(MAIL);

die "achtung file existiert !\n" and next;

}
#quit FTP
$ftp->quit;
\n\n

<!--EDIT|cc|1122588143-->
J-jayz-Z
 2005-07-29 02:48
#83427 #83427
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Da wird wohl der Fehler liegen
Code: (dl )
die "achtung file existiert !\n" and next;

Damit wird der Ablauf und das komplette Script gekillt.
Das and next ist ohne Bedeutung. Wie es renee schon sagte, mach enfach ein print daraus:
Code: (dl )
print "achtung file existiert !\n" and next;
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Gast Gast
 2005-07-29 16:40
#83428 #83428
Warum eigentlich direkt und nicht über ein CPAN-Modul?
renee
 2005-07-29 16:51
#83429 #83429
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
und mein post weiter oben wurde auch ignoriert... Zwischen Header und Body muss eine Leerzeile!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 10 Einträge, 1 Seite



View all threads created 2004-06-16 18:34.