亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4284 | 回復: 11
打印 上一主題 下一主題

自己寫的程序,檢查是否有新郵件,然后發(fā)短信告訴用戶 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-05-19 20:10 |只看該作者 |倒序瀏覽
本帖最后由 riverlee2008 于 2010-05-19 20:16 編輯

這個應該很實際,幫助你實時查看是否有新郵件.

前提:
1) 擁有一個gmail賬號
2) 擁有一個飛信賬號

注:感謝gmail的rss feed(https://mail.google.com/mail/feed/atom)和飛信API(http://sms.api.bz/)
個人要求(@_@): 好東西要分享,望版主給封個精華貼,再加點小分,在下萬分感謝~~~

用法: perl alertGmail.pl -u gmail@gmail.com -p gmaillpasswd -f 13912345678 -fp fetionpasswd -t 13912345678 -d 300

程序如下:
alertGmail.tar.gz (1.71 KB, 下載次數(shù): 50)
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;  
  4. use LWP::UserAgent;
  5. use Getopt::Long;

  6. my($user,$passwd,$from,$fetionpasswd,$to,$about,$help,$sleeptime);

  7. GetOptions ("u=s" => \$user,        # gmail account
  8.                   "p=s" => \$passwd,      # gmail account password
  9.                    "f=s" => \$from,        # fetion account telphone numver
  10.                    "fp=s"=> \$fetionpasswd,# fetion account apssword
  11.                    "t=s" => \$to,          # telphone number to send the gamil notification,can be fetion account itself
  12.                    "about"=> \$about,      # print out about page
  13.                    "d=i" => \$sleeptime,   # how often to check the mail(default 300s)
  14.                    "h|help"=>\$help
  15.                     );  # flag
  16. if($help){&usage();}
  17. if($about){&about();}
  18. if(!defined($user) || !defined($passwd) || !defined($from)|| !defined($fetionpasswd)||!defined($to)){
  19.         help();
  20. }                  

  21. my $gmail_address='https://mail.google.com/mail/feed/atom';

  22. my %hash; #in order to whether this email have been alerted

  23. if(!defined($sleeptime) || $sleeptime<=0){
  24.         $sleeptime=300;  #5 minis
  25. }

  26. ########################################
  27. #check wether the gamil account and password works
  28. unless(checkGmailAccount($user,$passwd,$gmail_address)){
  29.         print STDERR "Sorry,gmail account and password does not match.";
  30.         exit(1);
  31. }

  32. ###############################
  33. #main part
  34. while(1){
  35.         my $content=`curl -su $user:$passwd $gmail_address`;
  36.         
  37.         my %mail=parseMail($content);
  38.         foreach my $key (keys %mail){
  39.                 if(exists($hash{$key})){
  40.                         #do nothing, it has been send already
  41.                 }else{
  42.                         my $msg=join "\n",($mail{$key}->{'name'},$mail{$key}->{'email'},$mail{$key}->{'modified'},$mail{$key}->{'title'},$mail{$key}->{'summary'});
  43.                         $msg=substr($msg,0,180); #as fetion api can only send no more than 180 words
  44.                         sedSMS($from,$to,$fetionpasswd,$msg);
  45.                         sleep(4);  #then do with another mail
  46.                         $hash{$key}=1;
  47.                 }
  48.         }
  49.         sleep($sleeptime);
  50. }


  51. sub checkGmailAccount{
  52.         my($user,$passwd,$gmail_address) = @_;
  53.         my $content=`curl -su $user:$passwd $gmail_address`;
  54.         if($content=~/<TITLE>Unauthorized<\/TITLE>/){
  55.                 return 0;
  56.         }else{
  57.                 return 1;
  58.         }
  59. }

  60. sub parseMail{
  61.         my($s)=@_;
  62.         my %mail;
  63.         while($s=~/\<entry\>([\s\S]*?)\<\/entry\>/g){
  64.                 my $mail=$1;
  65.                 my($title,$summary,$modified,$name,$email);
  66.                 if($mail=~/\<title\>([\s\S]*?)\<\/title\>/){
  67.                         $title=$1;
  68.                 }
  69.                 if($mail=~/<summary>([\s\S]*?)<\/summary>/){
  70.                         $summary=$1;
  71.                 }
  72.                 if($mail=~/<modified>([\s\S]*?)<\/modified>/){
  73.                         $modified=$1;
  74.                 }
  75.                 if($mail=~/<name>([\s\S]*?)<\/name>/){
  76.                         $name=$1;
  77.                 }
  78.                 if($mail=~/<email>([\s\S]*?)<\/email>/){
  79.                         $email=$1;
  80.                 }
  81.                 my $key=join "\t",($email,$modified);
  82.                 $mail{$key}->{'title'}=$title;
  83.                 $mail{$key}->{'summary'}=$summary;
  84.                 $mail{$key}->{'modified'}=$modified;
  85.                 $mail{$key}->{'name'}=$name;
  86.                 $mail{$key}->{'email'}=$email;
  87.         }
  88.         return %mail;
  89. }

  90. sub sedSMS{
  91.         my($from,$to,$passwd,$msg) = @_;
  92.         my $ua = LWP::UserAgent->new;
  93.         my %form=("username"=>$from,"password"=>$passwd,"sendto"=>$to,"message"=>$msg);
  94.         my $headderref = { 'Accept-Charset' => "utf-8" };
  95.         my $apiurl='http://sms.api.bz/fetion.php';
  96.         my $res=$ua->post($apiurl,\%form,$headderref);
  97.         print $res->content,"\n";           
  98. }               

  99. sub usage(){
  100.         print <<HERE;
  101. perl alertGmail.pl -u gmail account  (etc.gmail\@gmail.com)
  102.                    -p gmail account password(etc.111111)
  103.                    -f fetion telphone number(etc. 13912345678)
  104.                    -fp fetion account password(etc.123456)
  105.                    -t to which telphone you want to send the SMS(etc.13912345678)
  106.                    -d how often to check the gmail(default 300s)
  107.                    -a print about page
  108.                    -h print out this page
  109. HERE
  110. exit(0);
  111. }

  112. sub about{
  113.         print <<HERE;
  114.                 ######
  115.             #####               #######
  116. ########    about myself    ###################         
  117. Master in Bioinformatics,Basic contact is below:
  118. ################################################
  119. #Author :Jiang Li
  120. #Email  :riverlee2008\@gmail.com
  121. #MSN    :riverlee2008\@live.cn
  122. #Address:Harbin Medical University
  123. #TEl    :+86-13936514493        
  124. #################################################
  125. HERE
  126. exit(0);
  127. }
復制代碼

評分

參與人數(shù) 1可用積分 +10 收起 理由
蘭花仙子 + 10 我很贊同

查看全部評分

論壇徽章:
0
2 [報告]
發(fā)表于 2010-05-19 20:18 |只看該作者
鼓勵一下~~感謝分享~~

有個更簡單做法是,把gmail郵箱轉(zhuǎn)發(fā)到手機郵箱,運營商會給你短信提醒。

論壇徽章:
0
3 [報告]
發(fā)表于 2010-05-19 20:19 |只看該作者
同志們,別光下載,不回帖哦,路過要留名,讓我們把帖子頂起來,好東西,要分享~~

{:3_182:}{:3_189:}

論壇徽章:
0
4 [報告]
發(fā)表于 2010-05-19 20:21 |只看該作者
回復 2# 蘭花仙子


    哎呀,版主就是手腳快,沙發(fā)讓你搶了,唉~~~

論壇徽章:
0
5 [報告]
發(fā)表于 2010-05-20 00:07 |只看該作者
哇,好東西啊
通過飛信發(fā)信息
可以用壇子里的達人寫的
http://www.72891.cn/viewthread.php?tid=1643878

論壇徽章:
0
6 [報告]
發(fā)表于 2010-05-20 09:28 |只看該作者
GOOD ,

論壇徽章:
0
7 [報告]
發(fā)表于 2010-05-20 19:32 |只看該作者
哎呀,這個帖人煙稀少,不火啊, 傷心了, 繼續(xù)努力~~{:2_171:}

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
8 [報告]
發(fā)表于 2010-05-20 19:49 |只看該作者
how often 這個寫法有問題吧。

程序我沒仔細看,想來應該不錯。
下面從架構(gòu)上給出一些我的看法。

如果這么關心自己的郵件的話,
一個是可以購買智能機,支持郵箱的那種。
比如最新款的 google htc 就很不錯。
另一個就是蘭花仙子所說,通過 gmail 來轉(zhuǎn)發(fā)到手機郵箱什么的。

我還想說一點的就是,gmail 里面經(jīng)常會有很多垃圾郵件,
所以這個思路會不會其實用處不大呢?

論壇徽章:
0
9 [報告]
發(fā)表于 2010-05-20 20:21 |只看該作者
回復 8# flw


    其實思想不是局限于發(fā)郵件,而是覺得飛信的API不錯,我們可以擴增,比如用來監(jiān)視系統(tǒng),當系統(tǒng)異常時,給自己發(fā)個短信,當然了,現(xiàn)在有專門的設備,但那個要鈔票啊,哈哈, 偶寫寫也純屬娛樂.

    到是自己一直有個問題,就是怎么寫個程序也監(jiān)視"飛鴿收到的消息",本人水平有限,不是專門搞計算機,要是哪個達人有能給點建議,不甚感激.

   本人用的ubuntu8.10, 飛鴿版本是QipMsg0.9.5

論壇徽章:
0
10 [報告]
發(fā)表于 2010-05-21 00:38 |只看該作者
樓主加油,多發(fā)點代碼,我們好學習
幫你頂起來。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP