没有试过,转贴一篇文章:利用icq网关发送手机短信
<? 
//###########################################################
// 
// For questions and comments
// Roland (alias -=: Vlieg :=-)
// icq #78354631 
// mail: [email protected] 
// 
// NB: This script won't work on free hosting pages, because of the secure mode! 
// NB: You must have registered your icq# at icq.com/sms/login/" target="_blank">http://web.icq.com/sms/login/ in order for this script to work
//########################################################### 
//****************************************************************\\ 
//Config: $uin=""; //your icq number
$passw=""; //your ICQpassword$prefix="27"; //sms prefix 
$phonenumber="0000000"; //sms phone number
$message = "Hello!"; //sms message
//****************************************************************\\ 
// EN: calculate the content length$contentlength= ( 37+ 
strlen($uin)+ 
strlen($passw) 
); //****************************************************************\\ 
// Openen van de inlogpagina 
// EN: open loginpage$htmlreply=""; 
$post ="POST icq.com/karma/dologin/1" target="_blank">http://web.icq.com/karma/dologin/1,,,00.html HTTP/1.0 
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* 
Referer: icq.com/sms/login/1" target="_blank">http://web.icq.com/sms/login/1,,,00.html 
Accept-Language: nl 
Content-Type: application/x-www-form-urlencoded 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) 
Host: web.icq.com 
Content-Length: ".$contentlength." 
Proxy-Connection: Keep-Alive 
Pragma: no-cache 
Cookie: uin=".$uin."; sms_country=".$prefix."; KarmaService1=Yes; uin=".$uin."; sms_country=".$prefix."; KarmaService1=Yes uService=1&uLogin=".$uin."&uPassword=".$passw."&x=0&y=0"; $remote = fsockopen("web.icq.com", 80, &$errno, &$errstr, 30); global $remote; 
global $post; 
fputs($remote, $post); while (!feof($remote)) { $htmlreply.=fgets($remote,120); } 
//UNCOMMENT FOR OUTPUT: echo "".htmlspecialchars($htmlreply).""; 
fclose($remote); //****************************************************************\\ 
//persoonlijke cookie uit de inlogpage halen 
// EN: fetch personal cookie from login page$splited = split("\n",$htmlreply); 
$cookies = $splited[3]; 
$cookies = str_replace("Set-Cookie: KarmaLogin=","",$cookies); 
$cookies = str_replace("; path=/","",$cookies); 
$cookies = str_replace("\n","",$cookies); 
//UNCOMMENT VOOR OUTPUT: echo $cookies; if (strlen($prefix) == 2) { $contentprefix = ' '.$prefix; } else { $contentprefix = $prefix; } 
$charcount = (160-strlen($message)); 
$contentlength= ( 1561+ 
strlen($message)+ 
strlen($charcount)+ 
strlen($phonenumber)+ 
strlen($prefix) 
); //****************************************************************\\ 
//Verzendpagina openen met de opgehaalde cookie 
// EN: open send page with fetched cookie$htmlreply=""; 
$post ='POST icq.com/sms/send_history/1" target="_blank">http://web.icq.com/sms/send_history/1,,,00.html HTTP/1.0 
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* 
Referer: icq.com/sms/send_session...0.html?prefix=+" target="_blank">http://web.icq.com/sms/send_session...0.html?prefix=+'.$prefix.'&carrier=&tophone='.$phonenumber.' 
Accept-Language: nl 
Content-Type: multipart/form-data; boundary=---------------------------7d12442eab4 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) 
Host: web.icq.com 
Content-Length: '.$contentlength.' 
Proxy-Connection: Keep-Alive 
Pragma: no-cache 
Cookie: uin='.$uin.'; sms_country='.$prefix.'; KarmaService1=Yes; KarmaLogin='.$cookies.'; uin='.$uin.'; sms_country='.$prefix.'; KarmaService1=Yes; KarmaLogin='.$cookies.' -----------------------------7d12442eab4 
Content-Disposition: form-data; name="carrier" 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="prefix" '.$contentprefix.' 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="tophone" '.$phonenumber.' 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="uSession" 1 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="uReply" 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="uLastId" 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="uSend" 1 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="uNextId" 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="uHistoryCounter" 1 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="count" 0 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="uSubmitCount" 0 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="checkNewMsg" 180000 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="charcount" '.$charcount.' 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="msg" '.$message.' 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="x" 30 
-----------------------------7d12442eab4 
Content-Disposition: form-data; name="y" 16 
-----------------------------7d12442eab4-- 
'; $remote = fsockopen("web.icq.com", 80, &$errno, &$errstr, 30); global $remote; 
global $post; 
fputs($remote, $post); while (!feof($remote)) { $htmlreply.=fgets($remote,120); } 
//UNCOMMENT FOR OUTPUT: echo "".htmlspecialchars($htmlreply).""; 
fclose($remote); //****************************************************************\\ 
// check if message is send if send 'moved permanently' is returned if (eregi('Moved Permanently',$htmlreply)) 

echo "Sms message successfully sent!"; 
} else { 
echo "Sms not sent!"; 

?>