PERL: ping and e-mail


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting PERL: ping and e-mail
# 15  
Old 03-25-2003
The file that had the emails is actually empty after that? Strange..

Here's a site that tells several ways to read a file:
http://bip.weizmann.ac.il/course/pro...put/index.html
http://bip.weizmann.ac.il/course/pro..._output/7.html

Here's one of the ways from that website:
Code:
#get list of e-mail addresses to send e-mails to

open (EMAILS, "< c:\\Documents and Settings\\emaillist.txt") || die ("Can't open e-mail list: $!");

my $from = "colinctdprep\@oceanfree.net"; 
my $subject = "PERL pinghost program report";

while (my $to = <EMAILS>) {

  chomp ($to);

  $smtp = Net::SMTP->new("icmp");
  die "Could not make connection: $!" unless $smtp;

  $smtp->mail($from);
  $smtp->to($to);

  $smtp->data();
  $smtp->datasend("To: $to\n");
  $smtp->datasend("From: $from\n");
  $smtp->datasend("Subject: $subject\n");
  $smtp->datasend("\n");

  foreach(@pingDetails) {
    $smtp->datasend("$_\n");
  }

  $smtp->dataend();
  $smtp->quit();

}

close (EMAILS);

and here's another way:
Code:
#get list of e-mail addresses to send e-mails to

open (EMAILS, "< c:\\Documents and Settings\\emaillist.txt") || die ("Can't open e-mail list: $!");
my @TO = <EMAILS>;
chomp (@TO);
close (EMAILS);

my $from = "colinctdprep\@oceanfree.net"; 
my $subject = "PERL pinghost program report";

my $to_addr;

foreach $to_addr (@TO) {

  $smtp = Net::SMTP->new("icmp");
  die "Could not make connection: $!" unless $smtp;

  $smtp->mail($from);
  $smtp->to($to_addr);

  $smtp->data();
  $smtp->datasend("To: $to_addr\n");
  $smtp->datasend("From: $from\n");
  $smtp->datasend("Subject: $subject\n");
  $smtp->datasend("\n");

  foreach(@pingDetails) {
    $smtp->datasend("$_\n");
  }

  $smtp->dataend();
  $smtp->quit();

}

