Schrift
[thread]139[/thread]

suche perlscript, wenn ping 4x negativ, dann mail (Seite 3)



<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten
steffenw
 2004-03-03 22:22
#836 #836
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Mein Modul "SendMail.pm" dafür:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# POD-Dokumentation - siehe Dateiende!
package User::InetMw::SendMail;
use strict;
use vars qw(@ISA @EXPORT $VERSION);
use Exporter;
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = qw(&SendMail);

sub _separator
{ return join ';', split /[ ,;]+/, shift;
}

use Win32::OLE;

sub SendMail
{ my(%mail_props) = @_;
return 'No Addressee to send mail to.' unless $mail_props{to};
my ($mail, $item);
$mail = new Win32::OLE('Outlook.Application')
and $item = $mail->CreateItem(0); # 0 = mail item.
return 'Outlook is not running, cannot send mail.' unless $item;
#$item->{From} = $mail_props{from} if $mail_props{from};
$item->{To} = _separator $mail_props{to};
$item->{Cc} = _separator $mail_props{cc} if $mail_props{cc};
$item->{Bcc} = _separator $mail_props{bcc} if $mail_props{bcc};
$item->{Importance} =
($mail_props{importance}) ? $mail_props{importance} : 1; # 2=high, 1=normal, 0=low
$item->{Subject} = $mail_props{subject} || '[No Subject]';
$mail_props{body} =~ s/([^\n])$/$1\n/;
$item->{Body} = $mail_props{body};
if ($mail_props{attachments})
{ my $attach = $item->{Attachments};
foreach my $attach_file (@{$mail_props{attachments}})
{ return 'No file indicated.' unless $attach_file;
return "$attach_file isn't any file." unless -f $attach_file;
$attach->add($attach_file);
}
}
$item->Send() or return 'Send aborted.';
return 0;
}

1;



=head1 NAME

User::InetMw:SendMail - Mails über Outlook senden

=head1 SYNOPSIS

use User::InetMw::SendMail;
my $error = SendMail
( to => 'name@domain.de;name@domain.com',
cc => 'ccname@domain.de', # optional
bcc => 'bccname@domain.de', # optional
importance => 1, # optional (2=high, 1=normal, 0=low)
subject => 'subject',
body => 'Mailtext',
attachments => ['//host/dir/file.xxx'],
);

=head1 DESCRIPTION

Mails werden mit der Adresse des aktuellen Benutzers gesendet.
Zwischen mehreren Mailadressen steht ';', ',', oder ' '.

=head1 AUTHOR

Steffen Winkler, 08.01.2003

=cut
$SIG{USER} = sub {love 'Perl' or die};
Strat
 2004-03-03 23:26
#837 #837
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=cc,02.03.2004, 21:14][quote=Strat,28.02.2004, 23:20]warum sorgst du so ohne irgendwelche Notwendigkeit dafuer, dass es nur ein Teil der Leute benuetzen kann?[/quote]

weil ich mit sendmail und postfix noch nie ein problem gehabt habe ![/quote]
dann installier mir das script mal bitte auf einem Windows-PC, wo es weder sendmail noch postfix gibt...

Man kann ja sendmail etc. optional verwenden, sollte aber immer eine Standardloesung waehlen, die so wenig Leute wie moeglich ausschliesst (also sendmail mit fallback auf SMTP). Es gibt diese ganzen Loesungen fuer Perl, und man kann Perl auch professionell verwenden. Wenn es 100% feststeht, dass auf jeder Maschine, auf der das script jemals laufen wird, sendmail laeuft, dann ok (aber dann sollte das als abhaengigkeit dokumentiert sein). Ich habe genuegend OS-Migrationen erlebt, wo solche sachen absolut unnoetige Probleme gemacht haben.

Aber ping direkt zu verwenden ist noch bei weitem unsicherer, weil da jede Shell was anderes zurueckliefert, und man im schlimmsten Fall auch schnell eine endlosschleife zusammenbastelt.

@steffenw: mir ist kein Grund bekannt, von 5.6.x nicht auf perl5.8.0 oder sogar 5.8.2 upzugraden, weil das die ersten Perl-Versionen sind, die vernuenftig getestet sind, waehrend die Bugliste fuer die 5.6.x-Versionen ewig lang ist (und wohl auch nicht mehr kleiner wird)\n\n

<!--EDIT|Strat|1078349254-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
cc
 2004-03-04 00:14
#838 #838
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hallo strat

bitte nur nicht aufregen.
ich lasse alle meine perl scripte unter linux laufen.
unter windows habe schlechte erfahrungen gehabt
und habe sein lassen.
und verstehe mich bitte nicht falsch mit exchange 5.5
haben wir viel probleme.
mit sendmail oder postfix habe bis jetzt keine probleme gehabt.
du hast aber auch recht, scripte sollen flexibel sein
und überall einsetzbar sein.

