mail2sms.pl
上传用户:mei_mei897
上传日期:2007-01-05
资源大小:82k
文件大小:2k
源码类别:

手机短信编程

开发平台:

Unix_Linux

  1. #!/usr/bin/perl
  2. # Mail to SMS gateway script, version 1.0
  3. # By Andy Hawkins (andy@gently.demon.co.uk)
  4. # Set this to be the path to your mail program
  5. $MAILER="/usr/lib/sendmail -t";
  6. # Set this to the maximum number of tries for a message
  7. $retries=5;
  8. $foundblank=0;
  9. $number="";
  10. headerloop: while(<>)
  11. {
  12. chomp;
  13. if (/^From:s(S+)/)
  14. {
  15. $fromaddr=$1;
  16. }
  17. if (/^Subject:s(S+)/)
  18. {
  19. $number=$1;
  20. }
  21. if (/^$/)
  22. {
  23. $foundblank=1;
  24. last headerloop;
  25. }
  26. }
  27. $msg="";
  28. messageloop: while (<>)
  29. {
  30. chomp;
  31. last messageloop if /^quit$/ or /^end$/;
  32. if ($msg)
  33. {
  34. $msg=$msg." ".$_;
  35. }
  36. else
  37. {
  38. $msg=$_;
  39. }
  40. }
  41. print "Message is to $numbern";
  42. print "Message is ($msg)n";
  43. $success=0;
  44. $longmsg=0;
  45. $badservice=0;
  46. $badnumber=0;
  47. if ($number)
  48. {
  49. sendloop: while ($retries)
  50. {
  51. $retcode=system ("/usr/bin/sms_client $number "$msg"")/256;
  52. # $retcode=system ("exitstat.pl $number "$msg"")/256;
  53. if ($retcode==0)
  54. {
  55. $success=1;
  56. last sendloop;
  57. }
  58. else
  59. {
  60. print "Failed with retcode $retcoden";
  61. if ($retcode==1)
  62. {
  63. $longmsg=1;
  64. last sendloop;
  65. }
  66. if ($retcode==3)
  67. {
  68. $badservice=1;
  69. last sendloop;
  70. }
  71. if ($retcode==4)
  72. {
  73. $badnumber=1;
  74. last sendloop;
  75. }
  76. sleep 5;
  77. $retries--;
  78. }
  79. }
  80. }
  81. open MAIL,"|$MAILER";
  82. #print MAIL "From: $MAIL_FROMn";
  83. print MAIL "To: $fromaddrn";
  84. if ($success)
  85. {
  86. print MAIL "Subject: SMS to $number sent successfullyn";
  87. print MAIL "n";
  88. print MAIL "Your SMS to $number was sent successfullyn";
  89. }
  90. else
  91. {
  92. print MAIL "Subject: SMS to $number failedn";
  93. print MAIL "n";
  94. print MAIL "Your SMS to $number failedn";
  95. unless ($number)
  96. {
  97. print MAIL "No number found in subject headern";
  98. }
  99. if ($longmsg)
  100. {
  101. print MAIL "Your message was too longn";
  102. }
  103. if ($badservice)
  104. {
  105. print MAIL "An invalid service was specifiedn";
  106. }
  107. if ($badnumber)
  108. {
  109. print MAIL "The number $number could not be expandedn";
  110. }
  111. }
  112. close MAIL;