# 16  
Old 03-26-2003
From what I've read, I think this was the problem:
Quote:
my @TO = readdir EMAILS
I think oombera gave you the correction with this suggestion:
Quote:
while (my $to = <EMAILS> ) {
Failing this, I would also recommend adding a backslash "\" to each email address - otherwise Perl may be mistaking it for an array!!!

Keep us posted!
# 17  
Old 03-26-2003
that works but its having trouble connecting to send the e-mail.

$smtp = Net::SMTP->new("icmp");
die "Could not make connection: $!" unless $smtp;

It diplays the "Could not make connection" on the screen
the ("icmp") seems to be the problem iam guessing. The machine i using to run the script is connected directly to the internet, no proxy.

What should this line be?
# 18  
Old 03-26-2003
"icmp" should be replaced with whatever the name of your SMTP server is. If you're using an email program that connects to the same server, that may be one way to find out the name of it if you don't know it. It'll probably look something like "smtp.your_isp.com"
# 19  
Old 03-26-2003
Quote:
Originally posted by oombera
"icmp" should be replaced with whatever the name of your SMTP server is. If you're using an email program that connects to the same server, that may be one way to find out the name of it if you don't know it. It'll probably look something like "smtp.your_isp.com"
Seeing as you're on a windows box, you're probably using Outlook / Outlook Express for Email?

You should be able to find out from there, under the accounts menu, in the properties is a field marked:

Outgoing mail (SMTP)

this is probably what you want.
# 20  
Old 03-28-2003
Smilie got it to work !!!

Thanks oombera and WIntellect for your help!
# 21  
Old 03-28-2003
Smilie got it to work !!!

Thanks oombera and WIntellect for your help! Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Ping test sends mail when ping fails

help with bash script! im am working on this script to make sure my server will stay online, so i made this script.. HOSTS="192.168.138.155" COUNT=4 pingtest(){ for myhost in "$@" do ping -c "$COUNT" "$myhost" &&return 1 done return 0 } if pingtest $HOSTS #100% failed... (4 Replies)
Discussion started by: mort3924
4 Replies

2. Shell Programming and Scripting

Perl : code on ping showing difference result

Hi all, I am using the below code to ping a code and print whehter the connection is successful or not. use Net::Ping; $p = Net::Ping->new(); my $host = "x.x.x.x"; # print "$host is alive.\n" if $p->ping($host); if ($p->ping($host,3)) { print... (0 Replies)
Discussion started by: scriptscript
0 Replies

3. Shell Programming and Scripting

Perl : ping for multiple IPs not working

I have written perl ping program to ping list of IPs one by one and print the status.But each and every time it is showing the status as Pass for all IPs even though the IP is wrong. multipleip.pl use Net::Ping; $p = Net::Ping->new(); $ifile="inventory.txt"; ... (2 Replies)
Discussion started by: scriptscript
2 Replies

4. Shell Programming and Scripting

Animation Ping on Solaris Like Cisco Ping

Hi, I develop simple animation ping script on Solaris Platform. It is like Cisco ping. Examples and source code are below. bash-3.00$ gokcell 152.155.180.8 30 Sending 30 Ping Packets to 152.155.180.8 !!!!!!!!!!!!!.!!!!!!!!!!!!!!!. % 93.33 success... % 6.66 packet loss...... (1 Reply)
Discussion started by: gokcell
1 Replies

5. Shell Programming and Scripting

Ping and Perl

Hi There i have little situation that i could us some help with. We have a dhcp server, but the problem is if that a machine has been offline for a while it loose it's lease and so if you ping it you get unknown host if there a way using perl that it will continue to try and ping it, even tho... (1 Reply)
Discussion started by: ab52
1 Replies

6. Programming

Perl Ping Loop

Hi All i have an issue with ping, we are using dhcp and so if the machine has been offline and i ping it, i get " ping: unknown host <hostname> is there a way i can stick a loop somewhere so it would keep trying when it got the unknown host error and then when the machine came back online... (2 Replies)
Discussion started by: ab52
2 Replies

7. Shell Programming and Scripting

perl return ips after successful ping

Hi, I have this script in ksh, what it does is loop every ip in the nodes_nso and produced another variable up_nodes_nso of only ip's that are up. nodes_nso=$(cat /var/tmp/nodes.txt) echo "ICMP Tests:" up_nodes_nso="" for ip in ${nodes_nso} ; do ping ${ip} 3 > /dev/null if ; then ... (1 Reply)
Discussion started by: borderblaster
1 Replies

8. Shell Programming and Scripting

perl ping script

Dear All Any one able been writing any command ping in perl??basically i want to wring ping script to send 1000 packet ping then initiate "Ctrl C' terminal to ping example below:-] #!/usr/local/bin/perl $r=`/bin/ping 172.23.11.254`; Thank You ---------- Post updated at 10:27 PM ----------... (2 Replies)
Discussion started by: netxus
2 Replies

9. Shell Programming and Scripting

Perl telnet to cisco router and compare the ping ms

All Please help, i will telnet to router to obain the ping status and compare, if higher than normal latency, i will have further action.. if i do the telent and in perl script then .... e.g the result i obtain from the router will be =' Success rate is 100 percent (5/5), round-trip... (4 Replies)
Discussion started by: optimus
4 Replies

10. Shell Programming and Scripting

Perl Ping Determine Success or Fail

I know how to ping in Perl. That is easy. What I am wondering is if there is a way for Perl to determine whether the ping was successful or not. Or do I need to save the results out and parse the results seperately looking for the #of tries and successful revieves. Thanks. (1 Reply)
Discussion started by: gdboling
1 Replies
Login or Register to Ask a Question