保存一下,在你的代码中require它即可

   
   
   
   
  1. =head  
  2. need install module Net::SMTP_auth,  
  3. you can type the following command at  
  4. your shell prompt  
  5. cpan -i Net::SMTP_auth  
  6. =cut  
  7.   
  8. use Net::SMTP;  
  9. use Fcntl qw/:DEFAULT :flock/;  
  10.   
  11. sub sendmail {  
  12.     my $msg = shift;  
  13.   
  14.     my $smtp = Net::SMTP->new(  
  15.                               Host    => 'smtp.163.com',  
  16.                               Timeout => 120,  
  17.                               Debug   => 1  
  18.                              );  
  19.   
  20.     if (defined $smtp) {  
  21.         $smtp->auth("xxx","xxx");  
  22.         $smtp->mail("xxx\@163.com");  
  23.         $smtp->to("xxx\@126.com");  
  24.         $smtp->data();  
  25.   
  26.         $smtp->datasend("From: Server Monitor <xxx\@163.com>\n");  
  27.         $smtp->datasend("To: SA team <sa\@abc.com>\n");  
  28.         $smtp->datasend("Subject: Server Warnings\n");  
  29.         $smtp->datasend("\n");  
  30.         $smtp->datasend("$msg\n");  
  31.   
  32.         $smtp->datasend();  
  33.         $smtp->quit;  
  34.   
  35.     }  
  36. }  
  37.   
  38. sub printlog {  
  39.     my $str = shift;  
  40.     open LOG,'>>','log.txt' or die "$!\n";  
  41.     flock LOG,LOCK_EX;  
  42.     print LOG "$str\n";  
  43.     flock LOG,LOCK_UN;  
  44.     close LOG;  
  45. }  
  46.  
  47. sub daemon { 
  48. my $pid = fork(); 
  49. die "can't fork progress: $!\n" unless defined $pid; 
  50. exit 0 if $pid; 
  51. setsid() or die "can't create a new session: $!\n"; 
  52.  
  53. open STDIN,'<','/dev/null'; 
  54. open STDOUT,'>','/dev/null'; 
  55. open STDERR,'>&',STDOUT; 
  56.  
  57. chdir "/"; 
  58. umask 022; 
  59. $ENV{'PATH'} = '/bin:/sbin:/usr/bin:/usr/sbin'; 
  60.  
  61. return $$; 
  62. }
  63.  
  64. 1;