Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

在 shell script 中發送 MSN 訊息
post by tommy @ 12 三月, 2007 08:25
有了之前用 PHP 寫的 MSN class 之後, 要在一般的 shell script 中來發送 MSN 的訊息就不是件難事了.

首先, 最好每一台機器都去申請一個新的 MSN 帳號 (因為同一個帳號不能同時在兩台機器上登入, 先進去的好像會被後進去的踢出去), 反正申請帳號也不用什麼費用. 當然, 要收這個訊息的帳號, 記得要允許由這個新的帳號發送訊息才可以.

然後, 寫一個小的 php script 如下:

#!/usr/bin/php -Cq
<?php
 
error_reporting(0);
 
if (!isset($argc)) $argc = $_SERVER['argc'];
if (!isset($argv)) $argv = $_SERVER['argv'];
 
if ($argc != 3) {
echo "Syntax: $argv[0] to msg\n";
exit;
}
 
$aTo = explode(',', $argv[1]);
$sMsg = $argv[2];
 
$msn_acct = 'YOUR_MSN_ACCOUNT';
$msn_password = 'YOUR_MSN_PASSWORD';
 
include_once('msn.class.php');
 
$msn = new MSN;
 
if (!$msn->connect($msn_acct, $msn_password)) {
echo "Error for connect to MSN network\n";
echo "$msn->error\n";
exit;
}
 
$msn->sendMessage($sMsg, $aTo);
if ($msn->error != '')
echo "Error: $msn->error\n";
 
exit;
 
?>

上頭的 YOUR_MSN_ACCOUNT, YOUR_MSN_PASSWORD 設好後, 把這個檔案存成 msnsendmsg.php, 連同 msn.class.php 放到 /usr/local/bin 下頭. 記得把 msnsendmsg.php 加上可執行的屬性.

這樣子處理之後, 我們只要執行 msnsendmsg.php, 第一個參數是要接收這個訊息的使用者 (如果有多個, 以逗號分隔), 第二個參數就是要傳送的訊息 (用 UTF-8 編碼).  例如:


#!/bin/sh
 
msnsendmsg.php "[email protected],[email protected]" "Date: $(date)
Subject: Test
=================================================
測試 line 1
line 2
line 3
以下空白
 
 
結束
================================================="

 
exit

當然, 要送什麼內容就由你自己決定吧. 這樣子, 是不是很方便呢?

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 138 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS