perl发邮件

1496阅读 0评论2012-12-14 dba_life
分类:LINUX

主要是使用的
use Net::SMTP_auth;
 

点击(此处)折叠或打开

  1. use strict;
  2. use Net::SMTP_auth;
  3. use Text::Iconv;
  4. use MIME::Base64;
  5. use Data::Dumper;

  6. my $mailhost = 'mail.163.com'; ###邮件服务器
  7. my $mailfrom = 'test_1@163.com';
  8. my @mail_account = ('test_2@163.com');
  9. my $mailuser = 'test';
  10. my $mailpasswd = '123,';
  11. my $filename    = '/home/dbbakup.log';
  12. my $subject    = 'dbbackup message';

  13. open(MYFILE,"$filename") || die "$!";
  14. my $text;
  15. while (<MYFILE>){
  16.   $text .= $_."
    "
    ;
  17. }
  18. close(MYFILE);

  19. &SendMail($text,$subject);

  20. sub SendMail() {
  21.     my $text = $_[0];
  22.     my $subject = $_[1];
  23.     my $smtp = Net::SMTP_auth->new( $mailhost, Timeout => 120, Debug => 0, Hello => 'localhost' );
  24.     $smtp->auth( 'LOGIN', $mailuser, $mailpasswd );

  25.     foreach my $mailto (@mail_account) {
  26.         $smtp->mail($mailfrom);
  27.         $smtp->to($mailto);
  28.         $smtp->data();
  29.         $smtp->datasend("Content-Type:text/html;charset=utf-8\n");
  30.         $smtp->datasend("Content-Transfer-Encoding:base64\n");
  31.         $smtp->datasend( "From:=?utf-8?B?" . encode_base64( 'JianKong', '' ) . "?= <$mailfrom> \n" );
  32.         $smtp->datasend( "To:=?utf-8?B?" . encode_base64( 'JianKong', '' ) . "?= <$mailto> \n" );
  33.         $smtp->datasend( "Subject:=?utf-8?B?" . encode_base64( $subject, '' ) . "?=\n\n" );
  34.         $smtp->datasend();
  35.         $smtp->datasend( encode_base64( $text, '' ) . " \n" );
  36.         $smtp->dataend();
  37.     }
  38.     $smtp->quit;
  39. }

上一篇:perl解析excel文件
下一篇:shell脚本学习指南-管道的神奇魔力