用Perl查询天气并发送邮件

use Net::SMTP;
use Net::SMTP_auth;
use MIME::Base64;
###############################################
use LWP::Simple;
use strict;
use Encode;
use HTML::TableExtract;
use DBI;
$| = 1;
my $html=get("http://www.weather.com.cn/html/weather/101010100.shtml");
my $tree = HTML::TableExtract->new( attribs => { class => 'yuBaoTable' } );
$tree->parse($html);
my $i=0;
my $msg="";
my $m="";
$| = 1;
foreach my $ts ($tree->tables) {
    if ($i<2){
        foreach my $row ($ts->rows) {
            $msg=join(',', @$row);
            $msg = encode("gb2312", $msg);
           my @aa=split(/,/,$msg);
           foreach my $item(@aa){
             if ($item){
                $m=$m.$item.";";
                $m=~s/\s//g;
             }
           }
       }
        $i++;
    }
    $m = $m . "lbk";
}
$m=~tr/;/\n/s;
$m =~ s/lbk/\n/g;
################################################
my $mail_server = 'smtp.163.com';
my $mail_from = 'libingkui0102@163.com';
my $mail_to = 'libingkui0102@163.com';
my $uname='libingkui0102';
my $passwd='*********';

#开启Debug模式
#$smtp = Net::SMTP->new("$mail_server" , Debug => 1);
#普通发送模式
my $smtp = Net::SMTP->new("$mail_server" );
$smtp->auth("$uname", "$passwd");
$smtp->mail("$mail_from");
$smtp->to("$mail_to");
$smtp->data();
$smtp->datasend("To: $mail_from\n");
#$smtp->datasend("Cc: 'libingkui0102@163.com', 'libingkui0102@163.com'\n");
$smtp->datasend("From: $mail_from\n");
$smtp->datasend("Reply-To: $mail_from\n");
$smtp->datasend("Return-Path: $mail_from\n");
$smtp->datasend("Subject: 1 Subject\n");
#$smtp->datasend("Content-Type: text/plain; ChartSet=gb2312");
$smtp->datasend("\n");

# Send your email content
#$smtp->datasend("Hello world!世界, 你好!\n");
$smtp->datasend("$m");
$smtp->datasend("\n");
$smtp->dataend();
$smtp->quit;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值