gruss und schönen abend
cc
Maluku
 2004-03-04 17:44
#839 #839
User since
2003-10-02
27 Artikel
BenutzerIn
[Homepage] [default_avatar]
Cygwin Perl 5.6.1 kennt Das Siganl ALARM und es gibt sogar ein passendes Sendmailo für Windows.
Das macht ca. 3 Dateien
(perl.exe , cygwin1.dll , sendmail.exe, die einfach im skriptverzeichnis liegend auch unter Windows laufen.)

Das ist nun nicht wirklich kompliziert!
Code (perl): ()
1
2
3
4
5
&#36_='';
s%%`^.*`s;.*;uhtnmo;;a>lha~a>inu~a>fmk~a>rou~a>duM~a>btl~s;&&&&&&;!d1!l2!b3!i4!f5!r6q(?);e;Z`
`}a>&&&`sub# "1#{#"_=shift#;s^"2^"3#^;``;~`return #"_#}``^!&&`"1(#""2)#\.`Z%;
s~Z~print~g;s/#/\\/g;s/`(.)(.+?)`(.+?)`/s&#36{1}&#36{2}&#36{1}&#36{3}&#36{1}g\;/g;s;&;(.);g;y^"^&#36^;
print;
Strat
 2004-03-04 21:19
#840 #840
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=cc,03.03.2004, 23:14]hallo strat

bitte nur nicht aufregen.
ich lasse alle meine perl scripte unter linux laufen.
unter windows habe schlechte erfahrungen gehabt
und habe sein lassen.
und verstehe mich bitte nicht falsch mit exchange 5.5
haben wir viel probleme.
mit sendmail oder postfix habe bis jetzt keine probleme gehabt.
du hast aber auch recht, scripte sollen flexibel sein
und überall einsetzbar sein.

gruss und schönen abend
cc[/quote]
@cc: es ging nicht gegen dich, sondern primaer gegen E|B's Antwort und die Fortfuehrung einer sehr schlechten Idee

Im Grunde laeuft das auf das folgende Problem hinaus:

Was ist besser:
Code: (dl )
1
2
my @files = `dir /b *.*`;
chomp(@files);

oder:
Code: (dl )
my @files = glob("*.*");

Ersteres ist halt in der Regel eine Notloesung, die aus Unwissenheit oder mit voller Absicht (oder Nachlaessigkeit?)entstanden ist. Gegen die Absicht habe ich nichts, weil es manchmal dafuer einfach gute Gruende gibt, gegen die Unwissenheit jedoch schon.

Viele Leute hier im Forum sind bereit, dazuzulernen und nach besseren Loesungsmoeglichkeiten zu suchen. Und wenn ich dann von Leuten, die recht viel Ahnung von Perl und Computern haben, als Antwort fuer ein einfach mit Perl-Mitteln loesbares Problem die Ausfuehrung eines so unsicheren Shell-Kommandos wie system("ping xxx.xxx.xxx.xxx") sehe (wodurch der Hilfesuchende vor Probleme gestellt wird, von denen er vielleicht noch nichts ahnt und die er von daher nicht einschaetzen kann), dann frage ich mich echt, was das soll, gerade, wo wir diese Diskussion schon oefter hatten.

Die Benutzung von sendmail finde ich ok, wenn das Script sowieso nur unter Linux laufen kann (z.B. Administrationsscripte fuer sendmail), aber eine unnoetige fehlerquelle fuer alle anderen probleme. Und je weniger externe Programme man braucht (die sich ja auch beim naechsten Update oder Betriebssystem aendern koennen), desto sicherer wird das Programm laufen.

Ich entdecke bei Kunden oefter Probleme, die aus einer solchen Unwissenheit oder Nachlaessigkeit entstanden sind, und die ihn dann in der Regel viel Geld kosten (ok, haeufig Geld, das ich dann bekomme, aber ich programmiere lieber als zu reparieren). Und beim Entwickeln ist sowas normalerweise kaum Mehraufwand, man muss halt nur wissen, dass es geht.

Danke, dir auch einen schoenen Abend,

Martin (aka Strat)\n\n

<!--EDIT|Strat|1078428031-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Strat
 2004-03-04 21:22
#841 #841
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Maluku,04.03.2004, 16:44]... und es gibt sogar ein passendes Sendmailo für Windows.
Das macht ca. 3 Dateien
(perl.exe , cygwin1.dll , sendmail.exe, die einfach im skriptverzeichnis liegend auch unter Windows laufen.)

Das ist nun nicht wirklich kompliziert![/quote]
Hast Du zufaellig eine Url, von wo man sendmail bekommen kann? Ich kenne nur die kommerzielle von http://www.perl2exe.com
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten



View all threads created 2004-01-11 17:49.